์ปดํจํฐ ์์คํ ์ ์ ์ฅ๋ ์ ๋ณด๋ ๋ฐ์ดํฐ๋ฅผ ๋ชจ๋ ๋ชจ์ ๋์ ์งํฉ
๋ด๋ถ ๋ฐ์ดํฐ๋ ์คํ๋ ๋ ์ํธ ์ฒ๋ผ ์๊น
๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ด๋ฆฌ ์์คํ
(DBMS, Database Management System)
์ผ๋ก ์ ์ดํ๊ณ ๊ด๋ฆฌํ๋ค.
๋ฐ์ดํฐ, ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ด๋ฆฌ ์์คํ
, ๊ทธ๋ฆฌ๊ณ ์ฐ๊ด๋ ๋ค๋ฅธ ์ดํ๋ฆฌ์ผ์ด์
์ ํตํ์ด์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์คํ
ํน์ ๋ฐ์ดํฐ๋ฒ ์ด์ค
, ๋ ์งง๊ฒ DB
๋ผ๊ณ ๋ถ๋ฆ.
์ฒด๊ณ์ ์ผ๋ก
, ์ค๋๊ธฐ๊ฐ ์ ์ฅ, ๋ณด์กด
ํ๊ธฐ ์ํด์ DB ๋ฅผ ์ด๋ค.
Database์๋ ํฌ๊ฒ ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค(RDBMS)
์
"NoSQL"๋ก ๋ช
์นญ๋๋ ๋น๊ด๊ณํ(Non-relational) database
๊ฐ ์๋ค.
๊ด๊ณ๋ ํ๋ค ์ฌ์ด์ ๊ด๊ณ๋ฅผ ๋งํจ.
๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ๋ชจ๋ ๋ฐ์ดํฐ๋ 2์ฐจ์ ํ ์ด๋ธ(table)๋ก ํํํ ์ ์๋ค.
๊ฐ row๋ ์ธ์ ๋ ์ ๋ง์ ๊ณ ์ ํค(Primary Key,PK)
๊ฐ ์๋ค.
๊ณ ์ ๋ฒํธ๋ฅผ ๋งํจ. ์ฌ๊ธฐ์๋ id
๊ฐ
๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ๊ฐ๊ฐ ํ ์ด๋ธ๋ค์ด ์๋ก ์ํธ๊ด๋ จ์ฑ์ ๊ฐ์ง๊ณ ์ฐ๊ฒฐ๋์ด ์๋ค.
์ด ํ
์ด๋ธ์ ์ฐ๊ฒฐ์๋
One to One(์ผ๋์ผ)
, One to Many(์ผ๋๋ค)
, Many to Many(๋ค๋๋ค)
๊ด๊ณ ๋ผ๊ณ ๋ถ๋ฆ.
One to One (1:1) ๊ด๊ณ
: ํ
์ด๋ธ A์ row์ ํ
์ด๋ธ B์ row๊ฐ ์ ํํ ์ผ๋์ผ ๋งค์นญ์ด ๋๋ ๊ด๊ณOne to Many(1:N) ๊ด๊ณ
: ํ
์ด๋ธ A์ ๋ก์ฐ๊ฐ ํ
์ด๋ธ B์ ์ฌ๋ฌ ๋ก์ฐ์ ์ฐ๊ฒฐ์ด ๋๋ ๊ด๊ณMany to Many(N:N) ๊ด๊ณ
: ํ
์ด๋ธ A์ ์ฌ๋ฌ row๊ฐ ํ
์ด๋ธB ์ ์ฌ๋ฌ row ์ ์ฐ๊ฒฐ๋๋ ๊ด๊ณForeignkey(์ธ๋ถํค,FK)
๋ผ๋ ๊ฐ๋
์ผ๋ก ์ฃผ๋ก ์ฐ๊ฒฐ
profiles ํ
์ด๋ธ
์ user_id ์ปฌ๋ผ์
users ํ
์ด๋ธ
์ ๊ฑธ๋ ค์๋ ์ธ๋ถํค๋ผ๊ณ ์ง์ ํจ.
์ด๋ฌ๋ฉด ๋ฐ์ดํฐ๋ฒ ์ด์คํํ
,
profiles ํ
์ด๋ธ
์ user_id์ ๊ฐ์, users ํ
์ด๋ธ
์ ์๋ id๊ฐ์ด๊ณ , usersํ
์ด๋ธ์ id ์ปฌ๋ผ์ ์๋ ๊ฐ๋ง ์์ฑ๋ ์ ์๋ค.
users ํ
์ด๋ธ์ ์๋ id๊ฐ์ด user_profile ํ
์ด๋ธ์ user_id์ ์ง์ ๋๋ฉด ์๋ฌ ๋ฐ์
์ฌ๋ฌ ํ
์ด๋ธ์ ๋๋์ด ์ ์ฅํ๋ฉด,
์ค๋ณต๋ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ์ง๋ ์๊ณ ,
๋ถํ์ํ ์ ๋ณด๋ฅผ ์ ์ฅํ์ง๋ ์์์ ๋์คํฌ๋ฅผ ํจ์จ์ ์ผ๋ก ์ธ ์ ์๋ค.
์ด๋ฅผ normailization(์ ๊ทํ)
๋ผ๊ณ ํ๋ค.
์ง์ ์ฐธ์ฌ๋ ๋ชปํ์ง๋ง, ์๋ฃ๋ก ๊ณต๋ถํ๋ฉด์ ์ ๋ฆฌํ ๋ด์ฉ
VARCHAR
: ์ต๋ ๊ธธ์ด๊ฐ 3์ฒ์
TEXT
: 3์ฒ์ ์ด์ (DB์์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์์ฒญ ํฌ๊ฒ ์ก์)
INT
: ์ ์ํ ์ซ์
์์์ ๋์์ ํตํ๋ decimal
๋ก ๊ด๋ฆฌํจ
์ ๊ทธ๋ฆผ์ด ๋ชจ๋ฒ๋ต์. ๋๋๊ธฐ ๋๋ฆ์ด๊ณ , ์ ๋ต์ ์๋ค.
- categories : drink = 1 : N
- drinks : image_url = 1: N
- ์ ์ํ ์ฌ๋ถ๋ Y/N boolean ํ์ ์ผ๋ก ๊ด๋ฆฌํ๋๋ฐ, ์ฌ๊ธฐ๋ ์ฒ๋ฆฌ ์ํจ.
- drinks : nutrituion : 1 : 1
๊ฐ๊ฐ์ ์์์ ํฌํจ ์ ๋๋, ์๋ฃ ๊ฐ๊ฐ์ด ๋ค๋ฅด๋ค๊ณ ํ๋จํจ.
- drinks : allergies : N : N
์๋ฃ ํ๋์ ์๋ฌ์ง ์์๊ฐ ์ฌ๋ฌ๊ฐ ์ผ ์ ์๊ณ , ์๋ฌ์ง ํ๋์ ํด๋น๋๋ ์๋ฃ๊ฐ ์ฌ๋ฌ๊ฐ ์ผ ์ ์๋ค.
๊ฐ๊ฐ์ ํ ์ด๋ธ์
PK๊ฐ(id)
์ ๊ฐ์ง๊ณ ์๋ค.
์ด๋ฅผ ๋ค๋ฅธ ํ ์ด๋ธ์์ ๋์ด๊ฐ์, ์๊ธฐ ํ ์ด๋ธ์ ์ด๋ค.
๊ทธ๋ฆฌ๊ณFK(์ธ๋ถํค)
๋ก ์ค์ ํด๋ ์ถ์ฒ๋ฅผ ๋ฐํ๋ ๊ฑฐ๋ผ ์๊ฐํ๋ฉด ์ฝ๋ค.
์ด๋ฐ ์์ผ๋ก ๊ด๊ณ๋ฅผ ์๊ฐํด์ ๋ง๋ค์ด ๊ฐ๋ ๊ฒ.