Nullable 열은 1NF ~ 5NF에있을 수 있지만 내가 읽은 내용에 따라 6NF에는있을 수 없습니다.
Chris Date보다 "첫 번째 정규 형식이 실제로 무엇을 의미하는지"를 더 잘 아는 경우에만. x와 y가 일부 행의 x 실제로 모두 Null을 허용하고 있습니다와 y가 모두있는 경우 null
, 다음 WHERE x=y
양보하지 않습니다 true
. 이것은 null이 값이 아님을 합리적인 의심의 여지없이 증명합니다 (실제 값은 항상 자신과 동일하기 때문입니다). 그리고 RM은 "테이블의 모든 셀에 값이 있어야한다"라고 규정하고 있기 때문에 null을 포함 할 수있는 것은 관계형이 아니므로 1NF에 대한 질문도 발생하지 않습니다.
일반적으로 Nullable 열이 첫 번째 정규화 수준을 깨뜨린다는 주장을 들었습니다.
그 주장의 근거가되는 건전한 이유는 위를 참조하십시오.
그러나 실제로는 매우 실용적입니다.
일반적으로 전 세계에서 발생하는 두통에 면역이있는 경우에만 가능합니다. 그러한 골칫거리 중 하나 (그리고 다른 null
현상에 비해 사소한 문제 일뿐입니다 )는 WHERE x=y
SQL에서 실제로는을 의미 WHERE x is not null and y is not null and x=y
하지만 대부분의 프로그래머는 그 사실을 인식하지 못하고 그냥 읽는다는 사실입니다. 때로는 아무런 해를 끼치 지 않고 다른 때는 그렇지 않습니다.
실제로 nullable 열은 가장 기본적인 데이터베이스 디자인 규칙 중 하나를 위반합니다. 하나의 열에 고유 한 정보 요소를 결합하지 마십시오. Null은 부울 값 "이 필드가 실제로 존재하지 않음"을 실제 값과 결합하기 때문에 정확히 수행합니다.