Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수

Slides:



Advertisements
Similar presentations
이진 나무 구조 강윤섭 2008년 5월 23일.
Advertisements

ER Schema (추가)
1. 관계 데이터베이스의 정규화 (1) 정규화 1) 이상(anomaly) ① 이상의 정의 • 관계 모델에서는 애트리뷰트들 간에 존재하는 여러 종속관계를 하나의 릴레이션에 표현하기 때문에 릴레이션 조작 시 이상 (anomaly) 발생 • 데이터의 중복으로 인하여 관계연산을.
스키마 정제와 정규형 Chapter 15 The slides for this text are organized into chapters. This lecture covers Chapter 15. Chapter 1: Introduction to Database Systems.
Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수
적분방법의 연속방정식으로부터 Q=AV 방정식을 도출하라.
Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수
Report #5 - due: 4/13 다음 10*5의 희소 행렬 A, B를 고려하라.
Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수
Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수
Report #2 - Solution 문제 #1: 다음과 같이 프로그램을 작성하라.
제 09 장 데이터베이스와 MySQL 학기 인터넷비즈니스과 강 환수 교수.
보고서 #7 (기한: 6/2) 2개의 스택, stk1, stk2를 이용하여 큐를 구현하라.
MySQL 및 Workbench 설치 데이터 베이스.
데이터베이스 및 설계 금오공과대학교 컴퓨터공학부 이 이섭.
Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수
6 장. ER-관계 사상에 의한 관계 데이터베이스 설계
11. 데이타 종속성과 정규화.
테이블 : 데이터베이스를 구성하는 요소로 같은 성격에 정보의 집합체. 레코드 : 하나의 정보를 가지고 있는 컬럼의 집합체
9 장. 관계 데이타베이스의 함수적 종속성과 정규화 9.1 릴레이션 스키마를 설계하는 몇 가지 개략적인 지침
ALLPPT.com _ Free PowerPoint Templates, Diagrams and Charts
2장. 관계 데이터 모델과 제약조건 관계 데이터 모델은 지금까지 제안된 데이터 모델들 중에서 가장 개념이 단순한 데이터 모델의 하나 IBM 연구소의 E.F. Codd가 1970년에 관계 데이터 모델을 제안함 관계 데이터 모델을 최초로 구현한 가장 중요한 관계 DBMS 시제품은.
3.2 SQL Server 설치 및 수행(계속) 시스템 데이터베이스 master
질의 사항 Yield Criteria (1) 소재가 평면응력상태에 놓였을 때(σ3=0), 최대전단응력조건과 전단변형에너지 조건은σ1 – σ2 평면에서 각각 어떤 식으로 표시되는가? (2) σ1 =σ2인 등이축인장에서 σ = Kεn로 주어지는 재료의 네킹시 변형율을 구하라.
11장. 포인터 01_ 포인터의 기본 02_ 포인터와 Const.
5장. 관계대수와 관계 해석 관계 대수 릴레이션들을 다루는 연산들의 집합 검색 요구(질의)를 기술하는 데에 사용
관계 데이터 구조.
제 10 장 관계 데이타베이스 설계 알고리즘과 추가적인 정규형
1. 관계 데이터 언어 관계 대수 1) 관계대수 정의 ① 원하는 정보와 그 정보를 어떻게 유도하는가를 기술하는 절차적 인 방법 ② 주어진 관계로 부터 원하는 관계를 얻기 위해 연산자와 연산 규칙을 제공하는 언어 ③ 릴레이션 조작을 위한 연산의 집합으로 피연산자와 결과가.
질의 최적화 예제 선택연산과 추출 연산은 가급적 일찍 수행하라..
데이터베이스 (Databases) 관계 데이터베이스의 함수적 종속성과 정규화 문양세 강원대학교 IT대학 컴퓨터과학전공.
컴퓨터 프로그래밍 실습 #6 제 4 장 클래스 작성.
1.4 중첩된 한정기호 (Nested Quantifiers) 이산수학 (Discrete Mathematics)
환경 설정 예제 데이터베이스 생성 - 그림 3.34의 SQL Server 관리 스튜디오 창의 왼쪽 영역의 데이터베
함수적 종속과 정규화 함수적 종속 데이터 중복의 문제점 정규형.
프로그래밍 개요
어서와 C언어는 처음이지 제14장.
자료구조: CHAP 7 트리 –review 순천향대학교 컴퓨터공학과 하 상 호.
8장. 상호 배타적 집합의 처리.
관계 데이터 모델과 관계 데이터베이스 제약 조건
ER-관계 사상에 의한 관계 데이터베이스 설계
3장. 변수와 연산자 교안 : 전자정보통신 홈페이지 / 커뮤니티/ 학술세미나
Term Projects 다음에 주어진 2개중에서 한 개를 선택하여 문제를 해결하시오. 기한: 중간 보고서: 5/30 (5)
8장 쿠키와 세션 한빛미디어(주).
컴퓨터 프로그래밍 기초 - 10th : 포인터 및 구조체 -
Chapter 03. 관계 데이터베이스 설계.
05. Relational DBMS 명지대학교 ICT 융합대학 김정호.
합집합과 교집합이란 무엇인가? 01 합집합 두 집합 A, B에 대하여 A에 속하거나 B에 속하는 모든 원소로 이루어진 집합을 A와 B의 합집합이라고 하며, 기호 A∪B로 나타낸다. A∪B ={x | x∈A 또는 x∈B}
컴퓨터 프로그래밍 기초 - 8th : 함수와 변수 / 배열 -
7장. 릴레이션 정규화 릴레이션 정규화 부주의한 데이터베이스 설계는 제어할 수 없는 데이터 중복을 야기하여 여러 가지 갱신 이상(update anomaly)을 유발함 어떻게 좋은 데이터베이스 설계를 할 것인가? 데이터베이스에 어떤 릴레이션들을 생성할 것인가? 각 릴레이션에.
보고서 #7 (기한: 6/2) 2개의 스택, stk1, stk2를 이용하여 큐를 구현하라.
미분방정식.
약식 진리표를 이용한 타당성 증명 진리표 그리기 방법의 한계
제 3 장 관계 데이터 모델 1. 개요 2. 기본 개념 3. 관계 데이터 제약.
4장. 데이터 표현 방식의 이해. 4장. 데이터 표현 방식의 이해 4-1 컴퓨터의 데이터 표현 진법에 대한 이해 n 진수 표현 방식 : n개의 문자를 이용해서 데이터를 표현 그림 4-1.
제 8 장 ER-관계 사상에 의한 관계 데이타베이스 설계
Part 2 개념적 데이터 모델 Copyright © 2006 by Ehan Publishing Co. All rights reserved.
쉽게 배우는 알고리즘 2장. 점화식과 점근적 복잡도 분석
11장 배열 1. 배열이란? 1.1 배열의 개요 1.2 배열의 선언과 사용.
ER-관계 사상에 의한 관계데이터베이스 설계 충북대학교 구조시스템공학과 시스템공학연구실
제 22 강 논리식 및 논리 값 shcho.pe.kr.
이산수학(Discrete Mathematics)  술어와 한정기호 (Predicates and Quantifiers)
수치해석 ch3 환경공학과 김지숙.
07. DB 설계 명지대학교 ICT 융합대학 김정호.
Chapter 2: Intro to Relational Model
ER-관계 사상에 의한 관계 데이터베이스 설계
 6장. SQL 쿼리.
