제 13 장 관계 데이타베이스의 함수적 종속성과 정규화 기본 이론 제 13 장 관계 데이타베이스의 함수적 종속성과 정규화 기본 이론
Fundamentals of Database Systems 목 차 13.1 릴레이션 스키마를 설계하는 몇 가지 개략적인 지침 13.2 함수적 종속성 (functional dependencies, FDs) 13.3 기본 키를 기반으로 한 정규형 13.4 제 2 정규형과 제 3 정규형의 일반적인 정의 13.5 BCNF (Boyce-Codd Normal Form) 13.6 다치 종속성과 제4정규형 13.7 조인 종속성과 제5정규영 13.8 요약 Ch13 Fundamentals of Database Systems
Fundamentals of Database Systems 13.1 릴레이션 스키마를 설계하는 몇 가지 개략적인 지침 관계형 데이타베이스 설계란 ? “좋은” 릴레이션 스키마를 생성하기 위하여 애트리뷰트들을 그루핑하는 과정 “좋은” 릴레이션에 대한 기준은 ? 릴레이션 스키마의 두 가지 수준 논리적인 “사용자 뷰(user view)” 수준 저장이 되는 “기본 릴레이션(base relation)” 수준 데이타베이스 설계는 주로 기본 릴레이션을 대상으로 함 여기서는 좋은 릴레이션 설계에 관한 개괄적인 지침을 논한 후, 함수적 종속성과 정규형 개념에 관해 논의함 1NF (제 1 정규형) 2NF (제 2 정규형) 3NF (제 3 정규형) BCNF (Boyce-Codd 정규형) 4NF (제 4 정규형) 5NF (제 5 정규형) Ch13 Fundamentals of Database Systems
Fundamentals of Database Systems 13.1 릴레이션 스키마를 설계하는 몇 가지 개략적인 지침 관계 데이터베이스 설계의 개략적인 지침 애트리뷰트들의 의미(semantics)가 스키마에서 명확한지 확인함 투플들에서 중복되는 값들을 줄임 투플들에서 널값들을 줄임 가짜 투플(spurious tuple)을 허용하지 않음 Ch13 Fundamentals of Database Systems
Fundamentals of Database Systems 13.1.1 릴레이션 애트리뷰트들의 의미 지침1 : 의미가 쉽게 전달되도록 릴레이션 스키마를 설게한다. 실세계에서 어떤 연관성이 있는 애트리뷰트들을 묶어서 하나의 릴레이션 스키마를 만들어 나간다. 여러 엔터티들(EMPLOYEE, DEPARTMENT, PROJECT)의 애트리뷰트들이 하나의 릴레이션에 혼합되면 안된다. 다른 엔티티를 참조하기 위해서는 외래키 만을 사용해야 한다. Ch13 Fundamentals of Database Systems
Fundamentals of Database Systems 외래키 EMPLOYEE ENAME SSN BDATE ADDRESS DNUMBER 기본키 DEPARTMENT 외래키 DNAME DNUMBER DMGRSSN DLOCATIONS 기본키 DEPT_LOCATIONS 외래키 PROJECT 외래키 DNUMBER DLOCATIONS PNAME PNUMBER PLOCATIONS DNUM 기본키 기본키 WORKS_ON 외래키 외래키 SSN PNUMBER HOURS 기본키 [그림13.1] COMPANY 관계 데이타베이스 스키마를 단순화시킨 버전 Ch13 Fundamentals of Database Systems
Fundamentals of Database Systems ENAME SSN BDATE ADDRESS DNUMBER EMPLOYEE Smith, John B. Wong, Franklin T. Zelaya, Alicia J. Wallace, Jennifer S. Narayan, Ramesh K. English, Joyce A. Jabbar, Ahmad V. Bong, 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 4 1 DNAME DNUMBER DMGRSSN DEPARTMENT Research Administration Headquarters 5 4 1 333445555 987654321 888665555 DLOCATIONS DEPT_LOCATIONS Houston Stafford Bellaire Sugarland [그림 13.2] 그림 13.1의 스키마의 릴레이션들의 예 Ch13 Fundamentals of Database Systems
[그림 13.2] 그림 13.1의 스키마의 릴레이션들의 예 (cont.) PNAME PNUMBER PLOCATIONS DNUM SSN HOURS PROJECT WORKS_ON 123456789 666884444 453453453 333445555 999887777 987987987 987654321 888665555 1 2 3 10 20 30 32.5 7.5 40.0 20.0 10.0 30.0 35.0 5.0 15.0 null ProductX ProductY ProductZ Computerization Reorganization Newbenefits Bellaire Sugarland Houston Stafford 5 4 [그림 13.2] 그림 13.1의 스키마의 릴레이션들의 예 (cont.) Ch13 Fundamentals of Database Systems
13.1.2 투플에서 중복된 정보와 이상(anomaly) 하나의 릴레이션에 하나 이상의 엔티티의 애트리뷰트들을 혼합하는 것은 여러 가지 문제를 일으킨다 정보가 중복 저장되며, 저장 공간을 낭비하게 된다 (그림 13.2의 EMPLOYEE와 DEPARTMENT 13.3 및 13.4의 EMP_DEPT 비교) 갱신 이상이 발생하게 된다; 동일한 정보를 한 릴레이션에는 변경하고, 나머지 릴레이션에서는 변경하지 않은 경우 어느 것이 정확한지 알 수 없게 된다. 지침2: 갱신 이상이 발생하지 않도록 스키마 설계 삽입 이상 (insertion anomalies) 삭제 이상 (deletion anomalies) 수정 이상 (modification anomalies) Ch13 Fundamentals of Database Systems
Fundamentals of Database Systems ENAME SSN BDATE ADDRESS DNUMBER DNAME DMGRSSN EMP_DEPT PNUMBER HOURS PNAME PLOCATIONS EMP_PROJ fd1 fd2 fd3 (a) (b) [그림 13.3] 두 개의 릴레이션 스키마와 함수적 종속성 (a) EMP_DEPT 릴레이션 스키마 (b) EMP_PROJ 릴레이션 스키마 Ch13 Fundamentals of Database Systems
Fundamentals of Database Systems ENAME SSN BDATE ADDRESS DNUMBER EMP_DEPT Smith, John B. Wong, Franklin T. Zelaya, Alicia J. Wallace, Jennifer S. Narayan, Ramesh K. English, Joyce A. Jabbar, Ahmad V. Bong, 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 4 1 DNAME DMGRSSN Research Administration Headquarters PNUMBER HOURS PNAME PLOCATIONS EMP_PROJ 2 3 10 20 30 32.5 7.5 40.0 20.0 10.0 30.0 35.0 5.0 15.0 null ProductX ProductY ProductZ Computerization Reorganization Newbenefits Bellaire Sugarland Houston Stafford [그림 13.4] 그림 13.3의 스키마에 대한 릴레이션의 예 (그림 13.2의 릴레이션들을 자연조인한 결과 ) Ch13 Fundamentals of Database Systems
Fundamentals of Database Systems 13.1.3 투플에서 널 값 지침 3: 릴레이션의 투플들이 널 값을 가지지 않도록 설계해야 한다. 널값은 저장 단계에서 공간을 낭비하게 되고 논리적 차원에서는 조인 연산들을 지정하기 힘들고 애트리뷰트들의 의미를 이해하기 어려움 COUNT나 SUM과 같은 집단 함수들이 적용되었을 때 널값의 해석이 모호함 널값은 다음과 같이 여러 가지로 해석이 가능하다. 널값을 가진 애트리뷰트가 이 투플에는 적용되지 않는다. 이 투플에서 애트리뷰트의 값이 아직 알려져 있지 않다(모른다). 애트리뷰트 값을 알고 있지만, 아직 기록되지는 않았다. 모든 널 값을 동일하게 표현하면 널값이 갖는 여러 의미를 훼손하게 된다. 릴레이션의 분리 널 값이 많이 나타나는 애트리뷰트들은 별개의 릴레이션으로 분리함 Ch13 Fundamentals of Database Systems
13.1.4. 가짜 투플 (spurious tuples) 지침4 : 가짜 투플이 생기지 않도록 스키마 설계 관계 데이타베이스 설계를 잘못하게 되면, 조인 연산들이 틀린 결과를 생성할 수 있다. 조인 연산의 결과가 올바르기 위해서는, 릴레이션들이 “무손실 조인(lossless join)” 조건을 만족하도록 설계되어야 한다. 더 자세한 것은 제 14 장에서 논의하며, 여기서는 예를 통하여 가짜 투플을 살펴본다. Ch13 Fundamentals of Database Systems
Fundamentals of Database Systems ENAME PLOCATIONS EMP_LOCS 기본키 SSN PNUMBER EMP_PROJ1 HOURS PNAME Smith, John B. Narayan, Ramesh K. English, Joyce A. Wong, Franklin T. Zelay, Alicia J. Jabbar, Ahmad V. Wallace, Jennifer S. Borg, James E. Bellaire Sugarland Houston Stafford 123456789 666884444 453453453 333445555 999887777 987987987 987654321 888665555 1 2 3 10 20 30 32.5 7.5 40.0 20.0 10.0 30.0 35.0 5.0 15.0 null ProductX ProductY ProductZ Computerization Reorganization Newbenefits (a) (b) [ 그림 13.5] EMP_PROJ를 다르게 표현 (a) 그림 13.3(b)의 EMP_PROJ를 두 개의 릴레이션 스키마 (EMP_LOCS와 EMP_PROJ1)로 표현 (b) 그림 13.4의 EMP_PROJ 릴레이션을 EMP_LOCS 와 EMP_PROJ1 릴레이션의 애트리뷰트들 상에 프로젝트 한 결과 Ch13 Fundamentals of Database Systems
Fundamentals of Database Systems SSN PNUMBER HOURS PNAME PLOCATIONS 123456789 *123456789 666884444 *666884444 *453453453 453453453 *333445555 333445555 1 2 3 10 20 32.5 7.5 40.0 20.0 10.0 ProductX ProductY ProductZ Computerization Reorganization Bellaire Sugarland Houston Stafford ENAME Smith, John B. English, Joyce A. Wong, Franklin T. Narayan, Ramesh K. [그림 13.6] EMP_PROJ1과 EMP_LOCS에 자연조인을 적용한 결과 (*는 가짜 투플을 나타냄) Ch13 Fundamentals of Database Systems
Fundamentals of Database Systems 13.2 함수적 종속성 함수적 종속성(FD: functional dependency)은 좋은 릴레이션 설계의 정형적 기준으로 사용된다. FD와 키는 릴레이션의 정규형을 정의하기 위해 사용된다. FD는 데이타 애트리뷰트들의 의미와 애트리뷰트들 간의 상호 관계로부터 유도되는 제약조건(constraints)의 일종이다. Ch13 Fundamentals of Database Systems
Fundamentals of Database Systems 13.2.1 함수적 종속성의 정의 함수적 종속성 X와 Y를 임의의 애트리뷰트들의 집합이라고 할 때, X의 값이 Y의 값을 유일하게(unique) 결정한다면 “X는 Y를 함수적으로 결정한다(functionally determines)”라고 함 X → Y로 표기하고, “Y는 X에 함수적으로 종속된다” 라고 함 함수적 종속성은 모든 릴레이션 인스턴스 r(R)에 대하여 성립해야 함 함수적 종속성의 검사 방법 릴레이션 인스턴스 r(R)에 속하는 어떠한 임의의 두 투플에 대해서도 속성들의 집합 X에 대해 동일한 값을 가질 때마다 Y에 대해서도 동일한 값을 가진다면 X → Y라는 함수적 종속성이 성립한다. 즉, r(R)에서의 임의의 두 투플 t1과 t2에 대해 t1[X] = t2[X]이면, t1[Y] = t2[Y]이다. FD는 특정 릴레이션 인스턴스보다는 실세계에서 존재하는 애트리뷰트들 사이의 제약조건으로부터 유도된다. Ch13 Fundamentals of Database Systems
Fundamentals of Database Systems 13.2.1 함수적 종속성의 정의 (cont.) FD 제약조건의 예제 주민등록번호는 사원의 이름을 결정한다. SSN → ENAME 프로젝트 번호는 프로젝트 이름과 위치를 결정한다. PNUMBER → {PNAME, PLOCATION} 사원의 주민등록번호와 프로젝트 번호는 그 사원이 일주일동안 그 프로젝트을 위해서 일하는 시간을 결정한다. {SSN, PNUMBER} → HOURS FD는 스키마 R에 있는 애트리뷰트들의 특성이며, 모든 릴레이션 인스턴스 r(R)에서 성립해야 하는 성질이다. K가 R의 키이면 K는 R의 모든 애트리뷰트들을 함수적으로 결정한다 (t1[K] = t2[K]인 서로 다른 두개의 투플이 존재하지 않기 때문에). Ch13 Fundamentals of Database Systems
Fundamentals of Database Systems 13.3 기본 키를 기반으로 한 정규형 13.3.1 릴레이션들의 정규화 13.3.2 정규형의 실제 사용 13.3.3 키의 정의와 키에 참여하는 애트리뷰트 13.3.4 제1 정규형(First Normal Form ; 1NF) 13.3.5 제2 정규형(Second Normal Form ; 2NF) 13.3.6 제3 정규형(Third Normal Form ; 3NF) Ch13 Fundamentals of Database Systems
Fundamentals of Database Systems 13.3.1 릴레이션들의 정규화 정규화(normalization) 불만족스러운 “나쁜” 릴레이션의 애트리뷰트들을 나누어서 더 작은 “좋은” 릴레이션으로 분해하는 과정 정규형(normal form) 특정 조건을 만족하는 릴레이션 스키마의 형태 제 2 정규형, 제 3 정규형, BCNF 릴레이션 스키마의 FD와 키에 기반하여 정의됨 제 4 정규형 키와 MVD에 기반하여 정의됨 제 5 정규형 조인 종속성에 기반하여 정의됨 좋은 릴레이션 설계를 위해서는 정규형 이외에도 추가 특성이 필요함 (즉, 무손실 조인과 종속성 보존; 제 14 장 참조) Ch13 Fundamentals of Database Systems
Fundamentals of Database Systems 13.3.2 정규형의 실제 사용 실제 프로젝트에서는 이전에 가지고 있는 데이터 구조(즉, 파일, 문서 등)로부터 바람직한 테이블이 되도록 정규화하는 과정을 거침. 현재 업계에서는 제3정규형, 혹은 BCNF 정규형까지만 대부분 설계함 제4정규형 또는 제5정규형은 이해하기 매우 어렵고, 실제 설계에는 거의 적용하지 않음 릴레이션을 최상의 수준의 정규형으로 정규화할 필요가 없으며, 성능을 위해서 낮은 수준의 정규형으로 둘 수도 있다. 이를 비정규화(denormalization)라고 한다. Ch13 Fundamentals of Database Systems
Fundamentals of Database Systems 13.3.3 키의 정의와 키에 참여하는 애트리뷰트 릴레이션 스키마 R={A1,A2, …, An} 슈퍼키 S⊆R은 애트리뷰트의 집합으로 릴레이션내 투플들이 서로 다른 값을 가짐 후보 키 K는 수퍼키이면서 최소 애트리뷰트들의 집합 기본 키는 후보키 중에서 특별히 지정된 키 주요 애트리뷰트(prime attribute) : 키에 속하는 애트리뷰트 비주요 애트리뷰트(nonprime attribute) : 키에 속하지 않는 애트리뷰트 Ch13 Fundamentals of Database Systems
Fundamentals of Database Systems 13.3.4 제 1 정규형(1NF) 제 1 정규형 복합 애트리뷰트(composite attribute), 다치 애트리뷰트(multivalue attribute), 그리고 중첩 릴레이션(nested relation) 등 비원자적(non-atomic) 애트리뷰트들을 허용하지 않은 릴레이션의 형태 제 1 정규형은 릴레이션 정의의 일부분을 이루고 있음 Ch13 Fundamentals of Database Systems
[그림 13.9] 제 1 정규형으로 정규화 (a) (b) (c) (a) 제 1 정규형이 아닌 릴레이션 스키마 DNAME DNUMBER DMGRSSN DLOCATIONS DEPARTMENT Research Administration Headquarters 4 5 1 333445555 987654321 888665555 {Bellaire, Sugarland, Houston} {Stafford} {Houston} Bellaire Sugarland Houston Stafford (a) (b) (c) [그림 13.9] 제 1 정규형으로 정규화 (a) 제 1 정규형이 아닌 릴레이션 스키마 (b) 릴레이션 인스턴스의 예 (c) 중복이 포함된 제 1 정규형 릴레이션 Ch13 Fundamentals of Database Systems
Fundamentals of Database Systems SSN ENAME PROJS PNUMBERS HOURS EMP_PROJ 123456789 666884444 453453453 333445555 999887777 987987987 987654321 888665555 Smith, John B. Narayan, Joyce K. English, Joyce A. Wong, Franklin T. Zelaya, Alicia J. Jabbar, Ahmad V. Wallace, Jennifer S. Bong, James E. 1 2 3 10 20 30 32.5 7.5 40.0 20.0 10.0 30.0 35.0 5.0 15.0 null EMP_PROJ1 PNUMBER EMP_PROJ2 (a) (b) (c) [그림 13.10] 중첩된 릴레이션을 제 1 정규형으로 정규화 (a) 중첩 릴레이션 PROJS를 포함하는 릴레이션 EMP_PROJ의 스키마 (b) 각 투플 안에 중첩 릴레이션을 포함하고 있는 릴레이션 MP_PROJ 의 외연의 예 (c) 기본키를 복사함으로써 EMP_PROJ를 제 1 정규형 릴레이션들로 분해 Ch13 Fundamentals of Database Systems
Fundamentals of Database Systems 13.3.5 제 2 정규형(2NF) 제 2 정규형은 FD와 키 개념을 이용한다. 정의: 주요 애트리뷰트(prime attribute): 후보키 K의 멤버인 애트리뷰트 완전 함수적 종속성(full functional dependency): FD Y → Z에서 Y의 어떤 애트리뷰트라도 제거하면 더이상 성립하지 않는 경우 완전 함수적 종속성: X → Y에서 X가 후보키인 경우 부분 함수적 종속성: X → Y에서 X가 후보키의 proper subset인 경우 예제: {SSN, PNUMBER} → HOURS는 SSN → HOURS와 PNUMBER → HOURS가 성립하지 않기 때문에 완전 함수적 종속성이다. {SSN, PNUMBER} → ENAME은 SSN → ENAME이 성립하기 때문에 완전 함수적 종속성이 아니다 (이는 부분 함수 종속성(partial function dependency)이라고 부름). Ch13 Fundamentals of Database Systems
Fundamentals of Database Systems 13.3.3 제 2 정규형(2NF) (cont.) 정의 릴레이션 스키마 R의 모든 비주요(non-prime) 애트리뷰트들이 기본키에 대해서 완전 함수적 종속이면, R은 제 2 정규형(2NF)에 속한다. R은 제 2 정규형 정규화 과정에 의해서 항상 제 2 정규형 릴레이션으로 분해될 수 있다. Ch13 Fundamentals of Database Systems
Fundamentals of Database Systems SSN PNUMBER HOURS ENAME PNAME PLOCATIONS EMP_PROJ fd1 fd2 fd3 2NF 정규화 EP1 EP2 EP3 (a) [그림 13.11] 정규화 과정 (a) EMP_PROJ를 제 2 정규형으로 정규화 Ch13 Fundamentals of Database Systems
Fundamentals of Database Systems [그림 13.11] 정규화 과정 (cont.) (b) EMP_DEPT를 제 3 정규형으로 정규화 3NF 정규화 ENAME SSN BDATE ADDRESS DNUMBER DNAME DMGRSSN EMP_DEPT ED1 ED2 (b) Ch13 Fundamentals of Database Systems
Fundamentals of Database Systems 13.3.4 제 3 정규형(3NF) 정의 이행적 함수적 종속성(transitive functional dependency): 두 FD Y → X와 X → Z에 의해서 추론될 수 있는 FD Y → Z 예제 SSN → DMGRSSN은 SSN → DNUMBER과 DNUMBER → DMGRSSN이 성립하기 때문에 이행적 함수적 종속성이다. SSN → ENAME는 SSN → X이고 X → ENAME인 애트리뷰트 집합 X가 존재하지 않기 때문에 이행적 종속성이 아니다. 릴레이션 스키마 R이 제 2 정규형을 갖고 R의 어떤 비주요 애트리뷰트도 기본키에 대해서 이행적으로 종속되지 않으면 R은 제 3 정규형을 갖는다고 한다. R은 제 3 정규형 정규화 과정에 의해서 항상 제 3 정규형 릴레이션으로 분해될 수 있다 (그림 13.10 b) Ch13 Fundamentals of Database Systems
Fundamentals of Database Systems 13.4 제 2 정규형과 제 3 정규형의 일반적인 정의 여기서부터는 여러개의 후보 키를 가진 릴레이션들을 고려한다. 릴레이션 스키마 R의 모든 비주요 애트리뷰트 A가 R의 모든 후보키에 완전 함수적 종속이면 R은 제 2 정규형(2NF)을 갖는다고 한다. 정의: 주요 애트리뷰트(prime attribute): 임의의 후보키 K의 멤버인 애트리뷰트 릴레이션 스키마 R의 수퍼키(superkey): R의 후보키를 포함한 R의 애트리뷰트들의 집합 S 릴레이션 스키마 R의 FD X → A가 성립할 때마다 (a) X 가 R의 수퍼키이거나 (b) A가 R의 주요 애트리뷰트이면 R은 제 3 정규형(3NF)을 갖는다고 한다. Boyce-Codd 정규형은 위의 조건중 (b)의 경우를 허락치 않는 정규형을 의미한다. Ch13 Fundamentals of Database Systems
Fundamentals of Database Systems PROPERTY_ID# COUNTY_NAME LOT# AREA PRICE TAX_RATE LOTS fd1 fd2 fd3 fd4 LOTS1 LOTS2 (a) (b) [그림 13.12] 제 2 정규형과 제 3 정규형으로 정규화 (a) LOTS 릴레이션 스키마와 함수적 종속성 fd1부터 fd4 (b) LOTS를 제 2 정규형 릴레이션 LOTS1과 LOTS2로 분해 Ch13 Fundamentals of Database Systems
Fundamentals of Database Systems PROPERTY_ID# COUNTY_NAME LOT# AREA PRICE fd1 fd2 fd4 LOTS1A LOTS1B LOTS LOTS1 LOTS2 1NF 2NF 3NF (a) (b) [그림 13.12] 제 2 정규형과 제 3 정규형으로 정규화(cont.) (c) LOTS1를 제 3 정규형 릴레이션 LOTS1A과 LOTS1B로 분해 (d) LOTS의 정규화 요약 Ch13 Fundamentals of Database Systems
13.5 BCNF (Boyce-Codd Normal Form) 릴레이션 스키마 R에서 성립하는 임의의 FD X → A에서 X가 R의 수퍼키이면 R은 Boyce-Codd 정규형(BCNF)을 갖는다고 한다. 각 정규형은 그의 선행 정규형보다 더 엄격한 조건을 갖는다. 즉, 모든 제 2 정규형 릴레이션은 제 1 정규형을 갖는다. 모든 제 3 정규형 릴레이션은 제 2 정규형을 갖는다. 모든 BCNF 릴레이션은 제 3 정규형을 갖는다. 제 3 정규형에는 속하나 BCNF에는 속하지 않는 릴레이션이 존재한다. 관계 데이타베이스 설계의 목표는 각 릴레이션이 BCNF(또는 제 3 정규형)를 갖게 하는 것이다. “좋은” 관계형 데이타베이스의 릴레이션을 설계하기 위해서는 추가적인 특성이 만족되어야 한다(제 14 장 참조). 무손실 조인(lossless join) 특성 종속성 보존(dependency preservation) 특성 제 14 장에는 또 다른 정규형으로 제 4 정규형 (다중치 종속성에 기반)을 논의함 Ch13 Fundamentals of Database Systems
Fundamentals of Database Systems PROPERTY_ID# COUNTY_NAME LOT# AREA fd1 fd2 LOTS1A fd5 BCNF 정규화 LOTS1AX LOTS1AY C R B A (a) (b) [그림 13.13] BCNF (a) BCNF로 정규화하는 과정에서 종속성 fd2가 없어지는 경우 (b) 제 3 정규형이지만 BCNF가 아닌 릴레이션 R Ch13 Fundamentals of Database Systems
Fundamentals of Database Systems 13.6 다치 종속성과 제4정규형 함수적 종속성은 하나의 공통된 형태의 제약조건을 명기하기 위해서 사용된다. 함수적 종속성 만에 의해서 명기될 수 없는 다른 형태의 제약조건들이 존재한다. 추가적인 종속성에는 다치 종속성(multivalued dependency)이 있으며, 이에 기반한 정규형이 제4정규형(4NF)이다. Ch10 Fundamentals of Database Systems
Fundamentals of Database Systems 13.6 다치 종속성과 제4정규형 (cont’d) 정형적 정의 릴레이션 스키마 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도 성립한다. 애트리뷰트들의 집합 X의 값이 애트리뷰트들의 집합 Y의 값을 결정한다면, X는 Y를 다중결정한다(multidetermine)라고 한다. → Ch10 Fundamentals of Database Systems
Fundamentals of Database Systems 13.6 다치 종속성과 제4정규형 (cont’d) MVD X Y가 (a) Y⊆X 혹은 (b) (X∪Y) = R이면 단순 다치 종속성(trivial MVD)이라 부른다. 단순 다치 종속성은 다치 종속성의 정의에 따라 항상 성립한다. 주어진 함수적 종속성과 다치 종속성의 집합 F에 대해 추가적인 함수적 종속성과 다치 종속성을 추론할 수 있다. → Ch10 Fundamentals of Database Systems
Fundamentals of Database Systems EMP ENAME PNAME DNAME EMP_PROJECTS EMP_DEPENDENTS ENAME PNAME ENAME DNAME Smith X Y John Anna Smith X Y Smith John Anna (c) SUPPLY SNAME PARTNAME PROJNAME Smith Adamsky Walton Bolt Nut Nail ProjX ProjY ProjZ [그림 13.15] 제 4 정규형 (a) 두 개의 다치 종속성 ENAME PNAME과 ENAME DNAME을 가진 EMP 릴레이션 (b) EMP를 제 4 정규형인 두 개의 릴레이션으로 분해 (c) 다치 종속성을 갖지 않으며 제 4 정규형인 SUPPLY 릴레이션 → → Ch10 Fundamentals of Database Systems
Fundamentals of Database Systems 13.6 다치 종속성과 제4정규형 (cont’d) 제 4 정규형의 특성: 3NF와 BCNF는 다치 종속성을 다루지 않는다. 비단순 다치 종속성을 가지는 릴레이션 스키마는 좋은 디자인이 아닐 수 있다. 제 4 정규형은 위와 같은 문제를 다루며, BCNF 정규형이 된다. (제 4 정규형에 속하는 모든 릴레이션은 BCNF 정규형에 속한다) 제 4 정규형의 정형적 정의: 종속성들의 집합 F에 대한 F+의 모든 비단순 다치 종속성 X ->> Y 에 대하여, X가 R의 수퍼키이면 릴레이션 스키마 R은 F에 대한 제 4 정규형이다. Ch10 Fundamentals of Database Systems
Fundamentals of Database Systems EMP EMP_PROJECTS ENAME PNAME DNAME ENAME PNAME Smith Brown X Y W Z John Anna Jim Joan Bob Smith Brown X Y W Z EMP_DEPENDENTS ENAME DNAME Smith Brown Anna John Jim Joan Bob [그림 13.15] 제 4 정규형의 이점 (a) 여러 개의 튜플을 추가한 EMP 릴레이션 (Brown) (b) EMP를 EMP_PROJECTS와 EMP_DEPENDENTS로 분해 Ch10 Fundamentals of Database Systems
Fundamentals of Database Systems 13.7 조인 종속성과 제5정규형 조인 종속성 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정규형은 거의 쓰이지 않는다. Ch10 Fundamentals of Database Systems