Notice
Recent Posts
Recent Comments
Link
«   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
Archives
Today
Total
관리 메뉴

브래의 슬기로운 코딩 생활

데이터베이스 12주차 정리 본문

2-1/데이터베이스

데이터베이스 12주차 정리

김브래 2023. 5. 22. 18:41

이상현상


이상현상의 개념

삭제이상(Deletion Anomly)

투플 삭제 시 같이 저장된 다른 정보까지 연쇄적으로 삭제되는 현상

= 연쇄삭제(Triggered Deletion) 문제 발생

 

삽입이상(Insertion Anomly)

투플 삽입 시 특정 속성에 해당하는 값이 없어 NULL 값을 입력해야 하는 현상

= NULL 값 문제 발생

 

수정이상(Update Anomly)

투플 수정 시 중복된 데이터의 일부만 수정되어 데이터의 불일치  문제가 일어나는 현상

= 불일치(Inconsistency) 문제 발생


함수 종속성


함수 종속성 개념

어떤 속성 A의 값을 알면 다른 속성 B의 값이 유일하게 정해지는 의존 관계를
속성 B는 속성 A에 종속한다 (Dependent) 혹은 속성 A는 속성 B를 결정한다(Determine) 라고 함

 

A → B 로 표기하며, A를 B의 결정자라고 함

 

함수 종속성(FD, Functional Dependency)

릴레이션 R과 R에 속하는 속성의 집합 X, Y가 있을 때, X 각각의 값이 Y의 값 한 개와 대응이 될 때

‘X는 Y를 함수적으로 결정한다’라고 하고 X→Y로 표기함.

 

이때 X를 결정자(Determinant)라고 하고, Y를 종속 속성 (Dependent Attribute)이라고 함.

함수 종속성은 보통 릴레이션 설계 때 속성의 의미로부터 정해짐.

종속관계인 경우 연결하는 선에 ○를, 그렇지 않는 겨우Ⅹ를 표시한다.

함수 종속성 다이어그램 (Functional Dependancy Diagram)

릴레이션의 속성을 직사각형, 속성 간의 종속성을 화살표, 복합 속성의 경우는 직사각형으로 묶어서 그린다.

함수 종속성 규칙(Functional Dependency Rule)

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

함수 종속성과 기본키

- 릴레이션의 함수 종속성을 파악하기 위해서는 우선 기본키를 찾아야 함

- 기본키가 함수 종속성에서 어떤 역할을 하는지 알면 이상현상을 제거하는 정규화 과정을 쉽게 이해할 수 있음


이상현상과 결정자

이상현상은 한 개의 릴레이션에 두 개 이상의 정보가 포함되어 있을 때 나타남

= 기본키가 아니면서 결정자인 속성이 있을 때 발생함

 

밑 릴레이션의 경우 학생 정보(학생번호, 학생이름, 주소, 학과)와 강좌 정보(강좌이름, 강의실)가

한 릴레이션에 포함되어서 이상현상이 나타남 (학과, 학생번호, 강좌이름은 기본키가 아니면서 결정자인 예이다)

•기본키는 (학생번호, 강좌이름)의 복합키다.

•(강좌이름, 강의실)만 따로 보면 '강좌이름'이 이 부분 릴레이션(Sub-relation)의 기본키가 된다.

•(학생번호, 학생이름, 학과, 주소)만 따로 보면 '학생번호'가 이 부분 릴레이션(Sub-relation)의 기본키가 된다.

•(학과, 학과사무실)만 따로 보면 '학과'가 이 부분 릴레이션(Sub-relation)의 기본키가 된다.

최종 분해한 테이블 관계


정규화


정규화 (Normalization)

- 이상현상이 발생하는 릴레이션을 분해하여 이상현상을 없애는 과정

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

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


제 1정규형

릴레이션 R의 모든 속성 값이 원자값을 가지면 제 1정규형이라고 함

 

제 2정규형

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

 

완전 함수 종속(Full Functional Dependency) :
A와 B가 릴레이션 R의 속성이고 A → B 종속성이 성립할 때, B가 A의 속성 전체에 함수 종속하고

부분 집합 속성에 함수 종속하지 않을 경우

 

불완전 함수 종속(Partial Functional Dependency) :
A → B 종속성에서 A의 속성 일부를 제거해도 종속성이 여전히 성립하는 경우

 

제 3정규형

릴레이션 R이 제 2정규형이고 기본키가 아닌 속성이 기본키에

비이행적(Non-transitive)으로 종속할 때(직접 종속) 제 3정규형이라고 함

 

이행적 종속이란

A → B, B → C가 성립할 때 A → C가 성립되는 함수 종속성

 

BCNF 정규형

- 릴레이션 R에서 함수 종속성 X → Y가 성립할 때 모든 결정자 X가 후보키이면 BCNF 정규형이라고 함


무손실 분해

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

R1▷◁(조인) R2 = R이면 무손실 분해(Lossless-Join Decomposition)라고 함


정규화 정리

대부분의 릴레이션은 BCNF까지 정규화하면 실제적인 이상현상이 없어지기 때문에 보통 BCNF까지 정규화를 진행함.

'2-1 > 데이터베이스' 카테고리의 다른 글

데이터베이스 14주차 정리  (0) 2023.06.04
데이터베이스 13주차 정리  (2) 2023.06.03
데이터베이스 11주차 정리  (0) 2023.05.15
데이터베이스 10주차 정리  (0) 2023.05.08
데이터베이스 7주차 정리  (0) 2023.04.17