# RDBMS์™€ NoSQL

written by sohyeon, hyemin ๐Ÿ’ก


# 1. RDBMS, ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค

๋ง ๊ทธ๋Œ€๋กœ ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ด€๋ฆฌ ์‹œ์Šคํ…œ์ž…๋‹ˆ๋‹ค.
์ •ํ•ด์ ธ์žˆ๋Š” ๋ฐ์ดํ„ฐ ์Šคํ‚ค๋งˆ์— ๋”ฐ๋ผ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํ…Œ์ด๋ธ”์— ์ €์žฅ๋˜๋ฉฐ,
๊ด€๊ณ„๋ฅผ ํ†ตํ•œ ํ…Œ์ด๋ธ”๊ฐ„ ์—ฐ๊ฒฐ์„ ํ†ตํ•ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
์ด ๋•Œ๋ฌธ์— RDBMS๋Š” ๋ฐ์ดํ„ฐ ๊ด€๋ฆฌ๋ฅผ ํšจ์œจ์ ์œผ๋กœ ํ•˜๊ธฐ์œ„ํ•ด ๊ตฌ์กฐํ™”๊ฐ€ ๊ต‰์žฅํžˆ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.

๋ฐ์ดํ„ฐ์˜ ์™„์ „์„ฑ์ด ๋ฌด์—‡๋ณด๋‹ค ์ค‘์š”ํ•œ ์ƒํ™ฉ์— ์‚ฌ์šฉ์‹œ ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค.
ex) SNS ์™€ ๊ฐ™์ด User, Feed, Comment ๋“ฑ ๋‹ค์–‘ํ•œ ๋ฐ์ดํ„ฐ๊ฐ€ ์žˆ๊ณ  ๊ทธ ๊ด€๊ณ„๊ฐ€ ์žˆ์„๋•Œ

# 1) ์žฅ์ 

  • ๋‹ค์–‘ํ•œ ์šฉ๋„๋กœ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๊ณ , ์ผ๋ฐ˜์ ์œผ๋กœ ๋†’์€ ์„ฑ๋Šฅ์„ ๋ณด์—ฌ์ค€๋‹ค(๋ฒ”์šฉ์  / ๊ณ ์„ฑ๋Šฅ)
  • ๋ฐ์ดํ„ฐ์˜ ์ผ๊ด€์„ฑ์„ ๋ณด์ฆํ•œ๋‹ค
  • ์ •๊ทœํ™”์— ๋”ฐ๋ฅธ ๊ฐฑ์‹ ๋น„์šฉ ์ตœ์†Œํ™”
  • SQL(Structured Query Language) ์ง€์›
    -> ๋ฐ์ดํ„ฐ๋ฅผ ์œ ์—ฐํ•˜๊ฒŒ Query ๊ฐ€๋Šฅ

# 2) ๋‹จ์ 

  • Oracle ๊ฐ™์€ ์‹œ์Šคํ…œ์„ ์‚ฌ์šฉํ•˜๊ฒŒ ๋  ๊ฒฝ์šฐ ๋น„์šฉ์ ์œผ๋กœ ๋ถ€๋‹ด์ด ๋  ์ˆ˜ ์žˆ์Œ
  • ์‹œ์Šคํ…œ ๋ณต์žก๋„๋ฅผ ๊ณ ๋ คํ•˜์—ฌ ๊ตฌ์กฐํ™”
    -> ์‹œ์Šคํ…œ์ด ๋ณต์žกํ•ด ์งˆ์ˆ˜๋ก Query๋ฌธ์ด ๋ณต์žกํ•ด์ง€๊ณ  ์„ฑ๋Šฅ์ด ์ €ํ•˜
  • ๊ฐฑ์‹ ์ด ๋ฐœ์ƒํ•œ ํ…Œ์ด๋ธ”์˜ ์ธ๋ฑ์Šค ์ƒ์„ฑ ๋ฐ ์Šคํ‚ค๋งˆ ๋ณ€๊ฒฝ
  • ์ˆ˜ํ‰์ ํ™•์žฅ์ด ์–ด๋ ค์›€, ์ปฌ๋Ÿผ ํ™•์žฅ์˜ ์–ด๋ ค์›€

# 3) ์ฃผ์š” ์ œํ’ˆ

  • Oracle / Oracle
  • MySQL / Oracle
  • MS-SQL Server / Microsoft
  • SQLite / Opensource

# 2. NoSQL, ๋น„๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค

๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ ๋ฐ˜๋Œ€๋˜๋Š” ๋ฐฉ์‹์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค.
๋ฐ์ดํ„ฐ ๊ฐ„์˜ ๊ด€๊ณ„๋ฅผ ์ •์˜ํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ์ž์œ ๋กญ๊ฒŒ ๋ฐ์ดํ„ฐ๋ฅผ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
RDBMS์˜ ํ…Œ์ด๋ธ”๊ณผ ๊ฐ™์€ ๊ฐœ๋…์œผ๋กœ ์ปฌ๋ ‰์…˜์ด๋ผ๋Š” ํ˜•ํƒœ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค.
์ฃผ๋กœ ๋น„์ •ํ˜• ๋ฐ์ดํ„ฐ ์ž‘์—…์ด ๋งŽ์€ ๊ฒฝ์šฐ, ์ž์ฃผ ์ ‘๊ทผํ•˜์ง€๋งŒ ์ž์ฃผ ์—…๋ฐ์ดํŠธ ๋˜์ง€ ์•Š๋Š” ๋ฐ์ดํ„ฐ์— ์ ํ•ฉํ•˜๋‹ค.
๋ฐ์ดํ„ฐ์˜ ์ €์žฅ ๋ฐ ๊ฒ€์ƒ‰์— ํŠนํ™”๋œ ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ์ œ๊ณตํ•˜๋ฉฐ ์‘๋‹ต์†๋„๋‚˜ ์ฒ˜๋ฆฌํšจ์œจ์ด ๋›ฐ์–ด๋‚˜๋‹ค.

# 1) ์žฅ์ 

  • ๋Œ€์šฉ๋Ÿ‰ ๋ฐ์ดํ„ฐ ์ €์žฅ ๊ฐ€๋Šฅ
  • ๋ถ„์‚ฐํ˜• ๊ตฌ์กฐ๋ฅผ ๊ฐ€์ง
    -> ๋ฐ์ดํ„ฐ๋ฅผ ์—ฌ๋Ÿฌ ๋Œ€์˜ ์„œ๋ฒ„์— ๋ถ„์‚ฐํ•ด ์ €์žฅํ•˜๊ณ , ๋ถ„์‚ฐ ์‹œ์— ๋ฐ์ดํ„ฐ๋ฅผ ์ƒํ˜ธ ๋ณต์ œํ•ด์„œ ํŠน์ • ์„œ๋ฒ„์— ์žฅ์• ๊ฐ€ ๋ฐœ์ƒํ–ˆ์„ ๋•Œ์—๋„ ๋ฐ์ดํ„ฐ ์œ ์‹ค์ด๋‚˜ ์„œ๋น„์Šค ์ค‘์ง€๊ฐ€ ์—†๋Š” ํ˜•ํƒœ์˜ ๊ตฌ์กฐ๋ฅผ ๊ฐ–๋Š”๋‹ค.
  • ์œ ์—ฐํ•œ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง
    -> ๋ณต์žกํ•œ ํ…Œ์ด๋ธ”๊ฐ„์˜ ๊ด€๊ณ„๋ฅผ ํ˜•์„ฑํ•˜๋Š” ํ˜•ํƒœ์˜ ๊ตฌ์กฐ๋ฅผ ์‹ ๊ฒฝ์“ฐ์ง€ ์•Š์•„๋„ ๋จ
    -> ๋ณต์žกํ•œ SQL๊ตฌ๋ฌธ์ด ๋ถˆํ•„์š”ํ•จ
  • ์ˆ˜ํ‰์  ํ™•์žฅ์ด ์‰ฝ๋‹ค

# 2) ๋‹จ์ 

  • ์ปฌ๋ ‰์…˜์— ์ค‘๋ณต๋œ ๋ฐ์ดํ„ฐ๊ฐ€ ์ €์žฅ ๊ฐ€๋Šฅ -> ๋ฐ์ดํ„ฐ ์—…๋ฐ์ดํŠธ ์‹œ ์ค‘๋ณต ๋ฐ์ดํ„ฐ๋ฅผ ๊ด€๋ฆฌํ•ด์ฃผ์–ด์•ผ ํ•จ
  • ์ปฌ๋Ÿผ ํ™•์žฅ์˜ ์–ด๋ ค์›€
  • ๋‹จ์ˆœํžˆ ๋น ๋ฅธ ๊ฒฐ๊ณผ

# 3) ์ฃผ์š” ์ œํ’ˆ

  1. key / value

    • ํœ˜๋ฐœ์„ฑ / ์˜์†์„ฑ (Memchached, Tokyo Tyrant, Flare, Roma, Redis)
  2. Document

    • ์Šคํ‚ค๋งˆ ์ •์˜ ์—†์Œ (MongoDB, CouchDB)
  3. Big Table(Column ํ˜•)DB

    • ๋›ฐ์–ด๋‚œ ํ™•์žฅ์„ฑ, ๊ฒ€์ƒ‰์— ์œ ๋ฆฌ (Hbase, Casandara, Hypertable)
Last Updated: 12/5/2020, 11:36:44 AM