SQL๊ณผ NoSQL ์๊ฐ
[SQL(Structured Query Language)]
SQL์ RDBMS(๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ด๋ฆฌ ์์คํ )์ ๋ฐ์ดํฐ๋ฅผ ๊ด๋ฆฌํ๊ธฐ ์ํด ์ค๊ณ๋ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ก, NoSQL๋ณด๋ค ์ค๋๋๊ณ ๋ง์ด ์ฌ์ฉ๋์ด ์์ต๋๋ค. SQL์ ์์๋ก๋ MySQL, PostgreSQL ๋ฑ์ด ์์ต๋๋ค.
์ฌ์ค SQL์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ์๋๋ผ ์ธ์ด์ง๋ง, ๊ธ ์์ฑ์ ํธ๋ฆฌํจ์ ์ํด ์ด ๊ธ์์๋ SQL์ RDBMS์ ์๋ฏธ๋ก ์ฌ์ฉํ๊ฒ ์ต๋๋ค.
[NoSQL(Not Only Structured Query Language)]
NoSQL์ ์์ ๋งํ SQL๋ณด๋ค ๋ ์ ํ์ ์ธ ๋ชจ๋ธ์ ์ด์ฉํด ๋ฐ์ดํฐ์ ์ ์ฅ ๋ฐ ๊ฒ์ ๋ฉ์ปค๋์ฆ์ ์ ๊ณตํฉ๋๋ค. NoSQL์ ์์๋ก๋ mongoDB, redis ๋ฑ์ด ์์ต๋๋ค.
๋ฐ์ดํฐ ๊ตฌ์กฐ(structure)
SQL๊ณผ noSQL์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ๊ตฌ์กฐ๊ฐ ๋ค๋ฆ ๋๋ค.
[SQL]
SQL์ ์ด์ฉํด ๊ณ ๊ฐ ์ ๋ณด๋ฅผ ์ ์ฅํ๋ค๊ณ ์๊ฐํด๋ด ์๋ค.
๋ง์ฝ ์ด ๊ณ ๊ฐ ํ ์ด๋ธ์ email ์ฃผ์๋ฅผ ์ถ๊ฐ๋ก ์ ์ฅํ๊ณ ์ถ๋ค๋ฉด ์ด๋ป๊ฒ ํด์ผ ๋ ๊น์? ๋๋ ์๋ก์ด ๊ณ ๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ์ถ๊ฐํ๋๋ฐ, ๊ทธ ๊ณ ๊ฐ์ ํธ๋ํฐ ๋ฒํธ๋ฅผ ๋ชจ๋ฅธ๋ค๋ฉด ์ด๋ป๊ฒ ํด์ผ ๋ ๊น์?
SQL์์๋ ์๊ฒฉํ ์คํค๋ง(๋ฐ์ดํฐ ์ ์ฅ ๊ตฌ์กฐ)๋ฅผ ์์น์ผ๋ก ํ๊ธฐ ๋๋ฌธ์ ์คํค๋ง์ ๋ง์ง ์๋ ํ์์ ๋ฐ์ดํฐ๋ ์ ์ฅํ ์ ์์ต๋๋ค. ๋ฐ๋ผ์ ์์ ํ ์ด๋ธ์ ํ ๋ช ์ ๊ณ ๊ฐ๋ง email์ ์ถ๊ฐํ๊ฑฐ๋, ํธ๋ํฐ ๋ฒํธ๋ฅผ ์ ์ง ์๋ ๊ฒ์ ๋ถ๊ฐ๋ฅํฉ๋๋ค.
[NoSQL]
๋ฐ๋ฉด, NoSQL์์๋ ๋ค๋ฅธ ๊ตฌ์กฐ์ ๋ฐ์ดํฐ๋ฅผ ์ถ๊ฐํ ์ ์์ต๋๋ค.
์์ ๊ฐ์ด "John"์ ๋ฌธ์(=document =SQL์ ๋ ์ฝ๋)์ email key๊ฐ์ ์ถ๊ฐํ๋ค๊ณ ํด์, ๋ค๋ฅธ ๋ฌธ์์ ์ํฅ์ ๋ฏธ์น์ง ์์ต๋๋ค. ๋ฐ๋ผ์ NoSQL์ ๋ฐ์ดํฐ์ ๊ตฌ์กฐ๊ฐ ๊ฐ์ ํ์๊ฐ ์์ต๋๋ค.
๊ด๊ณ(Relationship)
[SQL(Relational)]
SQL์ ๋ฐ์ดํฐ ์ฌ์ด์ ๊ด๊ณ๋ฅผ ์ง์ ํ๊ธฐ ์ฝ์ต๋๋ค.
Orders ํ ์ด๋ธ์ ๋ณด๋ฉด, Customer ID์ Product ID๋ฅผ ํตํด John์ด ์ฐํ์ 12๊ฐ ์๋ค๋ ๊ฒ์ ์ ์ ์์ต๋๋ค. ์ด์ฒ๋ผ SQL์ ๊ฐ ํ ์ด๋ธ ๊ฐ์ ๊ด๊ณ ์ง์ ์ ํตํด ํ ์ด๋ธ์ ์ ๊ทผํ ์ ์๊ณ , ๋ฐ๋ผ์ ์ค๋ณต ์์ด ํด๋น ๋ฐ์ดํฐ๋ง์ ๋ค๋ฃฐ ์ ์์ต๋๋ค.
[NoSQL(Non-Relational)]
๋ฐ๋ฉด NoSQL์์๋ ๋ณดํต ํ๋์ ์ปฌ๋ ์ (SQL์์์ ํ ์ด๋ธ)์ ๊ด๋ จ ๋ฐ์ดํฐ๋ฅผ ๋ชจ๋ ์์ฑํฉ๋๋ค. John์ด ์ฐํ์ 12๊ฐ ์์ ๋, Orders ์ปฌ๋ ์ ์๋ ์ฃผ๋ฌธ ๋ฒํธ์ ๊ณ ๊ฐ์ ๋ํ ์ ๋ณด, ์ํ์ ๋ํ ์ ๋ณด๊ฐ ๋ชจ๋ ๋ค์ด๊ฐ๊ฒ ๋ฉ๋๋ค. ์ด๋ SQL๊ณผ ๋ฌ๋ฆฌ id๋ง์ ์ ์ฅํ๋ ๊ฒ์ด ์๋๋ผ ๊ณ ๊ฐ ์ด๋ฆ์ด๋ ์ ํ๋ฒํธ ๋ฑ ๋ชจ๋ ์ ๋ณด๋ฅผ ์ ์ฅํ๊ฒ ๋ฉ๋๋ค. ์ด๋ ๊ฒ ํด์ Customers์ Products๋ฅผ ๋ณด์ง ์๊ณ Orders๋ง์ผ๋ก ์ฐ๋ฆฌ๊ฐ ์ํ๋ ๋ฐ์ดํฐ๋ฅผ ๋ชจ๋ ์ป์ ์ ์๋๋ก ํฉ๋๋ค.
์ด๋ฐ ๋ฐฉ์์ SQL๊ณผ ๋ค๋ฅด๊ฒ ์ค๋ณต๋ ๋ฐ์ดํฐ๊ฐ ์๊ธฐ๊ฒ ๋ฉ๋๋ค. ๊ทธ๋์ ๋ฐ์ดํฐ๋ฅผ ์ ๋ฐ์ดํธํ ๋๋ง๋ค ์ฃผ์ํด์ผ ํฉ๋๋ค. ์๋ฅผ ๋ค์ด Customer์ John์ email์ ์ถ๊ฐํ๋๋ฐ, Orders์๋ ์ด๋ฅผ ์ ๋ฐ์ดํธํ์ง ์์ผ๋ฉด ๋ฌธ์ ๊ฐ ๋ฐ์ํฉ๋๋ค.
ํ์ฅ์ฑ(Scalability)
[SQL(vertical scale)]
SQL์ ์ผ๋ฐ์ ์ผ๋ก ์์ง์ ํ์ฅ(vertical scale)๋ง์ ์ง์ํฉ๋๋ค. ์์ง์ ํ์ฅ์ ํ๋์จ์ด๋ฅผ ์ ๊ทธ๋ ์ด๋ํ๊ฑฐ๋ ์ถ๊ฐํ์ฌ ์๋ฒ์ ์ฑ๋ฅ์ ํฅ์์ํค๋ ๊ฒ์ ๋งํฉ๋๋ค.
[NoSQL(horizontal scale)]
๋ฐ๋ฉด์ NoSQL์์๋ ์ํ์ ํ์ฅ(horizontal scale)์ด ๊ฐ๋ฅํฉ๋๋ค. ์๋ฒ๋ฅผ ์ถ๊ฐํ๋ฉด์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๋ถ์ฐ์ํฌ ์ ์์ต๋๋ค.
SQL vs NoSQL ์ ๋ฆฌ
<์ฐธ๊ณ >
SQL vs NoSQL (MySQL vs. MongoDB)
๊ณต๋ถํ ๊ฒ์ ์ ๋ฆฌํ ๋ด์ฉ์ ๋๋ค. ์์ ํ ๋ถ๋ถ์ด ์๋ค๋ฉด ์๋ ค์ฃผ์๋ฉด ๊ฐ์ฌํ๊ฒ ์ต๋๋ค :)
'CS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[์๋ฃ๊ตฌ์กฐ] ํ(heap) ์๋ฃ๊ตฌ์กฐ (1) | 2021.09.30 |
---|---|
[WEB] HTTP ์ํ ์ฝ๋ (0) | 2021.09.28 |
[Network] CIDR(์ฌ์ด๋)์ด๋? CIDR ๊ธฐ๋ณธ ๊ฐ๋ (0) | 2021.04.24 |
[Network] IP์ฃผ์(IPv4)์ Class(ํด๋์ค) (0) | 2021.04.24 |
[OS] ์ปค๋(Kernel)๊ณผ ์(Shell) ๋ฐ GUI, CLI ์ฐจ์ด ์ค๋ช (0) | 2020.06.23 |