상세 컨텐츠

본문 제목

[데이터베이스 CS지식] 데이터베이스의 정규화에 대해

데이터베이스

by 소란한소란 2024. 2. 15. 17:22

본문

728x90

데이터베이스 정규화: 효율적인 구조를 위한 핵심 가이드

데이터베이스 디자인은 효율적인 데이터 관리를 위해 핵심적인 역할을 합니다. 이 중에서도 데이터 정규화는 데이터베이스의 효율성과 일관성을 확보하는 핵심적인 원리 중 하나입니다. 데이터 정규화는 데이터의 중복성과 종속성을 최소화하여 데이터의 품질을 향상시키는 과정으로, 이를 통해 정확하고 효율적인 데이터베이스 구조를 만들 수 있습니다. 이번 게시글에서는 데이터베이스 정규화의 기본 개념과 주요 정규형 , 간단하게 비정규화에 대해 알아보겠습니다.


첫 번째 정규형 (1NF):

  • 중복된 행을 제거하고 표의 각 셀이 단일하고 원자적인 값을 포함하도록 합니다.
  • 각 열이 하나의 정보만 포함하고 각 항목이 고유하도록 보장합니다.
    제 1정규형 예시

두 번째 정규형 (2NF):

  • 복합 주 키(두 개 이상의 열로 구성된 주 키)가 있는 테이블에 적용됩니다.
  • 비주 키 속성이 전체 주 키에 완전하게 기능적으로 종속되도록 합니다.

제 2정규화 예시

 

세 번째 정규형 (3NF):

  • 추이적 종속성을 다룹니다.
  • 주 키의 일부가 아닌 비핵심 속성이 주 키에 추이적으로 종속되지 않도록 합니다.

제 3정규화 예시

 

 

정규화는 데이터 무결성을 유지하고 업데이트, 삽입 또는 삭제 오류같은 데이터 이상을 줄이는 데 도움이 됩니다. 또한 더 효율적인 데이터베이스 디자인을 달성하여 관리 및 확장이 더 쉬워지도록 합니다.

 


 

비정규화 소개: 데이터베이스 디자인에서 비정규화는 특정 상황에서 성능을 향상시키기 위해 의도적으로 중복성을 도입하는 과정입니다. 데이터베이스 정규화의 반대 개념으로, 비정규화는 몇 가지 상황에서 쿼리의 실행 속도를 높이고 복잡성을 줄이는 데 효과적일 수 있습니다. 이는 일부 상황에서는 데이터 중복이 허용되며 일부 테이블이 더 큰 통합을 갖는 것이 효율적일 수 있다는 개념입니다.

 

비정규화 예시

 


 

그러나 정규화는 일부 쿼리에서 복잡성이 증가하고 특정 사용 사례 및 요구 사항에 따라 성능에 영향을 미칠 수 있는 트레이드오프가 있음을 감안해야 합니다. 경우에 따라 성능 향상을 위해 중복성을 도입하는 비정규화도 고려될 수 있습니다. 데이터베이스 디자인에 적용되는 정규화 수준은 데이터의 특성과 응용 프로그램의 특정 요구 사항 등에 따라 결정됩니다.

 

 

728x90

관련글 더보기