제 13 장 관계 데이타베이스의 함수적 종속성과 정규화 기본 이론

Slides:



Advertisements
Similar presentations
북한기도제목 4 월 3 주 (4/15-4/21). 1. 북한정치 - 통일부와 국방부는 11 일 잇따라 열린 정례 브리핑에서 지난 7 일 북한 해외 식당 종업원 들이 집단 탈북한 데 이어 북한 정찰총국 출 신 북한군 대좌와 북한 외교관이 지난해 잇 따라 한국으로 망명한.
Advertisements

1 3 장. 개체 - 관계 (ER) 모델을 사용한 데이타 모델링 3.1 데이타베이스 설계를 위한 고수준의 개념적 데이타 모델의 사용 3.2 예 3.3 ER 모델의 개념 3.4 개체 - 관계 ( ER ) 다이어그램에 대한 표기법 3.5 스키마 구조물들에 대한 적절한 이름.
2011년 월별 영업일수 정리 2011년 월별 Calendar (단위: 일)
제 4 장 관계 데이타 모델과 관계 데이타베이스 제약조건
실전 데이터모델링 & 데이터베이스 설계와 구축
Chapter 02. 데이터 모델링.
3 2 년 1 나만의 하나뿐인 달력~♥ sujin.
Second lab (제출기한 : 11월 15일(목) 까지)
오라클 데이터베이스 성능 튜닝.
Chapter 5 SQL: 확장된 질의, 주장, 트리거, 뷰.
제 7 장 문장 구조화 제어문 지정문 조건문 반복문 GOTO 문 비결정적문.
SQL-99: 스키마 정의, 기본제약조건, 질의어 충북대학교 구조시스템공학과 시스템공학연구실
다양한 예제로 쉽게 배우는 오라클 SQL 과 PL/SQL
DBMS실습(I) 데이터베이스 기본개념 2015년 1학기 동서울대학교 컴퓨터소프트웨어과.
Horowitz, Sahni and Anderson-Freed Computer Science Press
관계 데이타 모델 (Relational Data Model)
질의처리 최적화 충북대학교 정보통신공학부 복경수
제 3 장 엔티티-관계(ER) 모델을 사용한 데이타 모델링
데이터 베이스 란? 데이터 베이스 기능 데이터 베이스 관리 시스템 정보시스템의 구성 관게형 데이터 베이스
관계 데이터 모델과 제약조건 개념, 특성, 키, 무결성 제약조건.
6 장. ER-관계 사상에 의한 관계 데이터베이스 설계
제 6 장 관계 대수와 관계 해석 Fundamentals of Database Systems
데이터 베이스 정규화 정규화의 필요성.
데이터베이스 (Database) 관계 데이터베이스의 함수적 종속성과 정규화 문양세 강원대학교 IT대학 컴퓨터과학전공.
Data Modeling Database 활용을 위한 기초 이론 Database의 개요 Data Modeling
9 장. 관계 데이타베이스의 함수적 종속성과 정규화 9.1 릴레이션 스키마를 설계하는 몇 가지 개략적인 지침
2장. 관계 데이터 모델과 제약조건 관계 데이터 모델은 지금까지 제안된 데이터 모델들 중에서 가장 개념이 단순한 데이터 모델의 하나 IBM 연구소에 근무하던 E.F. Codd가 1970년에 관계 데이터 모델을 제안함 관계 데이터 모델을 최초로 구현한 가장 중요한 관계 DBMS.
Database 소개.
Fundamentals of Database Systems R. A. Elmasri and S. B. Navathe
9 장. 관계 데이터베이스의 함수적 종속성과 정규화
5장. 관계대수와 관계 해석 관계 대수 릴레이션들을 다루는 연산들의 집합 검색 요구(질의)를 기술하는 데에 사용
질의처리(Query Processing)와 최적화(Optimization)
제 10 장 관계 데이타베이스 설계 알고리즘과 추가적인 정규형
SQL.
데이터베이스 (Databases) 관계 데이터베이스의 함수적 종속성과 정규화 문양세 강원대학교 IT대학 컴퓨터과학전공.
5. 관계대수와 관계해석 관계자료 연산(operation)
제 3 장 관계 데이타 모델과 관계 데이타베이스 제약조건
제 4 장 관계 데이터 연산 1. 개요 2. 관계 대수 3. 관계 해석.
관계 해석(Relational Calculus)
문양세 (1st version: 문성우) (revised by 손시운)
Chapter 3: Introduction to SQL
제 7 장 엔터티-관계를 사용한 개념적 데이타 모델링
7장. 릴레이션 정규화 릴레이션 정규화 부주의한 데이터베이스 설계는 제어할 수 없는 데이터 중복을 야기하여 여러 가지 갱신 이상(update anomaly)을 유발함 어떻게 좋은 데이터베이스 설계를 할 것인가? 데이터베이스에 어떤 릴레이션들을 생성할 것인가? 각 릴레이션에.
정규화-정규화 과정.
정보처리기사 8조 신원철 양진원 유민호 이기목 김다연 윤현경 임수빈 조현진.
4. 관계 데이터베이스 (Relational Database)- 7, 8장
View(뷰) 1 가상 테이블(Virtual Relation)
2장. 관계 데이터 모델과 제약조건 관계 데이터 모델은 지금까지 제안된 데이터 모델들 중에서 가장 개념이 단순한 데이터 모델의 하나 IBM 연구소에 근무하던 E.F. Codd가 1970년에 관계 데이터 모델을 제안함 관계 데이터 모델을 최초로 구현한 가장 중요한 관계 DBMS.
데이터베이스 (Database) SQL 추가 기능: 주장, 뷰, 프로그래밍 기법 문양세 강원대학교 IT대학 컴퓨터과학전공.

