9 장. 관계 데이터베이스의 함수적 종속성과 정규화

Slides:



Advertisements
Similar presentations
학번 이름 김정현 1차 프로젝트 발표 2D 게임프로그래밍. 목차 1. 게임 컨셉 2. 게임 설명 2/10 3. 개발 범위 4. 개발 일정 5. 자체 평가.
Advertisements

MIND STORM 창의적 공학 설계 FORKLIFT All in One!! 윤 호, 전유기, 이헌중, 주준성.
*노동문제 * -비정규직 유효림 박지희 전향숙 황연두.
실전 데이터모델링 & 데이터베이스 설계와 구축
Chapter 02. 데이터 모델링.
오라클 데이터베이스 성능 튜닝.
Chapter 5 SQL: 확장된 질의, 주장, 트리거, 뷰.
4장. 관계 대수와 SQL SQL 관계 데이터 모델에서 지원되는 두 가지 정형적인 언어
SQL-99: 스키마 정의, 기본제약조건, 질의어 충북대학교 구조시스템공학과 시스템공학연구실
질의처리 최적화 충북대학교 정보통신공학부 복경수
데이터 베이스 란? 데이터 베이스 기능 데이터 베이스 관리 시스템 정보시스템의 구성 관게형 데이터 베이스
관계 데이터 모델과 제약조건 개념, 특성, 키, 무결성 제약조건.
6 장. ER-관계 사상에 의한 관계 데이터베이스 설계
데이터 베이스 정규화 정규화의 필요성.
데이터베이스 (Database) 관계 데이터베이스의 함수적 종속성과 정규화 문양세 강원대학교 IT대학 컴퓨터과학전공.
Data Modeling Database 활용을 위한 기초 이론 Database의 개요 Data Modeling
제 13 장 관계 데이타베이스의 함수적 종속성과 정규화 기본 이론
9 장. 관계 데이타베이스의 함수적 종속성과 정규화 9.1 릴레이션 스키마를 설계하는 몇 가지 개략적인 지침
논리회로 및 실험 4변수 Karnaugh map
2장. 관계 데이터 모델과 제약조건 관계 데이터 모델은 지금까지 제안된 데이터 모델들 중에서 가장 개념이 단순한 데이터 모델의 하나 IBM 연구소에 근무하던 E.F. Codd가 1970년에 관계 데이터 모델을 제안함 관계 데이터 모델을 최초로 구현한 가장 중요한 관계 DBMS.
Database 소개.
제 5장. Context-Free Languages
질의처리(Query Processing)와 최적화(Optimization)
제 10 장 관계 데이타베이스 설계 알고리즘과 추가적인 정규형
데이터베이스 (Databases) 관계 데이터베이스의 함수적 종속성과 정규화 문양세 강원대학교 IT대학 컴퓨터과학전공.
5. 관계대수와 관계해석 관계자료 연산(operation)
제 3 장 관계 데이타 모델과 관계 데이타베이스 제약조건
제 4 장 관계 데이터 연산 1. 개요 2. 관계 대수 3. 관계 해석.
문양세 (1st version: 문성우) (revised by 손시운)
제 7 장 엔터티-관계를 사용한 개념적 데이타 모델링
7장. 릴레이션 정규화 릴레이션 정규화 부주의한 데이터베이스 설계는 제어할 수 없는 데이터 중복을 야기하여 여러 가지 갱신 이상(update anomaly)을 유발함 어떻게 좋은 데이터베이스 설계를 할 것인가? 데이터베이스에 어떤 릴레이션들을 생성할 것인가? 각 릴레이션에.
정규화-정규화 과정.
정보처리기사 8조 신원철 양진원 유민호 이기목 김다연 윤현경 임수빈 조현진.
4장 운동의 법칙 ( The Laws of Motion)
4. 관계 데이터베이스 (Relational Database)- 7, 8장
2장. 관계 데이터 모델과 제약조건 관계 데이터 모델은 지금까지 제안된 데이터 모델들 중에서 가장 개념이 단순한 데이터 모델의 하나 IBM 연구소에 근무하던 E.F. Codd가 1970년에 관계 데이터 모델을 제안함 관계 데이터 모델을 최초로 구현한 가장 중요한 관계 DBMS.
데이터베이스 (Database) SQL 추가 기능: 주장, 뷰, 프로그래밍 기법 문양세 강원대학교 IT대학 컴퓨터과학전공.
4 장. 관계 데이터 모델과 관계 데이터베이스 제약조건
ER-관계 사상에 의한 관계 데이터베이스 설계
Digital Door Lock Design
4. 관계 데이터 모델.
4장. 데이터 종속성과 정규화.
관계 기본 개념 관계의 표현 관계의 성질 관계의 연산 관계의 폐포 동치 관계 부분순서 관계.
관계 데이타 모델과 관계 데이타베이스 제약조건 충북대학교 구조시스템공학과 시스템공학연구실
문양세 (1st version: 문성우) (revised by 손시운)
z 변환 - z 변환의 정의 - 유한 길이 신호의 z 변환 해석 : 극점과 영점과 수렴영역
경영 마인드의 이해 경영학 원론 제 1조 경영학과 오현기 이진희
2015 한국연구재단 글로벌박사 양성사업 변경사항 안내
데이터베이스 개발 단계.
05 ASP.NET 2.0 페이지 및 응용 프로그램 구조 웹 폼(Web Form) 웹 폼 이벤트
제 8 장 ER-관계 사상에 의한 관계 데이타베이스 설계
1. 관계 데이터 모델 (1) 관계 데이터 모델 정의 ① 논리적인 데이터 모델에서 데이터간의 관계를 기본키(primary key) 와 이를 참조하는 외래키(foreign key)로 표현하는 데이터 모델 ② 개체 집합에 대한 속성 관계를 표현하기 위해 개체를 테이블(table)
데이터베이스 (Database) 관계 대수와 관계 해석 (Part 1) 문양세 강원대학교 IT대학 컴퓨터과학전공.
8.5 사람의 유전은 어떻게 연구하는가.
The general form of 0-1 programming problem based on DNA computing
교육행정 및 경영 제13장 교육재정 (화) 안 봉 직.
2강 -문혁-.
이야기 가족치료 강동욱 김경숙 남명이 백재성 양금순.
ER-관계 사상에 의한 관계 데이터베이스 설계
4. 분자 상호 작용의 네트워크 분석 4.1 네트워크 표현과 계산
검사도구의 조건 및 유형 2010/11/17.
ER-관계 사상에 의한 관계 데이터베이스 설계
■ P1 용도차 제작 문제점 4. 문제점 상세 현황 NO 차종 개발단계 조립공급자 품목 유형 문제점 문제점 제기 개선 조치
4장. 관계 대수와 SQL 관계 데이터 모델에서 지원되는 두 가지 정형적인 언어
품사 분류의 기준과 실제.
형태론 개관 한국어와 정보화.
Sound on 아름다운 인생을 위하여 ‘러브 북’ 중에서.
GB ridge 웹 모바일및 빅데이터 응용과정 3주차: 데이터베이스 프로그래밍 [경기도형 대학생 취업브리지 사업]
CHAPTER 4 관계 데이터 모델과 관계 데이터베이스 제약조건. CHAPTER 4 관계 데이터 모델과 관계 데이터베이스 제약조건.
Presentation transcript:

