Post

DB 정규화

DB 정규화

DB 정규화

DB 의 중복을 최소화 하도록 설계해 무결성을 유지하고 테이블의 상태 이상을 방지한다.

1. 제 1 정규화

  • 컬럼이 원자 값을 가져야 한다.

AS-IS

idnamesubject
1amath
2benglish, math


TO-BE

idnamesubject
1amath
2benglish
2bmath

2. 제 2 정규화

  • 부분 함수 종속이 발생하면 안된다.

AS-IS
key : 주문번호, 상품ID

주문번호상품ID단위수량단가
2301H360NET2025600
2301J142PACK32065400
2301K1013-PACK1632500
2302A1016-PACK824200
2303H011PACK1065100
2303R301COVER812900


TO-BE

주문번호상품ID수량
2301H36020
2301J142320
2301K10116
2302A1018
2303H01110
2303R3018
상품ID단위단가
H360NET25600
2301PACK65400
23013-PACK32500
23026-PACK24200
2303PACK65100
2303COVER12900
 

3. 제 3 정규화

  • 이행적 함수 종속이 있으면 안된다.

AS-IS key : 주문번호, 회원ID, 회원명

주문번호주문일회원ID회원명회원등급
230120210624HONG홍진경일반
230220210605SONG송혜교우수
230320210606PARK박보영일반


TO-BE

주문번호회원ID주문일
2301HONG20210604
2302SONG20210605
2303PARK20210606
회원ID회원명회원등급
HONG홍진경일반
SONG송혜교우수
PARK박보영일반

4. BCNF 정규화

  • 모든 결정자는 후보키 이어야 한다.

AS-IS key : 학번, 과목명 ※각 교수는 한 과목만 강의할 수 있고 각 강의는 여러 교수들에 의해 강의될 수 있다.

학번과목명교수
100DBP01
100자료구조P02
200DBP01
200자료구조P03
300DBP04
300자료구조P03


TO-BE

학번교수
100P01
100P02
200P01
200P03
300P03
300P04
교수과목명
P01DB
P02자료구조
P03자료구조
P04DB
This post is licensed under CC BY 4.0 by the author.