๐ SQL์ด๋?
๐ NoSQL์ด๋?
๐ SQL๊ณผ NoSQL์ ์ฐจ์ด์
SQL์ (Structured Query Language)์ ์ฝ์๋ก์, ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์คํ ์์ ์๋ฃ๋ฅผ ๊ด๋ฆฌํ๊ณ ์ฒ๋ฆฌํ๊ธฐ ์ํด ์ค๊ณ๋ ์ธ์ด์ด๋ค.
๋ฌธ๋ฒ์ ์ข ๋ฅ๋ก๋ ํฌ๊ฒ 3๊ฐ์ง๋ก ๋๋์ด ์ง๋ค.
โ DDL (Data Definition Lansguage, ๋ฐ์ดํฐ ์ ์ ์ธ์ด)
- ๊ฐ ๋ฆด๋ ์ด์ ์ ์ ์ ํ๊ธฐ ์ํด ์ฌ์ฉํ๋ ์ธ์ด์ด๋ฉฐ, CREATE, ALTER, DROP ๋ฑ์ด ์๋ค.
โ DML (Data Maniqulation Language, ๋ฐ์ดํฐ ์กฐ์ ์ธ์ด)
- ๋ฐ์ดํฐ์ ์์ , ์ถ๊ฐ, ์ญ์ ์ ๊ฐ์ด ๋ฐ์ดํฐ๋ฅผ ๊ด๋ฆฌํ๊ธฐ ์ํ ์ธ์ด์ด๋ค, SELECT, INSERT, UPDATE ๋ฑ์ด ์๋ค.
โ - DCL (Data Control Language, ๋ฐ์ดํฐ ์ ์ด ์ธ์ด)
- ์ฌ์ฉ์ ๊ด๋ฆฌ๋ ์ฌ์ฉ์๋ณ๋ก ๋ฆด๋ ์ด์ ๋๋ ๋ฐ์ดํฐ๋ฅผ ๊ด๋ฆฌํ๋ ๊ถํ์ ๋ค๋ฃจ๊ธฐ ์ํ ์ธ์ด์ด๋ค. GRANT, REVOKE ๋ฑ์ด ์๋ค.
๋ค์์ผ๋ก, SQL ์ธ์ด์ ํน์ง์ผ๋ก๋ ๋จผ์ SQL์ ๋์๋ฌธ์
๋ฅผ ๊ฐ๋ฆฌ์ง ์๋๋ค. ๊ทธ๋ฌ๋ ์๋ฒํ๊ฒฝ์ ๋ฐ๋ผ ํ๋๋ช
์ ๋์๋ฌธ์๋ฅผ ๊ตฌ๋ถํ๊ธฐ๋ ํ๋ค. ๋ํ, SQL ๋ช
๋ น์ ;(์ธ๋ฏธ์ฝ๋ก )
์ผ๋ก ๋๋์ผํ๋ฉฐ ๊ณ ์ ์ ๊ฐ์ ''๋ฐ์ดํ
๋ก ๊ฐ์ธ์ฃผ์ด์ผ ํ๋ค.
๋ง์ฝ SQL์์ ๊ฐ์ฒด๋ฅผ ๋ํ๋ด์ผํ๋ ์ํฉ์ด ์๊ธด๋ค๋ฉด ๋ฐฑํฑ(``)
์ผ๋ก ๊ฐ์ธ์ฃผ์ด์ผ ํ๋ค. ์ฃผ์
๋ํ ์ฌ์ฉ๊ฐ๋ฅํ๋ฐ, ๋ฌธ์ฅ ์์ --์ ๋ถ์ฌ ์ฌ์ฉํ๋ค. (์ฌ๋ฌ์ค ์ฃผ์์ธ ๊ฒฝ์ฐ, /* */ ๊ฐ์ธ์ฃผ๊ธฐ)
์ํฌ๋ก๋์ ์ฌ์ฉํ ์ ์๋ ๋ํ์ ์ธ ์ต์
์ผ๋ก๋ MySQL
, Oracle
, Microsoft SQL Server
, ProstgreSQL
๋ฑ์ด ์๋ค.
NoSQL์ ๋น๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ด๋ค. ์์ ์ดํด๋ณธ SQL๊ณผ ๋ฐ๋๋ก ๊ด๊ณํ ๋ฐ์ดํฐ ๋ชจ๋ธ์ ์ง์ํ๋ฉฐ, ๋๋์ ๋ถ์ฐ๋ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ณ ์กฐํํ๋๋ฐ ํนํ๋์ด ์๋ค.
๋ํ, ์คํค๋ง ์์ด ์ฌ์ฉ์ด ๊ฐ๋ฅํ๊ฑฐ๋ ๋์จํ ์คํค๋ง๋ฅผ ์ ๊ณตํ๋ ์ ์ฅ์๋ฅผ ์๋ฏธํ๋ค.
ํ์ ๋ฐฐ๊ฒฝ์ผ๋ก๋ ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ธ SQL์ ํ๊ณ๋ฅผ ๊ทน๋ณตํ๊ธฐ ์ํด ๋ง๋ค์ด์ง ์๋ก์ด ๋ฐ์ดํฐ ์ ์ฅ์์ ํํ์ด๋ค.
ํน์ง์ผ๋ก๋ ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค์๋ ๋ฌ๋ฆฌ ๋ฐ์ดํฐ ๊ฐ์ ๊ด๊ณ๋ฅผ ์ ์ํ์ง ์๋๋ค. ์๋ฅผ ๋ค์ด SQL์ ๊ฒฝ์ฐ, ๋ฐ์ดํฐ์ ๊ด๊ณ๋ฅผ ์ธ๋ํค๋ก ์ ์ํ๊ณ JOIN์ฐ์ฐ์ ์ํํ์ง๋ง, NoSQLdms JOIN์ฐ์ฐ์ด ๋ถ๊ฐ๋ฅํ๋ค. ๋ค์์ผ๋ก ๋๋์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ ์ ์๋๋ฐ, ํํ๋ฐ์ดํธ ๊ธ์ ๋์ฉ๋ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ ์ ์๋ค. ๋ํ, ๋ถ์ฐํ ๊ตฌ์กฐ๋ก ์ด๋ฃจ์ด์ ธ ์์ด ํน์ ์๋ฒ์์ ์ฅ์ ๊ฐ ๋ฐ์ํ๋๋ผ๋ ๋ฐ์ดํฐ๊ฐ ์ ์ค๋๊ฑฐ๋ ์๋น์ค๊ฐ ์ค์ง๋์ง ์๋๋ค. ๋ง์ง๋ง์ผ๋ก ๊ณ ์ ๋์ง ์์ ํ ์ด๋ธ ์คํค๋ง๋ฅผ ๊ฐ์ ธ ์ ๋์ ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ๋ค๋ฃฐ ์ ์๋ค.
์ํฌ๋ก๋์ ์ฌ์ฉํ ์ ์๋ ๋ํ์ ์ธ ์ต์
์ผ๋ก๋ MongoDB
, Firebase
, Redis
, Cassandra
๋ฑ์ด ์๋ค.
SQL๊ณผ NoSQL์ ๊ฐ์ฅ ํฐ ์ฐจ์ด๋ SQL์ ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ง๋ง, NoSQL์ ๋น๊ดํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ผ๋ ๊ฒ์ด๋ค.
SQL์ ๊ฒฝ์ฐ, ์ฟผ๋ฆฌ ์ธ์ด ์ค ๊ฐ์ฅ ๋๋ฆฌ ์ฌ์ฉ๋๊ธฐ ๋๋ฌธ์ ์์ฌํ๊ณ ์ ํํ ์ ์๋ค๋ ์ฅ์ ์ด ์๋ค.
๋ํ, ๊ตฌ์กฐํ๋ ์ฟผ๋ฆฌ ์ธ์ด๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ๋ฅผ ์ ์ํ๊ณ ์กฐ์ํ๊ธฐ ์ํด ์ ์๋ ์คํค๋ง๊ฐ ์กด์ฌํ๋ค. ๋ฐ๋ผ์ ๋ณต์กํ ์ฟผ๋ฆฌ์ ์ ํฉํ๋ค. ํ์ง๋ง ๋จ์ ์ผ๋ก๋ ์ฌ์ฉํ๊ธฐ ์ , ์ ์๋ ์คํค๋ง๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ฅผ ๊ฒฐ์ ํด์ผํ๋ฉฐ ๋ชจ๋ ๋ฐ์ดํฐ๋ ๋์ผํ ๊ตฌ์กฐ๋ฅผ ๋ฐ๋ผ์ผ ํ๊ธฐ ๋๋ฌธ์ ์ ํ์ ์ธ ๋ถ๋ถ์ด ์๋ค.
๋ฐ๋ฉด์, NoSQL์ ๊ฒฝ์ฐ, ๋น์ ํ ๋ฐ์ดํฐ ์ด๋ฉฐ, ๋์ ์คํค๋ง๊ฐ ์์ด ๋ค์ํ ๋ฐฉ์์ผ๋ก ์ ์ฅ๋๋ค. ๋ํ ๋ฐ์ดํฐ์ ๋ํด ์ปฌ๋ผ์งํฅ, ๋ฌธ์์งํฅ, ๊ทธ๋ํ ๊ธฐ๋ฐ KeyValue ์ ์ฅ์๋ฅผ ์ฌ์ฉํ๋ ๋ฑ, ์ ์ฐ์ฑ์ด ์ข๋ค๋ ์ฅ์ ์ด ์๋ค.
๊ฐ๋จํ๊ฒ ์ ๋ฆฌํ์๋ฉด, ๊ตฌ์กฐ๋ฅผ ์ ์ํ์ง ์์๋ ๋ฌธ์๋ฅผ ์์ฑํ ์ ์์ผ๋ฉฐ, ๊ฐ ๋ฌธ์๋ ๊ณ ์ ํ ๊ตฌ์กฐ๋ฅผ ๊ฐ์ ธ ์ ์ฐ์ฑ์ด ์ด๋ฃจ์ด์ง๊ณ ๊ตฌ๋ฌธ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ง๋ค ๋ค๋ฅด๊ฒ ํ ์๋ ์์ผ๋ฉฐ ์ฌ์ฉ์ค์ ํ๋๋ฅผ ์ถ๊ฐ๊น์ง ๊ฐ๋ฅํ๋ค.
๋ํ, ํ์ฅ์ด ํ์ํ ์ํฉ์ด ์๊ฒผ์ ๋, SQL์ ์์ง์ผ๋ก ํ์ฅ์ด ๊ฐ๋ฅํ๋ค. ์ฆ, CPU, RAM, SSD ์ฉ๋๊ณผ ๊ฐ์ ๊ฒ๋ค์ ์ถ๊ฐ์ ์ผ๋ก ์ค์นํ์ฌ ๋จ์ผ ์๋ฒ์ ๋ก๋๋ฅผ ๋๋ น์ผ ํ๋ค. ํ์ง๋ง ๋ฐ๋ฉด์, NoSQL์ ๊ฒฝ์ฐ, ์ํ์ ์ผ๋ก ํ์ฅ์ด ๊ฐ๋ฅํด ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์ฒด๋ฅผ ์ถ๊ฐ์ ์ผ๋ก ์ถ๊ฐํ ์ ์๋ค. ๋ฐ๋ผ์, ์ ์ฒด์ ์ธ SQL์ ๋นํด ๋๋ฆฌ๋ ์ฉ๋ น์ด ๋ ํฌ๊ธฐ ๋๋ฌธ์ ๋๊ท๋ชจ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ์ฌ์ฉํ๊ธฐ ์ ์ฉํ๋ค๋ ์ฅ์ ์ด ์๋ค.
์ฆ, SQL๊ณผ NoSQL์ ์ฐจ์ด๋ฅผ ์ ๋ฆฌํ์๋ฉด,
1. SQL์ ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ด์ง๋ง, NoSQL์ ๋น๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ด๋ค.
2. SQL์ ๊ตฌ์กฐํ๋ ์ฟผ๋ฆฌ ์ธ์ด๋ฅผ ์ฌ์ฉํ๊ณ ์คํค๋ง๊ฐ ์ฌ์ ์ ์ ์๋์ด ์์ง๋ง, NoSQL์ ๋น์ ํ ๋ฐ์ดํฐ์ ๋ํ ๋์ ์คํค๋ง๊ฐ ์๋ค.
3. ํ์ฅ์ด ํ์ํ ๊ฒฝ์ฐ, SQL์ ์์ง์ผ๋ก ํ์ฅ์ ํ์ง๋ง, NoSQL์ ์ํ์ผ๋ก ํ์ฅ์ด ๊ฐ๋ฅํ๋ค.
4. SQL์ ํ
์ด๋ธ ๊ธฐ๋ฐ์ด์ง๋ง, NoSQL์ ๋ฌธ์, ํค-๊ฐ, ๊ทธ๋ํ ๋๋ ์์ด๋ ์ด ์ ์ฅ์์ด๋ค.
5. SQL์ ๋ค์ค ํ ํธ๋์ญ์
์ ํจ๊ณผ์ ์ด๊ณ , NoSQL์ JSON๊ณผ ๊ฐ์ ๋น์ ํ ๋ฐ์ดํฐ์ ํจ๊ณผ์ ์ด๋ค.