데이터베이스 정규화

진경천·2024년 10월 8일

정규화란?

  • 이상 현상을 제거하기 위해 데이터베이스를 구조화하는 과정
  • 데이터 간의 종속성을 제거하여 중복되는 데이터를 줄임
  • 데이터의 일관성과 무결성을 보장
  • 1차, 2차, 3차, BCNF, 4차, 5차 정규화가 있다.

이상 현상

잘못된 데이터베이스 설계로 발생하는 오류

  • 삽입이상: 데이터를 삽입할 때 불필요한 내용까지 삽입해야 하는 문제
  • 갱신 이상: 중복된 데이터 중 일부만 갱신되어 발생하는 문제
  • 삭제 이상: 어떤 데이터를 삭제할 때 다른 유용한 정보도 함께 삭제되는 문제

함수 종속성

속성들 간의 종속 관계
속성 X의 한 값이 다른 속성 Y에 속한 하나의 값에만 매핑되는 경우를 종속 관계라고 한다.
이 때 X를 결정자, Y를 종속자라고 하며 X -> Y로 표기함

1NF

테이블의 컬럼이 하나의 값만 갖도록 도메인을 원자 값으로 설정하는 과정
하나의 컬럼에 2개이상의 값이 포함되는 것이 아닌 더 이상 분할되지 않는 단일 값을 가지도록 한다.

2NF

기본키가 복합키인 경우 부분 함수 종속이 발생할 수 있다.

부분 함수 종속이란?
기본키를 구성하는 속성 중 일부(부분키)가 결정자 역할을 하는 경우

3NF

이행 함수 종속을 제거하도록 테이블을 분해하는 과정

이행 함수 종속이란?
X -> Y, Y -> Z라는 종속 관계가 존재할 때,
X -> Z가 성립하는 경우

BCNF

제 3정규화를 거친 테이블에서 결정자이면서 후보키가 아닌 것 제거

4NF

다치 종속 제거

다치 종속이란?
두개의 독립된 속성이 1:N 관계로 대응하는 경우

5NF

조인 종속 제거

조인 종속이란
테이블의 모든 올바른 관계 상태가 분해될 때, 비 부가적 조인분해, 무손실 분해를 가져야함을 나타낸다.
릴레이션을 더 분해할 경우, 기존 릴레이션의 정보가 손실되기 때문에 더 이상 릴레이션이 분해가 될 수 없는 경우를 지칭

profile
어중이떠중이

0개의 댓글