세 번째 정규 형태

Third normal form

번째 정규 형태(3NF)는 관계형 데이터베이스를 위한 데이터베이스 스키마 설계 접근법으로, 데이터의 중복을 줄이고, 데이터 이상을 방지하며, 참조 무결성을 보장하며, 데이터 관리를 단순화한다.그것은 1971년에 에드가 F에 의해 정의되었다. 데이터베이스 관리를 위한 관계형 모델을 개발한 영국의 컴퓨터 과학자 Codd.null

모든 속성(예: 데이터베이스 열)이 기능적으로 기본 키에만 의존하는 경우 데이터베이스 관계(예: 데이터베이스 테이블)는 세 번째 정규 양식 표준을 충족한다고 한다.Codd는 이를 모든 비우량 속성이 후보 키에만 의존하고 다른 키에 대한 전이적 의존성이 없는 두 번째 정상적인 형태의 관계라고 정의했다.[1]null

제3의 정상적인 형태를 충족하지 못하는 가설적인 예로는 의사의 전화 번호에 대한 칼럼이 포함된 환자 테이블이 있는 병원 데이터베이스를 들 수 있다.전화번호는 환자보다는 의사에게 의존하기 때문에 의사 테이블에 보관하는 것이 좋다.이러한 설계의 부정적인 결과는 여러 명의 환자가 있는 경우 의사 번호가 데이터베이스에 중복되어 입력 오류의 확률과 변경될 경우 해당 숫자를 업데이트하는 비용과 위험성이 모두 증가한다는 것이다(닥터 ta에 의사 번호를 한 번만 저장하는 제3의 정상적인 형태 준수 데이터 모델과 비교).비위를 맞추다

Codd는 나중에 3NF가 모든 바람직하지 않은 데이터 이상을 제거하지 않았다는 것을 깨닫고 1974년에 이를 해결하기 위해 더 강력한 버전을 개발했으며, Boyce-Codd 정상 형태라고 알려져 있다.null

세 번째 정규 형식 정의

세 번째 정규 형태(3NF)는 데이터베이스 정규화에 사용되는 정규 형태다.3NF는 1971년 E. F. Codd에 의해 원래 정의되었다.[2]null

Codd의 정의는 다음 두 조건이 모두 유지되는 경우에만 테이블이 3NF에 있다고 명시한다.

  • R(표)은 두 번째 정규 형태(2NF)이다.
  • R의 모든 비우량 속성은 R의 모든 키에 대한 비투명적으로 의존한다.