관계 해석(Relational Calculus)
오라클 쿼리 문제 EMP (사원 테이블) DEPT (부서 테이블) 컬럼명 설명 EMPNO 사원번호 ENAME 사원명 JOB
4. 관계 데이터 모델.
4장. 데이터 종속성과 정규화.
관계 데이타 모델과 관계 데이타베이스 제약조건 충북대학교 구조시스템공학과 시스템공학연구실
문양세 (1st version: 문성우) (revised by 손시운)
데이터베이스 개발 단계.
최근의 취업률 / 실업률 추이 취업률 실업률 취업자 증가수 JUL % 10 % 100만 명 50 % 5 %
자료 : 한국면세점협회 B $ 15.6B $ 14.9B $ 14.17B $ (1.6조 원) 자료 : 한국면세점협회
제 8 장 ER-관계 사상에 의한 관계 데이타베이스 설계
1. 관계 데이터 모델 (1) 관계 데이터 모델 정의 ① 논리적인 데이터 모델에서 데이터간의 관계를 기본키(primary key) 와 이를 참조하는 외래키(foreign key)로 표현하는 데이터 모델 ② 개체 집합에 대한 속성 관계를 표현하기 위해 개체를 테이블(table)
데이터베이스 (Database) 관계 대수와 관계 해석 (Part 1) 문양세 강원대학교 IT대학 컴퓨터과학전공.
Dec Nov Oct Sep Aug Jul Jun May Apr Mar Feb Jan 자료 : 리얼메터
Dec Nov Oct Sep Aug Jul Jun May Apr Mar Feb Jan 자료 : 리얼메터
제 2 장 데이타베이스 시스템 개념과 아키텍처 Fundamentals of Database Systems
품사 분류의 기준과 실제.
GB ridge 웹 모바일및 빅데이터 응용과정 3주차: 데이터베이스 프로그래밍 [경기도형 대학생 취업브리지 사업]
CHAPTER 4 관계 데이터 모델과 관계 데이터베이스 제약조건. CHAPTER 4 관계 데이터 모델과 관계 데이터베이스 제약조건.
엔티티-관계(ER) 모델을 사용한 데이터 모델링
Presentation transcript:

제 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