9 장. 관계 데이터베이스의 함수적 종속성과 정규화 9.1 릴레이션 스키마를 설계하는 몇 가지 개략적인 지침 9.2 함수적 종속성 (functional dependencies, FDs) 9.3 기본 키를 기반으로 한 정규형 9.4 제 2 정규형과 제 3 정규형의 일반적인 정의 9.5 BCNF (Boyce-Codd Normal Form)

9.1 릴레이션 스키마를 설계하는 몇 가지 개략적인 지침 관계형 데이타베이스 설계란 무엇인가? 관계 데이터 베이스의 스키마를 결정하는 것 “좋은” 릴레이션 스키마를 생성하기 위하여 애트리뷰트들을 그룹별로 모으는 과정 함수적 종속성의 개념 정규형, 무손실 조인 특성, 종속성 보존 특성

9.1 릴레이션 스키마를 설계하는 몇 가지 개략적인 지침(cont.) 9.1.1 릴레이션 애트리뷰트들의 의미 9.1.2 투플에서 중복된 정보와 갱신 이상 9.1.3 투플의 널값 9.1.4 가짜 투플의 생성

9.1.1 릴레이션 애트리뷰트들의 의미 의미가 쉽게 전달되도록 릴레이션 스키마를 설계한다. 애트리뷰트들 사이에 어떤 의미적인 상호 관계가 있을 때 애트리뷰트들을 하나의 릴레이션 스키마로 묶는다. 각 투플은 하나의 엔티티 또는 관계 인스턴스를 표현해야 한다. 다른 엔티티들의 애트리뷰트들은 하나의 릴레이션에 혼합되면 안된다.

