데이터 모델링의 이해
🧩 모델링데이터 모델과 SQL★★★★★거의 매회

모델에서의 NULL — 선택 속성이 남기는 자리

속성을 선택으로 두면 값이 없는 자리가 NULL 로 남고, 그 NULL 은 나중에 집계와 조인의 결과를 바꾼다.

NULL필수 속성선택 속성NOT NULL

왜 그런지까지

필수 속성으로 정하면 NOT NULL 이 되어 값 없이는 저장할 수 없다. 선택 속성으로 두면 NULL 이 허용되는데, 이 결정은 SQL 로 그대로 넘어간다.

NULL 이 섞인 열은 SUM·AVG 의 분모에서 빠지고, 산술식에 들어가면 결과 전체가 NULL 이 되며, 조인 조건에서는 어느 쪽과도 맞지 않아 행이 사라진다. 모델링 단계에서 '이 속성이 비어 있어도 되는가'를 대충 정하면, 나중에 숫자가 맞지 않는 원인을 SQL 쪽에서 찾게 된다.

돌려 보기

보너스가 NULL 인 사람이 넷 있다. 분모가 10이 아니라 6이라는 것을 직접 확인해 보자.

헷갈리는 것

필수 속성 vs 선택 속성

필수 속성은 값 없이 저장할 수 없어 NOT NULL 이 되고, 선택 속성은 값이 없어도 되어 NULL 이 남는다.

NULL 이 집계에 미치는 영향

AVG 는 NULL 인 행을 분모에서 아예 빼고 계산한다. 0으로 치는 것이 아니다.

확인 문제

넣어 두면 오늘 · 1일 · 3일 · 7일 · 14일 · 30일 간격으로 다시 물어봅니다