도메인 키 표준 형식

Domain-key normal form

Domain-Key Normal Form(DK/NF; 도메인 키 정규화 형식)은 데이터베이스 정규화에 사용되는 정규 형식이며, 데이터베이스에는 도메인 제약 및 키 제약 이외의 제약이 없습니다.

도메인 제약조건은 특정 Atribute의 허용값을 지정하는 반면 키 제약조건은 특정 테이블 내의 행을 일의로 식별하는 Atribute를 지정합니다.

도메인/키 정규 형식은 관련성에 대한 모든 제약이 키 및 도메인 정의의 논리적 결과이며 키 및 도메인 제약 및 조건을 적용하면 모든 제약이 충족될 때 달성됩니다.따라서 모든 비일시적 이상을 방지할 수 있습니다.

도메인/키 정규 형식을 사용하는 이유는 데이터베이스 내에서 도메인 또는 키 제약이 명확하지 않은 일반 제약이 발생하지 않도록 하기 위해서입니다.대부분의 데이터베이스는 속성에 대한 도메인 및 주요 제약을 쉽게 테스트할 수 있습니다.그러나 일반적인 제약 조건에서는 일반적으로 유지 보수 비용과 데이터베이스 실행 비용이 많이 드는 스토어드 프로시저(종종 트리거 종류) 형태의 특수한 데이터베이스 프로그래밍이 필요합니다.따라서 일반적인 제약조건은 도메인 제약조건과 키 제약조건으로 분할됩니다.

다수의 이상 징후가 있을 수 있는 작은 데이터베이스를 변환하는 것보다 도메인/키 일반 형식으로 데이터베이스를 구축하는 것이 훨씬 쉽습니다.그러나 도메인/키 일반 형식 데이터베이스를 성공적으로 구축하는 것은 숙련된 데이터베이스 프로그래머에게도 여전히 어려운 작업입니다.따라서 도메인/키 정규 형식은 대부분의 데이터베이스에서 볼 수 있는 문제를 제거하지만 가장 비용이 많이 드는 정규 형식인 경향이 있습니다.단, 도메인/키 표준 형식에 도달하지 못하면 시간이 지남에 따라 하위 표준 형식에만 집착하는 이상 징후로 인해 장기간에 걸쳐 숨겨진 비용이 발생할 수 있습니다.

번째 정규형 보이시-코드 정규형, 네 번째 정규형다섯 번째 정규형도메인/키 정규형의 특수한 경우입니다.모두 슈퍼키로 변환할 수 있는 함수, 다중값 또는 결합 종속성이 있습니다.이러한 일반 양식의 도메인은 구속되지 않았기 때문에 모든 도메인 제약이 충족되었습니다.그러나 상위 표준 형식을 도메인/키 표준 형식으로 변환하는 것이 항상 종속성을 유지하는 변환은 아니므로 항상 가능한 것은 아닙니다.

DKNF 위반은 다음 표에 나타나 있습니다.

부유한 사람
부유한 사람 부유층 유형 달러순자산
스티브 백만장자 124,543,621
로데릭 억만장자 6,553,228,893
카트리나 억만장자 8,829,462,998
게리 백만장자 495,565,211

(부자의 도메인이 미리 정의된 부자의 표본에 포함된 모든 부자의 이름으로 구성되고, 부자의 유형 도메인이 '백만장자'와 '억만장자'로 구성되며, 순자산(달러) 도메인은 백만장자 이상의 모든 정수로 구성된다고 가정합니다.)

비록 우리가 다른 사람으로부터 추론할 수는 없지만 부유층 유형과 달러 순자산 사이에는 제약이 있다.이 제약조건은 백만장자는 100만에서 999만99999의 순자산을 보유하는 반면 백만장자는 100만 이상의 순자산을 보유하게 된다.이 제약은 도메인 제약도 키 제약도 아닙니다.따라서 일관성이 없는 부유층 유형/달러 단위의 순자산 조합이 데이터베이스에 들어가지 않도록 도메인 제약 및 키 제약에 의존할 수 없습니다.

DKNF 위반은 부유한 사람 유형 열을 제거하여 제거할 수 있습니다.백만장자 또는 억만장자로서의 부자의 지위는 부유 상태 표에 정의된 대로 달러 순자산에 의해 결정되므로 유용한 정보가 손실되지 않습니다.

부유한 사람
부유한 사람 달러순자산
스티브 124,543,621
로데릭 6,553,228,893
카트리나 8,829,462,998
게리 495,565,211
부유 상태
상황 최소값 최대치
백만장자 1,000,000 999,999,999
억만장자 1,000,000,000 999,999,999,999

외부 키

외부 키로 표현할 수 없는 관계는 명백한 DKNF 위반입니다.예를 들어, 두 번째 "부모 유형" 속성에 따라 참조되는 여러 테이블 중 하나를 가리키는 "부모 ID" 속성은 DKNF를 위반합니다.

「 」를 참조해 주세요.

레퍼런스

  • Fagin, Ronald (1981). "A Normal Form for Relational Databases That Is Based on Domains and Keys" (PDF). ACM Transactions on Database Systems. 6 (3): 387–415. CiteSeerX 10.1.1.73.373. doi:10.1145/319587.319592.

외부 링크