DB) 데이터베이스 정규화

YIHN·2024년 1월 31일

DB/SQL

목록 보기
3/10

데이터베이스 정규화

관계형 데이터베이스의 설계에서 중복을 최소화하게 데이터를 구조화하는 프로세스

데이터베이스 정규화 목적

  • 데이터 중복 제거
  • 효율성 향상
  • 데이터 무결성 보장

정규화 단계

  • 제1 정규화(1NF) : 각 컬럼이 원자 값(하나의 값)을 가지도록 하는 과정
  • 제2 정규화(2NF) : 제1 정규화를 완료한 테이블에서, 부분 함수 종속성을 제거하는 과정(테이블의 주제와 관련없는 컬럼을 다른 테이블로 분리하는 작업)
  • 제3 정규화(3NF) : 제2 정규화를 완료한 테이블에서, 이행적 함수 종속성을 제거하는 과정(테이블을 최소 단위로 분리하는 작업)

정규화별 충족 규칙

제1 정규화(1NF)

  1. 각 컬럼이 하나의 속성만을 가져야 한다.
  2. 하나의 컬럼은 같은 종류나 타입의 값을 가져야 한다.
  3. 각 컬럼이 유일한(unique) 이름을 가져야 한다.
  4. 컬럼의 순서가 상관 없어야 한다.

제2 정규화(2NF)

  1. 제1 정규화를 만족해야 한다.
  2. 모든 컬럼이 부분적 종속이 없어야 한다. == 모든 컬럼이 완전 함수 종속을 만족해야 한다.
    -> 모든 컬럼은 기본키에 완전하게 종속되어야 한다.
    -> 기본키가 복합키인(기본키 역할을 하는 컬럼이 2개일 때) 경우 모든 컬럼이 복합키에 종속되어야 함

제3 정규화(3NF)

  1. 제2 정규화를 만족해야 한다.
  2. 기본키를 제외한 속성들 간의 이행 종속성이 없어야 한다.
    (이행 종속성 : A->B, B->C 일 때 A->C 가 성립)
profile
오늘도 YIHN

0개의 댓글