티스토리 뷰

[한빛아카데미] 오라클로 배우는 데이터베이스 개론과 실습 책으로 학습한 내용을 정리한 것입니다.

 

* 이상현상(Anomaly)

- 테이블에 투플을 삽입할 때 부득이하게 NULL값이 입력되거나, 삭제 시 연쇄삭제 현상이 발생하거나, 수정 시 데이터의 일관성이 훼손되는 현상

- 삭제이상(Deletion Anomaly) : 투플 삭제 시 같이 저장된 다른 정보까지 연쇄적으로 삭제되는 현상 -> 연쇄삭제 문제 발생

- 삽입이상(Insertion Aomaly) : 투플 삽입 시 특정 속성에 해당하는 값이 없어 NULL값을 입력해야 하는 현상 -> NULL값 문제 발생

- 수정이상(Update Anomaly) : 투플 수정 시 중복된 데이터의 일부만 수정되어 데이터의 불일치 문제 발생 현상 -> 불일치 문제 발생

 

* 함수 종속성

- 종속성(Dependent) : 어떤 속성 A의 값을 알면 다른 속성 B의 값이 유일하게 정해지는 의존 관계

- A -> B로 표기 하며, A는 B의 결정자라고 함

 

[학생수강성적 릴레이션] 

출처 : https://mangkyu.tistory.com/28

 

- 종속관계 예시 : 학생번호 -> 학생이름, 학생번호 -> 주소, 강좌이름 -> 강의실, 학과 -> 학과사무실

- 종속하지 않는 예 : 학생이름 -> 강좌이름, 학과 -> 학생번호, 학생이름 -> 학과 (동명이인)

- 함수 종속성을 판단할 때는 릴레이션의 현재 인스턴스(데이터)만을 가지고 판단하는 것이 아닌 속성이 갖는 의미로 판단

 

* 함수 종속성 다이어그램

- 함수 종속성을 나타내는 표기법

- 릴레이션의 속성을 직사각형, 속성 간의 함수 종속성을 화살표로 나타내며, 복합 속성의 경우에는 직사각형으로 묶어 그림

- 종속관계

 1) 학생번호 -> 학생이름

 2) 학생번호 -> 주소

 3) 강좌이름 -> 강의실

 4) 학과 -> 학과사무실

 5) 강좌이름 -> 강의실

 6) (학생번호, 강좌이름) -> 성적

 

[위 종속 관계를 다이어그램으로 표현]

출처 : https://mangkyu.tistory.com/28

 

* 함수 종속성 규칙

- X, Y, Z가 릴레이션 R에 포함된 속성의 집합이라고 할 때, 함수 종속성에 관한 다음과 같은 규칙이 성립함

- 부분집합(Subset) 규칙 : if Y ⊆ X, then X -> Y

- 증가(Augmentation) 규칙 : if X -> Y, then XZ -> YZ

- 이행(Transitivity) 규칙 : if X -> Y and Y -> Z, then X -> Z

- 결합(Union) 규칙 : if X -> Y and X -> Z, then X -> YZ

- 분해(Decomposition) 규칙 : if X -> YZ, then X -> Y and X -> Z

- 유사이행(Pseudotransitivity) 규칙 : if X -> Y and WY -> Z, then WX -> Z

출처 : https://mangkyu.tistory.com/28

 

* 함수 종속성과 기본키

- 릴레이션 R(K, A1, A2, A3, ... , An)에서 K가 기본키라면, K -> R 성립

- 기본키 : 릴레이션의 모든 속성의 결정자

 

[학생 릴레이션]

출처 : https://mangkyu.tistory.com/28

 

- 이름이 같은 학생이 없다고 가정하면, '이름 -> 학과, 이름 -> 주소, 이름 -> 취득학점'이므로 '이름 -> 이름, 학과, 주소, 취득학점' 성립 

- 즉 이름 속성이 학생 릴레이션의 전체를 결정함

 

* 이상현상과 결정자(Anomaly & Determinant)

- 이상현상 : 기본키가 아니면서 결정자인 속성(비후보키 결정자 속성)이 있을 때 발생함