[그림 9.1] 단순화된 COMPANY 관계 데이타베이스 스키마

[그림 9.2] 그림 9.1의 관계 데이터베이스 스키마를 위한 데이터베이스 상태의 예 [그림 9.2] 그림 9.1의 관계 데이터베이스 스키마를 위한 데이터베이스 상태의 예

9.1.2 투플에서 중복된 정보와 갱신 이상 하나의 릴레이션에 하나 이상의 엔티티의 애트리뷰트들을 혼합하는 것은 여러 가지 문제를 야기시킨다. => 정보의 중복, 저장 공간의 낭비 및 이상(anomaly) 문제 등. 이상(anomaly)의 종류 삽입 이상 (insertion anomalies) 삭제 이상 (deletion anomalies) 갱신 이상 (modification anomalies) 릴레이션에서 삽입, 삭제, 또는 갱신 이상이 생기지 않도록 기본 릴레이션 스키마를 설계

[그림 9.3] 갱신 이상이 발생하는 두 릴레이션 스키마 (a) EMP_DEPT, (b) EMP_PROJ

[그림 9.4] 그림 9.2의 릴레이션들을 자연 조인한 결과인 EMP_DEPT와 EMP_PROJ에 대한 상태들의 예

9.1.3 투플의 널값 릴레이션은 가능하다면 투플이 널 값을 가지지 않도록 설계해야 한다. 자주 널 값을 갖는 애트리뷰트들은 별개의 릴레이션으로 만든다.

9.1.4. 가짜 투플의 생성 잘못된 관계 데이타베이스 설계는 일부 조인 연산들이 틀린 결과를 생성하게 한다. 조인 연산의 결과가 의미있게 하기 위해서는 “무손실 조인(lossless join)” 특성이 필요하다.릴레이션들은 무손실 조인 조건을 만족하도록 설계되어야 한다. 기본키나 외래키 애트리뷰트를 가지고 동등 조건으로 조인할 수 있는 릴레이션 스키마를 설계한다 (다른 엔티티를 참조하기 위해서는 외래키만을 사용하여야 한다).

[ 그림 9.5] 그림 9.3(b)의 EMP_PROJ에 대한 나쁜 설계 (a) 두 개의 릴레이션 스키마 EMP_PROJ1과 EMP_LOCS (b) 그림 9.4의 EMP_PROJ의 외연을 릴레이션 EMP_LOCS와 EMP_PROJ1의 애트리뷰트들 상에 프로젝트 한 결과

