1 / 42

데이터베이스 (Database) 관계 DB 설계 알고리즘과 추가적 정규형 문양세 강원대학교 IT 대학 컴퓨터과학전공

데이터베이스 (Database) 관계 DB 설계 알고리즘과 추가적 정규형 문양세 강원대학교 IT 대학 컴퓨터과학전공. 강의 내용. 관계 DB 설계 알고리즘과 추가적 정규형. 관계형 데이터베이스 스키마 설계 알고리즘 릴레이션 분해와 정규형의 부족한 점 분해와 종속성의 보존 분해와 무손실 ( 비부가적 ) 조인 널 값과 허상 투플이 야기하는 문제점 다치 종속성과 제 4 정규형 (4NF) 조인 종속성과 제 5 정규형 (5NF) 포함 종속성 기타 종속성과 정규화.

senta
Download Presentation

데이터베이스 (Database) 관계 DB 설계 알고리즘과 추가적 정규형 문양세 강원대학교 IT 대학 컴퓨터과학전공

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 데이터베이스 (Database) 관계 DB 설계 알고리즘과추가적 정규형 문양세 강원대학교 IT대학 컴퓨터과학전공

  2. 강의 내용 관계 DB 설계 알고리즘과 추가적 정규형 • 관계형 데이터베이스 스키마 설계 알고리즘 • 릴레이션 분해와 정규형의 부족한 점 • 분해와 종속성의 보존 • 분해와 무손실(비부가적) 조인 • 널 값과 허상 투플이 야기하는 문제점 • 다치 종속성과 제4정규형(4NF) • 조인종속성과 제5정규형(5NF) • 포함 종속성 • 기타 종속성과 정규화

  3. 관계 DB 스키마 설계 알고리즘 관계 DB 설계 알고리즘과 추가적 정규형 • 좋은 데이터베이스 스키마 설계를 위해서는 정규형만으로는 불충분함 • 예제: 두 개 애트리뷰트를 갖는 릴레이션은 BCNF이다. 그러면, 모든 릴레이션을 두 개애트리뷰트로 설계하면 좋은 설계인가? • 좋은 데이터베이스 설계를 보장하기 위해서는 다음의 추가적인 조건들이 필요함 • 종속성 보존 특성 (dependency preservation property) • 무손실 조인 특성 (lossless join property)

  4. 릴레이션 분해와 정규형의 부족한 점 (1/2) 관계 DB 설계 알고리즘과 추가적 정규형 • 전체 릴레이션 스키마(universal relation schema) R = {A1, A2, ..., An} • 데이터베이스의 모든 애트리뷰트들을 포함하는 릴레이션이다. • 분해는 전체 릴레이션 R로부터 시작한다. • 설계목표 I: R을 m 개 릴레이션 스키마의 집합인 분해집합 D = {R1, R2, ..., Rm}로 분해한다. • 각 릴레이션 스키마 Ri는 R의 애트리뷰트들의 부분집합이다. • 애트리뷰트 보존 조건: R의 모든 애트리뷰트들은 적어도 하나의 릴레이션 Ri에 나타나야 한다.

  5. 릴레이션 분해와 정규형의 부족한 점 (2/2) 관계 DB 설계 알고리즘과 추가적 정규형 • 설계목표 II: D의 각 릴레이션 Ri는 BCNF 혹은 3NF에 속하도록 한다. 좋은 데이터베이스 설계는 이들 정규형만으로 부족하다. • 예제:애트리뷰트가 둘인 릴레이션은 자동적으로 BCNF이다. 이러한 애트리뷰트가 둘인 릴레이션과 BCNF가 아닌 릴레이션을 조인하게 되면 가짜 투플이 만들어질 수 있다. • 그림 9.5와 그림 9.6 참조: EMP_LOCS는 BCNF이나 BCNF가 아닌 EMP_PROJ1과 조인 시가짜 투플이 생성되었음 EMP_LOCS EMP_PROJ1 그림 9.5(a) ENAME PLOCATIONS SSN PNUMBER HOURS PNAME PLOCATIONS 기본키 기본키 그림 9.6 SSN PNUMBER HOURS PNAME PLOCATIONS ENAME 123456789 *123456789 123456789 *123456789 *123456789 1 1 2 2 2 32.5 32.5 7.5 7.5 7.5 ProductX ProductX ProductY ProductY ProductY Bellaire Bellaire Sugarland Sugarland Sugarland Smith, John B. English, Joyce A. Smith, John B. English, Joyce A. Wong, Franklin T.

  6. 분해와 종속성 보존 (1/3) 관계 DB 설계 알고리즘과 추가적 정규형 • 데이터베이스 설계자는 R의 애트리뷰트들에 대해 성립하는 함수적 종속성의 집합 F를 정의한다. • 분해집합 D는 종속성을 보존해야 한다. • 즉, 각 릴레이션 Ri에서 성립하는 모든 FD들의 합집합이 F와 동등(equivalent)해야 한다. • 종속성 보존은 정형적으로 다음과 같이 정의한다. • Ri상으로 F의 프로젝션(ΠRi(F)):F+에 속하는 함수적 종속성 X →Y들의 집합이며 (X∪Y) ⊆ Ri를 만족한다. • 만약 (ΠR1(F)∪ΠR2(F)∪ ...∪ΠRm(F))+ = F+를 만족하면, 분해 집합 D= {R1,R2,...,Rm}은 종속성을 보존한다고 정의한다.  이런 특성으로 인해 각 릴레이션 Ri상의 함수적 종속성들이 개별적으로 성립함을 보임으로써, F의 함수적 종속성들이 성립함을 보장할 수 있다

  7. 분해와 종속성 보존 (2/3) 관계 DB 설계 알고리즘과 추가적 정규형 • Claim 1: 종속성들의 집합 F에 대해서 종속성을 보존하면서 각 릴레이션 Ri가 제3정규형인 분해집합 D를 항상 구할 수 있다. • 제3정규형으로의 관계 합성 (알고리즘 10.2) 1. Find a minimal set of FDs G equivalent to F 2. For each X of an FD X→A in G, Create a relation schema Ri in D with the attributes {X∪{A1}∪{A2}∪ ... ∪{Ak}}, where X→A1, X→A2, …, X→Ak are the only dependencies in G with X as left-hand-side; 3. Place any remaining attributes in a single relation schema to ensure the attribute preservation property. • Claim 1A: 관계 합성 알고리즘에 의해 생성되는 모든 릴레이션 스키마는 3NF에 속한다.

  8. 분해와 종속성 보존 (3/3) 관계 DB 설계 알고리즘과 추가적 정규형 • 문제점: • F에 대한 최소 덮개(minimal cover)를 찾아야 한다. • 최소 폐쇄를 찾는 효율적인 알고리즘이 존재하지 않는다. • F에 대한 여러 개의 최소 덮개가 존재할 수 있다. 따라서, 알고리즘의 결과는 어떤 함수적 종속성이 선택되었는가에 따라 다르다.

  9. 분해와 무손실(비부가적) 조인 개념 (1/2) 관계 DB 설계 알고리즘과 추가적 정규형 • 무손실 조인의 비정형적 정의: • 분해집합의 릴레이션들을 조인했을 때, 어떠한 가짜 투플도 생성되지 않음을 보장하는 특징이다. • 무손실 조인의 정형적 정의: • 함수적 종속성의 집합 F를 만족하는 모든 릴레이션 상태 r에 대해 다음의 성질이 만족되면, R의 분해집합 D = {R1, R2, .., Rm}는 F에 대해서 무손실 조인 특성을 갖는다. (는 D에 포함된 모든 릴레이션의 자연조인이다.) (ΠR1(r) , ..., ΠRm(r) )= r

  10. 분해와 무손실(비부가적) 조인 개념 (2/2) 관계 DB 설계 알고리즘과 추가적 정규형 분해집합이 위의 성질을 만족하면, 프로젝션과 조인 연산 후에 가짜 투플이 추가되지 않음이 보장된다. 분해된 릴레이션들은 실제로는 기본 릴레이션으로 저장하기 때문에, 조인을 수반한 질의가 의미 있는 결과를 생성하기 위해서는 위와 같은 조건이 필요하다. 주어진 분해집합 D가 함수적 종속성 집합 F에 대해서 무손실 조인 특성을 가지는 것을 검사하는 알고리즘이 존재한다.

  11. [그림 10.1] n차 분해에 대한 무손실 조인 검사 (1/2) 관계 DB 설계 알고리즘과 추가적 정규형 (a) 경우 1: EMP_PROJ를 EMP_PROJ1과 EMP_LOCS로 분해하면 검사를 통과하지 못함 R = {SSN, ENAME, PNUMBER, PNAME, PLOCATION, HOURS} D = {R1, R2} R1 = EMP_LOCS = {ENAME, PLOCATION} R2 = EMP_PROJ1 = {SSN, PNUMBER, HOURS, PNAME, PLOCATION} F = {SSN  ENAME; PNUMBER  {PNAME, PLOCATION}; {SSN, PNUMBER}  HOURS} SSN ENAME PNUMBER PNAME PLOCATION HOURS b11 a2 b13 b14 a5 b16 a1 b22 a3 a4 a5 a6 R1 R2 (함수적 종속성들을 적용한 후에 행렬에 어떤 변화도 생기지 않음) (b) 무손실 조인 특성이 있는 EMP_PROJ의 분해 EMP PROJECT WORKS_ON SSN ENAME PNUMBER PNAME PLOCATION SSN PNUMBER HOURS

  12. [그림 10.1] n차 분해에 대한 무손실 조인 검사 (2/2) 관계 DB 설계 알고리즘과 추가적 정규형 R = {SSN, ENAME, PNUMBER, PNAME, PLOCATION, HOURS} D = {R1, R2, R3} R1 = EMP = {SSN, ENAME} R2 = PROJ = {PNUMBER, PNAME, PLOCATION} R3 = WORKS_ON = {SSN, PNUMBER, HOURS} F = {SSN  ENAME; PNUMBER  {PNAME, PLOCATION}; {SSN, PNUMBER}  HOURS} (c) 경우 2: EMP_PROJ를 EMP, PROJECT, WORKS_ON으로 분해하면 검사를 통과함 SSN ENAME PNUMBER PNAME PLOCATION HOURS a1 a2 b13 b14 b15 b16 b21 b22 a3 a4 a5 a26 a1 b32 a3 b34 b35 a6 R1 R2 (알고리즘을 시작할 때 행렬 S의 초기 내용) SSN ENAME PNUMBER PNAME PLOCATION HOURS a1 a2 b13 b14 b15 b16 b21 b22 a3 a4 a5 a26 a1 b32 a3 b34 b35 a6 R1 R2 (처음 두개의 함수적 종속성을 적용한 후의 행렬 S의 내용. 마지막 항의 모든 애트리뷰트가 심볼 “a”를 가지므로 알고리즘을 종료한다.)

  13. 무손실조인 특성을 갖는 BCNF 릴레이션들로 분해 (1/3) 관계 DB 설계 알고리즘과 추가적 정규형 릴레이션 R을 분해한 릴레이션들이 BCNF 정규형에 속하며, 분해집합이 함수적 종속성의 집합 F에 대해 무손실 조인 특성을 갖게 하는 알고리즘이 존재한다 (Algorithm 10.3) 1. Set D ← {R} 2. While there is a relation schema Q in D that is not in BCNF do { Choose one Q in D that is not in BCNF; Find a FD X→Y in Q that violates BCNF; Replace Q in D by two relation schemas (Q-Y) and (X∪Y); };

  14. 무손실조인 특성을 갖는 BCNF 릴레이션들로 분해 (2/3) 관계 DB 설계 알고리즘과 추가적 정규형 • 위 알고리즘은 다음 두 가지 무손실 조인 분해 특성에 기반한다. (1) R의 분해집합 D = {R1, R2}가 함수적 종속성의 집합 F에 대해 무손실 조인 특성을 가지기 위한 필요충분조건은 다음의 두 가지 중 반드시 하나를 만족하는 것이다. • 함수적 종속성 ((R1∩R2) → (R1-R2))가 F+에 속한다. • 함수적 종속성 ((R1∩R2) → (R2-R1))가 F+에 속한다. (2) R의 분해집합 D = {R1, R2,...,Rm}이 함수적 종속성 집합 F에 대해 무손실 조인 특성을 가지고, Ri의 분해집합 D1 = {Q1, Q2,..., Qm}가 F의 Ri상에의 프로젝션에 대해 무손실 조인 특성을 가진다면, R의 분해집합 D2 = {R1, R2, .., Ri-1, Q1, Q2, .., Qk, Ri+1, .., Rm} 또한 F에 대해 무손실 조인 특성을 가진다.

  15. 무손실조인 특성을 갖는 BCNF 릴레이션들로 분해 (2/3) 관계 DB 설계 알고리즘과 추가적 정규형 분해집합이 종속성을 보존하며 BCNF 정규형에 속하게 하는 알고리즘은 존재하지 않는다. 다음의 수정된 합성 알고리즘은 1) 무손실 조인 특성과 2) 종속성 보존 특성을 만족하며, 3) 제3정규형 릴레이션으로 분해하는 것을 보장한다. (주의: BCNF 정규형으로의 분해는 보장 못함) 많은 제3정규형 릴레이션들은 BCNF 정규형에도 속한다.

  16. 무손실조긴과 종속성을 보장하는 분해 알고리즘 관계 DB 설계 알고리즘과 추가적 정규형 무손실 조인과 종속성 보존을 보장하는 제3정규형 릴레이션으로 분해하는 알고리즘 1. Find a minimal cover for F. 2. For each X of an FD X→Y in G Create a relation schema Ri in D with the attributes {X∪}{A1}∪{A2}∪ ... ∪{Ak}}, where X→A1, X→A2, …, X→Ak are the only dependencies in G with X as left-hand-side; 3. If none of the relations schemas in D contains a key of R, then create one more relation schema that contains attributes that form a key for R.

  17. 널 값이 야기하는 문제점 (1/4) 관계 DB 설계 알고리즘과 추가적 정규형 • 널 값 (Null Values) • 널 값이 조인 애트리뷰트에 존재할 때 문제가 발생한다. • 널 값이 존재하는 경우 질의를 명기할 때 정규 조인(regular join)과 OUTER 조인의 결과 사이의 차이가 중요해진다. • 어떤 질의는 정규 조인을 필요로 하고 어떤 질의는 OUTER 조인을 필요로 한다.

  18. 널 값이 야기하는 문제점 (2/4) 관계 DB 설계 알고리즘과 추가적 정규형 [그림 10.2(a)] 조인 애트리뷰트에 널 값이 존재하는 데이터베이스 EMPLOYEE ENAME SSN BDATE ADDRESS DNUM Smith, John B. Wong, Franklin T. Zelaya, Alicia J. Wallace, Jennifer S. Narayan, Ramesh K. English, Joyce A. Jabbar, Ahmad V. Borg, James E. Berger, Anders C. Benitez, Carlos M. 123456789 333445555 999887777 987654321 666884444 453453453 987987987 888665555 999775555 888664444 09-JAN-55 08-DEC-45 19-JUL-58 20-JUN-31 15-SEP-52 31-JUL-62 29-MAR-59 10-NOV-27 26-APR-55 09-JAN-53 731 Fondren, Houston, TX 638 Voss, Houston, TX 3321 Castle, Spring, TX 291 Berry. Bellaire, TX 975 Fire Oak, Humble, TX 5631 Rice, Houston, TX 980 Dallas, Houston, TX 731 Stone, Houston, TX 6530 Braes, Bellaire, TX 7654 Beech, Houston, TX 5 5 4 4 5 5 4 1 null null DEPARTMENT DNAME DNUMBER DMGRSSN Research Administration Headquarters 5 4 1 333445555 987654321 888665555

  19. 널 값이 야기하는 문제점 (3/4) 관계 DB 설계 알고리즘과 추가적 정규형 [그림 10.2(b)] EMPLOYEE와 DEPARTMENT에 자연조인을 적용한 결과 두 개 투플이 사라짐 ENAME SSN BDATE ADDRESS DNUM DNAME DMGRSSN Smith, John B. Wong, Franklin T. Zelaya, Alicia J. Wallace, Jennifer S. Narayan, Ramesh K. English, Joyce A. Jabbar, Ahmad V. Borg, James E. 123456789 333445555 999887777 987654321 666884444 453453453 987987987 888665555 09-JAN-55 08-DEC-45 19-JUL-58 20-JUN-31 15-SEP-52 31-JUL-62 29-MAR-59 10-NOV-27 731 Fondren, Houston, TX 638 Voss, Houston, TX 3321 Castle, Spring, TX 291 Berry. Bellaire, TX 975 Fire Oak, Humble, TX 5631 Rice, Houston, TX 980 Dallas, Houston, TX 731 Stone, Houston, TX 5 5 4 4 5 5 4 1 Research Research Administration Administration Research Research Administration Headquarters 333445555 333445555 987654321 987654321 333445555 333445555 987654321 888665555

  20. 널 값이 야기하는 문제점 (4/4) 관계 DB 설계 알고리즘과 추가적 정규형 [그림 10.2(c)] EMPLOYEE를 DEPARTMENT와 외부 조인한 결과 투플이 사라지지 않음 (널 값을 갖는 가상적인 부서가 생김) ENAME SSN BDATE ADDRESS DNUM DNAME DMGRSSN Smith, John B. Wong, Franklin T. Zelaya, Alicia J. Wallace, Jennifer S. Narayan, Ramesh K. English, Joyce A. Jabbar, Ahmad V. Borg, James E. Berger, Anders C. Benitez, Carlos M. 123456789 333445555 999887777 987654321 666884444 453453453 987987987 888665555 999775555 888664444 09-JAN-55 08-DEC-45 19-JUL-58 20-JUN-31 15-SEP-52 31-JUL-62 29-MAR-59 10-NOV-27 26-APR-55 09-JAN-53 731 Fondren, Houston, TX 638 Voss, Houston, TX 3321 Castle, Spring, TX 291 Berry. Bellaire, TX 975 Fire Oak, Humble, TX 5631 Rice, Houston, TX 980 Dallas, Houston, TX 731 Stone, Houston, TX 6530 Braes, Bellaire, TX 7654 Beech, Houston, TX 5 5 4 4 5 5 4 1 null null Research Research Administration Administration Research Research Administration Headquarters null null 333445555 333445555 987654321 987654321 333445555 333445555 987654321 888665555 null null

  21. 허상 투플이 야기하는 문제점 (1/3) 관계 DB 설계 알고리즘과 추가적 정규형 • 허상 투플(Dangling Tuples) • 정규화 과정에서 릴레이션을 너무 분해하면 허상 투플의 문제가 발생함 • 분해된 릴레이션을 조인하면 사라지는 투플을 허상 투플이라고 함

  22. 허상 투플이 야기하는 문제점 (2/3) 관계 DB 설계 알고리즘과 추가적 정규형 [그림 10.3(a)] EMPLOYEE에서 DNUMBER 애트리뷰트를 제외한 모든 애트리뷰트를 포함하는 릴레이션 EMPLOYEE_1 EMPLOYEE_1 ENAME SSN BDATE ADDRESS Smith, John B. Wong, Franklin T. Zelaya, Alicia J. Wallace, Jennifer S. Narayan, Ramesh K. English, Joyce A. Jabbar, Ahmad V. Borg, James E. Berger, Anders C. Benitez, Carlos M. 123456789 333445555 999887777 987654321 666884444 453453453 987987987 888665555 999775555 888664444 09-JAN-55 08-DEC-45 19-JUL-58 20-JUN-31 15-SEP-52 31-JUL-62 29-MAR-59 10-NOV-27 26-APR-55 09-JAN-53 731 Fondren, Houston, TX 638 Voss, Houston, TX 3321 Castle, Spring, TX 291 Berry. Bellaire, TX 975 Fire Oak, Humble, TX 5631 Rice, Houston, TX 980 Dallas, Houston, TX 731 Stone, Houston, TX 6530 Braes, Bellaire, TX 7654 Beech, Houston, TX

  23. 허상 투플이 야기하는 문제점 (3/3) 관계 DB 설계 알고리즘과 추가적 정규형 [그림 10.3(b)] 널 값이 존재하는 DNUMBER 애트리뷰트를 포함하는 EMPLOYEE_2에는 문제가 없음 [그림 10.3(c)] DNUMBER에 널 값을 갖는 투플을 포함하지 않는 EMPLOYEE_3를 만들면, 조인시 투플이 사라짐 EMPLOYEE_2 (b) (c) EMPLOYEE_3 SSN DNUM SSN DNUM 123456789 333445555 999887777 987654321 666884444 453453453 987987987 888665555 999775555 888664444 5 5 4 4 5 5 4 1 null null 123456789 333445555 999887777 987654321 666884444 453453453 987987987 888665555 5 5 4 4 5 5 4 1

  24. 강의 내용 관계 DB 설계 알고리즘과 추가적 정규형 • 관계형 데이터베이스 스키마 설계 알고리즘 • 다치 종속성과 제4정규형(4NF) • 다치 종속성의 정형적 정의 • 함수적 종속성 및 다치 종속성의 추론 규칙 • 제4정규형(4NF) • 제4정규형 릴레이션으로의 무손실 조인 분해 • 조인종속성과 제5정규형(5NF) • 포함 종속성 • 기타 종속성과 정규화

  25. 다치 종속성과 제4정규형 관계 DB 설계 알고리즘과 추가적 정규형 함수적 종속성은 하나의 공통된 형태의 제약조건을 명기하기 위해서 사용된다. 함수적 종속성 만에 의해서 명기될 수 없는 다른 형태의 제약조건들이 존재한다. 추가적인 종속성에는 다치 종속성(multi-valued dependency)이 있으며, 이에 기반한 정규형이 제4정규형(4NF)이다

  26. 다치 종속성의 정형적 정의 (1/3) → → → → → → 관계 DB 설계 알고리즘과 추가적 정규형 • 정형적 정의 • 릴레이션 스키마 R에 대해, X와 Y는 R의 애트리뷰트들의 부분집합이다. 그리고, Z = R (X ∪ Y) (남은 애트리뷰트들)이다. • 릴레이션 스키마 R에서 성립하는 다치 종속성 X Y는 R의 임의의 인스턴스 r(R)에 대해, 만약 t1[X] = t2[Y]를 만족하는 r(R)의 두 투플 t1, t2가 존재한다면, 다음의 성질을 만족하는 두 개의 투플t3와 t4도 반드시 존재해야 한다: • t3[X] = t4[X] = t1[X] = t2[X] • t3[Y] = t1[Y]이고 t4[Y] = t2[Y] • t3[Z] = t2[Z]이고 t4[Z] = t1[Z] • MVD 제약조건은 Z의 값에 관계없이 X의 값이 Y의 값들의 집합을 결정한다라는 것을 암시한다. • MVD의 특성: X Y가 성립하면, X Z도 성립한다.

  27. 다치 종속성의 정형적 정의 (2/3) → → 관계 DB 설계 알고리즘과 추가적 정규형 애트리뷰트들의 집합 X의 값이 애트리뷰트들의 집합 Y의 값을 결정한다면, X는 Y를 다중결정한다(multidetermine)라고 한다. MVD X Y가 (a) Y⊆X 혹은 (b) (X∪Y) = R이면 단순 다치 종속성(trivial MVD)이라 부른다. 단순 다치 종속성은 다치 종속성의 정의에 따라 항상 성립한다. 주어진 함수적 종속성과 다치 종속성의 집합 F에 대해 추가적인 함수적 종속성과 다치 종속성을 추론할 수 있다.

  28. 다치 종속성의 정형적 정의 (3/3) → → → → 관계 DB 설계 알고리즘과 추가적 정규형 • 제4정규형 (4NF) (a) 두 다치 종속성 ENAME PNAME과 ENAME DNAME을 가진 EMP 릴레이션 (b) EMP를 제 4 정규형인 두 개의 릴레이션으로 분해 (c) 다치 종속성을 갖지 않으며 제 4 정규형인 SUPPLY 릴레이션 EMP (a) ENAME PNAME DNAME EMP_PROJECTS EMP_DEPENDENTS (b) ENAME PNAME ENAME DNAME Smith Smith Smith Smith X Y X Y John Anna Anna John Smith Smith X Y Smith Smith John Anna SUPPLY (c) SNAME PARTNAME PROJNAME Smith Smith Adamsky Walton Adamsky Adamsky Smith Bolt Nut Bolt Nut Nail Bolt Bolt ProjX ProjY ProjY ProjZ ProjX ProjX ProjY

  29. FD와 MVD의 추론 규칙 관계 DB 설계 알고리즘과 추가적 정규형 • 추론 규칙들의 집합 IR1. (FD의 재귀성 규칙): X⊇Y이면, X→Y이다 IR2. (FD의 부가성 규칙): {X→Y} |= XZ→YZ IR3. (FD의 이행성 규칙): {X→Y, Y→Z} |= X→Z IR4. (MVD의 보완성 규칙): {X ->> Y} |= {X ->> (R-(X∪Y))} IR5. (MVD의 부가성 규칙): X ->> Y이고 W⊇Z이면, WX ->> YZ이다 IR6. (MVD의 이행성 규칙): {X ->> Y, Y ->> Z} |= X ->> (Z-Y) IR7. (FD에서 MVD로의 모사 규칙): {X→Y} |= X ->> Y IR8. (FD와 MVD의 합동 규칙): X ->> Y이고, (a)W∩Y가 공집합, (b) W→Z, (c) Y⊇Z인 W가 존재하면, X→Z이다 • 주의 • 규칙 IR7에 의해, 모든 FD는 MVD이다. • 규칙 IR1에서 IR8를 적용하면 함수적 종속성들의 집합에 대한 폐쇄 F+를 유도할 수 있다.

  30. 제4정규형(4NF) 관계 DB 설계 알고리즘과 추가적 정규형 • 제4정규형의 특성 • 3NF와 BCNF는 다치 종속성을 다루지 않는다. • 비단순다치 종속성을 가지는 릴레이션 스키마는 좋은 디자인이 아닐 수 있다. • 제 4 정규형은 위와 같은 문제를 다루며, BCNF 정규형이 된다. (제 4 정규형에 속하는 모든 릴레이션은 BCNF 정규형에 속한다) • 제4정규형의 정형적 정의 • 종속성들의 집합 F에 대한 F+의 모든 비단순 다치 종속성 X ->> Y 에 대하여, X가 R의 수퍼키이면 릴레이션 스키마 R은 F에 대한 제 4 정규형이다.

  31. 4NF 릴레이션으로의 무손실 조인 분해 (1/2)_ 관계 DB 설계 알고리즘과 추가적 정규형 • 모든 MVD는 FD이므로, 제 4 정규형은 BCNF를 포함한다. • F의 모든 종속성이 함수적 종속성이면, 4NF의 정의는 자동적으로 BCNF 정의가 된다. • 릴레이션 R 상의 종속성의 집합 F에 대해 R을 제 4 정규형 릴레이션으로 무손실 조인 분해하는 알고리즘이 존재한다. • 특성 LJ1’: R의 분해집합 D = {R1, R2}가 종속성의 집합 F에 대해 무손실 조인 특성을 가질 필요충분조건은 다음의 둘 중 하나를 만족하는 것이다: • (a) 종속성 ((R1∩R2) ->> (R1-R2))가 F+에 속한다. • (b) 종속성 ((R1∩R2) ->> (R2-R1))가 F+에 속한다.

  32. 4NF 릴레이션으로의 무손실 조인 분해 (2/2)_ 관계 DB 설계 알고리즘과 추가적 정규형 4NF 릴레이션으로의 분해 알고리즘1. Set D ← {R}2. While there is a relation schema Q in D that is not in 4NF do { Choose one Q in D that is not in 4NF; Find a nontrivial MVD X Y in Q that violates 4NF; Replace Q in D by two relation schemas (Q-Y) and (X∪Y); };

  33. [그림 10.5] 4NF의 이점 관계 DB 설계 알고리즘과 추가적 정규형 (a) 여러 투플을 추가한 EMP 릴레이션 (Brown) (b) EMP를 EMP_PROJECTS와 EMP_DEPENDENTS로 분해 (a) (b) EMP EMP_PROJECTS ENAME PNAME DNAME ENAME PNAME Smith Smith Smith Smith Brown Brown Brown Brown Brown Brown Brown Brown Brown Brown Brown Brown X Y X Y W X Y Z W X Y Z W X Y Z John Anna Anna John Jim Jim Jim Jim Joan Joan Joan Joan Bob Bob Bob Bob Smith Smith Brown Brown Brown Brown X Y W X Y Z EMP_DEPENDENTS ENAME DNAME Smith Smith Brown Brown Brown Anna John Jim Joan Bob

  34. 강의 내용 관계 DB 설계 알고리즘과 추가적 정규형 관계형 데이터베이스 스키마 설계 알고리즘 다치 종속성과 제4정규형(4NF) 조인종속성과 제5정규형(5NF) 포함 종속성 기타 종속성과 정규화

  35. 조인 종속성과 제5정규형(5NF) 관계 DB 설계 알고리즘과 추가적 정규형 • 조인 종속성 • R에 지정된 조인 종속성은 JD(R1, R2, …, Rn)으로 표기하며, R의 상태 r에 대하여 “R의 모든 합법적 상태 r이 R1, R2, …, Rn으로의 무손실 조인 분해를 가져야 한다”는 점이다. • 다치 종속성은 n이 2인 특별한 경우이다. • Ri = R이면, JD(R1, R2, …, Rn)를 단순 다치 종속성이라 부른다. • 제5정규형(5NF) • R이 함수적 종속성, 다치 종속성, 그리고 조인 종속성들의 집합인 F에 대해 모든 비단순 조인 종속성 FD(R1, R2, …, Rn)이 F+에 속하고, Ri가 R의 수퍼키라면, R은 제5정규형에 속한다. • 프로젝트-조인 정규형(Project-Join NF: PJNF)이라고도 한다. • 조인 종속성을 발견하는 것은 매우 어려운 일로, 실제로 제5정규형은 거의 쓰이지 않는다.

  36. 포함종속성 관계 DB 설계 알고리즘과 추가적 정규형 • 포함 종속성은 릴레이션들 사이의 제한조건을 나타낸다. • 정형적으로:릴레이션 R의 애트리뷰트 집합 X와 릴레이션 S의 애트리뷰트 집합 Y사이의 포함 종속성 R.X < S.Y는 R의 릴레이션 상태 r과 S의 릴레이션 상태 s에 대해 다음과 같은 조건을 만족해야 한다. (ΠX(r(R))  ΠY (s(S)) • 포함 종속성에 대한 세 가지 추론 규칙: • IDIR1(재귀성 규칙): R.X < R.X • IDIR2(애트리뷰트 대응 규칙): X={A1, A2,…, An}이고 Y={B1, B2,…, Bn}일 때, R.X < S.Y이고 Ai가 Bi에 대응한다면 R.Ai < S. Bi이다. • IDIR3(이행성 규칙): R.X < S.Y이고 S.Y < T.Z이면, R.X < T.Z이다.

  37. 강의 내용 관계 DB 설계 알고리즘과 추가적 정규형 • 관계형 데이터베이스 스키마 설계 알고리즘 • 다치 종속성과 제4정규형(4NF) • 조인종속성과 제5정규형(5NF) • 포함 종속성 • 기타 종속성과 정규화 • 템플리트 종속성 • 도메인-키 정규형 (DKNF)

  38. 템플리트 종속성 (1/3) 관계 DB 설계 알고리즘과 추가적 정규형 • 아무리 많은 종속성을 개발하더라도, 이들로 표현할 수 없는 특별한 제약조건이 나올 수 있다. • 템플리트 종속성: 각 제약조건과 함수적 종속성을 템플리트 혹은 예제를 사용하여 지정하는 방법이다. • 템플리트의 종류: 투플-생성 템플리트, 제약조건-생성 템플리트 • 템플리트는 많은 수의 가상 투플(hypothesis tuple)로 구성되며, 템플리트의 나머지 부분은 템플리트 결론(templete conclusion)이라 한다. • 투플-생성 템플리트 결론: 가상 투플에 있다면 릴레이션에 반드시 나타나야 하는 투플들의 집합 • 제약조건-생성 템플리트 결론: 가상 투플들에 대해서 반드시 지켜져야 하는 조건

  39. 템플리트 종속성 (2/3) 관계 DB 설계 알고리즘과 추가적 정규형 • [그림 10.6] 일반적 형태의 종속성에 대한 템플리트 (a) 함수적 종속성 X→Y에 대한 템플리트 (b) 다치 종속성 X ->> Y에 대한 템플리트 (c) 포함 종속성 R.X < S.Y에 대한 템플리트 (a) R={A, B, C, D} Hypothesis a1 b1 c1 d1 X={A, B} a1 b1 c2 d2 Y={C,D} ------------------- Conclusion c1=c2 and d1=d2 (b) R={A, B, C, D} Hypothesis a1 b1 c1 d1 X={A, B} a1 b1 c2 d2 Y={C} ------------------- Conclusion a1 b1 c2 d1 a1 b1 c1 d2 ( c) R={A, B, C, D} S={E, F, G} X={C,D} Hypothesis a1 b1 c1 d1 Y={E,F} -------------------------------------- Conclusion c1 d1 g

  40. 템플리트 종속성 (3/3) 관계 DB 설계 알고리즘과 추가적 정규형 [그림 10.7] 고용자 월급이 직속 상급자 월급보다 많을 수 없다는 제약조건에 대한 템플리트 EMPLOYEE = {NAME, SSN, …, SALARY, SUPERVISORSSN } a b c d Hypothesis e d f g -------------------------------------- Conclusion c < f

  41. 도메인-키 정규형(DKNF) 관계 DB 설계 알고리즘과 추가적 정규형 DKNF: Domain-Key Normalization Form 도메인-키 정규형의 아이디어는 가능한 종류의 종속성과 제약조건을 적어도 이론적으로는 모두 고려하는 “궁극적 정규형”을 명기하는 것이다. DKNF에 속하는 릴레이션은 모든 제약조건과 종속성들을 단지 도메인 제약조건과 키 제약조건만으로 나타낼 수 있어야 한다. DKNF 릴레이션 내에 복잡한 제약조건을 포함시키는 것은 어렵기 때문에, 실제적인 유용성은 매우 제약적이다.

  42. 요약 관계 DB 설계 알고리즘과 추가적 정규형 • 관계형 데이터베이스 스키마 설계 알고리즘에서 문제점들 • 릴레이션 분해와 정규형의 부족한 점 • 종속성 보존과 무손실(비부가적) 조인 • 널 값과 허상 투플이 야기하는 문제점 • 다치 종속성의 정의와 제4정규형 • 조인 종속성의 정의와 제5정규형 • 포함 종속성 • 기타 종속성과 정규형 • 템플리트 종속성 • 도메인-키 정규형

More Related