๐๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋น๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ํด์ ์์๋ณด๊ณ ๋น๊ตํด๋ณด์
ํ ์ด๋ธ ๊ฐ์ ๊ด๊ณ(Relationship)๋ฅผ ํํํ๋ฉด์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ณ ๊ด๋ฆฌํ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค
๐๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ผ๋ฐ์ ์ธ ํน์ง์ ๋ค์๊ณผ ๊ฐ๋ค.
์คํค๋ง
๋ฐ์ดํฐ์ ๊ตฌ์กฐ๋ฅผ ๋ฏธ๋ฆฌ ์ ํด๋๊ณ ์ฌ์ฉํ๋ ๊ฒ์ผ๋ก, ๋ฐ์ดํฐ์ ์ผ๊ด์ฑ๊ณผ ๋ฌด๊ฒฐ์ฑ์ ๋ณด์ฅํ๋ค. ํ
์ด๋ธ(Table)๊ณผ ์ธ๋ฑ์ค(Index) ๊ธฐ๋ฐ์ ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ฅผ ๊ฐ์ง ์คํค๋ง๋ฅผ ๊ฒฐ์ ํ์ฌ ๋ฐ์ดํฐ์ ํ์
๊ณผ ๊ธธ์ด๋ฅผ ๋ฏธ๋ฆฌ ์ ์ํด ๋๊ณ ์ฌ์ฉํ๋ฏ๋ก ๋ฐ์ดํฐ ์ผ๊ด์ฑ๊ณผ ๋ฌด๊ฒฐ์ฑ์ ๋ณด์ฅํ๋ค.
๋ฐ์ดํฐ๋ ํ ์ด๋ธ(table)์ ๋ ์ฝ๋(record)๋ก ์ ์ฅ๋๋ฉฐ, ๊ฐ ํ ์ด๋ธ์๋ ๋ช ํํ๊ฒ ์ ์๋ ๊ตฌ์กฐ(structure)๊ฐ ์๋ค.
์ด๋ ๊ฒ ์๊ฒฉํ๊ฒ ์ ํด์ ธ ์๋ ์คํค๋ง๋ ์ผ๊ด์ฑ๊ณผ ๋ฌด๊ฒฐ์ฑ์ ๋ณด์ฅํ๋ ์ฅ์ ์ด ์์ง๋ง ํํธ์ผ๋ก ์คํค๋ง์ ์ ์ ๋์ง์์ ๋ ์ฝ๋๋ ์ถ๊ฐํ ์ ์์ด ํ์ฅ์ฑ์ด ๋จ์ด์ง๋ ๋จ์ ์ ๊ฐ์ง๊ณ ์๋ค.
SQL
RDB๋ SQL(Structured Query Language)์ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ๋ฅผ ์กฐํํ๊ณ ์์ ํ๋ค.
SQL์ ์ง๊ด์ ์ด๋ฉฐ, ํ์คํ๋ ๋ฌธ๋ฒ์ ์ฌ์ฉํ๋ฏ๋ก ์ฝ๊ฒ ๋ฐฐ์ธ ์ ์์ด, ์ด๊ธฐ ๊ฐ๋ฐ๋น์ฉ์ ์ค์ผ ์ ์๋ค.
ACID ํธ๋์ญ์
RDB๋ ํธ๋์ญ์
(Transaction)์ ์ง์ํ๊ธฐ ๋๋ฌธ์ ํธ๋์ญ์
์ด ๊ฐ์ง๋ ACID(Atomicity, Consistency, Isolation, Durability)ํน์ฑ์ ๋ณด์ฅํด ์ค๋ค.
๐ํธ๋์ญ์
์ ํน์ฑ์ ๋ํด ์๊ณ ์ถ๋ค๋ฉด, ํธ๋์ญ์
ํฌ์คํ
์ ์ฐธ๊ณ ํ์
๋ฐ์ดํฐ ๋ฌด๊ฒฐ์ฑ
RDB๋ ์ผ๋ฐ์ ์ผ๋ก ์ ๊ทํ๋ฅผ ํตํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ค๊ณํ๊ธฐ ๋๋ฌธ์ ๋ฐ์ดํฐ๊ฐ ์ ํํ๊ณ ์ผ๊ด์ฑ ์๊ฒ ์ ์ง๋์ด์ผ ํ๋ค๋ ๋ฐ์ดํฐ ๋ฌด๊ฒฐ์ฑ์ ๋ณด์ฅํ๋ค.
๐์ ๊ทํ์ ๋ํ ์ฐธ๊ณ ์๋ฃ : ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ๊ทํ์ ๋ํ ํฌ์คํ
์์ง์ ํ์ฅ์ฑ
๋ฐ์ดํฐ๊ฐ ์ ์ฅ๋๋ ๋ฐฉ์ ๋๋ฌธ์ SQL ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ์ผ๋ฐ์ ์ผ๋ก ์์ง ํ์ฅ๋ง์ ์ง์ํ๋ค.
๐์ผ๋ฐ์ ์ผ๋ก ์๋์ ๊ฐ์ ๊ฒฝ์ฐ์ ํ๋ก์ ํธ๋ ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ์๊ฐํด ๋ณผ ์ ์๋ค.
๋น๊ต์ ์ ํํ๋ ๋ฐ์ดํฐ๋ฅผ ๋ค๋ฃจ๋ ๊ฒฝ์ฐ
๋ฐ์ดํฐ ๊ตฌ์กฐ๊ฐ ์๋์ ์ผ๋ก ๋จ์ํ ๊ฒฝ์ฐ
๋ฐ์ดํฐ ์ผ๊ด์ฑ๊ณผ ์์ ์ฑ์ด ๋งค์ฐ ์ค์ํ ๊ฒฝ์ฐ
๋ณ๊ฒฝ๋ ์ฌ์ง๊ฐ ์๊ณ , ๋ช
ํํ ์คํค๋ง๊ฐ ์ฌ์ฉ์์ ๋ฐ์ดํฐ์๊ฒ ์ค์ํ ๊ฒฝ์ฐ
๋น๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค(NoSQL)๋ ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค(RDB)์ ๋ฌ๋ฆฌ ํ ์ด๋ธ, ํ, ์ด ๋ฑ์ ๊ฐ๋ ์ด ์์ด ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ณ ๊ฒ์ํ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๋งํ๋ค.
์คํค๋ง ์์ ์ฑ(๋ฐ์ดํฐ์ ์ ์ฐ์ฑ)
NoSQL์ ์คํค๋ง ์์ ๋กญ๋ค. ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ฅ๋๋ ๋ฐ์ดํฐ ๊ตฌ์กฐ๊ฐ ์ฌ์ ์ ๊ณ ์ ๋ ์คํค๋ง๋ก ์ ์๋์ด ์์ง ์์๋ ๋๋ค.
์ด์ ๋ฐ๋ผ ์๋ก์ด ๋ฐ์ดํฐ ์ ํ์ ์์ฝ๊ฒ ์ถ๊ฐํ๊ณ ์์ ํ ์ ์์ผ๋ฏ๋ก ๋ฐ์ดํฐ์ ์ ์ฐ์ฑ์ ๋์ฌ์ค๋ค.
๋ถ์ฐ ํ์ฅ์ฑ(์ํ์ ํ์ฅ์ฑ)
NoSQL์ ์ํ์ ํ์ฅ์ ํตํด ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ฑ๋ฅ์ ๋์ผ ์ ์๋ค. ์ฆ, ์๋ฒ๋ฅผ ์ถ๊ฐํ๊ฑฐ๋, ํด๋ฌ์คํฐ๋ฅผ ๋ง๋ค์ด์ ๋ถ์ฐ ์ ์ฅ๊ณผ ์ฒ๋ฆฌ๊ฐ ๊ฐ๋ฅํ๋ค. ์ด๋ก ์ธํด ๋๋์ ๋ถ์ฐ ๋ฐ์ดํฐ ์ฒ๋ฆฌ ๋ฐ ์ ์ฅ์ด ๊ฐ๋ฅํ๋ค.
๋ค์ํ ๋ฐ์ดํฐ ๋ชจ๋ธ
NoSQL์ ๋ค์ํ ๋ฐ์ดํฐ ๋ชจ๋ธ์ ์ ๊ณตํ๋ค. ์๋ฅผ ๋ค๋ฉด, Key-Value Store, Document Store, Column Family Store, Graph DBMS ๋ฑ์ด ์๋ค. ์ด์ฒ๋ผ ์ฌ๋ฌ ์ข
์ ๋ฆ ๋ชจ๋ธ์ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ๋ค์ํ ํํ์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ณ ๊ฒ์ํ ์ ์๋ค.
๋์ ๊ฐ์ฉ์ฑ
NoSQL์ ๋๋ถ๋ถ ๋ถ์ฐํ ์ํคํ
์ฒ๋ฅผ ๊ธฐ๋ฐ์ ๋์ํ๋ค. ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ๋ค์ด๋๋ ๊ฒ์ ๋ฐฉ์งํ๊ธฐ ์ํด ๋ณต์ (replication) ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ค. ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ๋ค์ด๋๋๋ผ๋ ๋ค๋ฅธ ์๋ฒ์์ ๋ฐ์ดํฐ์ ์ ๊ทผํ ์ ์๋๋ก ํ๋ค.
๋ฐ์ดํฐ์ ์ค๋ณต์ฑ
NoSQL์ ๋ฌธ์(documents)์ ํ ๋ฒ์ ๋ด์ ์ ์๊ธฐ ๋๋ฌธ์ ํ์ํ ๋ฐ์ดํฐ๋ฅผ ์ป๊ธฐ์ํด ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฒ๋ผ ๊ฐ๊ฐ์ ํ
์ด๋ธ์ ์กฐ์ธํ ํ์๊ฐ ์๋ค. ๋์ ์ปฌ๋ ์
์ ํตํด ๋ฐ์ดํฐ๋ฅผ ๋ณต์ ํ์ฌ ๊ฐ ์ปฌ๋ ์
์ผ๋ถ๋ถ์ ์ํ๋ ๋ฐ์ดํฐ๋ฅผ ์ ํํ๊ฒ ์ฐ์ถํ๋ ๋ฐฉ์์ ์ฌ์ฉ๋๋ฐ, ๋ณต์ ๋ฅผ ํตํด ๋์ํ๊ธฐ ๋๋ฌธ์ ๋ฐ์ดํฐ๊ฐ ์ค๋ณต ๋๊ณ , ๊ฐ์ ๋ฐ์ดํฐ์ ์
๋ฐ์ดํธ(update)์ ์ฌ๋ฌ ์ปฌ๋ ์
์์ ๊ฐ์ ๋์์ ๋ฐ๋ณตํด์ผํ ์ ์๋ค.
MongoDB, Redis, Cassandra
๋์ฉ๋ ๋ฐ์ดํฐ์ ์ ์ฅ๊ณผ ๋ถ์ฐ ์ฒ๋ฆฌ๊ฐ ํ์ํ ๊ฒฝ์ฐ
๋ฐ์ดํฐ ์คํค๋ง๊ฐ ๋น๋ฒํ๊ฒ ๋ณ๊ฒฝ๋๋ ๊ฒฝ์ฐ
ํด๋ผ์ฐ๋ ํ๊ฒฝ์์ ์ ์ฐํ๊ฒ ๋์ํด์ผ ํ๋ ๊ฒฝ์ฐ
๊ธฐ์ค | SQL | NoSQL |
---|---|---|
๋ฐ์ดํฐ ๋ชจ๋ธ | ใใใใ๊ด๊ณํ ๋ฐ์ดํฐ ๋ชจ๋ธ | ใใใใใใใ ๋น๊ด๊ณํ ๋ฐ์ดํฐ ๋ชจ๋ธ |
์คํค๋ง | ใใใใใใใ๊ณ ์ ์ | ใใใใใใใใใใ์ ์ฐํจ |
์ฟผ๋ฆฌ ์ธ์ด | ใใใใใใใSQL | ใใใใใใใ๋ค์ํ ์ธ์ด ์ฌ์ฉ ๊ฐ๋ฅ |
๋ฐ์ดํฐ ์ ์ฅ ๋ฐฉ์ | ใใใใใใใํ ์ด๋ธ | ใใใใใใใ์ปฌ๋ ์ , ๋ฌธ์, ๊ทธ๋ํ ๋ฑ |
ํ์ฅ์ฑ | ใใใใ์์ง์ ํ์ฅ๋ง ๊ฐ๋ฅใใใใ | ใใใใใใใ์ํ์ , ์์ง์ ํ์ฅ ๊ฐ๋ฅ |
ํธ๋์ญ์ | ใใใใใใACID ์ง์ | ใใใใใACID๋ฅผ ์ง์ํ์ง ์๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ใใใใใ |
๋์ฉ๋ ๋ฐ์ดํฐ ์ฒ๋ฆฌ ์ฑ๋ฅ | ใใใใใ์ฝ๊ธฐ ์ฑ๋ฅ ์ฐ์ | ใใใใใใใใใ์ฐ๊ธฐ ์ฑ๋ฅ ์ฐ์ |
์ ์ง๋ณด์ ๋ฐ ์ด์์ฑ | ใใใใใ๋น๊ต์ ์ฌ์ | ใใใใใใใใใ๋น๊ต์ ์ด๋ ค์ |
์ฐธ๊ณ ์๋ฃ(์ถ์ฒ)
๊นํ๋ธ io Ricky Lee ํฌ์คํ
SQL vs NoSQL
ํฐ์คํ ๋ฆฌ ํ๋ ๊ฐ๋ฐ์ผ๊ธฐ ํฌ์คํ
[DB]SQL(๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค)๊ณผ NoSQL(๋น ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค) ๊ฐ๋
/๋น๊ต/์ฐจ์ด
ํฐ์คํ ๋ฆฌ ์น์์ด์ ์ผ์ [database] ๊ด๊ณํ DB์ ๋น๊ด๊ณํ DB์ ์ฐจ์ด์
dingrr ๋ธ๋ก๊ทธ ํฌ์คํ
[๊ฐ๋ฐ] SQL vs NoSQL ์ธ์ ๋ฌด์์ ์ฌ์ฉํ ๊น?
Velog moon.log ๋ธ๋ก๊ทธ ํฌ์คํ
SQL vs. NoSQL