[Database] 2. 정규화의 종류에 대해서 설명해보세요
nathan29849 opened this issue · 1 comments
nathan29849 commented
2. 정규화의 종류에 대해서 설명해보세요
키워드
제 1 정규형
, 제 2 정규형
, 제 3 정규형
, BCNF
, 제 4 정규형
, 제 5 정규형
nathan29849 commented
정규화란?
- 관계형 데이터베이스의 설계에서
중복을 최소화
하기위해 데이터를 구조화 하는 프로세스를 정규화라고 한다. - 이상현상이 안 생기는 좋은 테이블이 갖추어야 할 조건을 만족하게 하는 것이다.
정규화의 종류
정규화의 종류로는 제 1 정규형
, 제 2 정규형
, 제 3 정규형
, BCNF
, 제 4 정규형
, 제 5 정규형
이 있다.
제 1 정규형
- 테이블은 반드시 하나 이상의 키를 갖고 있어야 한다.
- 애트리뷰트의 도메인이 오직 원자 값만을 포함한다.(단일 값을 의미)
- 즉, 기본 키가 있고, 애트리뷰트가 원자 값을 가지면, 제 1 정규형이라고 본다.
제 2 정규형
- 제 1 정규형을 만족한다.
- 후보 키가 아닌 애트리뷰트들이 후보 키에 대해 완전 함수적 종속인 경우여야 한다.
- 후보 키에 대해 부분 함수적 종속이 발생하면 안된다.
- 완전 함수적 종속 : A, B, C -> X라고 할 때(3개의 애트리뷰트가 하나의 애트리뷰트에 종속적), A, B, C 중 하나라도 제거하면 함수적 종속이 발생하지 않는 경우
제 3 정규형
- 제 2 정규형을 만족한다.
- 후보 키가 아닌 애트리뷰트들에서 이행종속이 발생하지 않아야 한다.
- 이행 종속 : X->Y 이고, Y->Z이면, X->Z이다.
BCNF(Boyce/Codd Normal Form)
- 릴레이션의 함수 종속 관계에서 모든 결정권자가 후보 키여야 한다.
- X -> Y인 모든 X, Y에 대하여
- (1) Y가 X의 부분집합이거나,
- (2) X가 후보 키여야 한다.
- 후보 키가 아닌 애트리뷰트가 다른 애트리뷰트를 함수적으로 결정하면 BCNF가 아니다.
제 4 정규형
- 릴레이션이 BCNF를 만족하면서, 함수 종속이 아닌 다치 종속을 제거
- 다치 종속 : 두 개의 독립된 애트리뷰트가 1:N 관계로 대응하는 것
- 즉, 애트리뷰트의 값이 원자 값이 아닌 값을 여러 개 같는 릴레이션을 분해하여 애트리뷰트가 원자 값을 갖도록 하는 정규형
- 예시
회원번호 | 이름 | 취미 |
---|---|---|
2314 | 나단 | 축구, 수영 |
7212 | 로니 | 헬스, 달리기 |
11234 | 진구 | 굴렁쇠 |
회원번호 | 이름 | 취미 |
---|---|---|
2314 | 나단 | 축구 |
2314 | 나단 | 수영 |
7212 | 로니 | 헬스 |
7212 | 로니 | 달리기 |
11234 | 진구 | 굴렁쇠 |
제 5 정규형
- 릴레이션이 제 4 정규형을 만족하면서, 후보 키를 통하지 않는 조인 종속을 제거
- 조인 종속 : 마치 조인한 것과 같이 릴레이션의 중복이 발생하는 것
회원번호 | 이름 | 취미 |
---|---|---|
2314 | 나단 | 축구, 수영 |
7212 | 로니 | 헬스, 달리기 |
11234 | 진구 | 굴렁쇠 |
회원번호 | 이름 |
---|---|
2314 | 나단 |
7212 | 로니 |
11234 | 진구 |
회원번호 | 취미 |
---|---|
2314 | 축구 |
2314 | 수영 |
7212 | 헬스 |
7212 | 달리기 |
11234 | 굴렁쇠 |