본문 바로가기

면접준비

RDBMS의 정규화에 대해 설명해주세요.

관계형 데이터베이스 관리 시스템(RDBMS)의 정규화는 데이터의 중복을 최소화하고 데이터의 무결성을 유지하기 위한 프로세스입니다. 이는 테이블을 작은 단위로 분해하여 중복을 방지하고 데이터의 일관성을 제공하는 목적을 가지고 있습니다.

  1. 중복데이터 방지:
    • 정규화는 데이터베이스 내의 중복을 최소화하는 것을 목표로 합니다. 중복된 데이터는 데이터베이스 크기를 증가시키고 일관성을 유지하기 어렵게 만들 수 있습니다. 정규화는 테이블을 적절한 방식으로 나눔으로써 중복을 줄이고, 각 테이블이 고유한 정보를 저장하도록 합니다.
  2. 무결성 보장:
    • 정규화는 데이터베이스의 무결성을 유지하도록 도와줍니다. 각 테이블이 특정 종속성에 따라 정의되어 있으므로, 데이터의 무결성 규칙을 쉽게 적용할 수 있습니다. 이는 데이터베이스에서 부정확한 데이터나 모순된 데이터가 발생하는 것을 방지합니다.
  3. 정규화 단계:
    • 제 1 정규형(1NF), 제 2 정규형(2NF), 제 3 정규형(3NF), Boyce-Codd 정규형(BCNF)과 같은 여러 단계의 정규형을 통해 정규화를 수행합니다. 각 단계에서는 특정 종속성을 만족하도록 테이블을 분해합니다.
    • 1. 제 1 정규형 (1NF):
      • 개념: 각 테이블의 모든 속성은 원자적(Atomic)이어야 합니다. 즉, 각 열은 하나의 값만 가져야 하며, 그 값은 더 이상 분해되지 않습니다.
      • 예시: 테이블 내 모든 열이 원자적인 값을 가지고 있어야 함.
      2. 제 2 정규형 (2NF):
      • 개념: 테이블이 1NF이면서, 모든 비주요 속성이 주요 속성에 대해 완전 함수 종속성을 갖도록 해야 합니다. 여기서 완전 함수 종속성은 어떤 후보 키도 제외하고는 어떤 속성에도 함수 종속되지 않는 상태를 의미합니다.
      • 예시: 테이블의 모든 비주요 속성이 기본 키에 완전히 종속되어야 함.
      3. 제 3 정규형 (3NF):
      • 개념: 테이블이 2NF이면서, 이행적 종속이 없어야 합니다. 즉, 어떠한 비주요 속성도 기본 키에 대해 이행적으로 종속되지 않아야 합니다.
      • 예시: 테이블의 비주요 속성이 다른 비주요 속성에 의해 종속되면 안 됨.
      4. Boyce-Codd 정규형 (BCNF):
      • 개념: 테이블이 3NF이면서, 모든 결정자가 후보 키인 상태입니다. 즉, 어떤 속성이든 기본 키에 완전 함수 종속되어야 합니다.
      • 예시: 테이블의 모든 결정자가 후보 키여야 함.
  4. 효율성 고려:
    • 정규화는 중복을 최소화하고 무결성을 강화하지만, 반드시 항상 최선의 선택은 아닙니다. 특히 조회 연산의 성능을 고려할 때, 지나치게 많은 정규화는 성능 저하로 이어질 수 있습니다. 그렇기 때문에 실제 사용 사례와 요구 사항에 따라 적절한 정규화 수준을 선택해야 합니다.

정규화는 데이터베이스 설계의 핵심 개념 중 하나이며, 데이터의 구조를 효율적으로 관리하고 유지보수하기 위해 중요한 단계입니다.

 

 

 

 

 

 

 

RDBMS의 정규화는 데이터베이스 설계에서 중복을 최소화하고 데이터 무결성을 강화하는 프로세스입니다. 정규화를 통해 각 테이블은 명확한 정보를 담게 되며, 일관성과 유지보수성이 향상됩니다. 주로 1NF, 2NF, 3NF, BCNF 등의 정규형을 적용하여 데이터를 구조화하며, 중복을 줄이고 효율성을 고려합니다. 그러나 과도한 정규화는 성능 저하를 일으킬 수 있으므로 실제 요구 사항과 사용 환경을 고려하여 적절한 수준의 정규화를 선택해야 합니다.