복합키 전체가 필요한 값은 남기고, 일부 키만으로 정해지는 값은 분리해야 한다
2NF 위반의 핵심은 학생 정보가 수강 행에 함께 들어 있어, 학번만 알면 결정되는 값이 복합키 테이블에 중복 저장된다는 점입니다.
학번 1001은 과목이 달라도 이름과 학과가 그대로 반복됩니다. 이 반복이 아래의 부분 함수 종속 신호입니다.
{학번, 과목명} -> 성적
같은 학생이라도 과목이 바뀌면 성적이 달라질 수 있으므로, 성적은 복합키 전체가 있어야 결정됩니다.
학번 -> 이름, 학과
과목명이 없어도 학생 정보는 정해집니다. 그래서 학생 정보가 수강 행마다 붙어 다니며 중복과 이상 현상을 만듭니다.
아직 수강 과목이 없는 학생은 과목명 없이 넣을 수 없어, 학생 정보만 따로 등록하지 못하는 삽입 이상이 생깁니다.