정규화와 역정규화

김진회·2022년 12월 9일
1

DB

목록 보기
2/8

1. 정규화

관계형 데이터베이스에서 테이블을 분리시켜 중복을 최소화하는 과정

  • 목적: 이상 현상을 방지하기 위해
  • 장점
    • 중복을 제거하여 공간 절약
    • 데이터 무결성을 보장하여 정확성과 일관성을 유지
    • 삽입, 삭제, 갱신 이상의 발생을 방지
    삽입 이상: 새 데이터 삽입 시, 불필요한 데이터도 함께 삽입되는 문제
    갱신 이상: 중복 튜플 중 일부만 변경해서 데이터가 불일치되는 문제
    삭제 이상: 튜플 삭제 시, 필요한 데이터도 삭제되는 문제
  • 단점
    • 검색 시 성능 저하 👉 Join을 통해 연관 데이터를 가져와야 해서

정규형의 종류

각 단계는 상위 단계 조건과 해당 조건을 만족해야 한다.
도부이결다조

  • 1NF(제 1정규형): 도메인을 원자 값으로 구성
  • 2NF: 부분 함수 종속 제거
    부분 함수 종속: 기본키가 복합키일 경우, 특정 컬럼이 기본키의 일부에게도 종속된 경우
  • 3NF: 이행 함수 종속 제거
    이행 함수 종속: X->Y, Y->Z일 때, X->Z가 성립되는 경우
  • BCNF(보이스코드 정규형): 모든 결정권자가 후보키
  • 4NF: 다치 종속 제거
    다치종속: 두 개의 독립된 속성이 1:N 관계로 대응하는 경우
  • 5NF: 조인 종속 제거
    조인 종속: 테이블을 분해한 결과를 다시 조인했을 때, 원래의 테이블과 동일하게 복원돼야 함

2. 역정규화

관계형 데이터베이스에서 중복을 허용하고 정규화를 위반하는 과정

  • 장점
    • 개발 편의 향상
    • 검색 시 성능 향상
  • 단점
    • 이상현상 발생 가능
    • 중복 데이터로 인한 공간 낭비

마치며

무조건적인 정규화가 좋은 것은 아니다. 프로젝트에 따라 정규화 과정을 거친 후, 운영상의 문제 혹은 비용상의 문제로 역정규화를 거치는 것이 좋은 경우가 있다.

profile
SSAFY 7기. HMG. 협업, 소통, 사용자중심

0개의 댓글