후보 키가 NULL 값을 가질 수 없다는 것을 알고 있습니다. 그러나 후보 키는 그 자체로 프라임 속성이라고하는 많은 속성의 조합 일 수 있습니다. 이 프라임 속성은 NULL 값을 가질 수 있습니까?속성에 프라임 속성을 사용할 수 있습니까?
감사합니다.
후보 키가 NULL 값을 가질 수 없다는 것을 알고 있습니다. 그러나 후보 키는 그 자체로 프라임 속성이라고하는 많은 속성의 조합 일 수 있습니다. 이 프라임 속성은 NULL 값을 가질 수 있습니까?속성에 프라임 속성을 사용할 수 있습니까?
감사합니다.
총리는 일부 후보 키 속성으로 표시 속성 때문이다. (그것은 기본 키, 또는 관심 심지어 어떤 열쇠가 될 필요는 없다.)
국무 속성이 후보 키의 일부입니다. 후보 키는 이름에서 알 수 있듯이 기본 키의 후보입니다. 즉, 필요한 경우 후보 키 은이 기본 키가 될 수 있습니다.
이제 기본 키를 null로 설정할 수 없습니다. 따라서, 정의상, 프라임 속성은 null 일 수 없습니다. null의 경우, 그 속성은 주요한 속성이 아닙니다.
다음은 설명입니다. 당신이있는 경우
는 복합 후보 키는
CK1(P1, P2)
은 P1과 P2는 주요 특성입니다 말할 수 있습니다. 기본 키 속성 이외의 소수 속성에는 제약 조건이 없기 때문에 P1 또는 P2를 null로 설정할 수 있습니다. 그래서
는 지금
CK1(P1, P2=null)
, CK1은 따라서 더 이상 후보 키입니다 따라서, P2는 더 이상 주요 속성입니다, 기본 키가 될 수 없습니다.
저는 사용하는 데이터베이스에 따라 다르다고 생각합니다.
예를 들어 MySQL에서는 명시 적으로 지정할 필요가 없습니다. 이것은 the manual에 정의되어
기본 키는 모든 키 열이 이 NOT NULL로 정의되어야합니다 고유 인덱스입니다. NOT NULL로 명시 적으로 선언되지 않은 경우, MySQL 은 암시 적으로 (그리고 자동으로) 선언합니다.
가능한 복제본 [MySQL - 기본 키에 "NOT NULL"제약 조건이 필요합니까?] (http://stackoverflow.com/questions/10462918/mysql-are-not-null-constraints-needed-for-primary- 키) –