Skip to content

Latest commit

ย 

History

History
161 lines (123 loc) ยท 9.12 KB

File metadata and controls

161 lines (123 loc) ยท 9.12 KB

RDBMS vs NoSQL

์šฉ์–ด

Database : ํ•„์š”ํ•œ ์ •๋ณด๋ฅผ ์–ป๊ธฐ ์œ„ํ•ด ๋…ผ๋ฆฌ์ ์œผ๋กœ ์—ฐ๊ด€๋œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ชจ์•„ ๊ตฌ์กฐ์ ์œผ๋กœ ํ†ตํ•ฉํ•ด ๋†“์€ ๊ฒƒ

DBMS(Database Management System) : ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ด€๋ฆฌ ์‹œ์Šคํ…œ์œผ๋กœ ์‚ฌ์šฉ์ž์™€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์—ฐ๊ฒฐํ•ด์ฃผ๋Š” ์†Œํ”„ํŠธ์›จ์–ด

SQL(Structured Query Language) : ๊ตฌ์กฐ์  ์งˆ์˜์–ด๋กœ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ œ์–ดํ•˜๊ณ  ๊ด€๋ฆฌํ•˜๋Š” ์–ธ์–ด

Scaling Out : ์ˆ˜ํ‰์  ํ™•์žฅ์œผ๋กœ ์„œ๋ฒ„๋ฅผ ์ฆ์„คํ•˜๋Š” ๊ฒƒ

Scaling Up : ์ˆ˜์ง์  ํ™•์žฅ์œผ๋กœ ์„œ๋ฒ„์˜ ์„ฑ๋Šฅ์„ ํ–ฅ์ƒ์‹œํ‚ค๋Š” ๊ฒƒ

CAP ์ด๋ก 

๋„คํŠธ์›Œํฌ๋กœ ์—ฐ๊ฒฐ๋œ ๋ถ„์‚ฐ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์‹œ์Šคํ…œ์€ ์ผ๊ด€์„ฑ(Consistency), ๊ฐ€์šฉ์„ฑ(Availability), ๋ถ„ํ•  ๋‚ด๊ตฌ์„ฑ(Partition Tolerance) ์ด๋ผ๋Š” 3๊ฐ€์ง€ ํŠน์„ฑ ์ค‘ 2๊ฐ€์ง€ ํŠน์„ฑ๋งŒ ๋งŒ์กฑํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์ด๋ก 

  • 3๊ฐ€์ง€ ํŠน์„ฑ์„ ๋ชจ๋‘ ๋งŒ์กฑํ•  ์ˆ˜ ์—†๋‹ค

