Download presentation
Presentation is loading. Please wait.
1
관계 데이터 구조
2
속성과 도메인 테이블 ≒ 릴레이션(relation) 도메인(domain) 속성(attribute)
속성이 취할 수 있는 값(value)들의 집합 같은 도메인의 값들끼리 비교가 허용됨 속성(attribute) 도메인의 역할 이름 속성 이름들은 모두 달라야 함 단순 도메인 (simple domain) → 단순 속성 : 원자값 복합 도메인 (composite domain) → 복합 속성 : 복합값 연, 월, 일 ⇒ 날짜:<연,월,일>
3
▶ 릴레이션(Relation) R ⅰ. 수학적 정의 ⅱ. 개념적 정의 릴레이션 R : 카티션 프러덕트의 부분집합
R ⊆ D1 × D2 ×...× Dn 즉 n-튜플 <v1, v2, ..., vn>의 집합 단 Di : i번째 도메인 vi ∈ Di, i = 1,2,..,n n : R의 차수(degree :일차, 이차, 삼차, ..., n차) 튜플의 수 : 카디널리티(cardinality) ⅱ. 개념적 정의 릴레이션 스키마 + 릴레이션 인스턴스 과목번호 (CNO) 학번 x 과목번호 (SNO x CNO) 학번 (SNO) <100,C412> <100,C123> <100,C312> <200,C412> <200,C123> <200,C312> C412 C123 C312 100 200
4
▶ 릴레이션 스키마 (relation schema)
릴레이션 내포 (Intension) 릴레이션 스키마 릴레이션 이름 + 속성 이름 R(A1, A2, ..., An), Ai ⇔ Di 정적 성질 : 시간에 무관
5
▶ 릴레이션 인스턴스 (relation instance)
릴레이션 외연 (Extension) 어느 한 시점에 릴레이션 R이 포함하고 있는 튜플들의 집합 < v1, v2, ..., vn > vi ∈ Di {(attr1=v1, attr2=v2, ···, attrn=vn )} 동적 성질 삽입, 삭제, 갱신 시간에 따라 변함
6
릴레이션 속성 학생 릴레이션 스키마 학번 이름 학년 학과 릴레이션 100 나연묵 4 컴퓨터 200 이찬영 3 전기 릴레이션
인스턴스 300 정기태 1 컴퓨터 400 송병호 4 컴퓨터 500 박종화 2 산공 튜플 도메인 integer DSNO integer DYEAR char(6) NAME char(10) DEPT
7
릴레이션의 특성 (1) ⅰ. 튜플의 유일성 ⅱ. 튜플들의 무순서 ⅲ. 속성들의 무순서
릴레이션 = 서로 다른 튜플들의 "집합" ⅱ. 튜플들의 무순서 릴레이션 : 추상적 개념(abstract concept) 테이블 : 구체적 표현(concrete representation) ⅲ. 속성들의 무순서 릴레이션 스키마 → 속성들의 "집합" 튜플 : <attr:value>쌍의 집합
8
릴레이션의 특성 (2) ⅳ. 속성의 원자값(atomic value) (분해 불가능)
정규화 관계 (normalized relation) 비정규화 관계는 분해로 정규화 동등한 의미 유지 널값은 원자값 (null value ; unknown, inapplicable) 단순 도메인 복합 도메인 : 값을 하나의 단위로 취급
9
관계 데이터베이스 관계 데이터베이스 관계 데이터베이스 스키마 = 릴레이션 스키마 집합
데이터베이스를 시간에 따라 그 내용(상태)이 변할 수 있는 테이블 형태로 표현 관계 데이터베이스 스키마 = 릴레이션 스키마 집합 관계 데이터 모델 ⇔ 프로그래밍 시스템 릴레이션 ⇔ 화일 튜플 ⇔ 레코드 (어커런스) 속성 ⇔ 필드
10
example 대학(University) 관계 데이터베이스 학번 (SNO) 이름 (SNANE) 학년 (YEAR) 학과
(DEPT) 100 나 연 묵 4 컴퓨터 200 이 찬 영 3 전기 300 정 기 태 1 400 송 병 호 500 박 종 화 2 산공 학생 (STUDENT) 과목번호 (CNO) 과목이름 (CNANE) 학점 (CREDIT) 학과 (DEPT) C123 프로그래밍 3 컴퓨터 C312 자료 구조 C324 파일 처리 C413 데이터 베이스 C412 반 도 체 전자 담당교수 (PRNAME) 김성기 황수찬 이규철 이석호 홍봉희 과목 (COURSE)
11
example 대학(University) 관계 데이터베이스(cont’d) 100 200 300 400 500 C413
학번 (SNO) 100 200 300 400 500 과목번호 (CNO) C413 E412 C123 C312 C324 성적 (GRADE) A B C 중간성적 (MIDTERM) 90 95 85 75 80 65 기말성적 (FINAL) 등록 (ENROL)
12
관계 데이터 제약
13
기본키(Primary key) 키(key) 후보키(candidate key) 튜플을 유일하게 식별할 수 있는 속성 집합
릴레이션 R(A1, A2, ..., An)에 대한 속성 집합 A = { A1, A2, ..., An }, K = { Ai , Aj , ..., Ak }에 대하여, K A 인 K가 아래 성질을 만족하면 후보키이다. 유일성(uniqueness) K (= { Ai , Aj , ..., Ak }) 의 값(< Vi , Vj , ..., Vk >)은 유일하다. 최소성(minimality) K는 튜플을 유일하게 식별하기 위해 필요한 최소의 속성으로 구성 된다.
14
기본키 (2) 슈퍼키 (super key) 기본키 (primary key) 대체키 (alternate key)
유일성(uniqueness)은 만족하지만 최소성(minimality)을 보장하지는 않는 속성의 집합 기본키 (primary key) 후보키(candidate key)중 데이터베이스 설계자가 선정하는 하나의 키 대체키 (alternate key) 후보키중에 기본키를 제외한 나머지 후보키
15
외래키(Foreign key) 외래키(foreign key)
릴레이션 R1에 속한 속성 FK가 릴레이션 R2의 기본키일 때 FK는 R1의 외래키이다. (FK의 도메인) = (R2의 기본키의 도메인) FK의 값은 R2에 존재하는 값이거나 null이다. R1과 R2가 반드시 다른 릴레이션일 필요는 없다. R1을 참조 릴레이션(referencing relation), R2를 참조된 릴레이션(referenced relation)이라 한다.
16
외래키 (2) R1 R2인 경우 R1 = R2인 경우 교수 (교수번호,교수이름,학과번호,직급)
학과 (학과번호,학과이름,학과장교수번호,학생수) PK FK 학생 (학번,이름,학년,학과) 과목 (과목번호,과목이름,학점,학과,담당교수) 등록 (학번,과목번호,성적) FK FK R1 = R2인 경우 교수1 (교수번호,교수이름,학과번호,학과장교수번호) PK FK
17
무결성 제약 null 값 개체 무결성(entity integrity) 참조 무결성(referential integrity)
모르는 값(unknown value) 해당 없음(inapplicable) 무결성 제약에서는 공백도 null로 해석 개체 무결성(entity integrity) 기본 키는 null값을 가질 수 없다. 참조 무결성(referential integrity) 외래키의 값은 참조된 릴레이션의 기본키 값과 같거나 null이다.
18
무결성 제약 (2) 데이터베이스의 상태 (database state) 어느 시점에 데이터베이스에 저장된 데이터를 의미
DBMS는 데이터베이스 상태의 변화에도 항상 무결성 제약을 만족 시켜야 한다.
19
관계 데이터 연산
20
관계 데이터 연산(시스템) 관계 데이터 언어(사용자) 관계 해석과 관계 대수는 표현이나 기능면에서 동등
ⅰ. 관계 대수(relational algebra) 절차식언어 : how, what ⅱ. 관계해석(relational calculus) 비절차식언어 : what 튜플 관계해석 도메인 관계해석 관계 해석과 관계 대수는 표현이나 기능면에서 동등
21
관계대수(Relational Algebra)
릴레이션 조작을 위한 연산의 집합 폐쇄성질 (closure property) 피연산자와 연산 결과가 모두 릴레이션 중첩(nested)된 수식의 표현이 가능 구성 릴레이션 : 튜플의 집합 일반 집합 연산자 : 합집합 교집합 차집합 카티션 프로덕트 순수 관계 연산자 : 실렉트 프로젝트 조인 디비젼
22
▶ 일반 집합 연산자(1) ⅰ. 합집합 (union,∪) ⅱ. 교집합 (intersection,∩)
R∪S = { t | t∈R ∨ t∈S } |R∪S| ≤ |R| + |S| ⅱ. 교집합 (intersection,∩) R∩S = { t | t∈R ∧ t∈S } |R∩S| ≤ min{ |R|, |S| } ⅲ. 차집합 (difference,-) RS = { t | t∈R ∧ t S } |RS| ≤ |R| ⅳ. 카티션 프로덕트 (cartesian product,×) R×S = { r·s | r∈R ∧ s∈S } |R×S| = |R|×|S| 차수(degree) = R의 차수 + S의 차수 · : 접속(concatenation)
23
▶ 일반 집합 연산자(2) Note 합병가능(union-compatible)한 릴레이션 ∪, ∩, - 연산의 피연산자들은
ⅰ. 차수가 같아야 함 ⅱ. 대응 속성별로 도메인이 같아야 함 ∪, ∩, × 연산은 결합적(associative)임 A∪B∪C = (A∪B)∪C = A∪(B∪C) ∪, ∩, × 연산은 교환적(commutative)임 A∪B = B∪A
24
▶ 순수 관계 연산자 릴레이션 : R(X) = R(A1, ... , An)
R의 튜플 : r = <a1, ... , an> ∈ R 튜플 r에 대한 속성 Ai의 값 r.Ai 또는 ai r.Ai = r[Ai] = ai
25
실렉트 (SELECT, )(1) A, B가 릴레이션 R의 속성일 때, Av(R) = { r | r∈R ∧ r.Aθv }
AB(R) = { r | r∈R ∧ r.Aθr.B } 조건식(predicate) 단, θ(theta) = { <, >, ≤, ≥, =, ≠ } v : 상수 선택 조건을 만족하는 릴레이션의 수평적 부분집합 (horizontal subset)
26
실렉트 (2) example 조건2(조건1(R)) = 조건1(조건2(R)) = 조건1 조건2 (R)
학과 = '컴퓨터' (학생) 학번 = 300 과목번호='C312'(등록) 중간성적<기말성적 (등록) 조건2(조건1(R)) = 조건1(조건2(R)) = 조건1 조건2 (R)
27
프로젝트 (PROJECT, ) 릴레이션 R(X)에서 Y={B1,B2, … ,Bm}이고 Y⊆X 이면,
Y(R)={ <r.B1, ... , r.Bm> | r∈R } example 학생(학번,이름,학년,학과)에서 이름,학과(학생) 릴레이션의 수직적 부분집합(vertical subset) 생성된 중복 튜플은 제거
28
조인 (JOIN, )(1) 세타조인 (theta-join) example 동등조인 (equi-join)
R(X), S(Y), A∈X, B∈Y 에 대하여 R AθB S = { r · s | r∈R ∧ s∈S ∧ ( r.Aθs.B) } 결과 차수 = R의 차수 + S의 차수 example 학생 학번=학번 등록 동등조인 (equi-join) 세타조인에서 θ가 "="인 경우 R A=BS = { r·s | r∈R ∧ s∈S ∧ ( r.A=s.B ) }
29
조인 (2) 자연조인 (natural join, N) R(X), S(Y)의 조인 속성 Z(=X∩Y)라 하면 R NS
= {<r · s>[X∪Y] | r∈R∧s∈S∧r[Z]=s[Z] } = X∪Y(Z=Z (R×S)) = X∪Y(R Z=ZS) 즉 동등조인의 결과 릴레이션에서 속성의 중복 제거함
30
디비젼 (DIVISION, ÷)(1) 릴레이션 R(X), S(Y) 에 대하여 Y X이고 X-Y=Z이면 R(X)=R(Z,Y)
R÷S ={ t | t∈ Z(R) ∧ t · s∈R for all s∈S }
31
디비젼(2) example 학과목(SC) 과목1(C1) 과목2(C2) 과목3(C3) 학번 (SNO) 과목번호 (CNO) 100
200 C123 300 C312 C324 400 500 과목번호 (CNO) C413 C312 C413 과목번호 (CNO) 과목번호 (CNO) C312 C413 E412 SC ÷ C1 SC ÷ C2 SC ÷ C3 학번 (SNO) 100 300 400 학번 (SNO) 300 400 학번 (SNO) 400
32
작명 연산 (RENAME, ρ) 중간 결과 릴레이션에 이름을 붙이거나 속성 이름을 변경할 때 사용 ρS(E)
ρS(B1,B2, … ,Bm )(E) 관계 대수식 E의 결과 릴레이션의 이름을 S로 하면서 속성 이름을 B1,B2, … ,Bm 으로 지정
33
▶ 근원 연산과 복합 연산 근원연산 (primitive operations) 복합연산 (composite operations)
합집합, 차집합, 카티션 프로덕트, 프로젝트, 실렉트 복합연산 (composite operations) 교집합, 조인, 디비젼 R∩S = R (RS) = S (SR) = (R∪S) ( (RS) ∪ (SR) ) R AθB S = AθB (R×S) R(Z,Y)÷S(Y)= R[Z] - ((R[Z]×S) - R)[Z]
34
▶ 관계 대수의 확장(1) ⅰ. 세미조인 (Semijoin, ) R(X), S(Y)의 조인 어트리뷰트를 X∩Y라 하면
R S = R N(X∩Y(S)) =X(R NS) S와 자연조인을 할 수 있는 R의 튜플 특징 R S ≠ S R R NS = (R S) NS = (S R) N R
35
자연조인과 세미조인 R S X∩Y(S) A B C B C D B C a1 b1 c1 b1 c1 d1 b1 c1 a2 b1
N R S N N R S A B C D A B C a1 b1 c1 d1 N a1 b1 c1 a1 b1 c1 d2 a2 b1 c1 a2 b1 c1 d1 a4 b2 c3 a2 b1 c1 d2 (세미조인) a4 b2 c3 d3 (자연조인)
36
▶ 관계대수의 확장(2) ⅱ. 외부조인 (Outerjoin, +)
조인시 한 릴레이션에 있는 튜플이 조인할 상대 릴레이션에 대응되는 튜플이 없을 경우, 상대를 널(null) 튜플로 만들어 결과 릴레이션에 포함 두 조인 릴레이션의 모든 튜플들이 결과 릴레이션에 포함됨
37
자연조인과 외부조인 R S A B C B C D a1 b1 c1 b1 c1 d1 a2 b1 c1 b1 c1 d2 a3 b1
+ R S + N A B C D R S N a1 b1 c1 d1 A B C D a1 b1 c1 d2 a1 b1 c1 d1 a2 b1 c1 d1 a1 b1 c1 d2 a2 b1 c1 d2 a2 b1 c1 d1 a3 b1 c2 a2 b1 c1 d2 a4 b2 c3 d3 a4 b2 c3 d3 b3 c3 d3 (자연조인) (외부조인)
38
▶ 관계대수의 확장(3) ⅲ. 외부 합집합 (Outer-union, ∪+)
합병가능하지 않은(부분적으로 합병 가능한) 두 릴레이션을 차수를 확장시켜 합집합으로 만듬
39
외부 합집합 R S A B C B C D a1 b1 c1 b1 c1 d1 a2 b1 c1 b1 c1 d2 a3 b1 c2
+ U A B C D a1 b1 c1 a2 b1 c1 a3 b1 c2 a4 b2 c3 b1 c1 d1 b1 c1 d2 b2 c2 d3
40
▶ 관계대수의 확장(4) ⅳ. 집단 연산 AVG성적(등록) 등록 릴레이션에 있는 성적 속성 값들에 대해 평균값 계산
GROUP학년(학생) 학생 릴레이션의 튜플들을 학년 값에 따라 그룹 짓게 함 일반 형식 : GAFB(E) E : 관계 대수식 F : 집단 함수 ( SUM, AVG, MAX, MIN, COUNT) B : 집단 함수의 적용 대상 속성 A : 그룹 함수가 적용될 속성
41
▶ 관계대수의 질의문 표현(1) 모든 학생의 이름과 학과를 보여라.
이름,학과 (학생) 과목번호가 C413인 과목에 등록한 학생의 이름과 성적은 무엇인가? 이름,성적(과목번호='C413' (학생 N등록)) ‘파일처리' 과목을 가르치는 교수의 이름은? 담당교수(과목이름=‘파일처리'(과목))
42
▶ 관계대수의 질의문 표현(2) 모든 과목에 수강하고 있는 학생의 학번, 이름은?
학번,이름((학번,과목번호(등록) ÷ 과목번호(과목)) N학생) 학번이 600, 이름이 '김명호', 학년이 4, 학과가 컴퓨터인 학생을 삽입하라. 학생∪{<600, ‘김명호’, 4, ‘컴퓨터’>} 과목 '데이터베이스'를 삭제하라. 과목 - (과목이름='데이터베이스'(과목))
43
데이터 종속성과 정규화
44
데이터의 논리적 표현 관계 스키마(relational schema)의 설계
관계 모델을 이용하여 어떻게 실세계를 정확히 표현할 것인가? i. 속성, 개체, 관계를 파악 ⅱ. 관련된 속성들을 릴레이션으로 묶음 데이터 종속성 : 속성들간의 관계 효율적인 데이터 조작 데이터의 중복성 iii. 변칙적 성질의 예방 이상(anomaly)
45
▶ 이상 (anomaly) example : 수강 릴레이션 기본키 : 학번, 과목 번호 학번 과목번호 성적 학년 100
C413 A 4 E412 200 C123 B 3 300 C312 1 C324 C 400 C412 500 2 수강 기본키 : 학번, 과목 번호
46
▶ 이상(2) 삭제이상(deletion anomaly) 삽입이상(insertion anomaly)
200번 학생이 'C123'의 등록을 취소 ⇒ 3학년이라는 정보도 함께 삭제됨 연쇄 삭제(triggered deletion)에 의한 정보의 손실(loss of information) 삽입이상(insertion anomaly) 600번 학생이 2학년이라는 사실을 삽입 ⇒ 어떤 과목을 등록하지 않는 한 삽입이 불가능 (∵ 과목 번호가 기본 키) 원하지 않는 정보의 강제 삽입 갱신이상(update anomaly) 400번 학생의 학년을 4에서 3으로 변경 ⇒ 학번이 400인 4개의 튜플 모두를 갱신시켜야 함 중복데이터의 일부 갱신으로 정보의 모순성(inconsistency) 발생
47
▶ 이상의 원인과 해결책 이상의 원인 이상의 해결 속성들 간에 존재하는 여러 종속관계를 하나의 릴레이션에 표현
속성들 간의 종속관계를 분석하여 여러개의 릴레이션으로 분해(decomposition) ⇒ 정규화(normalization)
48
▶ 스키마 설계와 변환 스키마 설계 : 데이터베이스의 논리적 설계 스키마 변환의 원리
① 속성들과 이들의 제약 조건 (종속성)들을 수집 ② 수집된 결과를 명시된 제약 조건에 따라 여러 개의 릴레이션으로 분할 ⇒ 스키마 변환 (schema transformation) 스키마 변환의 원리 ① 정보의 무손실 ② 데이터의 중복성 감소 ③ 분리의 원칙
49
함수 종속(FD) 정의 어떤 릴레이션 R에서, 속성 X의 값 각각에 대해 속성 Y의 값이 하나만 연관
속성 Y는 속성 X에 함수 종속 X Y 속성 X는 Y를 (함수적으로) 결정 즉, X는 Y의 결정자(determinant) X, Y는 복합 속성일 수 있음
50
함수 종속 다이어그램 수강 릴레이션 ( 기본키: 학번, 과목번호) 학년 학번 성적 과목번호 (학번, 과목번호) 성적
학번 학년
51
▶ 완전 함수 종속과 부분 함수 종속 복합 속성 X에 대하여 X Y가 성립할 때
완전 함수 종속 (full functional dependency) X’ X 이고 X’ Y 를 만족하는 속성 X'이 존재하지 않음 부분 함수 종속 (partial functional dependency) X’ X 이고 X’ Y 를 만족하는 속성 X'이 존재함
52
▶ 완전 함수 종속과 부분 함수 종속(2) 예: 수강 릴레이션의 함수 종속 학번 학년 (학번,과목번호) 성적
(학년)은 (학번)에 완전 함수 종속, 그러나 (학번,과목번호)에는 부분 함수 종속, (성적)은 (학번,과목번호)에 완전 함수 종속
53
기본 정규형 정규형(Normal Form) 정규화(Normalization)의 원칙
어떤 일련의 제약 조건을 만족하는 릴레이션 정규화(Normalization)의 원칙 정규화 = 스키마 변환 (S S') ① 무손실 표현 같은 의미의 정보 유지 그러나 더 바람직한 구조 ② 데이터의 중복성 감소 ③ 분리의 원칙 릴레이션 각각에 대해 독립적 조작이 가능
54
▶ 제1정규형 (1NF) 정의 예 : 수강지도 릴레이션 모든 도메인이 원자값(atomic value)만으로 된 릴레이션
예 : 수강지도 릴레이션 수강지도 (학번,지도교수,학과,과목번호,성적) 기본키 : (학번,과목번호) 함수 종속 : (학번,과목번호) 성적 학번 지도교수 학번 학과 지도교수 학과 학번 과목번호 성적 학과 지도교수
55
▶ 제1정규형(2) 학번 과목번호 성적 학과 100 C413 A 컴퓨터 E412 200 C123 B 전기 300 C312
400 C412 수강 지도 지도교수 P1 P2 P3
56
▶ 제1정규형(3) 1NF에서의 이상 ① 삽입이상 500번 학생의 지도교수가 P4라는 사실의 삽입
=> 어떤 교과목을 등록하지 않는 한 삽입 불가능 ② 삭제이상 200번 학생이 C123의 등록을 취소하여 이 튜플을 삭제할 경우 지도교수가 P2라는 정보까지 손실됨 ③ 갱신이상 400번 학생의 지도교수를 P1에서 P3로 변경할 경우 학번이 400인 4개 튜플의 지도교수 값을 P3로 변경해야 함
57
▶ 제1정규형(4) 1NF 이상의 원인 1NF 이상의 해결 기본키에 부분 함수 종속된 속성이 존재
프로젝션으로 릴레이션을 분해(부분 함수 종속을 제거) ⇒ 2NF
58
▶ 제2정규형 (2NF) 정의 무손실 분해(nonloss decomposition) 1NF 2NF 프로젝션 조인
프로젝션하여 분해된 릴레이션들은 자연 죠인을 통해 원래의 릴레이션으로 복귀 가능 원래의 릴레이션에서 얻을 수 있는 정보는 분해된 릴레이션들로 부터도 얻을 수 있음 그러나, 그 역은 성립하지 않음 (500번 학생의 지도교수가 P4라는 정보는 원래의 릴레이션에서 표현할 수 없음) 1NF 2NF 프로젝션 조인
59
▶ 제2정규형(3) 예 : 수강지도 ⇒ 지도, 수강 릴레이션 지도 (학번,지도교수,학과) 학번 지도교수 학번 학과
예 : 수강지도 ⇒ 지도, 수강 릴레이션 지도 (학번,지도교수,학과) 학번 지도교수 학번 학과 지도교수 학과 수강 (학번,과목번호,성적) (학번,과목번호) 성적 학번 과목번호 학과 지도교수 성적
60
▶ 제2정규형(4) 학번 학과 100 컴퓨터 200 전기 300 400 지도 지도교수 P1 P2 P3 과목번호 성적 C413
A E412 C123 B C312 C324 C C412 학번 100 200 300 400 수강
61
▶ 제2정규형(5) 2NF(지도 릴레이션)에서의 이상 2NF 이상의 원인 ① 삽입이상
어떤 지도교수가 특정 학과에 속한다는 사실의 삽입 불가능 ② 삭제이상 300번 학생의 튜플을 삭제하면 지도교수 P3가 컴퓨터공학과에 속한다는 정보 손실 ③ 갱신이상 지도교수 P1의 소속이 컴퓨터공학과에서 전자과로 변경된다면 100과 400번 학생의 튜플을 모두 변경하여야 함 2NF 이상의 원인 이행적 함수 종속이 존재
62
▶ 제2정규형(6) ☞ Note : 2NF 이상의 해결 이행적 함수 종속 (TD, Transitive Dependency)
A B와 B C ⇒ A C (즉, 속성 C는 속성 A에 이행적 함수 종속) 2NF 이상의 해결 프로젝션으로 릴레이션 분해(이행적 함수 종속을 제거) ⇒ 3NF
63
▶ 제3정규형 (3NF) 정의(3NF) 무손실 분해 2NF이고, 키가 아닌 모든 속성들은 기본키에 이행적 함수 종속되지 않음
원래의 릴레이션에서 얻을 수 있는 정보는 분해된 릴레이션들로부터도 얻을 수 있으나 그 역은 성립하지 않음 (지도교수 P4가 수학과에 속한다는 정보의 표현) 2NF 3NF 프로젝션 조인
64
▶ 제3정규형(2) 예 : 지도 ⇒ 학생지도, 지도교수학과 릴레이션 학생지도 (학번,지도교수) 학번 지도교수
예 : 지도 ⇒ 학생지도, 지도교수학과 릴레이션 학생지도 (학번,지도교수) 학번 지도교수 지도교수학과 (지도교수,학과) 지도교수 학과 지도교수 학과 학번 학번 100 200 300 400 학생지도 지도교수 P1 P2 P3 학과 컴퓨터 전기 지도교수 P1 P2 P3 지도교수학과
65
정규형들 간의 관계 비정규 릴레이션 원자값이 아닌 도메인을 분해 1NF 부분 함수종속 제거 2NF 이행 함수 종속 제거
Similar presentations