주문번호 날짜 이름 나이 주문상품 P01 10/23 철수 13 A1 칼 1개, A2 총1개 P02 3/23 철철 33 A3 도마 1개, A4 자동차1개 P03 1/23 수수 11 A3 도마 1개, A2 총1개
하나의 칸에는
하나의값
만 들어가게 만든다.
주문번호 날짜 이름 나이 주문상품 P01 10/23 철수 13 A1 칼 1개 P01 3/23 철수 13 A2 총1개 P02 3/23 철철 33 A3 도마 1 P02 3/23 철철 33 A4 자동차1개 P03 1/23 수수 11 A3 도마 1개 P03 1/23 수수 11 A2 총1개
주문상품을 분리하고
중복데이터가 생기므로 테이블을 2개로 분리한다
주문번호 날짜 이름 나이 P01 10/23 철수 13 P02 3/23 철철 33 P03 1/23 수수 11
주문테이블
주문번호 상품번호 상품명 상품수량 P01 A1 칼 1개 P01 A2 총 1개 P02 A3 도마 1개 P02 A4 자동차 1개 P03 A3 도마 1개 P03 A2 총 1개
주문_상품테이블
PK는 한줄의 데이터를 구분할 수 있는 유일한 KEY
주문테이블의 주문번호를 알면 나머지 컬럼을 구분할 수 있다.
하지만 주문상품테이블은
주문번호
상품번호
둘 다 알아야하는데 이걸복합키
라고한다.
따라서 주문_상품테이블에서 상품번호와 상품명을 분리한다
주문번호 날짜 이름 나이 P01 10/23 철수 13 P02 3/23 철철 33 P03 1/23 수수 11
주문테이블
주문번호 상품번호 상품수량 P01 A1 1개 P01 A2 1개 P02 A3 1개 P02 A4 1개 P03 A3 1개 P03 A2 1개
주문_상품테이블
상품번호 상품명 A1 칼 A2 총 A3 도마 A4 자동차
상품테이블
정규화(3)은 A -> B -> C일때 A와 B B와 C를 묶어 다른 테이블로 분리한다
즉 주문테이블에선 주문번호와 나이는 상관이 없으니 고객정보는 고객 테이블로 분리시킨다
주문번호 날짜 고객번호 P01 10/23 U001 P02 3/23 U002 P03 1/23 U003
주문테이블
고객번호 이름 나이 U001 철수 13 U002 철철 33 U003 수수 1
고객테이블
정규화(1) -> (2) -> (3) 을 거치고나면 테이블이 아래와 같이 정리된다
주문번호 날짜 고객번호 P01 10/23 U001 P02 3/23 U002 P03 1/23 U003
주문테이블
고객번호 이름 나이 U001 철수 13 U002 철철 33 U003 수수 1
고객테이블
주문번호 상품번호 상품수량 P01 A1 1개 P01 A2 1개 P02 A3 1개 P02 A4 1개 P03 A3 1개 P03 A2 1개
주문_상품테이블
상품번호 상품명 A1 칼 A2 총 A3 도마 A4 자동차
상품테이블
1:1
1:N
N:M
술담화 (ERD분리는 4.1)