3๊ฐ€์ง€ ํŠน์„ฑ

  1. ์ผ๊ด€์„ฑ (Consistency) : ์—ฌ๋Ÿฌ ํด๋ผ์ด์–ธํŠธ์—์„œ ๊ฐ™์€ ์‹œ์ ์— ์กฐํšŒํ•˜๋Š” ๋ฐ์ดํ„ฐ๋Š” ํ•ญ์ƒ ๋™์ผํ•œ ๊ฐ’์ž„์„ ๋ณด์žฅํ•˜๋Š” ํŠน์„ฑ
    • ๋ฐ์ดํ„ฐ ์ผ๊ด€์„ฑ์„ ๋ณด์žฅํ•˜๊ธฐ ์œ„ํ•ด์„œ Transaction๊ณผ ๊ฐ™์€ ๋งค์ปค๋‹ˆ์ฆ˜์ด ํ•„์š”ํ•˜๋‹ค
    • RDBMS์—์„œ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ์ง€์›ํ•˜์ง€๋งŒ, NoSQL์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ง€์›ํ•˜์ง€ ์•Š๋Š”๋‹ค
    • NoSQL์€ ์ตœ์ข… ์ผ๊ด€์„ฑ(๊ถ๊ทน์  ์ผ๊ด€์„ฑ) ์„ ์ง€์›ํ•œ๋‹ค. (๊ถ๊ทน์  ์ผ๊ด€์„ฑ์ด๋ž€ ์ผ๊ด€์„ฑ์„ ์™„์ „ํžˆ ๋ณด์žฅํ•˜์ง€ ์•Š์ง€๋งŒ, ๊ถ๊ทน์ ์œผ๋กœ ์–ธ์  ๊ฐ€๋Š” ๋ฐ์ดํ„ฐ์˜ ์ผ๊ด€์„ฑ์„ ๋ณด์žฅ๋จ์„ ์˜๋ฏธํ•œ๋‹ค)
      • NoSQL์˜ ๋™๊ธฐ์‹ ์ผ๊ด€์„ฑ ์œ ์ง€๋ฒ•
        • ๋ฐ์ดํ„ฐ๊ฐ€ ์—…๋ฐ์ดํŠธ ๋  ๊ฒฝ์šฐ, ํด๋ผ์ด์–ธํŠธ์— ์‘๋‹ตํ•˜๊ธฐ ์ „์— ๋ชจ๋“  ์„œ๋ฒ„์— ์กด์žฌํ•˜๋Š” ๋ฐ์ดํ„ฐ์— ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ๋ฐ˜์˜ํ•œ ๋’ค์— ์‘๋‹ตํ•˜๋Š” ๋ฐฉ๋ฒ•
        • ์‘๋‹ต์‹œ๊ฐ„์ด ๋А๋ฆฌ์ง€๋งŒ ๋ฐ์ดํ„ฐ ์ •ํ•ฉ์„ฑ์„ ๋ณด์žฅํ•œ๋‹ค
      • NoSQL์˜ ๋น„๋™๊ธฐ์‹ ์ผ๊ด€์„ฑ ์œ ์ง€๋ฒ•
        • ๋ฐ์ดํ„ฐ๊ฐ€ ์—…๋ฐ์ดํŠธ ๋  ๊ฒฝ์šฐ, ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ์ž„์‹œ ํŒŒ์ผ์— ๊ธฐ๋กํ•˜๊ณ  ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ์‘๋‹ตํ•œ ๋’ค์— ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ๋ชจ๋“  ์„œ๋ฒ„์— ๋ฐ˜์˜ํ•˜๋Š” ๋ฐฉ๋ฒ•
        • ์‘๋‹ต์‹œ๊ฐ„์ด ๋น ๋ฅด์ง€๋งŒ ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ๋ฐ˜์˜ํ•˜๋Š” ์„œ๋ฒ„์— ์žฅ์• ํ•™ ๋ฐœ์ƒํ•  ๊ฒฝ์šฐ ๋ฐ์ดํ„ฐ๊ฐ€ ์†์‹ค๋  ์ˆ˜ ์žˆ๋‹ค
  2. ๊ฐ€์šฉ์„ฑ (Availability) : ๋ชจ๋“  ํด๋ผ์ด์–ธํŠธ์˜ Read/Write ์š”์ฒญ์— ๋Œ€ํ•ด ํ•ญ์ƒ ์‘๋‹ต ๊ฐ€๋Šฅํ•ด์•ผํ•œ๋‹ค๋Š” ํŠน์„ฑ
    • ํŠน์ • ๋…ธ๋“œ์— ์žฅ์• ๊ฐ€ ๋ฐœ์ƒํ•ด๋„ ์„ฑ๊ณต์ ์œผ๋กœ ์„œ๋น„์Šค๋ฅผ ์ง€์†ํ•˜๋Š” ๊ฒƒ
    • ๋ฐ์ดํ„ฐ ์ €์žฅ์†Œ์— ๋Œ€ํ•œ ๋ชจ๋“  ๋™์ž‘(read, write ๋“ฑ) ํ•ญ์ƒ ์„ฑ๊ณต์ ์œผ๋กœ ๋ฆฌํ„ด๋˜์–ด์•ผํ•œ๋‹ค.
    • NoSQL์€ ์—ฌ๋Ÿฌ ์„œ๋ฒ„์— ๋ฐ์ดํ„ฐ ๋ณต์ œ(Replication)๋ฅผ ํ•˜์—ฌ ๊ฐ€์šฉ์„ฑ์„ ๋ณด์žฅํ•œ๋‹ค
    • Replication ๋ฐฉ์‹์—๋Š” Master-Slave, Peer-to-Peer ๋ฐฉ์‹์ด ์žˆ๋‹ค
  3. ๋ถ„ํ•  ๋‚ด๊ตฌ์„ฑ(Partition Tolerance) : ์ง€์—ญ์ ์œผ๋กœ ๋ถ„ํ• ๋œ ๋„คํŠธ์›Œํฌ ํ™˜๊ฒฝ์—์„œ ๋™์ž‘ํ•  ๋•Œ, ๋‘ ์ง€์—ญ๊ฐ„ ๋„คํŠธ์›Œํฌ๊ฐ€ ๋‹จ์ ˆ๋˜๊ฑฐ๋‚˜ ๋„คํŠธ์›Œํฌ ๋ฐ์ดํ„ฐ ์œ ์‹ค์ด ์ผ์–ด๋‚˜๋„ ๊ฐ๊ฐ์˜ ์ง€์—ญ ๋‚ด์˜ DB ์‹œ์Šคํ…œ์€ ์ •์ƒ๋™์ž‘ํ•ด์•ผ ํ•œ๋‹ค๋Š” ํŠน์„ฑ
    • RDBMS๋Š” ๋ถ„์‚ฐ ๊ตฌ์กฐ๋ฅผ ๊ฐ€์ ธ๊ฐ€๋Š” ๊ฒƒ์ด ๊ฐ€๋Šฅํ•˜์ง€๋งŒ Replication๋ฅผ ํ•  ๊ฒฝ์šฐ ํผํฌ๋จผ์Šค๋ฅผ ๊ณ ๋ คํ•ด์•ผํ•˜๊ณ  Sharding์˜ ๊ฒฝ์šฐ ๋ฐ์ดํ„ฐ์˜ ๊ด€๊ณ„๊ฐ€ ๋ฌด๋„ˆ์งˆ ์ˆ˜ ์žˆ๋Š” ๋ถ€๋‹ด๊ฐ์ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์‹ ๋ขฐ์„ฑ์ด ๊นจ์ง€๋Š” ๋ฆฌ์Šคํฌ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค

์กฐํ•ฉ

  1. CA : ์ผ๊ด€์„ฑ + ๊ฐ€์šฉ์„ฑ โ†’ RDBMS
    • ์‹œ์Šคํ…œ์ด ๋‹ค์šด๋˜์–ด๋„ ๋ฐ์ดํ„ฐ ์†์‹ค์„ ๋ฐฉ์ง€ํ•˜๊ณ , ์ผ๊ด€์„ฑ์„ ์œ ์ง€ํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์‹œ์Šคํ…œ
  2. CP : ์ผ๊ด€์„ฑ : ๋ถ„ํ•  ๋‚ด๊ตฌ์„ฑ โ†’ NoSQL
    • ๋ชจ๋“  Read/Write ์—ฐ์‚ฐ์— ๋Œ€ํ•ด ๋ฐ์ดํ„ฐ ์ •ํ•ฉ์„ฑ์„ ์œ ์ง€ํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์‹œ์Šคํ…œ
    • ๋ฐ์ดํ„ฐ๋ณด๋‹ค๋Š” ์„ฑ๋Šฅ์ด ์ค‘์š”ํ•œ ์‹œ์Šคํ…œ์— ์ ํ•ฉํ•˜๋‹ค
  3. AP : ๊ฐ€์šฉ์„ฑ + ๋ถ„ํ•  ๋‚ด๊ตฌ์„ฑ โ†’ NoSQL
    • ๊ถ๊ทน์  ์ผ๊ด€์„ฑ(Eventual Consistency)์„ ๋ณด์žฅํ•˜๋Š” ์‹œ์Šคํ…œ์— ์ ํ•ฉํ•˜๋‹ค
    • ์ผ๊ด€์„ฑ์„ ์š”๊ตฌํ•˜์ง€ ์•Š๋Š” ์‹œ์Šคํ…œ์— ์ ํ•ฉํ•˜๋‹ค

RDBMS

