공부하자
정규화(Normalization) 본문
1. 정규화란?
- 데이터 베이스의 변경 시 일어날 수 있는 이상현상을 제거하기 위해 관계형 데이터 베이스의 설계에서 데이터를 구조화하는 프로세스.
- 단계별로 구분하여 정규화가 높아질수록 이상현상이 줄어듦
2. 정규화의 장점
- DB 변경 시 발생하는 이상현상을 제거
: 삽입 이상 - 레코드 삽입 시 특정 속성에 해당하는 값이 없어 NULL을 입력해야 하는 현상
: 삭제 이상 - 레코드 삭제 시 같이 저장된 다른 정보까지 연쇄적으로 삭제되는 현상
: 갱신 이상 - 레코드 갱신 시 중복된 데이터의 일부만 갱신되어 일어나는 데이터 불일치 현상
- 새로운 데이터 형의 추가로 인한 확장 시, 구조 변경에 용이함
- DB와 연동된 응용 프로그램의 생명을 연장
3. 정규화의 단점
- 테이블의 분해로 인해 JOIN 연산 증가
- 데이터를 처리할 떄 속도 저하가 발생할 가능성이 큼
- JOIN이 많이 발생하여 성능이 저하될 시, 반정규화를 적용해야 함
: 정규화한 것을 다시 되돌아 가는 것
4. 정규화의 종류
1) 제1 정규형
- 각 컬럼은 하나의 속성값만 가져야 함
- 하나의 컬럼은 같은 타입의 값을 가져야 함
- 각 컬럼은 유일한 이름을 가져야 함
- 컬럼의 순서는 상관 X
2) 제2 정규형
- 1정규형을 만족
- 모든 컬럼이 부분적 종속이 없어야 함(완전 함수 종속 상태)
: 속성 A의 값을 알면 속성 B의 값이 유일하게 정해지는 관계
3) 제3 정규형
- 1정규형을 만족
- 기본키를 제외한 속성들 간의 이행 종속성이 없어야 함
: a는 b이고 b는 c 일 때, a는 c이다
4) BCNF
- 3정규형 만족
- 모든 결정자가 후보키 집합에 속해야 함
5) 제4 정규형
- BCNF 만족
- 다치 종속이 없어야 함
: 같은 테이블 내의 독립적인 두 개 이상의 컬럼이 또 다른 컬럼에 종속되는 상태
6) 제5 정규형
- 4정규형 만족
- 조인 종속 제거
: 하나의 테이블을 여러개로 분해 했다가 다시 조인했을 때, 데이터의 손실이 없고 필요 없는 데이터가 생기는 상태
'Database' 카테고리의 다른 글
Transaction (0) | 2023.04.08 |
---|---|
Data Modeling (0) | 2023.03.20 |
INDEX (0) | 2023.03.20 |
Transaction (0) | 2023.03.20 |
View (1) | 2023.03.19 |