본문 바로가기

데이터베이스/SQLD

[SQLD] 정규화

정규화(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