정규화
1. 제 1정규형
이름 |
직업 |
이지은 |
배우,가수,작곡가 |
혜리 |
배우,가수 |
이름 |
직업1 |
직업2 |
직업3 |
이지은 |
배우 |
가수 |
작곡가 |
혜리 |
배우 |
가수 |
NULL |
→ 직업을 다른 테이블로 쪼개자!
2. 제 2정규형
- 모든 일반 속성은 반드시 주식별자에 종속되어야 함.
주문번호(PK) |
음료코드(PK) |
주문수량 |
음료명 |
202106010010 |
A1001 |
2 |
아메리카노 |
202106010011 |
B1002 |
1 |
카페라떼 |
→ 일반 속성인 음료명이 주식별자 중 음료코드 속성에만 종속(Problem!!)
3. 제 3정규형
- 주식별자가 아닌 모든 속성 간에는 서로 종속될 수 없음.
일련번호(PK) |
이름 |
생년월일 |
소속사코드 |
소속사명 |
1 |
이지은 |
19930516 |
A1001 |
EDAM엔터테인먼트 |
2 |
김향기 |
20000809 |
B1004 |
지킴엔터테인먼트 |
→ 일반속성인 소속사명이 다른 일반속성인 소속사코드에 종속(Problem!!)
반정규화
- 데이터의 중복을 허용, 데이터를 그룹핑 → 무결성 저해
- 조회 성능 향상될 수 있으나 입력,수정,삭제 성능 저하될 수 있음.
1. 테이블 반정규화
1-1. 테이블 병합