Data Base

SeungMin·2022년 7월 28일
0

WECODE

목록 보기
4/19

DataBase 란 일반적으로 컴퓨터 시스템에 전자적으로 저장되는 구조화된 정보 또는 데이터의 조직화된 모음이다.

이러한 정보들을 어떠한 기준이나 규모를 두지 않고 집대성 하게 된다면
단순하게 M * N 형태를 고려하더라도 각 축의 범위가 제한없이 증가한다.
대부분의 데이터는 모든 row : ID 가 모든 column : attribute 마다 값을 가지지는 않는다.

이러한 형태 sqrt(n) 의 형태를 띄는 매우 비효율적인 상태인 것이다.

때문에 DataBase 는 각각의 주제를 다루는 여러개의 Table 을 구성하고, 각 테이블을 서로 연결짓는 Relationship 으로 구성된다.


Diagram

dbdiagram : https://dbdiagram.io/

위의 사이트에서 DataBase 를 시각화 하여 다이어그램을 설계해 볼 수 있다.

나의 경우는 스타벅스 홈페이지의 음료를 가지고 DataBase 를 구성해 봤다.

음료 다이어그램

음료 다이어그램 코드

다이어그램을 만들면서 어떤 식으로 관계를 이어줘야 하는지 명확하게 기준을 잡지 못하고 있었다.
고민이 이어지던중 멘토님이 one to one , one to many , many to many 세가지를 구분지어서 설명해주신 것이 생각났다.

one to one

  • 부부를 예로 들자면, 대한민국에서는 1명의 남성은 1명의 여성과만 결혼이 가능하다.
    이같은 경우를 일대일 관계라고 한다.

one to many

  • 스타벅스의 음료에는 카테고리가 있다.
    전체 음료중에 콜드브루 카테고리에 속하는 음료가 여럿있고, 스무디에 속하는 음료도 여럿있다.
    물론 여러 카테고리에 중복 포함되는 경우도 있다.
    이런 경우가 일대다 관계인데 이때는
    oneattributemanyPrime keyForeign key로 참조해야 한다.

many to many

  • 다대다의 경우에는 약간 다르게 접근해야 한다.
    여러명의 사람이 여러가지의 옷을 입었다고 생각하면, 해당정보를 어떻게 담아야 할까?
    테이블의 구조상 1개의 셀에는 1개의 정보밖에 입력할 수 없다.
    A가 보라색 맨투맨 , 카키색 카고바지 , 검은색 조던을 신고있다면, 세가지의 정보를
    A의 의상정보에 한번에 담을수는 없는 셈이다.
    다대다의 경우는 Relationship Table을 새로 생성하여 관계정보를 담으면 해결된다.
  • Many / Relationship Table / Many

    A : 홍길동 / A - 1 / 1 : 보라색 맨투맨
    A : 홍길동 / A - 2 / 2 : 카키색 카고바지
    B : 강감찬 / B - 4 / 4 : 흰색 무지티
    A : 홍길동 / A - 3 / 3 : 검은색 조던
    B : 강감찬 / B - 5 / 5 : 회색 츄리닝바지

이런식으로 산발된 정보들을 각 정보의 목적과 공통분모를 통해서 관계짓는 방식을 사용하게 되면
하나의 거대한 테이블을 구성하는것에 비해서 매우 효율적인 DataBase 설계가 가능해진다.

profile
공부기록

0개의 댓글