R의 비우량적 속성은 R의 어떤 후보 키에도 속하지 않는 속성이다.[3] 전이적 종속성은 X → YYZ (Y → X가 아닌 경우)에 의해 X → Z (X가 Z를 간접적으로 결정하는 기능적 종속성이다.[4]null

Codd와 동일하지만 다르게 표현되는 3NF 정의는 1982년 카를로 자니올로(Carlo Zaniolo)에 의해 주어졌다.이 정의는 각 기능 의존성 XA에 대해 적어도 다음 조건 중 하나가 유지되는 경우에만 테이블이 3NF에 있다고 명시한다.[5][6][need quotation to verify]

  • XA를 포함한다(즉, AX의 부분집합이며, XA는 사소한 기능상 종속이라는 의미),
  • X슈퍼키야
  • AX의 설정 차이인 A \ X의 모든 요소는 주요 속성이다(, A \ X의 각 속성은 일부 후보 키에 포함되어 있다).

자니올로(Zaniolo)의 정의는 3NF와 보다 엄격한 보이즈-코드 정규 형태(BCNF)의 차이를 명확히 느끼게 한다.BCNF는 단순히 세 번째 대안("A \ X의 모든 요소, A와 X의 설정 차이점은 주요 속성")을 삭제한다.null

"열쇠밖에 없어"

Codd의 3NF 정의에 대한 근사치는 법정에서 진정한 증거를 제공하겠다는 전통적인 맹세와 유사하게 Bill Kent에 의해 주어졌다: "[모든] 비키[속성]는 열쇠, 전체 키, 그리고 열쇠에 대한 사실만을 제공해야 한다."[7]일반적인 변화는 이 정의를 "그러니 나를 도와줘"라는 맹세로 보충한다.[8]null

"키"가 존재하도록 요구하면 테이블이 1NF가 되고, 비키 속성이 "전체 키"에 의존하도록 요구하면 2NF가 되며, 나아가 비키 속성이 "키 이외에는 아무것도"에 의존하지 않도록 요구하면 3NF가 된다.이 구절은 유용한 니모닉이지만, 하나의 키만을 언급한다는 것은 그것이 제2의 정규 형태와 제3의 정규 형태를 만족시키기 위해 필요하지만 충분하지 않은 조건을 정의한다는 것을 의미한다.2NF와 3NF 모두 테이블의 모든 후보 키와 동등하게 관련되어 있으며, 하나의 키만이 아니다.null

크리스 다테는 켄트의 요약을 3NF의 "직관적으로 매력적인 특성화"라고 말하며, 약간 적응하면 약간 더 강한 보이즈-코드 정상 형태의 정의로 작용할 수 있다고 언급한다: "각각 속성은 키, 전체 키에 대한 사실, 그리고 키에 대한 사실만을 나타내야 한다."[9]정의의 3NF 버전은 디테일의 BCNF 변동보다 약하다. 전자는 키에 의존하지 않는 속성이 키에 의존하는지 확인하는 것에만 관심이 있기 때문이다.주요 속성(키 또는 키의 일부인)은 기능적으로 전혀 의존해서는 안 된다. 각 속성은 키 자체의 일부 또는 전체를 제공한다는 의미에서 키에 대한 사실을 나타낸다.(이 규칙은 기능적으로 종속된 속성에만 적용되며, 이러한 키의 각 부분이 "whole key" 조항을 위반하므로 모든 속성에 이를 적용하면 복합 후보 키가 암시적으로 금지될 수 있기 때문이다.null

3NF의 요구사항을 충족하지 못하는 2NF 표의 예는 다음과 같다.

토너먼트 우승자
토너먼트 연도 위너 승자의 생년월일
인디애나 인비테이셔널 1998 앨 프레드릭슨 1975년 7월 21일
클리블랜드 오픈 1999 밥 앨버트슨 1968년 9월 28일
데스 모인스 마스터스 1999 앨 프레드릭슨 1975년 7월 21일
인디애나 인비테이셔널 1999 칩 매스터슨 1977년 3월 14일

표의 각 행은 특정 해에 특정 토너먼트에서 누가 우승했는지 알려야 하기 때문에 복합 키 {Tournament, Year}는 행을 고유하게 식별할 수 있는 최소한의 속성 집합이다.즉, {관광, 연도}이(가) 테이블의 후보 키라는 것이다.null

3NF 위반은 비우량 속성(위너 생년월일)이 비우량 속성 위너를 통해 후보 키 {Tournament, Year}에 전달적으로 의존하기 때문에 발생한다.위너의 생년월일이 기능적으로 위너에 의존한다는 사실은 동일인이 서로 다른 기록에서 다른 생년월일을 가진 모습을 보여주는 것을 막을 수 있는 것이 없기 때문에 테이블이 논리적 모순에 취약하게 만든다.null

3NF를 위반하지 않고 동일한 사실을 표현하기 위해서는 표를 둘로 나눌 필요가 있다.

토너먼트 우승자
토너먼트 연도 위너
인디애나 인비테이셔널 1998 앨 프레드릭슨
클리블랜드 오픈 1999 밥 앨버트슨
데스 모인스 마스터스 1999 앨 프레드릭슨
인디애나 인비테이셔널 1999 칩 매스터슨
승자의 생년월일
위너 출생의 날짜.
칩 매스터슨 1977년 3월 14일
앨 프레드릭슨 1975년 7월 21일
밥 앨버트슨 1968년 9월 28일

이전과 달리, 위너는 이제 두 번째 표의 후보 키가 되어 각 위너에 대해 생년월일 값을 하나만 허용하기 때문에 이러한 표에서는 업데이트 이상 징후가 발생할 수 없다.null

연산

관계는 항상 세 번째 정상적인 형태로 분해될 수 있다. 즉, R 관계는 원래 관계와 동일한 R1, ..., Rn 투영으로 다시 작성된다.또한, 이러한 분해는 모든 기능적 의존성이 투영1 R, ..., R에서n 유지되는 기능적 의존에서 파생될 수 있다는 점에서 기능적 의존성을 잃지 않는다. 더욱이 그러한 분해는 다항식 시간에 계산될 수 있다.[10]null

자니올로 조건의 도출

Carlo Zaniolo가 1982년에 제시한 3NF의 정의는 다음과 같은 방법으로 증명된다: X → A는 비경쟁적 FD(즉, X가 A를 포함하지 않는 FD)가 되고 A는 비키 속성이다.또한 Y를 R의 열쇠가 되게 하라.그러면 Y → X.

3NF 이상의 정규화

대부분의 3NF 테이블에는 업데이트, 삽입 및 삭제 이상이 없다.실제로 거의 충족되지 않는 특정 유형의 3NF 표는 그러한 이상 징후의 영향을 받는다. 이러한 표는 보이스-코드 정규 형태(BCNF)에 못 미치거나 BCNF를 충족하면 상위 정규 형태인 4NF 또는 5NF에 미치지 못하는 표들이다.null

보고 환경에서 사용하기 위한 고려 사항

3NF는 기계 처리에 이상적이었지만, 데이터 모델의 세분화된 성질은 사용자가 사용하기 어려울 수 있다.질의, 보고 및 대시보드를 통한 분석은 추세선, 기간별 계산(월별, 분기별, 연도별), 누적 계산, 기본 통계(평균, 표준 편차, 이동 평균) 및 이전 기간 c와 같이 사전 계산된 분석을 제공하는 다른 유형의 데이터 모델에 의해 촉진되는 경우가 많았다.예를 들어 치수 모델링 및 치수 모델링 이상, Hadoop 및 데이터 과학을 통한 별의 평탄화 등과 같은 전지(전,[11][12] 월, 주)null

참고 항목

참조

  1. ^ Codd, E. F. "데이터베이스 관계 모델의 추가 표준화", 페이지 34.
  2. ^ Codd, E. F. "데이터베이스 관계 모델의 추가 표준화" (1971년 5월 24~25일 뉴욕시의 Courant Computer Science Sympositia Series 6, "데이터베이스 시스템"에서 표시)IBM Research Report RJ909(1971년 8월 31일)Randall J. Rustin (ed.), Data Base Systems: Courant Computer Science Sospositia Series 6. 프렌티스 홀, 1972.
  3. ^ 코드, 페이지 43.
  4. ^ Codd, 페이지 45-46.
  5. ^ 자니올로, 카를로"관계형 데이터베이스 스키마타 설계를 위한 새로운 일반 양식"1982년 9월 데이터베이스 시스템 7(3), ACM 트랜잭션
  6. ^ 아브라함 실버스차츠, 헨리 F.Korth, S. Sudarshan, Database System Concepts(5판), 페이지 276–277.
  7. ^ 켄트, 윌리엄1983년 2월, 페이지 120–125의 ACM 26(2) 통신 "관계형 데이터베이스 이론에서의 5가지 정규 형식에 대한 간단한 가이드"
  8. ^ 1989년 데이터베이스 관리 학점에 관한 책의 저자는 "So help me Codd" 부록에 나오는 그의 학생들 중 한 명이다.디어, 조지.데이터베이스 관리(Scott, Forsman, 1989), 페이지 331.
  9. ^ 날짜, C. J. 데이터베이스 시스템에 대한 소개(7차 개정판), (애디슨 웨슬리, 2000), 페이지 379.
  10. ^ 세르게이 아비테불, 리처드 B.헐, 빅터 비아누: 데이터베이스의 기초.애디슨 웨슬리, 1995년http://webdam.inria.fr/Alice/ ISBN0201537710.정리 11.2.14.
  11. ^ "Comparisons between Data Warehouse modelling techniques – Roelant Vos". roelantvos.com. Retrieved 5 March 2018.
  12. ^ "Hadoop Data Modeling Lessons EMC". InFocus Blog Dell EMC Services. 23 September 2014. Retrieved 5 March 2018.

추가 읽기

외부 링크