6 객체.
8장. 데이터베이스 설계 데이터베이스 설계 단계 요구 사항 분석 개념적 설계 논리적 설계 물리적 설계와 구현.
교과서 78쪽 학습 목표 정보 관리의 필요성을 이해할 수 있다. 데이터베이스의 개념과 필요성을 이해할 수 있다.
Presentation transcript:

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 제 7 장 관계형 데이터베이스 설계 관계형 데이터베이스 설계에서의 함정 분해 함수적 종속을 이용한 정규화 다중값 종속을 이용한 정규화 죠인 종속을 이용한 정규화 도메인-키 정규형 데이터베이스 설계의 대안 Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 관계형 데이터베이스 설계에서의 함정 관계형 데이터베이스 설계에서는 좋은 릴레이션 스키마의 집합을 찾기를 요구한다. 나쁜 설계는 다음을 유발할 수 있다. - 정보의 중복 - 특정 정보 표현의 불가능 설계 목표 - 중복 데이터의 회피 - 애트리뷰트 간의 관계가 표현되도록 보장 - 데이터베이스 무결성 제약 조건의 위배에 대한 갱신 검사의 용이성 Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 예제 다음의 관계형 스키마를 고려해 보자 Lending-schema = (branch-name, branch-city,assets, customer-name, loan-number, amount) 중복 - branch-name, branch-city, assets의 데이터가 지점에서 이루어지는 대출마다 중복된다. - 공간을 낭비하고 갱신이 복잡해진다. 널 값 - 대출이 없으면 지점에 관한 정보를 저장할 수 없다. - 널 값을 사용할 수 있지만, 다루기가 어렵다. Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 분해 Lending-schema를 다음과 같이 분해하자. Branch-customer-schema = (branch-name, branch-city, assets, customer-name) Customer-loan-schema = (customer-name, loan-number, amount) 원래 스키마 (R)의 모든 애트리뷰트가 분해(R1, R2)내에 나타나야만 한다. R = R1  R2 무손실 죠인 분해 스키마 R 상의 모든 가능한 릴레이션 r에 대해 r = R1(r) R2(r) Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 무손실 죠인 분해가 없는 예제 R = (A, B)의 분해 A(r) B(r) A B  1  2  1 R1 = (A) r A   R2 = (B) A(r) B 1 2 B(r) A B  1  2  1  2 Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 목표 - 다음을 위한 이론을 고안한다 특정 릴레이션 R이 좋은 형태인가를 결정 릴레이션 R이 좋은 형태가 아닌 경우, 그것을 아래와 같이 릴레이션의 집합 {R1, R2, , Rn)으로 분해한다. - 각 릴레이션은 좋은 형태에 있다 - 분해는 무손실 죠인 분해이다 이론은 다음에 근거한다 - 함수적 종속 - 다중값 종속 Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 함수적 종속을 이용한 정규화 함수적 종속 집합 F를 가진 릴레이션 스키마 R을 R1과 R2로 분해할 때는 다음과 같이 되기를 원한다. 무손실 죠인 분해 : 다음 종속중인 적어도 하나가 F+에 있도록 - R1  R2  R1 - R1  R2  R2 중복없음 : 릴레이션 R1과 R2가 BCNF 또는 3NF에 있도록 해야 한다. 종속성 보존 : Fi를 Ri내의 애트리뷰트만을 포함하는 F+내의 종속 집합이라 하자. 다음을 만족하는지를 테스트한다. - (F1  F2)+ = F+ 그렇지 않으면, 함수적 종속 위배에 대한 갱신 검사에 비용이 많이 든다. Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 예제 R = (A , B, C) F = {A  B, B  C} R1 = (A, B), R2 = (B, C) - 무손실 죠인 분해 R1  R2 = {B} 이고 B  BC - 종속성 보존 R1 = (A, B), R2 = (A, C) R1  R2 = {A} 이고 A  AB - 종속성이 보존되지 않음 (R1 R2 를 계산해 보지 않고는 B  C를 체크할 수 없다) Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수