RDBMS(Relational Database Management System) ์ด๋ž€ ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ด€๋ฆฌ ์‹œ์Šคํ…œ์ด๋‹ค.

ํŠน์ง•

  • Relational : ๋ฐ์ดํ„ฐ๋Š” ๊ด€๊ณ„๋ฅผ ๊ฐ€์ง€๊ณ  ์—ฌ๋Ÿฌ ํ…Œ์ด๋ธ”์— ๋ถ„์‚ฐ๋˜์–ด ์ €์žฅ๋œ๋‹ค. (๊ด€๊ณ„ ๋ผ๋Š” ๊ฐœ๋…์œผ๋กœ ๋ฐ์ดํ„ฐ ์ค‘๋ณต์„ ํ”ผํ•  ์ˆ˜ ์žˆ๋‹ค)
  • Schema : RDBMS์— ๋ฐ์ดํ„ฐ๋Š” ์ •ํ•ด์ง„ ์Šคํ‚ค๋งˆ์— ๋”ฐ๋ผ ํ…Œ์ด๋ธ”์— ์ €์žฅ๋œ๋‹ค
  • RDBMS๋Š” NoSQL ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ณด๋‹ค Scaling Out์ด ๋ฒˆ๊ฑฐ๋กญ๋‹ค (๊ด€๊ณ„๋ฅผ ๋งบ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์„œ๋กœ ๋‹ค๋ฅธ DB์„œ๋ฒ„์— ๋ถ„์‚ฐ์‹œํ‚ค๊ธฐ ์–ด๋ ต๋‹ค)
  • ๋ฐ์ดํ„ฐ์˜ ์ผ๊ด€์„ฑ์„ ๋ณด์žฅํ•œ๋‹ค (ํŠธ๋žœ์žญ์…˜์„ ํ†ตํ•ด) = ๋ฐ์ดํ„ฐ์˜ ACID ์†์„ฑ์„ ์ œ๊ณตํ•œ๋‹ค
  • RDBMS๋Š” CA(Consistency + Avaliablity) ์‹œ์Šคํ…œ์ด๋‹ค. (๋„คํŠธ์›Œํฌ ๋ถ„ํ•  ๋‚ด๊ตฌ์„ฑ P์„ ๋ณด์žฅํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— Scaling Out์„ ํ†ตํ•œ ์„œ๋ฒ„ Clustering ๊ตฌ์กฐ์— ๋ถ€์ ํ•ฉํ•˜๋‹ค)

์žฅ๋‹จ์ 

์žฅ์ 

  • ๊ด€๊ณ„ ๋ผ๋Š” ๊ฐœ๋…์„ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ์ค‘๋ณต์—†์ด ์ €์žฅํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ๋ฐ์ดํ„ฐ ๋ณ€๊ฒฝ์ด ์šฉ์ดํ•˜๋‹ค (๋ฐ์ดํ„ฐ ์ผ๊ด€์„ฑ์„ ์ง€ํ‚ค๋Š” ๊ด€๊ณ„ ๊ฐœ๋… ๋•๋ถ„์—)
  • ๋ช…ํ™•ํžˆ ์ •์˜๋œ ์Šคํ‚ค๋งˆ ๋•๋ถ„์— ๋ฐ์ดํ„ฐ ๋ฌด๊ฒฐ์„ฑ์„ ๋ณด์žฅํ•œ๋‹ค

๋‹จ์ 

  • NoSQL์— ๋น„ํ•ด DB ์„œ๋ฒ„์˜ Scaling Out์ด ๋ฒˆ๊ฑฐ๋กญ๋‹ค. Scaling Up์œผ๋กœ ์„œ๋ฒ„ ์„ฑ๋Šฅ์„ ํ–ฅ์ƒํ•  ์ˆ˜ ๋ฐ–์— ์—†๋‹ค
  • ์Šคํ‚ค๋งˆ ๋•Œ๋ฌธ์— ์ €์žฅํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐ์ดํ„ฐ์˜ ํ˜•ํƒœ๊ฐ€ ์ œํ•œ๋œ๋‹ค. (๋•Œ์— ๋•Œ๋ผ ์žฅ์ ์ด ๋  ์ˆ˜๋„)
  • ํ…Œ์ด๋ธ” ๊ด€๊ณ„๊ฐ€ ๋ณต์žกํ•ด ์งˆ์ˆ˜๋ก JOIN ์—ฐ์‚ฐ์˜ ์ˆ˜ํ–‰์‹œ๊ฐ„์ด ๊ธธ์–ด์ง„๋‹ค.

