๋ง ๊ทธ๋๋ก ๋ฐ์ดํฐ๋ฅผ ๋ง์ด ๋ชจ์๋์ ๋ฒ ์ด์ค! ๋ผ๊ณ ์๊ฐํ๋ฉด ๋๋ค. ์ฆ, ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ์์คํ ์ด๊ณ , ์ค๋ ๊ธฐ๊ฐ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅ, ์ฐ์ฐ, ๋ณด์กดํ๊ธฐ ์ํด ์ฌ์ฉํ๋ค. ๋ฐ๋๋๋ ๊ฐ๋ ์ ๋ฉ๋ชจ๋ฆฌ๋ก, ์ปดํจํฐ๋ฅผ ์ข ๋ฃํ๋ฉด ์ฌ๋ผ์ง๋ ํ๋ฐ์ฑ์ด๋ค. ๋ฐ๋ผ์ ์๋์ ์ด์ ์ ๊ฐ๊ณ , ์ด ๋๋ฌธ์ ๋ฐ์ดํฐ ์ ์ฅ์ ๋ฐ์ดํฐ ๋ฒ ์ด์ค์ ํ๊ณ ๋ฉ๋ชจ๋ฆฌ์์ ์ด ๋ฐ์ดํฐ๋ฅผ ์ฝ์ด ๊ฐ๊ณต์ฒ๋ฆฌ๋ฅผ ์งํํ๋ค. ํ์ผ๋ก ์ ์ฅํด๋ ๋์ง๋ง ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ฌ์ฉํ๋ ์ด์ ๋ ๋ฐ์ดํฐ ์ ๊ทผ๊ณผ ๊ด๋ฆฌ๊ฐ ํธ๋ฆฌํ๊ธฐ ๋๋ฌธ์ด๋ค.
๋ฐ์ดํฐ ๋ฒ ์ด์ค๋ ๋ณดํต ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ด๋ฆฌ์์คํ (DBMS, Database Management System)์ผ๋ก ์ ์ดํ๊ณ ๊ด๋ฆฌํ๋ค. ๋ฐ์ดํฐ์ DBMS, ์ด์ ์ฐ๊ด๋ ๋ค๋ฅธ ์ดํ๋ฆฌ์ผ์ด์ ์ ํตํ์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค์์คํ , ํน์ ๋ฐ์ดํฐ๋ฒ ์ด์ค, ๋ ์งง๊ฒ๋ DB๋ผ๊ณ ๋งํ๋ค.
๋ฐ์ดํฐ ๋ฒ ์ด์ค์ DBMS๋ฅผ ์ฌ์ฉํ๋ ์ด์ ๋ ๋ญ๊น? ๋ฐ์ดํฐ ๋ณด์กด๊ณผ ์ฒด๊ณ์ ๊ด๋ฆฌ ๋๋ฌธ์ด๋ค. ์ฌ์ฉ ๋ชฉ์ ์ ์์ฐ์ฑ ํฅ์๊ณผ ๊ธฐ๋ฅ์ฑ, ์ ๋ขฐ์ฑ ํ๋ณด๋ค. ๋ฐ์ดํฐ๋ฅผ ๊ฒ์, ์ถ๊ฐ, ์ญ์ธ, ๊ฐฑ์ ํ๋ฉฐ ์์ฐ์ฑ์ ๋ณด์ฅํ๋ฉฐ, ๋ณต์์ ์ ์ ์์ฒญ ๋์, ๋์ฉ๋ ๋ฐ์ดํฐ ์ ์ฅ, ๊ณ ์ ๊ฒ์, ๊ธฐ๋ฅ ํ์ฅ์ ์ ์ฐํจ ๋ฑ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๋ค๋ฃจ๋ ๊ณ ๊ธ ๊ธฐ๋ฅ์ ์ ๊ณตํด ๊ธฐ๋ฅ์ฑ์ ๋ณด์ฅํ๋ค. ๋ํ ํ๋์จ์ด๋ฅผ ์ฌ๋ฌ ๋๋ก ๊ตฌ์ฑํด ํ์ฅ, ๋ถํ ๋ถ์ฐ, ๋ฐ์ดํฐ ์ถ์ถ, ๋ฐ์ดํฐ ๋ฆฌ์คํ ์ด๋ฅผ ํ ์ ์๊ฒ ํด ์ฑ๋ฅ ํฅ์์ ๋๋ชจํด ์ ๋ขฐ์ฑ์ ๋ณด์ฅํ๋ค.
๋ชจ๋ ๋ฐ์ดํฐ์๋ ์ํธ ์ฐ๊ด์ฑ์ด ์๋ค๋ ๊ฒ์ ๊ธฐ๋ฐ์ผ๋ก ํ ์์คํ ์ด๋ค. ๋ชจ๋ ๋ฐ์ดํฐ๋ ํ ์ด๋ธ๋ก ๊ตฌ์ฑ๋๊ณ , ์์ ๊ณผ ๋น์ทํ๋ค๊ณ ์๊ฐํ๋ฉด ๋๋ค.
id | first name | last name | age | hobby |
---|---|---|---|---|
1 | dabin | an | 25 | weight training |
2 | seokjun | an | 70 | climbing |
ํ ์ด๋ธ์ column(๊ฐ ํญ๋ชฉ)๊ณผ row(ํญ๋ชฉ์ ๊ฐ)๋ก ๊ตฌ์ฑ๋์ด ์๋ 2์ฐจ์ ํ ์ด๋ธ์ด๋ค. ํ ์ด๋ธ์ ๊ฐ์ฅ ์ฒซ column์ ์ธ์ ๋ id๋ค. ๋ฐ๋ผ์ ๊ฐ row๋ ์ธ์ ๋ ๊ณ ์ ํ ๋ฒํธ(id)๋ฅผ ๊ฐ์ง๊ณ , ์ด๋ฅผ primary key๋ผ๊ณ ํ๋ค. primary key๋ฅผ ํตํด ํด๋นํ๋ row๋ฅผ ์ฐพ๊ฑฐ๋ ์ธ์ฉํ๊ฒ ๋๋ค.
ํ ์ด๋ธ A์ ๋ก์ฐ์ ํ ์ด๋ธ B์ ๋ก์ฐ๊ฐ ์ ํํ ์ผ๋์ผ ๋งค์นญ์ด ๋๋ ๊ด๊ณ.
ํ๋์ ๊ฐ๋ง ์ฐธ์กฐํ๋ค. ์๋ฅผ ๋ค์ด, ํ๋์ ํ ์ด๋ธ์๋ ์ ์ ์ ์ด๋ฆ์ด, ํ๋์ ํ ์ด๋ธ์๋ ์ ์ ์ด๋ฆ๊ณผ ๋งค์นญ๋๋ ์ฃผ๋ฏผ๋ฒํธ๊ฐ ๋ด๊ฒจ์๋ค๊ณ ๊ฐ์ ํด๋ณด์. ์ฃผ๋ฏผ๋ฒํธ๋ ํ ์ฌ๋๋น ํ๋๋ง ๊ฐ์ง ์ ์๊ธฐ ๋๋ฌธ์ ํ๋์ ํ ์ด๋ธ์ ๋ก์ฐ๋ ๋ค๋ฅธ ํ ์ด๋ธ ํ๋์ ๋ก์ฐ์ ์ฐ๊ฒฐ๋๋ค. ๋ฐ๋๋ก ํด๋ ๋ง์ฐฌ๊ฐ์ง๋ค.
ํ ์ด๋ธ A์ ๋ก์ฐ๊ฐ ํ ์ด๋ธ B์ ์ฌ๋ฌ ๋ก์ฐ์ ์ฐ๊ฒฐ์ด ๋๋ ๊ด๊ณ.
ํ๋์ ์ฃผ์ฒด๊ฐ ์ฌ๋ฌ ๊ฐ์ ์ํ ๊ฐ์ ๊ฐ์ง ์ ์๋ ๊ฒ์ ์๋ฏธํ๋ค. ํ๋์ ์นดํ ๊ณ ๋ฆฌ์ ๊ทธ์ ํด๋นํ๋ ์ฌ๋ฌ ์ ํ์ด ๋ค์ด๊ฐ ์๋ ๊ฒ์ ์์๋ก ๋ค ์ ์๋ค. ํ ์ด๋ธ A์ ๋ก์ฐ ํ๋๋ ํ ์ด๋ธ B์ ์ฌ๋ฌ ๋ก์ฐ์ ์ฐ๊ฒฐ๋์ง๋ง, ํ ์ด๋ธ B์ ๋ก์ฐ ํ๋๋ ํ ์ด๋ธ A์ ๋ก์ฐ ํ๋์ ์ฐ๊ฒฐ๋๋ค.
ํ ์ด๋ธ A์ ์ฌ๋ฌ ๋ก์ฐ๊ฐ ํ ์ด๋ธ B์ ์ฌ๋ฌ ๋ก์ฐ์ ์ฐ๊ฒฐ์ด ๋๋ ๊ด๊ณ.
์ฑ
์ ์ฌ๋ฌ ์๊ฐ์ ์ํด ์ฐ์ผ ์ ์๊ณ ์๊ฐ๋ค์ ์ฌ๋ฌ ์ฑ
์ ์ธ ์ ์๋ ๊ฒฝ์ฐ๋ฅผ ์๊ฐํ๋ฉด ๋๋ค. ํ
์ด๋ธ A์ ๊ฐ๊ณผ ์ฐ๊ฒฐ๋ ํ
์ด๋ธ B์ ๊ฐ์ด ๊ฐ๊ฐ ์ฐธ์กฐ๋์ด ์ค๊ฐํ
์ด๋ธ
์ ๊ธฐ๋ก๋๋ค.
๋๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ์ฌ๋ฌ๋ฒ ์ ์ฅํด์ผํ๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ฉด , foreign key๋ฅผ ์ด์ฉํด ํด๊ฒฐํ ์ ์๋ค. foreign key๋ fk๋ผ๊ณ ์ค์ฌ์ ํํํ ์ ์๋ค. ํ ์ด๋ธ A์ id๋ฅผ ์ฐธ์กฐํด ํ ์ด๋ธ B์ ์ฐธ์กฐํ ๋ฐ์ดํฐ์ id๊ฐ(foreign key)๋ฅผ ํจ๊ป ์ ์ฅํ๋ค.
one to one, one to many์ ๋ฐฉ์์ฒ๋ผ ํ๋์ ํ ์ด๋ธ์ ๋ชจ๋ ๋ฃ์ผ๋ฉด ์ค๋ณต์ด ๋ฐ์ํ ์ ์๊ณ ๋ ๋ง์ ๋์คํฌ๋ฅผ ์ฌ์ฉํ๋ฉฐ, ์๋ชป๋ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ ๊ฐ๋ฅ์ฑ์ด ๋์์ง๋ค. ๋๋์ด ์ ์ฅ ํ ํ์ํ ํ ์ด๋ธ๋ผ๋ฆฌ ์ฐ๊ฒฐํ๋ฉด ์ค๋ณต์ด ์์ผ๋ฏ๋ก ๋์คํฌ๋ฅผ ํจ์จ์ ์ผ๋ก ์ฐ๊ณ , ์๋ชป๋ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ ๊ฐ๋ฅ์ฑ์ด ๋ฎ์์ง๋ค. ์ด๊ฒ์ '์ ๊ทํ'๋ผ๊ณ ํ๋ค.
๋น๊ด๊ณํ ํ์ ์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ ๋ ์ฃผ๋ก ์ฌ์ฉ๋๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ค. ๊ด๊ณํ๊ณผ ๋ค๋ฅด๊ฒ ๊ด๊ณ ์ค์ ์ ๋ฐ๋ฅธ ํ ์ด๋ธ ๋ชจ๋ธ๋ง์ด ์๋ค. ๋ฐ๋ผ์ ๋ฐ์ดํฐ ์ ์ฅ ์ ์ ์ ํํํ ํ์๊ฐ ์๋ค. (๊ด๊ณํ์ ์ ์ฅ ์ ์ ์ด๋ป๊ฒ ์ ์ฅํ ์ง ์ ์ํด์ผํ๋ค) ๋ฐ๋ผ์ ๋น๊ด๊ณํ ํ์ ์ ๋น ๋ฅธ ์๋๋ก ์ ์ฅํด์ผํ ๋ ์ฌ์ฉํ๊ฒ ๋๋ค. ๋ํ์ ์ผ๋ก๋ MongoDB, Redis ๋ฑ์ด ์๋ค.
SQL
[์ฅ์ ]
[๋จ์ ]
[ํ์ฉ]
NoSQL
[์ฅ์ ]
[๋จ์ ]
[ํ์ฉ]
ํธ๋์ญ์ ์ด๋?
๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ํ๋ฅผ ๋ณํ์ํค๋ ํ๋์ ๋ ผ๋ฆฌ์ ๊ธฐ๋ฅ์ ์ํํ๊ธฐ ์ํ ์์ ์ ๋จ์ ๋๋ ํ๊บผ๋ฒ์ ๋ชจ๋ ์ํ๋์ด์ผ ํ ์ผ๋ จ์ ์ฐ์ฐ๋ค์ ๋ปํ๋ค. ํ์ด ์ค๋ช ํ์๋ฉด, ๋ฌถ์ ์ฒ๋ฆฌ๋ ์์ ์ ๋จ์๋ฅผ ์ํํ๋ค๊ฐ ๋ง์ฝ ์ค๊ฐ์ ์ค์ง๋์์ ๊ฒฝ์ฐ์ ์ฒ์๋ถํฐ ๋ค์ ์ํํ๋ ๋กค๋ฐฑ์ ์ํํ๊ณ , ์ค๋ฅ์์ด ๋ง์น๋ฉด commit์ ํ๋ ์ํ๋จ์๋ค. ๋กค๋ฐฑ์ด ์ ํํ ๋ญ๊น? ๋ด๊ฐ ์น๊ตฌํํ ์ก๊ธ์ ํ๋ ์ํฉ์ ์๊ฐํด๋ณด์. ๋ด ๊ณ์ข์์๋ ๋์ด ๋๊ฐ๋๋ฐ ์น๊ตฌ ๊ณ์ข์ ๋์ด ๋ค์ด๊ฐ์ง ์์๋ค๋ฉด ๋์ ๊ณต์ค๋ถํด๋ ๊ฒ์ด๋ค. ์ด๋ฐ ์ํฉ์ ๋ง๊ธฐ ์ํด ์ค๊ฐ์ ์ค๋ฅ๊ฐ ๋๊ฑฐ๋ ํ๋ ์ํฉ์ด ์ค๋ฉด ์ฒ์์ผ๋ก ๋๋์๊ฐ ๋ค์ ์ํํ๊ฒ ๋๋ค. ์ด๊ฒ ๋ฐ๋ก ๋กค๋ฐฑ์ด๋ค!
ํธ๋์ญ์ ์ ์์ ์ํ์ ๋ ผ๋ฆฌ์ ๋จ์๊ณ , DBMS์ ์ฑ๋ฅ์ ์ด๋น ํธ๋์ญ์ ์คํ์๋ก ์ธก์ ํ๋ค.(TPS) ํธ๋์ญ์ ์ ์ฌ๋ฌ ์ฌ์ฉ์๊ฐ DB์ ์ ๊ทผํ๊ฑฐ๋, ์์ฉํ๋ก๊ทธ๋จ์ด ๊ฐฑ์ ์ ์ฒ๋ฆฌํ๋ ๊ณผ์ ์์ ์ค๋จ๋ ์ ์๋ ๊ฒฝ์ฐ ๋ฐ์ดํฐ ๋ถ์ ํฉ์ ๋ฐฉ์งํ๊ณ ์ํ ๋ ์ฌ์ฉํ๋ค. ํธ๋์ญ์ ์ ๋ค ๊ฐ์ง์ ํน์ฑ์ ๊ฐ์ง๊ณ ์๋ค.
์์์ฑ
ํธ๋์ญ์ ๊ณผ ๊ด๋ จ๋ ์์ ๋ค์ด ๋ถ๋ถ์ ์ผ๋ก ์คํ๋๋ค๊ฐ ์ค๋จ๋์ง ์๋ ๊ฒ์ ๋ณด์ฅ
์ผ๊ด์ฑ
ํธ๋์ญ์ ์ด ์คํ์ ์ฑ๊ณต์ ์ผ๋ก ์๋ฃํ๋ฉด ์ธ์ ๋ ์ผ๊ด์ฑ์๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ํ ์ ์งํ๋ ๊ฒ
๊ณ ๋ฆฝ์ฑ
ํธ๋์ญ์ ์ํ ์ ๋ค๋ฅธ ํธ๋์ญ์ ์ ์ฐ์ฐ ์์ ์ด ๋ผ์ด๋ค์ง ๋ชปํ๋๋ก ๋ณด์ฅ
์ง์์ฑ
์ฑ๊ณต์ ์ผ๋ก ์ํ๋ ํธ๋์ญ์ ์ ์์ํ ๋ฐ์๋์ด์ผ ํจ
https://coding-factory.tistory.com/226