본문 바로가기
카테고리 없음

데이터베이스 정규화(Normalization)에 대하여

by kangs' tong 2023. 8. 30.

데이터베이스 정규화(Normalization)

정규화는 데이터베이스 설계에서 중복을 최소화하고 데이터 일관성과 효율을 향상시키기 위한 과정입니다. 데이터베이스 정규화는 관계형 데이터베이스에서 특히 중요한 개념이며, 관계형 데이터베이스 내의 테이블을 작은 조각으로 분리하여 중복을 제거하고, 데이터를 순차적으로 저장하는 것을 목표로 합니다. 이를 통해 데이터를 더 효율적으로 관리할 수 있으며, 데이터의 일관성과 무결성을 유지하기 위한 표준화된 모델링을 제공합니다.

제1 정규화(First Normal Form)

제1 정규화는 테이블의 각 열이 원자값(Atomic Value)을 가지도록 하는 과정입니다. 즉, 반복되는 열이 없어야 합니다. 이를 위해 테이블을 분해하고, 각각의 열이 독립된 값을 가지도록 합니다. 제1 정규화를 통해 데이터 중복을 최소화하고, 필드 내의 중복된 정보를 제거할 수 있습니다.

제2 정규화(Second Normal Form)

제2 정규화는 테이블의 모든 열이 기본 키를 완전 함수적 종속성으로 이용하여 함수 종속성 문제가 없도록 하는 과정입니다. 함수 종속성 문제란 기본 키가 아닌 열이 부분적으로 기본 키에 종속되는 경우입니다. 제2 정규화를 위해 기본 키를 구성하는 열 이외의 열들을 별개의 테이블로 분리하여 중복을 제거할 수 있습니다.

제3 정규화(Third Normal Form)

제3 정규화는 테이블 내에 존재하는 이행적 함수 종속성(Transitive Functional Dependency) 문제를 해결하는 과정입니다. 이행적 함수 종속성 문제란 한 열이 다른 열에 종속되고, 그 다른 열이 다른 열에 종속되는 형태의 종속성 문제입니다. 제3 정규화를 위해 이행적 함수 종속성을 가지는 열들을 별개의 테이블로 분리하여 데이터를 정규화할 수 있습니다.

BCNF(Boyce-Codd Normal Form)

BCNF는 제3 정규화에서 발견되는 결정자 종속성(Trivial Functional Dependency) 문제를 해결하기 위한 과정입니다. 결정자 종속성 문제란 한 열이 다른 열의 함수적 종속성인데, 그 다른 열이 기본 키를 결정지을 수 없는 형태의 종속성 문제입니다. BCNF를 적용하기 위해 결정자 종속성 문제를 가지는 열들을 별개의 테이블로 분리하여 데이터를 더욱 정규화할 수 있습니다.

요약

정규화는 데이터베이스 설계에서 중복을 최소화하고, 데이터 일관성과 효율성을 향상시키기 위한 과정입니다. 제1 정규화부터 BCNF까지의 과정을 통해 테이블을 분해하고, 각 열들이 독립된 값을 가지도록 하는 것을 목표로 합니다. 이를 통해 데이터베이스의 성능과 유지보수성을 향상시킬 수 있으며, 데이터의 일관성과 무결성을 유지할 수 있습니다.

댓글