Boyce - Codd Normal Form(BCNF)   R이고   R일 때    형태의 F+내의 모든 함수적 종속에 대해 다음중 하나를 가지면 함수적 종속 집합 F에 대하여 릴레이션 스키마 R은 BCNF이다    가 당연하다 (즉,   )  가 R의 수퍼 키이다 Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 예제 R = (A , B, C) F = {A  B B  C} Key = {A} R은 BCNF가 아니다 분해 R1 = (A, B), R2 = (B, C) - R1 과 R2 는 BCNF이다 - 무손실 죠인 분해 - 종속성 보존 Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 BCNF 분해 알고리즘 result := {R} ; done := false; compute F+ ; while (not done) do if (there is a schema Ri in result that is not in BCNF) then begin let    be a nontrivial functional dependency that holds on Ri such that   Ri is not in F+ , and    = 0; result := (result - Ri)  (Ri - )  (,); end else done := true; 유의 : 각 Ri는 BCNF이고 분해는 무손실 죠인 분해이다. Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 BCNF 분해의 예 R = ( branch-name,branch-city,assets, customer-name,loan-number,amount) F = {branch- name  assets branch- city loan- number  amount branch- name} Key = {loan- number,customer- name} 분해 - R1 = (branch-name,branch-city,assets) - R2 = (branch-name,customer-name,loan-number,amount) - R3 = (branch-name,loan-number,amount) - R4 = (customer-name,loan-number) 최종 분해 R1, R3, R4 Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 BCNF와 종속성 보존 종속성이 보존되는 BCNF 분해를 항상 얻을 수 있는 것은 아니다 R = (J, K, L) F = {JK  L L  K} 두 개의 후보 키 = JK와 JL R은 BCNF이 아니다 R의 어떠한 분해도 아래의 종속성을 보존하는데 실패할 것이다 JK  L Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 3rd Normal Form(3NF) F+내의 모든   에 대해 다음중 적어도 하나를 가지면 릴레 이션 스키마 R은 3NF이다 -   가 당연하다 (즉,   ) - 가 R의 수퍼키이다 -  - 내의 각 애트리뷰트 A가 R의 후보키 내에 포함된다. 릴레이션이 BCNF가 아니면 그것은 3NF이다 (왜냐하면 BCNF에 서 위의 첫 두개의 조건중 하나는 가져야 하기 때문이다). Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 3NF (계속) 예제 - R = (J, K, L) F = {JK  L, L  K} - 두 개의 후보 키: JK와 JL - R은 3NF이다 JK  L JK는 수퍼키이다 L  K K가 후보 키 내에 포함된다 릴레이션 스키마 R을 다음과 같은 릴레이션 스키마의 집합 {R1, R2, , Rn}으로 분해하는 알고리즘 - 각 릴레이션 스키마 Ri는 3NF이다 - 무손실 죠인 분해 - 종속성 보존 Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 3NF 분해 알고리즘 Let Fc be a canonical cover for F; i := 0; for each functional dependency    in Fc do if none of the schemas Rj , 1 j  i contains   then begin i :=i + 1; Ri :=   ; end if none of the schemas Rj , 1 j  i contains a candidate key for R i := i + 1; Ri := any candidate key for R ; return (R1,R2,...,R i) Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 예제 릴레이션 스키마: Banker-info-schema = (branch-name, customer-name, banker-name, office-number) 이 릴레이션 스키마에 대한 함수적 종속은 다음과 같다 banker-name  branch-name office-number customer-name branch-name  banker-name 키는 아래와 같다 {customer-name, branch- name} Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수

