본문 바로가기
TIL/기술면접 대비

RDBMS의 정규화

by J1-H00N 2023. 8. 18.

정규화의 목표

데이터의 중복성을 허락하지 않음으로서 무결성을 유지하며, DB의 용량을 줄일 수 있다.

 

정규화 단계

  • 제 1 정규화
    • 테이블의 컬럼이 하나의 값만을 가지도록 테이블을 분해하는 것
  • 제 2 정규화
    • 제 1 정규화를 거친 테이블에서 완전 함수 종속을 만족하도록 테이블을 분해하는 것
    • 완전 함수 종속이란 각 컬럼이 모두가 기본키 전부를 알아야만 식별할 수 있도록, 즉 기본키의 집합에 종속되어야 한다.
    • 아래 그림1에서 성적은 기본키 학생번호와 강좌이름에 동시에 종속되어 있기에 완전함수 종속을 만족하지만, 강의실은 강좌이름만으로 식별될 수 있기에 2번 그림과 같이 테이블이 분리되어야 한다.

그림1
그림2

 

  • 제 3 정규화
    • 제 2 정규화를 거친 테이블에 대해서 이행적 종속을 없애도록 테이블을 분해하는 것
    • 이행적 종속이란 A -> B, B -> C가 성립할 때 A -> C가 성립되는 것을 의미한다.
  • BCNF 정규화
    • 제 3 정규화를 거친 테이블에 대해 모든 결정자가 후보키가 되도록 분리하는 것
    • 이에 대해서는 아래 사진을 참조하자.

 

'TIL > 기술면접 대비' 카테고리의 다른 글

CORS(Cross Origin Resource Sharing)  (0) 2023.08.22
HTTP 메서드  (0) 2023.08.21
Primary Key, Foreign Key  (0) 2023.08.20
mvc 패턴  (0) 2023.08.17
NoSQL과 RDBMS의 특징과 차이점(장, 단점)에 대해서  (0) 2023.08.16