NoSQL

NoSQL(Not Only SQL) ์ด๋ž€ ๋น„๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋“ค์„ ์นญํ•˜๋Š” ๋‹จ์–ด์ด๋‹ค.

NoSQL์ด ๋‚˜ํƒ€๋‚œ ๋ฐฐ๊ฒฝ

๋น…๋ฐ์ดํ„ฐ์˜ ๋“ฑ์žฅ์œผ๋กœ DB ์„œ๋ฒ„๋กœ์˜ ํŠธ๋ž˜ํ”ฝ ์ฆ๊ฐ€

โ†’ RDB์˜ ์„ฑ๋Šฅ ํ–ฅ์ƒ ํ•„์š”์„ฑ ๋Œ€๋‘

โ†’ Scaling Out์€ RDB ํŠน์„ฑ์ƒ ๋ถ€์ ์ ˆ, Scaling Up์€ ๋น„์šฉ ๋ฌธ์ œ๊ฐ€ ํผ

โ†’ ๋ฐ์ดํ„ฐ ์ผ๊ด€์„ฑ์€ ํฌ๊ธฐํ•˜๋˜ Scaling Out์ด ๊ฐ€๋Šฅํ•œ NoSQL์ด ๋“ฑ์žฅํ•˜๊ฒŒ ๋จ

ํŠน์ง•

  • Not Relational : ์ €์žฅ๋˜๋Š” ๋ฐ์ดํ„ฐ์— ๊ด€๊ณ„๋ผ๋Š” ๊ฐœ๋…์ด ์กด์žฌํ•˜์ง€ ์•Š๋Š”๋‹ค.
  • No Schema : ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•œ ์Šคํ‚ค๋งˆ๊ฐ€ ์—†๋‹ค (์„œ๋กœ ๋‹ค๋ฅธ ๊ตฌ์กฐ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ™์€ ์ปฌ๋ ‰์…˜์— ์ €์žฅํ•  ์ˆ˜ ์žˆ๋‹ค.)
  • ์„œ๋ฒ„์˜ Scaling Up, Scaling Out ๋ฐฉ์‹์„ ์ง€์›ํ•œ๋‹ค
  • ๋ฐ์ดํ„ฐ ์ผ๊ด€์„ฑ์„ ์™„๋ฒฝํ•˜๊ฒŒ ๋ณด์žฅํ•˜์ง€ ๋ชปํ•œ๋‹ค. (๊ถ๊ทน์  ์ผ๊ด€์„ฑ) = ์™„ํ™”๋œ ๋ฐ์ดํ„ฐ์˜ ACID ์†์„ฑ์„ ์ œ๊ณตํ•œ๋‹ค
  • ๋ถ„์‚ฐํ˜• ๊ตฌ์กฐ : ๋ฐ์ดํ„ฐ๋ฅผ ์—ฌ๋Ÿฌ ๋Œ€์˜ ์„œ๋ฒ„์— ๋ณต์ œํ•˜์—ฌ ๋ถ„์‚ฐ ์ €์žฅํ•œ๋‹ค. (ํŠน์ • DB ์„œ๋ฒ„์— ์žฅ์• ๊ฐ€ ๋ฐœ์ƒํ•ด๋„ ๋ฌด์ค‘๋‹จ ์„œ๋น„์Šค ์ œ๊ณต ๊ฐ€๋Šฅ)
  • NoSQL์€ CP(Consistency + Partition Tolerance) ๋˜๋Š” AP(Avaliablity + Partition Tolerance) ์‹œ์Šคํ…œ์ด๋‹ค.

์žฅ๋‹จ์ 

