DB/MariaDB

데이터 정규화

원2 2024. 3. 22. 01:53
728x90
반응형

제 1정규화 : 한칸엔 하나의 데이터만!

회원번호 회원이름 프로그램
1 김민수 헬스
2 강만수 테니스
3 최민식 골프
3 최민식 탁구

제 1정규형 테이블

 

제 2정규화 : 현재 테이블의 주제와 관련없는 컬럼을 다른 테이블로 빼는 작업

* 현재 테이블은 수강등록현황 테이블

* 정확한 명칭은 partial dependency 를 제거한 테이블 ex) 가격은 프로그램에 종속되어 있음 이걸 제거하면 됨

* Composite primary key : 합하면 primary key 기능을 할 수 있는 컬럼.

회원번호 회원이름 프로그램 가격 납부여부
1 김민수 헬스 5000 0
2 강만수 테니스 8000 1
3 최민식 헬스 5000 1
4 최민식 탁구 6000 0

 

↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓

회원번호 회원이름 프로그램 납부여부
1 김민수 헬스 0
2 강만수 테니스 1
3 최민식 헬스 1
4 최민식 탁구 0

제2정규형을 만족하는 테이블

로그램 가격
헬스 5000
테니스 8000
탁구 6000

제2정규형을 만족하는 테이블

 

 

 

제 3정규화 : 일반 컬럼에만 종속된 컬럼은 다른 테이블로 빼기

로그램 가격 강사 출신대학
헬스 5000 메시 대학1
테니스 8000 호날두 대학2
탁구 6000 오타니 대학3
농구 7000 오타니 대학3
축구 4000 김민수 대학4

↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓

↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓

로그램 가격 강사
헬스 5000 메시
테니스 8000 호날두
탁구 6000 오타니
농구 7000 오타니
축구 4000 김민수

 

 

강사 출신대학
메시 대학1
호날두 대학2
오타니 대학3
김민수 대학4
728x90
반응형