RDBMS의 기본개념과 데이터모델링 예시(스타벅스 메뉴)

DevelSopher·2021년 3월 23일
0

DBMS란?

데이터 베이스라는 집합을 만들고 데이터들을 관리할 수 있는 응용프로그램
데이터들을 "저장", "관리", "공유"등을 도와준다.

RDB(Relational Data Base)

관계형 데이터 모델에 기초를 둔 데이터 베이스이다.
모든 데이터를 2차원 테이블 형태로 표현 가능하다.

RDBMS

RDB를 생성하고 수정하고 관리할 수 있는 소프트웨어이다.

RDBMS의 테이블은 서로 연관성을 가지고 있어 DBMS 보다 효율적으로 구성, 저장, 관리가 가능하다.

Ex) MySQL , MSSQL , ORACLE

데이터 모델링

현실세계 -- 데이터가 뒤죽박죽 정리되어 있지 않은 상태
컴퓨터세계 -- 단순화, 추상화, 명확화된 데이터가 필요

pre) 테이블간의 연결 및 관계성

  • 1 대 1
  • 1 대 다
  • 다 대 다

    "학생"의 입장에서, 여러 과목을 들을 수 있고 "과목"의 입장에선 여러 학생으로부터 선택받을 수 있다. 따라서 "다대 다" 관계이다.

    다대 다 관계를 해결해주기 위해선 다음과 같이 "학생_수업"이라는 연결테이블(매핑테이블)이 필요하다.

학생: "가" "나" "다"
과목: "A" "B" "C" 라고 가정하고 모든 학생이 모든과목을 다 듣는다고 치면
학생 - 수업 테이블엔

가-A, 가-B, 가-C, 나-A, 나-B, 나-C, 다-A, 다-B, 다-C가 저장이 된다.

학생-수업 테이블에서 위같은 데이터들을 구분하기 위해서는 추가의 PK설정이 필요하다.

스타벅스 메뉴 모델링

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

구체적인 내용구성에 앞서 Beverage(Main Table) 중심으로 파생되는 테이블들의 관계(PK, FK)를 먼저 잡아주었다.

beverage-allergy 테이블이 앞서 Pre에서 언급해준

beverage와 allergy의 다대다 관계를 해결해주기 위해 설정된 연결테이블(매핑 테이블)이다.

profile
💎다듬고 연마하자👑

0개의 댓글