* 함수적 종속
: 무결성 제약의 한 종류 , 하나의 테이블 내에서 필드들 간의 관계로 정의
테이블 R에서 필드 X의 값이 동일한 임의의 레코드에 대해 필드 Y의 값도 동일하다면 "Y는 X에 함수적 종속된다"라고 하며, X: 결정자, Y: 종속자, X->Y라고 표현
"Y는 X에 함수적으로 종속된다" = "X는 Y를 함수적으로 결정한다"
(X가 결정되면 Y도 결정되는 경우)
* 함수적 종속의 특성
1. 포함규칙
테이블 R의 필드집합 X,Y에 대해 X)Y(X가 Y를 포함하면) 이면 X->Y가 항상 성립한다
2. 분해규칙
테이블 R의 필드집합 X,Y,Z에 대해 X->(Y,Z)이면 X->Y, X->Z가 각각 항상 성립한다.
3. 합성규칙
테이블 R의 필드집합 X,Y,Z에 대해 X->Y, Y->Z가 성립하면 X->(Y,Z)도 성립한다.
4. 이행규칙
테이블 R의 필드집합 X,Y,Z에 대해 X->Y, Y->Z가 성립하면 X->Z도 성립한다.
* 키와 함수적 종속의 관계
테이블 R에서 필드 K가 수퍼키이면, K->R이 성립한다.
여기서 R은 테이블 R에 포함된 모든 필드들의 집합을 의미한다.
(단, 중복된 레코드가 없어야 함)
결정자가 기본키 일 경우 함수적 종속은 항상 만족, 아닌 경우를 위해 정규화
* 데이터 중복의 문제점
1. 삽입 이상 : 어떠한 데이터를 저장하려고 할 때 저장할 수 없거나 원하지 않는 데이터를 삽입해야만 하는 현상
2. 삭제 이상 : 하나의 사실을 삭제할 경우 삭제되지 말아야 할 정보까지 동시에 삭제되는 현상
3. 수정 이상 : 중복된 정보의 일부만을 수정하여 정보의 불일치가 발생하는 현상
* 정규화
: 데이터 중복의 제거 -> 스키마를 분해
* 정규형
: 각 단계별 정규화 과정을 통해 분해된 테이블들
(정규형의 차수가 높아질수록 더 많은 제약)
1. 1차 정규형
테이블에 있는 모든 도메인들이 원자값으로만 구성
2. 2차 정규형
부분종속(기본키의 일부가 기본키가 아닌 필드를 함수적으로 결정) 문제 해결
키가 아닌 모든 필드가 키에 대해 함수적으로 종속되며, 키의 부분 집합이 결정자가 되는 부분에서 부분 종속 존재 x
즉, 하나의 키로 필드 정의되면 2차 정규형임 (부분종속은 키가 복합키여야 일어나므로)
+) 테이블 분해 조건
1) 종속성 보존 분해 : 함수적 종속 유지
2) 무손실 조인 분해 : 자연조인 해도 손실 없어야 함
조건: 반드시 공통 필드가 있어야 함, 그 공통필드가 둘 중 하나 테이블의 모든 필드를 함수적 결정해야 함
<-> 손실 조인 분해: 원래 있던 레코드가 없거나 없던 레코드가 생겨난 것 (원래랑 다름)
3. 3차 정규형
부분종속과 이행종속이 없게 분해함
4. 보이스 코드 정규형(BCNF)
3차 정규형은 키에 포함되는 필드집합 A와 키에 포함되지 않은 필드집합 X에 대하여
X->A라는 함수적 종속성이 존재할 수 있기 때문에 데이터 중복 발생
(X,A) (R-A) // 공통필드는 X
3차 정규형 | 장점 | 무손실 조인 분해, 종속성 보존 |
단점 | 데이터 중복으로 인한 이상 현상 | |
보이스-코드 정규형 | 장점 | 이상 현상 방지 |
단점 | 종속성 보존이 안됨 |
'개인공부 > db' 카테고리의 다른 글
9장 (트랜잭션) (0) | 2023.07.20 |
---|---|
8장 (물리적 저장 구조와 인덱스) (0) | 2023.07.20 |
6장 (데이터베이스 설계) (0) | 2023.07.20 |
5장 (무결성과 보안) (0) | 2023.07.20 |
3장 (오라클) (0) | 2023.07.20 |