Database session: 스타벅스 모델링

홍태경·2021년 3월 22일

책으로만 보던 모델링을 처음 5명의 팀이 되어 만들어보았다 멘붕이 따로 없었다
복습 겸 관계형 데이터베이스 모델의 연결관계(one to one, one to many, many to many)
을 적어 보려한다

1. Database?

데이터베이스란 여럿이 공유하여 사용할 목적으로 통합하고 관리하는 데이터의 집합이다
데이터베이스들을 제어하고 관리할 목적으로 만들어진 것이 DBMS이다

어플리케이션에서의 메모리는 휘발성이기 때문에 데이터가 보존되지 않는다. 그러므로 애플리케이션을 종료하면 데이터를 읽어들일 수 없기 때문에 데이터의 장기간 보존을 위해서 하드에 놓고 관리 할 데이터베이스가 필요하다.

2. 관계형 데이터베이스 (RDBMS, Relational DataBase Management System)

  • 모든 테이블은 2차원 테이블로 표현된다.
  • 컬럼은 테이블의 각 항목을 말한다.
  • 로우는 각 항목들의 실제 값들이다.
  • 각 로우는 저만의Primary Key (고유 키) 가 있다. primary key를 통해서 해당 로우를 찾거나 refer할 수 있다.

one to one

- 테이블 A의 로우와 테이블 B의 로우가 정확히 일대일 매칭이 되는 관계를 one to one 관계라고 합니다다.

one to many

  • 테이블 A의 로우가 테이블 B의 여러 로우와 연결이 되는 관계를 one to many 관계라고 합니다.

ex) 각 고객은 여러 제품을 구매할 수 있지만 구매된 제품의 주인은 오직 한 고객 뿐이다 - one to many

many to many

  • 테이블이 A의 여러 로우가 테이블 B의 여러 로우와 연결이 되는 관계를 Many to Many라고 한다 .

ex) 책은 여러 작가에 의해 쓰일 수 있고 작가들은 여러 책을 쓸 수 있다 - many to many

3.스타벅스 모델링 리뷰

- 3.1 과제 설명

[ 데이터베이스 모델링 과제 안내]
스타벅스 음료 페이지를 모델링 해주세요.

  • 필수 구현 : 음료, 카테고리, 영양 정보, 알러지, 음료 이미지, 음료 설명, 신상 여부
  • 구현 제외 사항 : 프로모션, 음료 사이즈
  • 도구 : Aquery ERD tools (가입 필수)

https://www.starbucks.co.kr/menu/drink_list.do

3.2 테이블들을 관리 하는 데이터베이스 스키마 생성 및 그림으로 관계를 표현하는 ERD(entity-relationship diagram)

우리팀이 했던 접근 방법

1. drink 와 categories는 one to one 관계이다.

  • 하나의 음료는 하나의 카테고리안에만 존재할 수 있다.
    예를 들어, 나이트로 콜드 부르는 콜드부르 커피 카테고리에 있다.

2. drink와 nutrition은 one to one 관계이다.

  • 하나의 음료는 한개의 영양정보들만 가질 수 있다.
    영양정보 안에 칼로리, 포화지방, 단백질, 나트륨 당 카페인등 항목에 있다.

3. drink 와 allergies는 many to many 관계이다.

  • 하나의 음료는 여러개의 알레르기 유발 요인를 가질 수 있고, 알러지 입장에서도 여러가지의 음료가 있을 수 있다.

예를 들어, 제주 쑥떡 크림 프라푸치노는 대두/우유/밀을 알레르기 유발 요인으로 가진다.
우유라는 알레르기 유발 요인은 제주 쑥떡 프라푸치노, 돌체 콜드 브루, 나이트로 바닐라 크림 등을 음료로 가진다.

4. drink 는 name(음료 이름), image(음료 이미지), description(음료 설명)를 고유값으로 갖는다.

  • 음료 하나당 무조건 음료 이름은 한개이다.
  • 음료 하나당 이미지도 한개이다.
  • 음료 하나당 음료 설명도 다 한개이다. 당연히 제각각이다. 고로 이건 따로 테이블을 만들지 않고 고유값 처리를 해주었다.

5. beverages 와 new_status(신상여부)는 one to one 관계이다.

수정해야 할 부분.

profile
나의 에고를 인정하고 사랑하자

0개의 댓글