Banker - info - schema에 3NF 적용 알고리즘 내의 for 루프는 다음과 같은 스키마가 분해 에 내포되도록 한다 Banker-office-schema = (banker-name,branch- name, office-number) Banker-schema = (customer-name,branch-name, banker-name) Banker-schema에 Banker-info-schema의 후보 키를 내포하므로 분해 처리가 수행된다. Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 BCNF와 3NF의 비교 어떤 릴레이션을 3NF와 다음을 만족하는 릴레이션으로 항상 분해할 수 있다 - 분해는 무손실이다 - 종속성이 보존된다 어떤 릴레이션을 BCNF와 다음을 만족하는 릴레이션으로 항상 분해할 수 있다 - 항상 종속성을 보존하지는 않는다 Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 BCNF와 3NF의 비교(계속) R = (J, K, L) F = {JK  L L  K} 다음 릴레이션을 고려해 보자 다음과 같은 문제점을 가진 3NF지만 BCNF는 아닌 스키마 - 정보의 중복(예를 들어, 관계 l1, k1) - 널 값을 사용할 필요가 있다(예를 들어, J에 대응하는 값이 없이 관계 l2, k2를 표현하기 위해) J L K j1 l1 k1 j2 l1 k1 j3 l1 k1 null l2 k2 Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 설계 목표 관계형 데이터베이스 설계의 목표는 다음과 같다 - BCNF. - 무손실 죠인 - 종속성 보존 이를 달성할 수 없으면, 다음을 허용한다 - 3NF. Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 다중값 종속을 이용한 정규화 충분히 정규화되지 않은 BCNF 데이터베이스 스키마가 있다 다음의 데이터베이스를 고려해 보자 classes(course, teacher, book) (c, t, b)  classes는 t가 c를 가르치는 것으로 한정되고 b가 c의 교재로 요구됨을 의미한다 데이터베이스는 각 과목에 대해 과목의 강사일 수 있는 선생의 집합과 과목에서 필요한 모든 교재의 집합(누가 가르치든 관계없이)을 열거하도록 되어 있다. Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 다중값 종속을 이용한 정규화(계속) course teacher book database Avi Korth database Avi Ullman database Hank Korth database Hank Ullman database Sudarshan Korth database Sudarshan Ullman operating systems Avi Silberschatz operating systems Avi Shaw operating systems Jim Silberschatz operating systems Jim Shaw classes 당연하지 않은 종속은 없기 때문에, (course, teacher, book)이 유일한 키이고 따라서 릴레이션은 BCNF이다. 삽입 이상 - 즉, Sara가 database를 가르칠 수 있는 새로운 선생이라면 두 개의 튜플이 삽입될 필요가 있다 (database, Sara, Korth) (database, Sara, Ullman) Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 다중값 종속을 이용한 정규화(계속) 그러므로, classes를 아래와 같이 분해하는 것이 더 낫다 teaches text 이들 두 릴레이션은 4NF이다 course teacher database Avi database Hank database Sudarshan operating systems Avi operating systems Jim course book database Korth database Ullman operating systems Siberschatz operating systems Shaw Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 다중값 종속(MVD) R을 릴레이션 스키마라 하고   R 이고   R이라 하자. 아래와 같은 다중값 종속이    어떤 적법한 릴레이션 r(R)에 있어 t1[] = t2[]인 r내의 모든 튜플 t1과 t2의 쌍에 대해 r내에 다음과 같은 튜플 t3와 t4가 존재하면 R상에 존재한다 t1[] = t2[] = t3[] = t4[] t3[]=t1[] t3[R - ] = t2[R - ] t4[] = t2[] t4[R - ] = t1[R - ] Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 MVD(계속)   의 테이블 표현   R -  -  t1 a1 … ai ai+1 … aj aj+1 … an t2 a1 … ai bi+1 … bj bj+1 … bn t3 a1 … ai ai+1 … aj bj+1 … bn t4 a1 … ai bi+1 … bj aj+1 … an Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 예제 R을 아래와 같은 3개의 공집합이 아닌 부분 집합으로 분할된 애트리뷰트의 집합을 가진 릴레이션 스키마라 하자. Y, Z, W Y  Z(Y가 Z를 다중 결정한다)를 만족하는 필요 충분 조건은 모든 가능한 릴레이션 r(R)에 대해 아래와 같을 때이다 < y1, z1, w1 >  r 이고 < y1, z2, w2 >  r 이면 < y1, z1, w2 >  r 이고 < y1, z2, w1 >  r Z와 W의 행위는 동일하기 때문에 Y  Z를 만족하는 필요 충분조건은 Y  W를 따른다는 사실을 유의하라. Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 예제(계속) 앞의 예에서: course  teacher course  book 위의 형식적 정의는 특정 Y값(course)이 주어지면 그것에 Z의 값(teacher) 집합과 W의 값(book)을 관련짓도록 하고 이들 두 집합은 어떤 의미에서 서로 독립적이라는 개념을 정형화하도록 한다 유의 - Y  Z 이면 Y  Z 이다 - 실제로 (위의 표기에서) Z1 = Z2를 가진다 요구는 다음과 같다. Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 다중값 종속의 사용 두 가지 방향으로 다중값 종속을 사용한다. 1. 릴레이션이 주어진 함수적 종속과 다중값 종속 집합하에서 적법한가의 여부를 결정하는데 2. 적법한 릴레이션의 집합에 제약 조건을 지정하는데. 따라서 주어진 함수적 및 다중값 종속의 집합을 만족하는 릴레이션에 만 관심을 두기로 한다 릴레이션 r이 주어진 다중값 종속을 만족하지 않으면, r에 튜플들 을 추가해 다중값 종속을 만족하는 릴레이션 r를 구축할 수 있다. Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 다중값 종속 이론 D를 함수적 및 다중값 종속의 집합이라 하자. D의 폐포 D+는 D에 논리적으로 내포된 모든 함수적 및 다중값 종속의 집합이다. 함수적 및 다중값 종속에 대한 건전하고 완전한 추론 규칙들 1. 재귀 규칙. 가 애트리뷰트의 집합이고   이면,   가 성립한다 2. 증가 규칙.   이고 가 애트리뷰트의 집합이면,   가 성립한다. 3. 이행 규칙.   이고   이면,   가 성립한다. Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 다중값 종속 이론(계속) 4. 보충 규칙.   이면   R -  - 가 성립한다. 5. 다중값 증가 규칙.   이고   R 및   이면    가 성립한다. 6. 다중값 이행 규칙.   이고    이면    - 가 성 립한다. 7. 중복 규칙.   이면   가 성립한다. 8. 유착 규칙.   이고    및   R 이고    =  이며    인 가 존재하면,   가 성립한다. Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 D+ 계산의 단순화 다음과 같은 규칙 (규칙 1-8을 사용해 증명함)을 사용해 D+ 계산을 단순화할 수 있다. 다중값 합집합 규칙.   이고    이면,    가 성립한다. 공통 집합 규칙.   이고    이면,      가 성립한다. 차집합 규칙.   이고    이면,    - 와    -  가 성립한다. Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 예제 R = (A, B, C, G, H, I) D = {A  B B  HI CG  H} D+의 멤버중 일부 : - A  CGHI. A  B이기 때문에, 보충 규칙(4)은 A  R - B- A를 내포한다. R - B- A = CGHI이므로, A  CGHI이다. - A  HI. A  B이고 B  HI이므로, 다중값 이행 규칙(6)은 A  HI - B를 내포한다. HI - B = HI이므로, A  HI이다. Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 예제(계속) D+의 멤버중 일부(계속) - B  H. 유착 규칙(8)을 적용하면 B  HI 가 성립한다. H  HI 이고 CG  HI =  이므로,  는 B, 는 HI, 는 CG및 를 H로 하는 유착 규칙을 만족해 B  H를 얻는다. - A  CG. A  CGHI 이고 A  HI. 차집합 규칙에 의해 A  CGHI - HI. CGHI - HI = CG 이므로, A  CG이다. Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 4th Normal Form (4NF)   R 이고   R인    형태의 D+내 모든 다중값 종속에 대해 다음중 하나를 가지면 함수적 및 다중값 종속의 집합 D에 대해 릴레이션 스키마 R은 4NF이다. -    가 당연하다 (즉,    또는    = R) -  가 스키마 R의 수퍼키이다. 릴레이션이 4NF이면, 그것은 BCNF이다. Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 4NF 분해 알고리즘 result := {R} ; done := false; compute F+ ; while (not done) do if (there is a schema Ri in result that is not in 4NF) then begin let    be a nontrivial multivalued dependency that holds on Ri such that   Ri is not in F+ , and    = ; result := (result - Ri)  (Ri - )  ( , ); end else done := true; 유의: 각 Ri는 4NF이며, 분해는 무손실 죠인이다. Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 예제 R = (A, B, C, G, H, I) D = {A  B B  HI CG  H} A  B 이고 A가 R의 수퍼 키가 아니므로 R은 4NF가 아니다. 분해 a) R1 = (A, B) (R1 은 4NF이다) b) R2 = (A, C, G, H, I) (R2 는 4NF가 아니다) c) R3 = (C, G, H) (R3 는 4NF이다) d) R4 = (A, C, G, I) (R4 는 4NF가 아니다) A  B이고 B  HI 이므로, A  HI 이고 A  I 이다. e) R5 = (A, I) (R5 는 4NF이다) f) R6 = (A, C, G) (R6 는 4NF이다) Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 다중값 종속 보존 R1, R2, …, Rn을 R의 분해라하고 D를 함수적 및 다중값 종속의 집합이라 하자. Ri에 대한 D의 한정은 다음으로 구성되는 집합 Di이다. - Ri의 애트리뷰트만을 내포하는 D+내의 모든 함수적 종속 -   Ri 와   가 D+내에 있는     Ri 형식의 모든 다중값 종속 모든 i에 대해 ri가 Di를 만족하는 릴레이션 집합 r1(R1), r2(R2), …, rn(Rn) 각각에 대해 D를 만족하고 모든 i에 대해 ri = Ri(r)를 위한 릴레이션 r(R)이 존재하면, 분해는 D에 대해 종속성을 보존한다. 4NF로의 분해는 종속성이 보존되지 않을 수도 있다(다중값 종속에서 조차) Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 죠인 종속을 이용한 정규화 죠인 종속은 스키마 R에 대한 적법한 릴레이션들의 집합을 주어 진 분해가 무손실 죠인 분해인 릴레이션들로 제한한다. R을 릴레이션 스키마라 하고 R1, R2, …, Rn을 R의 분해라 하자. R = R1  R2  …  Rn이면 다음과 같을 때 릴레이션 r(R)은 죠인 종속 *(R1, R2, …, Rn)을 만족한다고 한다. r = R1(r) R2(r) Rn(r) Ri 중의 하나가 R 자신이면 죠인 종속은 당연하다. 죠인 종석 *(R1, R2)는 다중값 종속 R1  R2  R2와 동등하다. 역으로,    는 *(  (R - ),   )와 동등하다. 그러나, 어떠한 다중값 종속과도 동등하지 않은 죠인 종속이 있다. Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수