์žฅ์ 

  • ์Šคํ‚ค๋งˆ๊ฐ€ ์—†์–ด์„œ ์ €์žฅ๋˜๋Š” ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ์— ๋Œ€ํ•œ ์ œ์•ฝ์ด ๋น„๊ต์  ์—†๋‹ค
  • ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ํ•„์š”๋กœ ํ•˜๋Š” ํ˜•์‹์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋‹ค
  • Read ์—ฐ์‚ฐ ์†๋„๊ฐ€ RDB๋ณด๋‹ค ๋น ๋ฅด๋‹ค
  • Scaling Out์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

๋‹จ์ 

  • ์ €์žฅ๋˜๋Š” ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋ฅผ ์ง์ ‘ ๊ฒฐ์ •ํ•ด์•ผ ํ•œ๋‹ค
  • ๋ฐ์ดํ„ฐ ์ค‘๋ณต ๋ฌธ์ œ๊ฐ€ ์‹ฌํ•˜๋‹ค (๋ฐ์ดํ„ฐ ์—…๋ฐ์ดํŠธ ์‹œ, ์—ฌ๋Ÿฌ collection์˜ ์ค‘๋ณต๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฐพ์•„ ๊ฐฑ์‹ ํ•ด์•ผ ํ•œ๋‹ค)

NoSQL์˜ ๋ฐ์ดํ„ฐ ์ €์žฅ ๋ฐฉ์‹

  1. Key-Value ๋ฐฉ์‹ : key๋ฅผ ๋ฐ์ดํ„ฐ์˜ ๊ณ ์œ  ์‹๋ณ„์ž๋กœ ์‚ฌ์šฉํ•˜์—ฌ key-value ์Œ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•œ๋‹ค.
    • Partitioning, Scaling out์ด ๊ฐ€๋Šฅํ•˜๋‹ค
    • Redis, Riak, Voldmort
  2. Document ๋ฐฉ์‹ : ๋ฐ์ดํ„ฐ๋ฅผ document๋ผ๋Š” ํƒ€์ž…์œผ๋กœ ์ €์žฅํ•œ๋‹ค
    • document๋Š” XML, JSON, YAML๊ณผ ๊ฐ™์€ ํ˜•์‹์œผ๋กœ JSON์„ ๋งŽ์ด ์‚ฌ์šฉํ•œ๋‹ค.
    • document๋“ค์„ collection์œผ๋กœ ๊ด€๋ฆฌํ•œ๋‹ค. collection์—๋Š” document์˜ id๊ฐ€ ์ €์žฅ๋˜์–ด ์žˆ๊ณ , O(1) ์‹œ๊ฐ„๋ณต์ž๋„๋กœ document๋ฅผ ์กฐํšŒํ•  ์ˆ˜ ์žˆ๋‹ค
    • Write๋ณด๋‹ค Read์—ฐ์‚ฐ์ด ๋งŽ์€ ์„œ๋น„์Šค์— ์ ํ•ฉํ•˜๋‹ค
    • MongoDB, CouchDB
  3. Column Model ๋ฐฉ์‹ : ํ•˜๋‚˜์˜ key์— Column ์ด๋ฆ„ - Column ๊ฐ’ ์Œ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ณ  ์กฐํšŒํ•œ๋‹ค
    • Column์€ Column ์ด๋ฆ„, Column ๊ฐ’, Timestamp ๋กœ ๊ตฌ์„ฑ๋œ๋‹ค
    • Read๋ณด๋‹ค Write ์—ฐ์‚ฐ์ด ๋งŽ์€ ์„œ๋น„์Šค์— ์ ํ•ฉํ•˜๋‹ค
    • ๊ตฌ๊ธ€์˜ Big Table
  4. Graph ๋ฐฉ์‹ : ๋ฐ์ดํ„ฐ๋ฅผ ๋…ธ๋“œ๋กœ ํ‘œํ˜„ํ•˜๊ณ  ๋…ธ๋“œ ์‚ฌ์ด์˜ ๊ด€๊ณ„๋ฅผ ํ™”์‚ดํ‘œ๋กœ ํ‘œํ˜„ํ•˜๋Š” ๋ฐฉ์‹
    • ๋ฐ์ดํ„ฐ๋“ค์˜ ๊ด€๊ณ„๋ฅผ ์ค‘์š”์‹œํ•œ๋‹ค.
    • Sones, Allegro Graph

