Normal Forms

Heejin·2023년 5월 28일
0

Database Glossary

목록 보기
3/8

정규형(normal forms)은 데이터베이스 설계에서 중복을 최소화하고 데이터 일관성과 무결성을 유지하기 위해 사용되는 규칙의 집합이다. 관계형 데이터베이스에서 정규형은 데이터를 구조화하고 조직화하는 데 도움이 된다.

관계형 데이터베이스의 정규형은 Codd의 정규화 이론에 기반한다. Codd는 1970년대에 관계형 데이터베이스 이론을 개발하고, 데이터베이스의 무결성과 성능을 향상시키기 위해 데이터 중복을 최소화하는 방법을 제시했다.

여기에서는 가장 잘 알려진 세 가지 정규형에 대해 설명하겠다.

  1. 제1 정규형(1NF):
    제1 정규형은 관계형 데이터베이스에서 가장 기본적인 정규형이다. 이를 만족하려면 데이터베이스의 모든 테이블에서 각 열은 원자값(Atomic value)을 가져야 한다. 즉, 각 열의 데이터는 더 이상 분해할 수 없는 단일 값을 가져야 한다. 또한, 각 테이블은 유일한 기본 키(primary key)로 식별될 수 있는 고유한 레코드를 가져야 한다.

  2. 제2 정규형(2NF):
    제2 정규형은 제1 정규형을 만족하고, 추가로 부분 함수적 종속성(partial functional dependency)을 제거하는 것을 목표로 한다. 부분 함수적 종속성이란 기본 키의 일부 속성만으로 다른 속성을 고유하게 식별할 수 있는 상황을 말한다. 제2 정규형을 만족시키기 위해서는 이러한 부분 함수적 종속성을 제거하고 기본 키의 전체 속성에만 의존해야 한다.

  3. 제3 정규형(3NF):
    제3 정규형은 제2 정규형을 만족하고, 추가로 이행적 함수 종속성(transitive functional dependency)을 제거하는 것을 목표로 한다. 이행적 함수 종속성은 A가 B를 결정하고 B가 C를 결정하는 경우, A가 C를 결정하는 상황을 말한다. 제3 정규형을 만족시키기 위해서는 이러한 종속성을 제거하고 각 속성이 기본 키에만 의존해야 한다.

  4. BCNF(Boyce-Codd 정규형):
    BCNF는 제3 정규형을 보다 강화한 형태로, 결정자(dependency)가 후보 키(candidate key)에 완전히 종속되어야 한다는 조건을 추가한다. 즉, 어떠한 비키(non-key) 속성도 후보 키에 대해 종속되지 않아야 한다. BCNF를 만족시키기 위해서는 종속성을 분해하여 별도의 테이블로 만들어야 한다.

  5. 제4 정규형(4NF):
    제4 정규형은 다치 종속성(multivalued dependency)을 제거하여 데이터의 중복성을 최소화하는 것을 목표로 한다. 다치 종속성은 한 테이블의 속성들이 서로 독립적으로 다른 테이블의 속성들과 다중값 관계를 갖는 상황을 말한다. 제4 정규형을 만족시키기 위해서는 이러한 다치 종속성을 분해하여 별도의 테이블로 만들어야 한다.

  6. 제5 정규형(5NF):
    제5 정규형은 조인 종속성(join dependency)을 제거하는 것을 목표로 한다. 조인 종속성은 두 개 이상의 테이블이 동일한 기본 키를 공유하고 있을 때 발생하는 종속성을 의미한다. 제5 정규형을 만족시키기 위해서는 이러한 종속성을 분해하여 별도의 테이블로 만들어야 한다.

각 정규형은 데이터의 중복성을 줄이고 데이터의 구조를 최적화함으로써 데이터베이스의 성능과 효율성을 향상시키는 데 도움을 준다. 하지만 더 높은 정규형을 만족시키기 위해서는 설계의 복잡성이 증가할 수 있으므로 실제 상황에 맞게 적절한 정규형을 선택해야 한다.

0개의 댓글