[정보처리기사] 정규화

LU·2025년 2월 22일
0
post-thumbnail

정규화(Normalization)

  • 함수적 종속성 등의 종속성 이론을 이용하여 잘못 설계된 관계형 스키마를 더 작은 속성의 세트로 쪼개어 바람직한 스키마로 만들어 가는 과정
  • 좋은 데이터베이스 스키마를 생성하고 불필요한 데이터의 중복을 방지하여 정보 검색을 용이하게 할 수 있도록 허용한다.

정규화의 목적

  • 데이터 구조의 안정성 최대화
  • 중복 데이터의 최소화
  • 수정 및 삭제 시 이상 현상 최소화
  • 테이블 불일치 위험 간소화

이상현상(Anomaly)

릴레이션 조작 시 데이터들이 불필요하게 중복되어 예기치 않게 발생하는 곤란한 현상

삽입 이상(Insertion Anomaly)

데이터를 삽입할 때 불필요한 데이터가 함께 삽입되는 현상

삭제 이상(Deletion Anomaly)

릴레이션의 한 튜플을 삭제함으로써 연쇄 삭제로 인해 정보의 손실을 발생시키는 현상

갱신 이상(Update Anomaly)

튜플 중에서 일부 속성을 갱신함으로써 정보의 모순성이 발생하는 현상

정규화 과정

정규화과정

🔸 1정규형

  • 어떤 릴레이션에 속한 모든 도메인이 원자값(Atomic Value)만으로 되어 있는 릴레이션
  • 하나의 속성만 있어야 하고 반복되는 속성은 별도 테이블로 분리한다.

🔸 2정규형

  • 1정규형을 만족하고 릴레이션에 내재된 부분 함수적 종속을 제거한다.
  • 기본키가 아닌 애트리뷰트 모두가 기본키에 완전 함수 종속이 되도록 부분 함수적 종속에 해당하는 속성을 별도의 테이블로 분리 한다.

🔸 3정규형

  • 1,2 정규형을 만족하고, 속성 간 이행적 함수 종속을 제거 한다.

🔸 BCNF(보이스/코드)정규형

  • 1, 2, 3정규형을 만족하고, 결정자가 후보키가 아닌 함수종속이 제거되면 보이스/코드 정규형에 속한다.
  • 후보키를 여러 개 가지고 있는 릴레이션에서 발생할 수 있는 이상 현상을 해결하기 위해 3정규형 보다 좀더 강력한 제약조건을 적용 한다.
  • 보이스/코드 정규형에 속하는 모든 릴레이션은 3정규형에 속하지만, 3정규형에 속하는 모든 릴레이션이 보이스/코드 정규형에 속하지는 않는다.

🔸 4정규형

  • 1, 2, 3, BCNF 정규형을 만족하고, 다가(다치) 종속을 제거한다.

🔸 5정규형

  • 1, 2, 3, BCNF, 4정규형을 만족하고, 후보키를 통하지 않은 조인 종속을 제거한다.
profile
기록은 나의 무기😎

0개의 댓글