DataBase
란 일반적으로 컴퓨터 시스템에 전자적으로 저장되는 구조화된 정보 또는 데이터의 조직화된 모음이다.
이러한 정보들을 어떠한 기준이나 규모를 두지 않고 집대성 하게 된다면
단순하게 M * N
형태를 고려하더라도 각 축의 범위가 제한없이 증가한다.
대부분의 데이터는 모든 row
: ID
가 모든 column
: attribute
마다 값을 가지지는 않는다.
이러한 형태 sqrt(n)
의 형태를 띄는 매우 비효율적인 상태인 것이다.
때문에 DataBase
는 각각의 주제를 다루는 여러개의 Table
을 구성하고, 각 테이블을 서로 연결짓는 Relationship
으로 구성된다.
dbdiagram : https://dbdiagram.io/
위의 사이트에서 DataBase
를 시각화 하여 다이어그램을 설계해 볼 수 있다.
나의 경우는 스타벅스 홈페이지의 음료를 가지고 DataBase
를 구성해 봤다.
다이어그램을 만들면서 어떤 식으로 관계를 이어줘야 하는지 명확하게 기준을 잡지 못하고 있었다.
고민이 이어지던중 멘토님이 one to one
, one to many
, many to many
세가지를 구분지어서 설명해주신 것이 생각났다.
one to one
one to many
one
의 attribute
에 many
의 Prime key
를 Foreign key
로 참조해야 한다.many to many
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
설계가 가능해진다.