RDBMS vs NoSQL

์šฉ์–ด ๋น„๊ต (์ฐธ๊ณ )

SQL MongoDB DynamoDB Cassandra Couchbase
ํ…Œ์ด๋ธ” ์ปฌ๋ ‰์…˜ ํ…Œ์ด๋ธ” ํ…Œ์ด๋ธ” ๋ฐ์ดํ„ฐ ๋ฒ„ํ‚ท
์—ด ๋ฌธ์„œ ํ•ญ๋ชฉ ์—ด ๋ฌธ์„œ
์ปฌ๋Ÿผ ํ•„๋“œ ์†์„ฑ ์ปฌ๋Ÿผ ํ•„๋“œ
๊ธฐ๋ณธ ํ‚ค ObjectId ๊ธฐ๋ณธ ํ‚ค ๊ธฐ๋ณธ ํ‚ค ๋ฌธ์„œ ID
์ธ๋ฑ์Šค ์ธ๋ฑ์Šค ๋ณด์กฐ ์ธ๋ฑ์Šค ์ธ๋ฑ์Šค ์ธ๋ฑ์Šค
๋ณด๊ธฐ ๋ณด๊ธฐ ๊ธ€๋กœ๋ฒŒ ๋ณด์กฐ ์ธ๋ฑ์Šค ๊ตฌ์ฒดํ™”๋œ ๋ณด๊ธฐ ๋ณด๊ธฐ
์ค‘์ฒฉ๋œ ํ…Œ์ด๋ธ” ๋˜๋Š” ๊ฐ์ฒด ํฌํ•จ ๋ฌธ์„œ ๋งต ๋งต ๋งต
๋ฐฐ์—ด ๋ฐฐ์—ด ๋ชฉ๋ก ๋ชฉ๋ก ๋ชฉ๋ก

RDBMS๊ฐ€ ์ ํ•ฉํ•œ ๊ฒฝ์šฐ

  • ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๊ฐ€ ๋ณ€๊ฒฝ๋  ์—ฌ์ง€๊ฐ€ ์—†๊ณ , ์ €์žฅ๋  ๋ฐ์ดํ„ฐ์˜ ๊ทœ์น™์ด ์ค‘์š”ํ•œ ๊ฒฝ์šฐ
  • ๊ด€๊ณ„๋ฅผ ๋งบ๊ณ  ์žˆ๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ์ž์ฃผ ๋ณ€๊ฒฝ๋˜๋Š” ๊ฒฝ์šฐ(NoSQL์˜ ๊ฒฝ์šฐ ์—ฌ๋Ÿฌ ์ปฌ๋ ‰์…˜์— ์ค‘๋ณต ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ํ•˜๋‚˜์”ฉ ์ฐพ์•„ ์—…๋ฐ์ดํŠธ ํ•ด์ค˜์•ผ ํ•œ๋‹ค)

NoSQL์ด ์ ํ•ฉํ•œ ๊ฒฝ์šฐ

  • ์ €์žฅ๋˜๋Š” ๋ฐ์ดํ„ฐ์˜ ๊ตฌ์กฐ๋ฅผ ์ •ํ™•ํžˆ ์•Œ ์ˆ˜ ์—†๊ฑฐ๋‚˜ ์ž์ฃผ ๋ณ€๊ฒฝ๋˜๊ณ  ํ™•์žฅ๋  ๊ฒฝ์šฐ
  • Read ์—ฐ์‚ฐ์ด ๋งŽ๊ณ  Write ์—ฐ์‚ฐ์ด ๋“œ๋ฌธ๊ฒฝ์šฐ
  • ๋ง‰๋Œ€ํ•œ ์–‘์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค๋ฃจ๊ธฐ ๋•Œ๋ฌธ์— ์„œ๋ฒ„์˜ Scaling Out์ด ๋ถˆ๊ฐ€ํ”ผํ•  ๊ฒฝ์šฐ