λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
Database

[DB] NoSQL κ°„λ‹¨νžˆ μ‚΄νŽ΄λ³΄κΈ°

by μ•„λ¦¬κ°€λ˜πŸ™‚ 2023. 3. 30.

RDBMS & NoSQL 비ꡐ

- RDB

  1. ꡬ쑰가 μ •ν˜•ν™” λ˜μ–΄μžˆμŒ.
    • λ°μ΄ν„°λŠ” ν…Œμ΄λΈ”(table)에 λ ˆμ½”λ“œ(record)둜 μ €μž₯되며 각 ν…Œμ΄λΈ”μ—λŠ” λͺ…ν™•ν•˜κ²Œ μ •μ˜λœ ꡬ쑰
    • μ •ν•΄μ§„ μŠ€ν‚€λ§ˆμ— λ”°λ₯΄μ§€ μ•ŠμœΌλ©΄ 데이터λ₯Ό μΆ”κ°€ν•  수 μ—†μŒ
  2. 수직적 ν™•μž₯만 지원
    • '샀딩'μ΄λΌλŠ” κ°œλ…μ΄ μžˆμ§€λ§Œ νŠΉμ • μ œν•œμ΄ 있으며 κ΅¬ν˜„ν•˜κΈ°κ°€ λŒ€μ²΄λ‘œ 어렀움
  3. λ°μ΄ν„°μ˜ 무결성 보μž₯
  4. 데이터λ₯Ό 쀑볡없이 ν•œλ²ˆλ§Œ μ €μž₯함

 

- NoSQL

  1. ꡬ쑰가 μ •ν˜•ν™” λ˜μ–΄ μžˆμ§€ μ•ŠμŒ
    • λ‹€λ₯Έ ꡬ쑰의 데이터λ₯Ό 같은 μ»¬λ ‰μ…˜μ— μΆ”κ°€ κ°€λŠ₯
    • μŠ€ν‚€λ§ˆμ— λŒ€ν•΄ μ‹ κ²½μ“Έ ν•„μš”κ°€ μ—†μŒ
    • μ–Έμ œλ“ μ§€ μ €μž₯된 데이터λ₯Ό μ‘°μ •ν•˜κ³  μƒˆλ‘œμš΄ "ν•„λ“œ"λ₯Ό μΆ”κ°€ν•  수 있음
  2. 수직적 ν™•μž₯, μˆ˜ν‰μ  ν™•μž₯ λ‘˜λ‹€ κ°€λŠ₯
    • μ—¬λŸ¬ μ„œλ²„μ—μ„œ λ°μ΄ν„°λ² μ΄μŠ€λ₯Ό μ‰½κ²Œ 뢄리
  3. λ°μ΄ν„°λŠ” μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ΄ μ›ν•˜λŠ” ν˜•μ‹μœΌλ‘œ μ €μž₯됨.
    • λ”°λΌμ„œ 데이터λ₯Ό μ½μ–΄μ˜€λŠ” 속도가 더 빠름
  4. join, νŠΈλžœμž­μ…˜ 지원 μ•ˆν•¨

 

단점

  • 데이터가 μ—¬λŸ¬ μ»¬λ ‰μ…˜μ— μ€‘λ³΅λ˜μ–΄ 있기 λ•Œλ¬Έμ—, μˆ˜μ •(update)λ₯Ό ν•΄μ•Όν•˜λŠ” 경우 λͺ¨λ“  μ»¬λ ‰μ…˜μ—μ„œ μˆ˜ν–‰ν•΄μ•Ό 함
  • 데이터 μ •ν•©μ„± 보μž₯ μ•ˆλ¨

 

μ‚¬μš© μš©λ„

μŒ“μ•„λ†“κ³  μ‚­μ œκ°€ μ—†λŠ” κ²½μš°κ°€ 제일 μ ν•©ν•˜λ‹€.      ex) λ‘œκ·Έλ°μ΄ν„°, μ„Έμ…˜

  • μ •ν™•ν•œ 데이터 ꡬ쑰λ₯Ό ν•  수 μ—†κ±°λ‚˜ λ³€κ²½/ν™•μž₯ 될 수 μžˆλŠ” 경우
  • 읽기(read)처리λ₯Ό μžμ£Όν•˜μ§€λ§Œ, 데이터λ₯Ό 자주 λ³€κ²½(update)ν•˜μ§€ μ•ŠλŠ” 경우 (즉, ν•œλ²ˆμ˜ λ³€κ²½μœΌλ‘œ μ—¬λŸ¬ λ¬Έμ„œλ₯Ό λ³€κ²½ν•  일이 μ—†λŠ” 경우)
  • λ°μ΄ν„°λ² μ΄μŠ€λ₯Ό μˆ˜ν‰μœΌλ‘œ ν™•μž₯ν•΄μ•Ό ν•˜λŠ” 경우 (λ§‰λŒ€ν•œ μ–‘μ˜ 데이터λ₯Ό 닀뀄야 ν•˜λŠ” 경우)

 

λŒ“κΈ€