Database Schema Design
SQL vs NoSQL
SQL๊ณผ NoSQL์ ์ฐจ์ด์ ๊ฐ๊ฐ์ ์ฅ๋จ์
SQL (Structured Query Language)
๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ฒด๋ฅผ ๋งํ๋๊ฒ ์๋๋ผ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ํธ ์์ฉํ๋ ๋ฐ ์ฌ์ฉ ํ๋ ์ฟผ๋ฆฌ ์ธ์ด๋ฅผ ๋งํ๋ค.
SQL is ths language we use to 'talk' to our database
SQL์ ์ฌ์ฉํ๋ฉด ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ด๋ฆฌ ์์คํ (RDBMS)์์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅ, ์์ , ์ญ์ ๋ฐ ๊ฒ์ ํ ์ ์๋ค.
๋ฐ์ดํฐ๋ ์ ํด์ง(์๊ฒฉํ) ๋ฐ์ดํฐ ์คํค๋ง (= structure)๋ฅผ ๋ฐ๋ผ ๋ฐ์ดํฐ๋ฒ ์ด์ค ํ ์ด๋ธ์ ์ ์ฅ๋ฉ๋๋ค.
์คํค๋ง๋ฅผ ์ค์ํ์ง ์๋ ๋ ์ฝ๋๋ ์ถ๊ฐํ ์ ์๋ค.
๋ฐ์ดํฐ๋ ๊ด๊ณ๋ฅผ ํตํด์ ์ฐ๊ฒฐ๋ ์ฌ๋ฌ๊ฐ์ ํ ์ด๋ธ์ ๋ถ์ฐ๋ฉ๋๋ค.
์ค๋ณต๋ ๋ฐ์ดํฐ๊ฐ ์์ต๋๋ค.
PostgreSql, MySQL, Oracle, Microsoft SQL Server
NoSQL
๋น๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค
์คํค๋ง ์์
๊ด๊ณ ์์
๊ด๋ จ ๋ฐ์ดํฐ๋ฅผ ๋์ผํ ์ปฌ๋ ์ ์ ๋ฃ๋๋ค.
๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ฒ๋ผ ์ฌ๋ฌ ํ ์ด๋ธ์ ๋๋์ด ๋ด์ง ์์ต๋๋ค.
์ค๋ณต๋ ๋ฐ์ดํฐ๊ฐ ์์ ์ ์๊ธฐ ๋๋ฌธ์ ์ฌ๋ฌ๊ฐ์ ์ปฌ๋ ์ ๋ค์ ์์ ํด์ผ ํ๋ค. ๋นผ๋จน์ผ๋ฉด ์๋๋ค.
๋ ์ฝ๋๋ฅผ ๋ฌธ์(documents)๋ผ๊ณ ๋ถ๋ฅธ๋ค. ๋ฌธ์๋ JSON ๋ฐ์ดํฐ์ ๋น์ทํ ํํ๋ฅผ ๊ฐ์ง๊ณ ์๋ค.
Redis, RavenDB, Cassandra, MongoDB, BigTable, HBase, Neo4j and CouchDB
[์์ง์ (Vertical) & ์ํ์ (Horizontal) ํ์ฅ(Scaling)]
์์ง์ ํ์ฅ
๋จ์ํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์๋ฒ์ ์ฑ๋ฅ๋ง ํฅ์
SQL์ ์์ง์ ํ์ฅ๋ง ๊ฐ๋ฅ
์ํ์ ํ์ฅ
๋ ๋ง์ ์๋ฒ๊ฐ ์ถ๊ฐ๋๊ณ ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ์ ์ฒด์ ์ผ๋ก ๋ถ์ฐ๋จ
NoSQL ๊ฐ๋ฅ
์ฅ๋จ์
SQL์ ์ฅ์
๋ช ํํ๊ฒ ์ ์ ๋ ์คํค๋ง, ๋ฐ์ดํฐ ๋ฌด๊ฒฐ์ฑ ๋ณด์ฅ
๊ด๊ณ๋ ๊ฐ ๋ฐ์ดํฐ๋ฅผ ์ค๋ณต์์ด ํ๋ฒ๋ง ์ ์ฅ๋จ
๊ตฌ์กฐ๊ฐ ์ ์กํ ์๋ค.
์์น๊ฐ ๋น ๋ฅด๋ค.
ํผํผํ๋ค.
db๊ฐ ์ฃฝ๋ ์ผ์ ๋๋ฌผ๋ค.
SQL์ ๋จ์
๋ ์ ์ฐํ๋ค, ๋ฐ์ดํฐ ์คํค๋ง๋ ์ฌ์ ์ ๊ณํ๋๊ณ ์๋ ค์ ธ์ผ ํฉ๋๋ค.
๊ด๊ณ๋ฅผ ๋งบ๊ณ ์๊ธฐ ๋๋ฌธ์ JOIN์ผ๋ก ๋งค์ฐ ๋ณต์กํ๋ค.
์ํ์ ํ์ฅ์ด ์ด๋ ต๋ค.
์ฑ์ฅ ํ๊ณ๊ฐ ์๋ค.
๋์ ์ด ์์ฒญ๋ง์ ๊ฒ์ DB๋ writeํ ๋๋ง๋ค ํ์ํ ๋ถ๋ถ์ lock์ ๊ฑด๋ค.
write์ read๋ฅผ ๋๋ ๋๋๋ค.
DB๋ฅผ ์ฌ๋ฌ๊ฐ ๋ง๋ฌ ์๋ง์กด์...
NoSQL์ ์ฅ์
์คํค๋ง๊ฐ ์๊ธฐ ๋๋ฌธ์, ํจ์ฌ ๋ ์ ์ฐํ๋ค.
์ธ์ ๋ ์ง ์ ์ฅ๋ ๋ฐ์ดํฐ๋ฅผ ์กฐ์ ํ๊ณ ์๋ก์ด "ํ๋"๋ฅผ ์ถ๊ฐ ํ ์ ์๋ค.
๋ฐ์ดํฐ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ด ํ์๋ก ํ๋ ํ์์ผ๋ก ์ ์ฅ
๋ฐ์ดํฐ๋ฅผ ์ฝ์ด์ค๋ ์๋๊ฐ ๋นจ๋ผ์ง๋ค.
์์ง ๋ฐ ์ํ ํ์ฅ์ด ๊ฐ๋ฅํ๋ฏ๋ก ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ์ ํ๋ฆฌ์ผ์ด์ ์์ ๋ฐ์์ํค๋ ๋ชจ๋ ์ฝ๊ธฐ / ์ฐ๊ธฐ ์์ฒญ์ ์ฒ๋ฆฌ ํ ์ ์๋ค.
ํธ๋ ๋ก! ๋ณด๋์ ๊ธ์ฌ๋ฆฌ๊ณ ์นด๋๊ฐ ๋นจ๋ฆฌ ๋นจ๋ฆฌ ๋ฐ๋๋ค.
๋ถ์ฐ์์คํ , ๋ถ์ฐdb, ์์ฒด์ ์ผ๋ก ๋ถ์ฐ..
sql๋ณด๋ค ๋น์ธ๋ค.
๊ด๋ฒ์ํ ํํฐ
NoSQL์ ๋จ์
์ ์ฐ์ฑ ๋๋ฌธ์ ๋ฐ์ดํฐ ๊ตฌ์กฐ ๊ฒฐ์ ์ ํ์ง ๋ชปํ๊ณ ๋ฏธ๋ฃจ๊ฒ ๋๋ค.
๋ฐ์ดํฐ ์ค๋ณต์ ์ฌ๋ฌ ์ปฌ๋ ์ ์ ์ ๋ฐ์ดํธ ์์ผ์ค์ผ ํ๋ค.
SQL ์ฌ์ฉ์?
๊ด๊ณ๋ฅผ ๋งบ๊ณ ์๋ ๋ฐ์ดํฐ๊ฐ ์์ฃผ ๋ณ๊ฒฝ๋ ๊ฒฝ์ฐ
๋ช ํํ ์คํค๋ง๊ฐ ์ฌ์ฉ์์ ๋ฐ์ดํฐ์ ์ค์ํ ๊ฒฝ์ฐ
NoSQL ์ฌ์ฉ์?
์ ํํ ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ฅผ ์ ์ ์๊ฑฐ๋ ๋ณ๊ฒฝ/ ํ์ฅ ๋ ์ ์๋ ๊ฒฝ์ฐ
์ฝ๊ธฐ๋ ์์ฃผ ํ์ง๋ง ๋ณ๊ฒฝ๋์ง ์๋๊ฒฝ์ฐ
๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ํ์ผ๋ก ํ์ฅํด์ผ ํ๋ ๊ฒฝ์ฐ
๋ง๋ํ ๋ฐ์ดํฐ๋ฅผ ๋ค๋ค์ผ ํ๋ ๊ฒฝ์ฐ
Last updated
Was this helpful?