Day14(3.31)

ShinJuYong·2022년 3월 31일
0

camp

목록 보기
14/44
post-thumbnail

정규화 (1)

주문번호날짜이름나이주문상품
P0110/23철수13A1 칼 1개, A2 총1개
P023/23철철33A3 도마 1개, A4 자동차1개
P031/23수수11A3 도마 1개, A2 총1개

하나의 칸에는 하나의값만 들어가게 만든다.

주문번호날짜이름나이주문상품
P0110/23철수13A1 칼 1개
P013/23철수13A2 총1개
P023/23철철33A3 도마 1
P023/23철철33A4 자동차1개
P031/23수수11A3 도마 1개
P031/23수수11A2 총1개

주문상품을 분리하고
중복데이터가 생기므로 테이블을 2개로 분리한다

주문번호날짜이름나이
P0110/23철수13
P023/23철철33
P031/23수수11

주문테이블

주문번호상품번호상품명상품수량
P01A11개
P01A21개
P02A3도마1개
P02A4자동차1개
P03A3도마1개
P03A21개

주문_상품테이블

정규화(2)

PK는 한줄의 데이터를 구분할 수 있는 유일한 KEY

주문테이블의 주문번호를 알면 나머지 컬럼을 구분할 수 있다.

하지만 주문상품테이블은 주문번호 상품번호 둘 다 알아야하는데 이걸 복합키라고한다.

따라서 주문_상품테이블에서 상품번호와 상품명을 분리한다

주문번호날짜이름나이
P0110/23철수13
P023/23철철33
P031/23수수11

주문테이블

주문번호상품번호상품수량
P01A11개
P01A21개
P02A31개
P02A41개
P03A31개
P03A21개

주문_상품테이블

상품번호상품명
A1
A2
A3도마
A4자동차

상품테이블

정규화(3)

정규화(3)은 A -> B -> C일때 A와 B B와 C를 묶어 다른 테이블로 분리한다

즉 주문테이블에선 주문번호와 나이는 상관이 없으니 고객정보는 고객 테이블로 분리시킨다

주문번호날짜고객번호
P0110/23U001
P023/23U002
P031/23U003

주문테이블

고객번호이름나이
U001철수13
U002철철33
U003수수1

고객테이블

정규화 정리

정규화(1) -> (2) -> (3) 을 거치고나면 테이블이 아래와 같이 정리된다

주문번호날짜고객번호
P0110/23U001
P023/23U002
P031/23U003

주문테이블

고객번호이름나이
U001철수13
U002철철33
U003수수1

고객테이블

주문번호상품번호상품수량
P01A11개
P01A21개
P02A31개
P02A41개
P03A31개
P03A21개

주문_상품테이블

상품번호상품명
A1
A2
A3도마
A4자동차

상품테이블

ERD 연습

TIL Git

강의-깃허브
숙제-깃허브

mini-project(ERD)

1:1
1:N
N:M
술담화 (ERD분리는 4.1)

알고리즘

Week7-Day33-기능개발

0개의 댓글