정규화(DB Normalization)의 개념
- 최소한의 데이터만을 하나의 엔터티에 넣는 식으로 데이터를 분해하는 과정
- 데이터의 일관성, 데이터중복 최소화, 데이터 유연성을 위한 과정
- 데이터 이상현상을 줄이기 위한 설계 기법
이상현상
1. 삽입이상
- 인스턴스가 삽일될 때 정의되지 않아도 될 속성까지 반드시 입력되어야 하는 현상
2. 삭제이상
- 의도하지 않은 다른 정보까지 삭제되는 현상
3. 갱신이상
- 중복된 데이터 중 일부만 수정되어 데이터 모순이 일어나는 현상
정규화 단계
1. 제 1정규화(1NF)
- 테이블의 컬럼이 원자값(하나의 값)을 갖도록 테이블을 분해
2. 제 2정규화(2NF)
- 제 1정규화를 만족하고, 완전 함수 종속을 만족하도록 테이블을 분해
(기본키의 부분집합이 결정자가 되면 안됨)
3. 제 3정규화(3NF)
- 제 2정규화를 만족하고, 이행적 종속을 없애도록 테이블을 분해
4. BCNF 정규화
- 제 3정규화를 만족하고, 모든 결정자가 후보키가 되도록 테이블을 분해
5. 제 4정규화
- 여러 칼럼들이 하나의 칼럼을 종속시키는 경우 분해하여 다중종속 제거
6. 제 5정규화
- 조인에 의해서 종속성이 발생되는 경우 테이블 분해
반정규화(역정규화)의 개념
- 데이터베이스의 성능 향상을 위해 데이터 중복을 허용하고 조인을 줄이는 데이터베이스 성능 향상 기법
'데이터베이스 > SQLD' 카테고리의 다른 글
[SQLD] 함수 (0) | 2024.11.10 |
---|---|
[SQLD] 관계형 데이터베이스 (1) | 2024.11.10 |
[SQLD] 관계, 식별자 (0) | 2024.11.08 |
[SQLD] 엔터티, 속성 (0) | 2024.11.08 |
[SQLD] 데이터 모델의 이해 (0) | 2024.11.08 |