본문 바로가기
Database

[Database] 정규화(Normalization)

by IT 정복가 2023. 2. 27.
728x90
정규화란?
함수적 종속성 등의 종속성 이론을 이용하여 잘못 설계된 관계형 스키마를 더 작은 속성의 세트로 쪼개어 바람직한 스키마로 만들어가는 과정이다.
  • 정규형에는 제 1정규형, 제 2정규형, 제 3정규형, BCNF형, 제 4정규형, 제 5정규형이 있으며, 차수가 높아질수록 만족시켜야 할 제약 조건이 늘어난다.
  • 정규화는 데이터베이스의 논리적 설계 단계에서 수행한다.
  • 정규화된 데이터 모델은 일관성, 정확성, 단순성, 비중복성, 안정성 등을 보장한다.
  • 정규화 수준이 높을수록 유연한 데이터 구축이 가능하고 데이터의 정확성이 높아지는 반면 물리적 접근이 복잡하고 너무 많은 조인으로 인해 조회 성능이 저하된다.

정규화의 목적
  • 데이터 구조의 안정성 및 무결성을 유지한다.
  • 효과적인 검색 알고리즘을 생성할 수 있다.
  • 데이터 모형의 단순화가 가능하다.
  • 속성의 배열 상태 검증이 가능하다.
  • 개체와 속성의 누락 여부 확인이 가능하다.
  • 자료 검색과 추출의 효율성을 추구한다.

이상(Anomaly)의 개념 및 종류
정규화를 거치지 않으면 데이터베이스 내에 데이터들이 불필요하게 중복되어 릴레이션 조작 시 예기치 못한 곤란한 현상이 발생하는데 이를 이상이라 하며 삽입이상, 삭제이상, 갱신이상이 있다.
  • 삽입 이상: 릴레이션에 데이터를 삽입할 때 의도와는 상관없이 원하지 않은 값들도 함께 삽입되는 현상
  • 삭제 이상: 릴레이션에서 한 튜플을 살제할 때 의도와는 상관없는 값들도 함께 삭제되는 현상
  • 갱신 이상: 릴레이션에서 튜플에 있는 속성값을 갱신할 때 일부 튜플의 정보만 갱신되어 정보에 모순이 생기는 현상

정규화 과정

https://velog.io/@bsjp400/Database-DB-%EC%A0%95%EA%B7%9C%ED%99%94-%EB%B9%84%EC%A0%95%EA%B7%9C%ED%99%94%EB%9E%80

  • 1NF(제 1정규형): 릴레이션에 속한 모든 도메인이 원자값만으로 되어 있는 정규형이다. 즉, 릴레이션의 모든 속성 값이 원자 값으로만 되어 있는 정규형이다.
  • 2NF(제 2정규형): 릴레이션 R이 1NF이고, 기본키가 아닌 모든 속성이 기본키에 대하여 완전 함수적 종속을 만족하는 정규형이다.
  • 3NF(제 3정규형): 릴레이션 R이 2NF이고, 기본키가 아닌 모든 속성이 기본키에 대해 이행적 종속을 만족하지 않는 정규형이다.
  • BCNF(보이스커드 정규형): 릴레이션 R에서 결정자가 모두 후보키인 정규형
  • 4NF(제 4정규형): 릴레이션 R에 다치 종속 A ->>B가 정립하는 경우 R의 모든 속성이 A에 함수적 종속 관계를 만족하는 정규형이다.
  • 5NF(제 5정규형): 릴레이션 R의 모든 조인 종속이 R의 후보키를 통해서만 성립되는 정규형이다. 

 

참고영상

https://www.youtube.com/watch?v=Y1FbowQRcmI 

 

728x90