Skip to content

Latest commit

Β 

History

History
73 lines (53 loc) Β· 3 KB

RDBMS_and_NoSQL.md

File metadata and controls

73 lines (53 loc) Β· 3 KB

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)