정규화

김재민·2023년 5월 31일
0

정규화(Normalization)란?

  • 불필요하거나 중복되는 데이터를 분리하는 과정
  • 이상현상(Anomly)을 방지함
  • 데이터 저장을 "논리적, 효율적으로" 한다

이상 현상 (Anomaly)의 종류

  • 삭제 데이터 삭제 시 의도와는 상관없이 다른 정보까지 연쇄적으로 삭제되는 현상

  • 삽입 이상 :데이터 삽입 시 의도와는 상관없이 원하지 않는 값들도 함께 삽입되는 현상

  • 수정 이상 : 데이터 수정 시 의도와는 상관없이 데이터의 일부만 수정되어 일어나는 데이터 불일치 현상

정규화 절차

정규화 절차설명
제1정규화속성(Attribute)의 원자성을 확보하고 원자값이 아닌 도메인을 분해한다.
제2정규화기본키가 2개 이상의 속성으로 이루어진 경우, 부분 함수 종속성을 제거(분해)한다.
제3정규화기본키를 제외한 컬럼간의 종속성을 제거한다. 즉 이행 함수 종속성을 제거한다.
BCNF기본키를 제외하고 후보키가 있는 경우 후보키가 기본키를 종속시키면 분해한다.

제1정규화

  • 기본키설정
  • 모든 도메인이 원자값으로 구성된 테이블을 생성
사번사원이름동호회회비납부여부
101유재석테니스12,000O
102이광수배드민턴10,000X
103김종국헬스8,000O
105양세찬헬스8,000O

제2정규화

  • 제1정규형을 만족해야함
  • 모든 컬럼에서 partial dependency(부분 종속)이 없어야함
사번사원이름동호회납부여부
101유재석테니스O
102이광수배드민턴X
103김종국헬스O
105양세찬헬스O

동호회회비
테니스12,000
배드민턴10,000
헬스8,000

제3정규화

  • 제2정규형을 만족해야함
  • 기본키를 제외한 속성들 간의 이행 종속성 (Transitive Dependency)이 없어야함
사번사원이름
101유재석
102이광수
103김종국
105양세찬

사원이름동호회
유재석테니스
이광수배드민턴
김종국헬스
양세찬헬스

0개의 댓글