[그림 9. 6] 그림 9. 5의 EMP_PROJ1과 EMP_LOCS에서 점선 위의 투플들에 대해 자연 조인을 적용한 결과 (

9.2 함수적 종속성 9.2.1 함수적 종속성(functional dependency)의 정의 9.2.2 함수적 종속성의 추론 규칙 9.2.3 함수적 종속성 집합의 동등성 9.2.4 함수적 종속성의 최소집합

9.2.1 함수적 종속성의 정의 릴레이션 스키마 R = {A1, A2, …, An}의 애트리뷰트들의 부분 집합인 X 와 Y 사이의 함수적 종속성 (X → Y로 표기): 임의의 릴레이션 인스턴스 r(R)에서의 임의의 두 투플 t1과 t2에 대해 t1[X] = t2[X]이면, t1[Y] = t2[Y]. 즉,애트리뷰트들의 집합 X의 값이 애트리뷰트들의 집합 Y의 값을 유일하게(unique) 결정 => 두 투플이 X에 대해 같은 값을 가지면 Y에 대해서도 같은 값을 가짐 이때 Y가 X에 함수적으로 종속된다고 함

9.2.1 함수적 종속성의 정의 (cont.) FD 제약조건의 예 (p334 그림 9.3(b)에서): 주민등록번호는 사원의 이름을 결정. SSN → ENAME 프로젝트 번호는 프로젝트 이름과 위치를 결정 PNUMBER → {PNAME, PLOCATION} 사원의 주민등록번호와 프로젝트 번호는 프로젝트를 위해 일한 시간을 결정. {SSN, PNUMBER} → HOURS K가 R의 키이면 K는 R의 모든 애트리뷰트들을 함수적으로 결정한다 (t1[K] = t2[K]인 서로 다른 두개의 투플이 존재하지 않기 때문). FD와 키는 릴레이션의 정규형을 정의하기 위해 사용됨

9.2.2 함수적 종속성의 추론규칙 주어진 FD의 집합 F를 가지고, 성립하는 추가적인 FD를 추론할 수 있다. 암스트롱의 추론 규칙들: A1. (재귀성 규칙) Y ⊆ X이면, X → Y이다. A2. (부가성 규칙) X → Y이면, XZ → YZ이다. A3. (이행성 규칙) X → Y이고 Y → Z이면, X → Z이다. 추가적인 유용한 추론 규칙들: (분해 규칙) X → YZ이면, X → Y이고 X → Z이다. (합집합 규칙) X → Y이고 X → Z이면, X → YZ이다. (의사이행성 규칙) X → Y이고 WY → Z이면, WX → Z이다.

9.2.2 함수적 종속성의 추론규칙 (cont.) A1, A2, A3는 건전(sound)하고 완전한(complete) 추론 규칙 집합을 형성한다. 위의 세 규칙 뿐만 아니라 다른 추론 규칙들도 A1, A2, A3로부터 추론 가능하다(완전성 특성). FD의 집합 F의 폐포(closure)는 F로부터 추론할 수 있는 모든 FD들의 집합 F+ 이다. F에 대한 애트리뷰트들의 집합 X의 폐포는 X에 의해서 함수적으로 결정되는 모든 애트리뷰트들의 집합 X+ 이다. X+는 F에 포함된 FD들을 가지고 A1, A2, A3를 반복적으로 적용하여 구할 수 있다.

9.2.3 함수적 종속성 집합의 동등성 다음의 두 조건이 성립하면 FD의 두 집합 F와 G는 동등하다(equivalent)고 한다: F의 모든 FD가 G로부터 추론 될 수 있고, G의 모든 FD가 F로부터 추론 될 수 있다. F+ = G+이면 F와 G는 동등하다. 정의: G의 모든 FD가 F로부터 추론 될 수 있다면(즉, G+ Í F+), F가 G를 덮는다(cover). F가 G를 덮고 G가 F를 덮으면 F와 G는 동등하다. FD 집합의 동등성을 검사하는 알고리즘이 존재한다.

9.2.4 함수적 종속성의 최소집합 FD의 집합 F가 다음의 조건들을 만족하면, F는 최소집합(minimal set) 또는 최소 덮개(minimal cover)라고 한다: (1) F의 모든 종속성들이 오른쪽 편에 하나의 애트리뷰트 만을 가진다. (2) F로부터 어떠한 종속성이라도 제거하면, 나머지 FD의 집합은 F와 동등하지 않게 된다. (3) F의 임의의 종속성 X → A를 Y → A (Y Ì X)로 대치하면, F와 동등하지 않게 된다.

FD의 모든 집합은 동등한 최소집합(minimal set)을 가진다. 하나의 FD의 집합 F에 대하여 여러개의 동등한 최소집합이 존재한다. FD의 집합 F와 동등한 FD의 최소집합을 구하는 간단한(simple) 알고리즘은 없다. 최소집합의 개념은 릴레이션 설계 이론을 위해서 중요하다. (제 10 장 참조)

9.3 기본 키를 기반으로 한 정규형 9.3.1. 정규화 소개 9.3.2. 제1 정규형(First Normal Form ; 1NF) 9.3.3. 제2 정규형(Second Normal Form ; 2NF) 9.3.4. 제3 정규형(Third Normal Form ; 3NF)

9.3.1 정규화 소개 정규화(normalization): 불만족스러운 “나쁜” 릴레이션의 애트리뷰트들을 나누어서 더 작은 릴레이션으로 분해하는 과정 정규형(normal form): 특정 조건을 만족하는 릴레이션 스키마의 형태 제 2 정규형, 제 3 정규형, BCNF는 릴레이션 스키마의 FD와 키에 기반하여 정의 됨 좋은 릴레이션 설계를 위해서는 정규형 이외에도 무손실 조인과 종속성 보존 등의 추가적인 특성이 필요 (10 장 참조)

9.3.2 제 1 정규형(1NF) 제 1 정규형은 복합 애트리뷰트(composite attribute), 다치 애트리뷰트(multivalue attribute) 그리고 중첩 릴레이션(nested relation) 등 비원자적(non-atomic) 애트리뷰트들을 허용하지 않는다. 다치 애트리뷰트 및 다치의 복합 애트리뷰트 (중첩 릴레이션)의 제거 제 1 정규형은 릴레이션 정의의 일부분을 이룬다.

[그림 9.8] 제 1 정규형으로 정규화 (a) 제 1 정규형이 아닌 릴레이션 스키마 [그림 9.8] 제 1 정규형으로 정규화 (a) 제 1 정규형이 아닌 릴레이션 스키마 (b) 릴레이션 DEPARTMENT 외연의 예 (c) 중복이 포함된 동일 릴레이션의 제 1 정규형 버전

[그림 9.9] 중첩된 릴레이션을 제 1 정규형으로 정규화 [그림 9.9] 중첩된 릴레이션을 제 1 정규형으로 정규화 (a) 중첩 릴레이션 PROJS를 포함하는 릴레이션 EMP_PROJ의 스키마 (b) 각 투플 안에 중첩 릴레이션을 포함하고 있는 릴레이션 EMP_PROJ의 외연의 예 (c) 기본키를 복사함으로써 EMP_PROJ를 EMP_PROJ1과 EMP_PROJ2 릴레이션들로 분해

9.3.3 제 2 정규형(2NF) 제 2 정규형은 FD와 기본키 개념을 이용한다. 주요 애트리뷰트(prime attribute): 기본키 K의 멤버인 애트리뷰트 완전 함수적 종속성(full functional dependency): FD X → Y에서 X의 어떤 애트리뷰트라도 제거하면 더 이상 함수적 종속성이 성립하지 않는 경우 예제 (p334 그림 9.3(b)): {SSN, PNUMBER} → HOURS는 SSN → HOURS와 PNUMBER → HOURS가 성립하지 않기 때문에 완전 함수적 종속성이다.

9.3.3 제 2 정규형(2NF) (cont.) {SSN, PNUMBER} → ENAME은 SSN → ENAME이 성립하기 때문에 완전 함수적 종속성이 아니다 (이는 부분 함수 종속성(partial function dependency)이라고 부름). 릴레이션 스키마 R의 모든 비주요 애트리뷰트(즉, 키에 속하지 않는 애트리뷰트)들이 기본키에 대해서 완전 함수적 종속이면 R은 제 2 정규형(2NF)을 갖는다고 한다. R은 제 2 정규형 정규화 과정에 의해서 항상 제 2 정규형 릴레이션으로 분해될 수 있다.

[그림 9.10] 제 2 정규형과 제 3 정규형으로 정규화 EMP_PROJ를 제 2 정규형으로 정규화 [그림 9.10] 제 2 정규형과 제 3 정규형으로 정규화 EMP_PROJ를 제 2 정규형으로 정규화 EMP_DEPT를 제 3 정규형으로 정규화

9.3.4 제 3 정규형(3NF) 이행적 함수적 종속성(transitive functional dependency): 두 FD Y → X와 X → Z에 의해서 추론 될 수 있는 FD Y → Z. 여기서 X는 키의 부분 집합이 아니어야 함. 예제: SSN → DMGRSSN은 SSN → DNUMBER와 DNUMBER → DMGRSSN이 성립하기 때문에 이행적 함수적 종속성이다. SSN → ENAME는 SSN → X이고 X → ENAME인 애트리뷰트 집합 X가 존재하지 않기 때문에 이행적 종속성이 아니다.

릴레이션 스키마 R이 제 2 정규형을 갖고 R의 어떤 비주요 애트리뷰트도 기본키에 대해서 이행적으로 종속되지 않으면 R은 제 3 정규형을 갖는다고 한다.

9.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)의 경우를 허락하지 않는 정규형을 의미한다.

[그림 9.11] 제 2 정규형과 제 3 정규형으로 정규화 (a) LOTS 릴레이션 스키마와 함수적 종속성 FD1부터 FD4 [그림 9.11] 제 2 정규형과 제 3 정규형으로 정규화 (a) LOTS 릴레이션 스키마와 함수적 종속성 FD1부터 FD4 (b) LOTS를 제 2 정규형 릴레이션 LOTS1과 LOTS2로 분해 (c) LOTS1을 제 3 정규형 릴레이션 LOTS1A와 LOTS1B로 분해 (d) LOTS의 정규화 요약

9.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 정규형)를 갖게 하는 것이다. “좋은” 관계형 데이타베이스의 릴레이션을 설계하기 위해서는 추가적인 특성이 만족되어야 한다(제 10 장 참조). 무손실 조인(lossless join) 특성 종속성 보존(dependency preservation) 특성 제 10 장에서 논할 다른 정규형은 다음과 같다: 제 4 정규형 (다중치 종속성에 기반)

(a) LOTS1A의 BCNF로 정규화하는 과정에서 종속성 FD2가 없어지는 경우 (b) 함수적 종속성과 관련된 의미; 제 3 정규형이지만 BCNF가 아니다