221126 정규화 (Normalization)

Jongleee·2022년 11월 26일
0

TIL

목록 보기
115/576

정규화(Normalization)

목적

  • 데이터의 중복을 없애면서 불필요한 데이터를 최소화시킨다.
  • 무결성을 지키고, 이상 현상을 방지한다.
  • 테이블 구성을 논리적이고 직관적으로 할 수 있다.
  • 데이터베이스 구조 확장에 용이해진다.

단계

  1. 도메인 원자값 (1NF)

  2. 부분적 함수 종속 제거 (2NF)

  3. 이행적 함수 종속 제거 (3NF)

  4. 결정자이면서 후보키가 아닌 것 제거 (BCNF)

  5. 다치 종속 제거 (4NF)

  6. 조인 종속성 이용 (5NF)

1. 제1 정규화(1NF)

테이블 컬럼이 원자값(하나의 값)을 갖도록 테이블을 분리시키는 것

조건

  • 어떤 릴레이션에 속한 모든 도메인이 원자값만으로 되어 있어야한다.
  • 모든 속성에 반복되는 그룹이 나타나지 않는다.
  • 기본키를 사용하여 관련 데이터의 각 집합을 고유하게 식별할 수 있어야 한다.

2. 제2 정규화(2NF) - 복합키인 경우

테이블의 모든 컬럼이 완전 함수적 종속을 만족해야 한다.
기본키의 부분집합 키만으로 다른 컬럼이 결정되지 않아야 함.
즉, 하나의 키만으로 다른 컬럼을 결정지을 수 있는 경우에는 테이블 분리가 필요함

3. 제3 정규화(3NF)

2NF가 진행된 테이블에서 이행적 종속을 없애기 위해 테이블을 분리하는 것이다.

이행적 종속 : A → B, B → C면 A → C가 성립된다

조건

  • 릴레이션이 2NF에 만족한다.
  • 기본키가 아닌 속성들은 기본키에 의존한다.

0개의 댓글