Presentation is loading. Please wait.

Presentation is loading. Please wait.

관계 데이터 구조.

Similar presentations


Presentation on theme: "관계 데이터 구조."— Presentation transcript:

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,-) R­S = { t | t∈R ∧ t  S } |R­S| ≤ |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의 속성일 때, Av(R) = { r | r∈R ∧ r.Aθv }
AB(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 ­ (R­S) = S ­ (S­R) = (R∪S) ­ ( (R­S) ∪ (S­R) ) 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 이행 함수 종속 제거


Download ppt "관계 데이터 구조."

Similar presentations


Ads by Google