Database - 7. 정규화 편

Perdy·2023년 8월 22일
0

CS

목록 보기
16/20

정규화

이상현상이 생겨서 이를 해결하거나, 저장 공간을 효율적으로 사용하기 위해 릴레이션을 여러 개로 분리하는 과정을 말합니다.

데이터의 일관성, 최소한의 데이터 중복, 최대한의 데이터 유연성을 위해 사용합니다.

정규화 과정은 정규형 원칙을 기반으로 정규형을 만들어가는 과정을 말하며, 정규화된 정도를 정규형(NF, Normal Form)으로 표현합니다.

정규형은 기본 정규형인 제1정규형, 제2정규형, 제3정규형, 보이스/코드 정규형과 고급 정규형인 제4정규형, 제5정규형이 있습니다.

정규형 원칙
더 좋은 구조로 만들어야하고, 자료의 중복성은 감소해야하고, 자료의 중복성은 감소해야 합니다. 또한 독립적인 관계는 별개의 릴레이션으로 표현해야 하고, 각각의 릴레이션은 독립적인 표현이 가능해야 합니다.

제1 정규형

릴레이션의 모든 도메인이 더 이상 분해될 수 없는 원자 값으로만 구성되어야 합니다.

릴레이션의 속성 값 중에서 한 개의 기본키에 대해 두 개 이상의 값을 가지는 반 복집합이 있어서는 안되며, 있으면 나눠서 제거해야 합니다.

제2 정규형

릴레이션이 제 1정규형이고, 부분 함수의 종속성을 제거한 형태를 말합니다.

  • 부분 함수의 종속성 제거 : 기본키가 아닌 모든 속성이 기본키에 완전 함수 종속적인 것을 말함

주의할 점 : 동등한 릴레이션으로 분해해야 하고, 정보 손실이 발생하지 않는 무손실 분해로 분해되어야 한다.

  • 무손실 분해
    릴레이션을 A를 B와 C로 분해 했을 때, B와 C를 조인하면 A가 되는 경우, 또는
    B와 C의 교집합이 B이거나 C인 경우를 말합니다.

제3 정규형

제2 정규형이고 기본키가 아닌 모든 속성이 이행적 함수 종속을 만족하지 않는 상태를 말합니다.

  • 이행적 함수 종속
    기본키 A

A -> B -> C라면 논리적으로 A->C가 성립하고, 이때 C는 A에 이행적으로 함수종속이 되었다고 말합니다.

따라서, A->B / B->C로 분리해야 합니다.

profile
영원한 뉴비. 꾸준히 한다면 언젠가는 높은 곳에 도달할지도?

0개의 댓글