2017_10_09_nosql - denlyou/AIL GitHub Wiki
no sql ๋ฑ์ฅ ๋ฐฐ๊ฒฝ
- ์ธํฐ๋ท์ ๋ฐ์ ๊ณผ ํจ๊ป ์
์ฒญ๋์์ ๋ฐ์ดํฐ๊ฐ ์์ฑ๋จ (๋น
๋ฐ์ดํฐ ์๋)
- ๊ธฐ์กด์ ํ๋ก๊ทธ๋จ๋ค๊ณผ๋ ๋ฌ๋ฆฌ ๋ฐ์ดํฐ๋ ๋จ์ํจ (๋ณต์ก์ฑ : ๋ฐ์ดํฐ ๊ฐ์ ๊ด๊ณ๊ฐ ์ ์)
- RDBMS๋ก๋ ์ปค๋ฒํ ์ ์๋ ํ๊ณ์ ๊น์ง ๋๋ฌ
- (๊ตฌ๊ธ๊ณผ ์๋ง์กด, ๋น
ํ
์ด๋ธ๊ณผ ๋ค์ด๋๋ชจ(dynamo))๊ณผ ๊ฐ์ ๋์ฉ๋ ๋ฐ์ดํฐ ์ฒ๋ฆฌ ๋
ผ๋ฌธ ๋ฐํ
- NoSQL์ด ๋ฑ์ฅ (Not only SQL)
- RDBMS(๊ด๊ณํDB)์ ํํ๊ฐ ์๋ ๋ฐ์ดํฐ ์ ์ฅ ๊ธฐ์ ์ ์๋ฏธ
- RDBMS๋ฅผ ๋์ฒด ํ๋ ์๋ก์ด DB๊ฐ ์๋
nosql ํน์ง
- RDBMS๊ฐ ์๋ DBMS๋ฅผ ์ด์นญํ๋ ๊ธฐ์
- NoSQL ์ ํ๊ตฐ์ ์ํ ๋น๊ต ๋ถ๊ฐ๋ฅ
- ๊ด๊ณํ DB๋ ์ฐธ์กฐํค๋ฅผ ์ ์ํ๊ณ join ์ฐ์์ ํ์ฉํ์ง๋ง NoSQL์ ๊ด๊ณ๋ฅผ ์ฌ์ฉํ์ง ์์! (์ฐธ์กฐํค ์์, join ์์)
- ๊ธฐ๋ณธ์ ์ผ๋ก ๋์ฉ๋ ์ ์ฅ ๊ฐ๋ฅ
- ํ๋์ ๊ณ ์ฑ๋ฅ ์๋ฒ์ ์ค์นํ๊ธฐ ๋ณด๋ค๋ ์ฌ๋ฌ ์๋ฒ์ ๋ถ์ฐ์์ผ ์ ์ฅํ๋ ๊ฒ์ด ์ผ๋ฐ์ (ํด๋ฌ์คํฐ ๋ฒ ์ด์ค)
- ๋ถ์ฐ์ ์ฅ, ์ํธ๋ณต์ => ๋ฐ์ดํฐ ์ ์ค x, ์๋น์ค ์ค์ง x
- ๋ฐ์ดํฐ์ ์คํค๋ง๊ฐ ์ ๋์ (RDBMS์ ๋นํด)
- ๋ถ์ฐ ์ปดํจํ
ํ๊ฒฝ์์ CAP์ด๋ก ์ ๋ฐ๋ฆ
NoSQL์ ์ข
๋ฅ
key/value Store
Ordered key/value Store
- key๊ฐ ๋ด๋ถ์ ์ผ๋ก sorting๋จ
- key์์ ๊ฐ์ด column:value์กฐํฉ
- ์ ํ : Hbase, Cassandra
Document key/value Store
- ์ ์ฅ๋๋ ํ์
์ Document๋ผ๋ ๊ตฌ์กฐํ๋ ํ์
(ex> JSON,XML,YAML)์ ์ฌ์ฉ
- ๋ณต์กํ ๊ณ์ธต ๊ตฌ์กฐ ํํ ๊ฐ๋ฅ
- ์ ํ์๋ฐ๋ผ ์ถ์๊ธฐ๋ฅ (Sorting,join,group) ์ง์
- ์ ํ: MongoDB
NoSQL ์ฅ๋จ์
- ๊ด๊ณํDB๋ณด๋ค ๊น์ ๋ฐ์ดํฐ ๊ตฌ์กฐ์ ์ ๊ทผ ์๊ณ ๋ฆฌ์ฆ์ ํ์ฉ
- ๊ด๊ณํ ๋ชจ๋ธ๋ง : ์ ๊ทํ ๊ณผ์ ๊ณผ ๋ฐ๋
- ์ฟผ๋ฆฌ๋ฅผ ๋จผ์ ์ ๋ฆฌํ์ฌ ์ฒ๋ฆฌํ๊ณ ๋ง์ง๋ง์ ๋ฐ์ดํฐ๋ฅผ ์ ์
- NoSQL์ ๋ฌผ๋ฆฌ์ (๋คํธ์ํฌ,๋์คํฌ) ๋์์ธ๊ณผ DBMS์์ฒด์ ํน์ง์ ์ ์์์ผ ์ ๋๋ก๋ ์ฟผ๋ฆฌ๋ฅผ ์์ฑ์ด ๊ฐ๋ฅํจ
- ๋์ฒด๋ก ๋ณด์์ด ์ทจ์ฝํจ : ๋ค๋ฅธ ์๋ฃจ์
ํ์ฉ
์ฅ์
- NoSQL์ ํน์ ์ฉ๋๋ก ํนํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง์
- ๋์ฒด๋ก ๋์ฉ๋, ๋ถ์ฐ ์ฒ๋ฆฌ์ ์ฉ์ด
๋จ์
- join์ฐ์ฐ์ ๋๋ถ๋ถ ๋ฏธ์ง์
- ๊ฐ DBMS๋ ํน์ง์ด ๋ค ํ๋ฆฌ๋ค