속성 하나 = 원자값 하나

한 셀에 여러 값을 묶는 순간, 그 속성은 더 이상 원자적이지 않습니다.

릴레이션은 각 속성이 분해되지 않는 단일 값을 가져야 합니다. 값이 목록으로 들어가면 1NF를 만족하지 못하고, 조회와 수정 기준도 함께 흐려집니다.

원자값 위반 상태

students.phone이 값이 아니라 목록이 된 경우

전화번호 두 개가 한 셀에 함께 저장되면, 하나의 속성이 두 값을 동시에 품게 됩니다.

이름
전화번호
김철수
010-1234-5678, 02-555-1234
문제: 휴대폰만 바꾸거나, 자택번호만 찾으려 해도 먼저 셀 안의 문자열을 다시 분해해야 합니다.
1NF를 만족하는 상태

전화번호를 한 행씩 분리해 관계로 연결

각 셀은 하나의 번호만 담고, 여러 번호는 여러 행으로 표현합니다.

users.id
이름
1
김철수
user_id
전화번호
유형
1
010-1234-5678
휴대폰
1
02-555-1234
자택

원자값을 지키면 각 값이 독립적으로 다뤄집니다

조회 기준이 명확해짐 WHERE phone_number = '02-555-1234'처럼 값 하나로 바로 찾을 수 있습니다.
갱신 이상을 줄임 휴대폰 번호 하나만 바꿔도 다른 번호를 다시 조합하거나 파싱할 필요가 없습니다.
릴레이션답게 유지됨 한 셀에 한 값이라는 규칙이 유지되어, 속성이 1NF의 전제를 만족합니다.