[면접 준비] RDBMS의 정규화에 대해 설명해주세요 (24/03/29)

2024. 3. 29. 09:20공부/면접 준비

RDBMS(관계형 데이터베이스 관리 시스템)의 정규화

데이터베이스 설계에서 데이터의 중복을 제거하고 최소화 하여 더욱 효율적으로 저장하기 위한 과정입니다.

이를 통하여 데이터의 일관성, 유지보수성, 확장성 등을 개선하여 데이터의 일관성과 무결성을 유지할수 있습니다.

 

정규화 단계

  • 제 1 정규화 (필드값 중복 제거)
    • 각 테이블이 하나의 원자 값으로만 구성되도록 합니다. 즉, 필드(열)의 중복을 제거합니다.
  • 제 2 정규화 (부분 함수 종속 제거) 
    • 부분적 종속성이란 기본 키가 아닌 부분집합의 열이 기본 키에 종속되는 경우를 말합니다.
    • 기본 키가 아닌 모든 속성이 기본 키에 완전 함수 종속 되어야 합니다.
  • 제 3 정규화 (이행적 함수 종속 제거)
    • 이행적 종속성이란 A -> B, B -> C의 관계에서 A -> C의 관계가 성립되는 경우를 말합니다.
    • 모든 비기본 속성이 기본 키에 이행적으로 종속되지 않아야 합니다.
  • BCNF(Boyce-Codd 정규화 형태)
    • 모든 결정자가 후보키여야 합니다.
    • 이를 통해 정규화에서 발생할 수 있는 이상 현상을 방지합니다.
  • (제 4 정규화 이상 - 일반적으로 3NF/BCNF까지만 수행하는 경우가 많음)
    • (특정 복잡한 종속성을 제거하는데 초점을 맞춥니다. 추가적인 정규화가 필요한 경우에 적용됩니다.)

 

<답변>

"정규화 과정을 통해 중복 데이터를 제거하고 이상 현상을 방지하여 데이터베이스 구조를 최적화 하여 데이터의 일관성과 무결성을 유지할 수 있습니다. 그러나, 과도한 정규화는 성능 저하를 일으킬 수 있기 때문에 적절한 수준에서의 정규화가 필요합니다."