IT's Jenna

데이터베이스 모델링 본문

Backend/Backend 기본

데이터베이스 모델링

developer Jenna 2021. 2. 18. 14:18

데이터베이스 모델링

- 현실에 존재하는 복잡한 데이터들을 체계화 및 단순화하여 컴퓨터상의 데이터베이스로 옮기는 과정

- 데이터베이스 모델링을 어떻게 하느냐에 따라 데이터 품질 및 서비스의 질이 달라질 수 있다

데이터베이스 모델링 설계할 때 가이드

- 데이터 중복 줄이기

- 유연하게 설계 (서비스 동작이 변경될 때 대응할 수 있도록 설계되어야 함)

- 일관적으로 설계 (설계 및 명명 기준이 명확할 수 있도록)

- 데이터베이스에 null 값이 없도록 설계

but, 현실적으로 위 규칙을 지키는 것이 쉽지는 않다..

ERD (Entity Relationship Diagram)

- Entity : 하나의 독립적인 데이터 (테이블), Entity는 관계에 따라 다른 데이터를 속성으로 가질 수 있다.

- ERD : 각각의 독립적인 데이터들의 관계를 그림(Diagram)으로 도식화한 것

- 데이터들의 관계를 한눈에 보기 용이하기 때문에 협업할 때 유용하게 사용된다

ERD 표시 방법

- 실선 : 데이터가 1:1 로 매칭 될 때 사용

- 점선 : 데이터가 1:n 으로 매칭 될 때 사용

- PK(Primary Key) : 테이블의 가장 기본이 되는 key

MySQL로 ERD 그리기

- File -> New model -> add diagram

테이블 설정

하나의 쇼핑몰 페이지를 만든다고 가정하고 테이블을 설정해보았다. 필수적으로 필요한 데이터는 다음과 같다.

- 유저

- 상품

- 카테고리

- 주문

- 장바구니

- 리뷰

- 배너

 

<MySQL로 만든 ERD>

테이블을 만들 때 나는 1:n 부분이 가장 헷갈렸었다. 예를 들어 order 데이터 테이블은 한 유저에 대한 주문이 아니라 모든 주문 데이터를 가지고 있는 테이블이다. 거기서 몇 개의 주문이 하나의 유저로 부터 생성된 데이터인 것이다. goods 또한, 모든 주문 데이터 중에서 다수의 주문이 특정 제품의 것이다.

 

아래 테이블을 보면 더욱 이해하기 쉽다. 총 5개의 주문이 들어왔을 때 user 1번이 제품 1,2,3을 주문했고, user 2번이 제품 1,3을 주문했다. 따라서 order에 다수의 user와 goods를 사용할 수 있다.

 

order_idx user_idx goods_idx qty
1 1 1 6
2 1 2 6
3 1 3 6
4 2 1 6
5 2 3 6

 

이제 ERD를 만들었으니 다음 포스팅엔 실제로 데이터를 사용하는 방법을 알아보도록 하겠다.

 

<참고>

m.blog.naver.com/PostView.nhn?blogId=tomatosoft&logNo=220853122078&proxyReferer=https:%2F%2Fwww.google.com%2F

freehoon.tistory.com/60

 

 

'Backend > Backend 기본' 카테고리의 다른 글

Swagger  (0) 2021.02.28
서버 API 만들기  (0) 2021.02.18
formidable로 파일 업로드하기  (0) 2021.02.18
Crypto  (0) 2021.02.01
모듈화  (0) 2021.01.27
Comments