본문 바로가기
Study/DB

[DB] 이상현상, 함수종속성, 정규화, 정규형

by jamiehun 2023. 4. 2.

<데이터베이스 개론과 실습>을 요약 정리한 글입니다.

문제가 될 시 글을 내리도록 하겠습니다.


1. 이상현상

잘못 설계된 테이블로 삽입, 삭제, 수정 같은 데이터 조작을 하면 이상현상이 일어난다.

다시 말해 테이블에 투플을 삽입할 때 부득이하게 NULL 값이 입력, 삭제 시 연쇄 삭제 현상이 발생, 수정시 데이터의 일관성이 훼손되는

현상을 이상현상이라고 말한다.

 

대표적인 이상현상은 아래와 같다.

  • 삭제이상(deletion anomaly) : 투플 삭제시 같이 저장된 다른 정보까지 연쇄적으로 삭제되는 현상
  • 삽입이상(insertion anomaly) : 투플 삽입 시 특정 속성에 해당하는 값이 없어 NULL 값을 입력해야하는 현상
  • 수정이상(update anomaly) : 투플 수정 시 중복된 데이터의 일부만 수정되어 데이터의 불일치가 일어나는 현상

2. 함수 종속성

이상현상이 발생하는 테이블을 수정하여 정상으로 만드는 과정이 정규화 (normalization)이다.

정규화를 하기 위해서는 기본키함수 종속성을 파악해야한다.

 

여기서 함수의 종속성을 알기 위해서는 아래와 같은 내용들을 알아야 한다.

어떤 속성 A의 값을 알면 다른 속성 B의 값이 유일하게 정해지는 의존 관계를

  • ‘속성 B는 속성 A에 종속한다(dependent)’
  • 혹은 ‘속성 A는 속성 B를 결정한다(determine)' 이라고 말한다.

 

즉, 릴레이션의 속성 간에 함수적으로 종속하는 성질을 ‘함수적 종속성’이라고 한다.

3. 정규화

정규화는 위에서 말한 바와 같이 이상현상이 발생하는 릴레이션을 분해하여 이상현상을 없애는 과정이다.

 

이상현상의 원인은 다양하나, 대부분 두가지 이상의 정보가 한 릴레이션에 저장되어 있기 때문에 발생한다.

 

따라서, 이상현상은 릴레이션을 분해하여 제거하는 것이 중요한데, 

분해된 릴레이션에 이상현상이 남아있다면 이상현상이 없어질때 까지 분해한다.


정규형은 이상현상을 일으키는 함수 종속성의 유형에 따라 등급을 구분하는 것이다. 

정규형의 종류는 아래와 같다.

 

  • 제 1 정규형 : 릴레이션 R의 모든 속성 값이 원자 값을 가지면 제 1 정규형이라고 한다.

 

  • 제 2 정규형 : 릴레이션 R이 제 1 정규형이고 기본키가 아닌 속성이 기본키에 완전 함수 종속일 때 제 2 정규형이라고 한다.
    • 완전함수종속이란 A와 B가 릴레이션 R의 속성이고 A → B 종속성이 성립할 때,
      B가 A의 속성 전체에 함수 종속하고 부분 집합 속성에 함수 종속하지 않을 경우 완전 함수 종속이라고 한다.
    • 반면 불완전함수종속이란 (A1, A2) → B 종속성에서 A2를 제거했는데도
      A1→B가 여전히 성립한다면 불완전 함수 종속이라고 한다.
  • 제 3 정규형 : 릴레이션 R이 제 2정규형이고 기본키가 아닌 속성이 기본키에 비이행적으로 종속할 때(직접 종속) 제3정규형이라고 한다.
    • 여기서 이행적종속이란 A→B, B→C가 성립할 때 A→C가 성립되는 함수 종속성을 말한다.
  • BCNF : 릴레이션 R에서 함수 종속성 X→Y가 성립할 때 모든 결정자 X가 후보키이면 BCNF 정규형이라고 함
    • 즉, 결정자이면서 후보키가 아닌 속성이 존재하면 이상현상이 발생하는 것이다.

참고로 보통 BCNF까지 정규화를 진행하면 실제적인 이상현상은 없어지지만,

제 4정규형(다치정규형), 제 5정규형(프로젝트-조인 정규형)도 존재한다.