Project - Join Normal Form (PJNF) 다음과 같은 형식의 모든 모든 죠인 종속에 대해 아래중의 적어도 하나를 가지면 함수적, 다중값 및 죠인 종속의 집합 D에 대해 릴레이션 스키마 R은 PJNF이다. *(R1, R2, …, Rn) 여기서 각 Ri  R 이고 R = R1  R2  …  Rn - *(R1, R2, …, Rn)은 당연한 죠인 종속이다 - 각 Ri 가 R의 수퍼키이다. 모든 다중값 종속은 또한 죠인 종속이므로, 모든 PJNF 스키마는 또한 4NF이다. Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 예제 다음을 고려해 보자 Loan-info-schema = (branch-name, customer-name, loan-number, amount). 하나 이상의 고객을 가진 각 대출이 하나 이상의 지점에 있으며 하나의 대출액을 가진다. 이들 관계는 독립적인 고로 다음과 같은 죠인 종속을 갖는다. *((loan-number, branch-name), (loan-number, customer-name), (loan-number, amount)) Loan-info-schema 는 위의 죠인 종속을 내포하고 있는 죠인 종속에 대해 PJNF가 아니다. Loan-info-schema 를 PJNF로 추출하려면, 그것을 죠인 종속으로 지정된 세 개의 스키마로 분해해야 한다. - (loan-number, branch-name) - (loan-number, customer-name) - (loan-number, amount) Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수

