오늘도 저번과 마찬가지로 지금까지 해왔던 공부를 복습한 내용을 작성해보고자 합니다.
- 이상현상이 이러나는 것을 방지하기 위해 데이터의 중복을 최소화면서 테이블을 보다 잘 조직된 상태로 분해하는 과정
이상현상이란?
- 입력, 수정, 삭제하는 과정에서 인관성이 깨지는 현상
1) 삽입 이상(Insertion Anamoly): 테이블에 데이터를 삽입할 때 의도하지 않은 정보까지 삽입해야 하는 현상
2) 갱신 이상(Update Anamoly): 중복 저장되어있는 데이터 중 하나만 갱신하고 나머지를 갱신하지 않을때 나타나는 데이터 불일치 현상
3) 삭제 이상(Deletion Anamoly): 테이블에 있는 특정 데이터를 삭제할 때 의도하지 않은 정보까지 삭제되는 현상
- 정규화 절차
1) 제 1차 정규화
- 테이블의 속성값은 원자값으로 구성되어 있어야한다.
- 중복값 제거
- 기본키 설정
2) 제 2차 정규화
- 기본키가 2개 이상의 속성으로 이루어진 경우 부분 함수종속성을 제거한다.
3) 제 3차 정규화
- 기본키를 제외한 칼럼간의 종속성을 제거한다 (이행함수 종속성을 제거한다).
4) BCNF: 기본키를 제외하고 후보키가 있는 경우 후보키가 기본키를 종속시키면 분해한다.
- 모든 속성이 하나의 속성값만을 가지고 있으면서 유사한 속성이 반복되지 않는 형태
- 주식별자에 대해 일반 속성은 1:1 관계를 가져야 한다.


- 부분 함수종속성을 제거한 형태
- 주식별자에 완전하게 종속적이지 않은 속성을 별도의 테이블로 분리한다
부분 함수종속성이란?
: 주식별자가 두 개 이상으로 구성된 복합식별자인 경우 일반 속성이 주식별자의 일부에만 종속성을 가지는 것

- 이행 함수 종속성을 제거한 형태
이행 함수종속성이란?
- 일반 속성 간에 함수 종속성이 존재하는 경우
A -> B이고 B -> C인 경우 A -> C가 되는 것을 이행 함수종속성이라고 한다.

| SQLD 공부 7일 차 (1) | 2025.06.04 |
|---|---|
| SQLD 공부 6일 차 (2) (3) | 2025.06.02 |
| SQLD 공부 5일 차 (6) | 2025.05.27 |
| SQLD 공부 4일 차 (1) | 2025.05.23 |
| SQLD 공부 3일 차 (0) | 2025.05.22 |