TIL Code_Camp 14일차 관계형 DB(정규화)

박선우·2023년 2월 2일
0

code_camp

목록 보기
29/31

🌼 학습내용

⛔️ 정규화

  • 데이터를 중복 저장하지 않기 위해 분리한다.

정규형

  • 정규화가 된 결과를 정규형 이라고 함
  • 실무에서 주로 사용하는 제 3규형까지만 배운다.
  • 비정규화
주문번호날짜이름나이주문상품
P00110/23철수13A001레고 1개, A002 미니카 2개
P00208/13영희15A003인형 1개, A001 레고 2개
P00309/07훈이12A003인형 2개, A002 미니카 1개
  • 한 줄에 여러 데이터가 있는 것을 다가 속성
  • 문제점 : 주문 상품을 변경한다고 하면 P001에서 주문상품, 주문상품에서 레고, 수량을 찾아 수정해줘야함

1️⃣ 제 1정규화(1NF)

  • 엑셀 하나의 칸에는 하나의 값만 들어가도록 분리
  • 컬럼에 속성이 여러개(상품 번호, 상품명, 상품 수량) 들어있습니다. 이를 복합 속성
주문번호날짜이름나이상품번호상품명상품수량
P00110/23철수13A001레고1개
P00110/23철수13A002미니카2개
P00208/13영희15A003인형1개
P00208/13영희15A001레고2개
P00309/07훈이12A003인형2개
P00309/07훈이12A002미니카1개
  • 철수의 이름이 변경되었다고 하면, 2줄 모두 수정
  • 테이블을 2개로 분리함으로써 이를 개선

[주문]

주문번호날짜이름나이
P00110/23철수13
P00208/13영희15
P00309/07훈이12

[주문_상품]

주문번호상품번호상품명상품수량
P001A001레고1개
P001A002미니카2개
P002A003인형1개
P002A001레고2개
P003A003인형2개
P003A002미니카1개

2️⃣ 제 2정규화(2NF)

  • Primary Key(기본키) 와 Composite Key(복합키)
    Primary Key : 한 줄의 데이터를 구분할 수 있는 유일한 키
    Composite Key : 데이터를 대표하는 키가 여러 개의 컬럼으로 구성된 것
  • 레고 상품명이 변경된다고 할지라도 1개의 컬럼값만 변경해 주면 됩니다.

[상품]

상품번호상품명
A001레고
A002미니카
A003인형

3️⃣ 제 3 정규화 ( 3NF )

  • A → B → C의 관계를 가지고 있을때, A와 B, B와 C를 묶어 다른 테이블로 분리하는 것

[주문]

주문번호날짜고객번호
P00110/23U001
P00108/13U002
P00109/07U003

[고객]

고객번호이름나이
U001철수13
U002영희15
U003훈이12

⛔️ 내가 만든 ERD설계도



ERD 링크

상품정보

profile
코린이 열심히 배우자!

0개의 댓글