1NF 적용
한 셀의 여러 과목을 학생-과목 행으로 펼친다
원자값을 지키려면 한 셀을 나누는 대신, 같은 학생이 과목 수만큼 여러 행으로 나타난다.
핵심 규칙
각 셀에는 하나의 값만 저장
변환 후 1NF 테이블
학번
이름
수강과목
1001
김철수
DB
1001
김철수
알고리즘
1002
이영희
DB
행은 늘어나도 셀은 단순해집니다.
학생 1001은 과목이 2개이므로 2행으로 분리되고, 각 행은 학생과 과목의 한 관계만 표현합니다.
무엇이 바뀌나
한 셀의 목록을 원자값으로 분해
변환 전
DB, 알고리즘
→
변환 후
DB 알고리즘
반복 그룹을 셀 안에 숨기지 않고, 행으로 드러내야 관계형 테이블답게 다룰 수 있습니다.
왜 관리가 쉬워지나
행을 구분하는 기준도 함께 바뀜
기본키
{학번, 수강과목}
같은 학생이 여러 과목을 들을 수 있으므로, 학번만으로는 행을 구분할 수 없습니다. 학생과 과목을 함께 봐야 한 행이 고유해집니다.
정확한 검색
WHERE 수강과목 = 'DB'
DB 수강 행만
바로 찾을 수 있음