- 결정자 : 어떤 속성의 값이 다른 속성 값을 고유하게 결정할 수 있으며, 주어진 릴레이션에서 다른 속성을 고유하게 결정하는 하나 이상의 속성을 의미함

 

* 정규화(Nomalization)
- 이상현상이 발생하는 릴레이션을 분해하여 이상현상을 없애는 과정

- 이상현상이 있는 릴레이션은 이상현상을 일으키는 함수 종속성의 유형에 따라 등급을 구분할 수 있음

- 릴레이션은 정규형이라는 개념으로 구분하며, 정규형이 높을수록 이상현상을 줄어듦

 

* 정규화 과정

- 대부분의 정규화 과정을 BCNF 릴레이션에서 이상현상이 없어짐

출처 : https://mangkyu.tistory.com/28

 

* 제 1정규형 

- 릴레이션의 속성 값이 원자값이어야 한다는 조건

- 릴레이션 R의 모든 속성 값이 원자값을 가질 때

 

[제 1정규형 변환 - 속성 값이 원자값을 갖도록 분해]

- 고객취미들(이름, 취미들) -> 고객취미(이름, 취미)

출처 : https://mangkyu.tistory.com/28

 

* 제 2정규형

- 릴레이션의 기본키가 복합키일 때, 복합키의 일부분이 다른 속성의 결정자인지 여부를 판단하는 것

- 릴레이션 R이 제 1정규형이고 기본키가 아닌 속성이 기본키에 완전 함수 종속일 때 

- 완전 함수 종속(Full Functional Dependency) : A와 B가 릴레이션 R의 속성이고 A -> B 종속성이 성립할 때, B가 A의 속성 전체에 함수 종속하고 부분 집합 속성에 함수 종속하지 않을 경우

 

[제 2정규형 변환 - 수강강좌 릴레이션을 수강, 강의실 릴레이션으로 분해]

- 수강강좌(학생번호, 강좌이름, 강의실, 성적) -> 수강(학생번호, 강좌이름, 성적), 강의실(강좌이름, 강의실)

출처 : https://mangkyu.tistory.com/28
출처 : https://mangkyu.tistory.com/28

 

* 제 3정규형

- 속성들이 이행적(Transitive)으로 종속되어 있는지 여부를 판단하는 것

- 릴레이션 R이 제 2정규형이고 기본키가 아닌 속성이 기본키에 비이행적으로 종속할 때(직접 종속)

- 이행적 종속 : A -> B, B -> C가 성립할 때 A -> C가 성립되는 함수 종속성

 

[제 3정규형 변환 - 계절학기 릴레이션을 계절수강, 수강료 릴레이션으로 분해]

- 계절학기(학생번호, 강좌이름, 수강료) -> 계절수강(학생번호, 강좌이름), 수강료(강좌이름, 수강료)

출처 : https://mangkyu.tistory.com/28

 

* BCNF(Boyce Codd Normal Form)

- 릴레이션에 존재하는 함수 종속성에서 모든 결정자가 후보키

- 릴레이션 R에서 함수 종속성 X -> Y가 성립할 때 모든 결정자 X가 후보키

 

[특강수강 릴레이션]

출처 : https://mangkyu.tistory.com/28

 

[BCNF 정규형으로 변환 - 특강수강 릴레이션을 특강신청, 특강교수 릴레이션으로 분해]

- 특강수강(학생번호, 특강이름, 교수) -> 특강신청(학생번호, 교수), 특강교수(특강이름, 교수)

출처 : https://mangkyu.tistory.com/28

 

* 무손실 분해(Lossless-join Decomposition)

- 릴레이션 R을 분해하여 두 개의 릴레이션 R1과 R2를 만들었을 때, 다시 조인을 하면 원래 릴레이션 R이 만들어진다는 의미

- 릴레이션 R을 릴레이션 R1과 R2로 분해할 때, R1R2 = R

- 조건 : R1 ∩ R2 -> R1 혹은 R1 ∩ R2 -> R2 중 하나를 만족해야 함

 

[특강수강 릴레이션]

출처 : https://mangkyu.tistory.com/28

 

[특수수강 릴레이션을 R3, R4 릴레이션으로 분해]

출처 : https://mangkyu.tistory.com/28

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
글 보관함