Domain-Key Normal Form(DKNF) 도메인 선언. A를 애트리뷰트, dom을 값들의 집합이라 하자. 도메인 선언 A  dom은 모든 튜플의 A값이 dom내의 값이 되도록 요구한다. 키선언. R을 K  R인 릴레이션 스키마라 하자. 키 선언 Key(K)는 K가 스키마 R의 수퍼키이도록 요구한다 (K  R). 모든 키 선언은 함수적 종속이지만 모든 함수적 종속이 키 선언은 아니다. 일반 제약 조건. 일반 제약 조건은 주어진 스키마상의 모든 릴레이션의 집합상의 술어이다. D를 도메인 제약 조건의 집합이라 하고, K를 릴레이션 스키마 R의 키 제약 조건의 집합이라 하자. G를 R의 일반 제약 조건이라 하자. D  K가 G를 논리적으로 내포하면 스키마 R은 DKNF이다. Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 예제 account-number 가 9로 시작하는 계좌는 최소 잔고가 2500불인 높은 이자의 특별한 계좌이다. 일반 제약 조건: “ t[account-number]의 첫째 자리가 9이면, t[balance]  2500이다 ” DKNF 설계: Regular-acct-schema = (branch-name, account-number, balance) Special-acct-schema = (branch-name, account-number, balance) Special-acct-schema의 도메인 제약 조건은 각 계좌에 대해 다음을 요구한다. - 계좌 번호 9로 시작한다. - 잔고는 2500 이상이다. Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 PJNF 정의의 DKNF 표현 R = (A1, A2, …, An)을 릴레이션 스키마라 하자. Dom(Ai)는 애트리 뷰트 Ai의 도메인이라 하고, 이들 모든 도메인은 무한하다 하자. 그러면 모든 도메인 제약 조건 D는 Ai  dom(Ai) 형식이다. 일반 제약 조건을 함수적, 다중값 또는 죠인 종속의 집합 G라 하자. F가 G내의 함수적 종속의 집합이라면, 키 제약 조건의 집합 K를   R 형식의 F+내의 그들 당연하지 않은 함수적 종속이라 하자. 스키마 R이 PJNF가 되는 필요 충분 조건은 R이 D, K 및 G에 대해 DKNF인 것이다. Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 데이터베이스 설계의 대안 허상 튜플 - 죠인 계산으로 사라지는 튜플 - r1(R1), r2(R2), …, rn(Rn) 을 릴레이션의 집합이라 하자 - 다음 릴레이션내에 t가 존재하지 않으면, 릴레이션 ri 의 튜플 t는 허상 튜플이다. Ri (r1 r2 … rn) 릴레이션 r1 r2 … rn 을 R1  R2  …  Rn으로 정의된 모집단내의 모든 애트리뷰트를 내포하기 때문에 만능 릴레이션이라 한다. 만능 릴레이션을 분해하는 대신 데이터베이스내에 허상 튜플이 허용되면, 주어진 애트리뷰트의 집합으로 부터의 정규형 스키마의 집합을 합성하는 것이 더 낫다. Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수