1113 ~ 1109


# 1113 ~ 1109

# 1107 - NoSQL

# NoSQL์ด๋ž€?

  • NoSQL์€ ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์ „ํ†ต์ ์ธ ๊ตฌ์กฐ ๋ฐ–์—์„œ ๋ฐ์ดํ„ฐ ์ €์žฅ ๋ฐ ์ฟผ๋ฆฌ๋ฅผ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„ค๊ณ„ ์ ‘๊ทผ๋ฒ•
  • not only SQL / non-SQL
  • ๋น„๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค
  • ๋ถ„์‚ฐ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ํ•œ ์œ ํ˜•
  • ํ™•์žฅ์„ฑ์ด๋‚˜ ์„ฑ๋Šฅ ๋“ฑ์˜ ํŠน์„ฑ์„ ๊ฐ–๋Š” ์ˆ˜๋งŽ์€ ๋น„๊ด€๊ณ„ํ˜•, ๋ถ„์‚ฐ ๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค
  • ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ ๋น„๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ค‘ ๋ฌด์—‡์„ ์‚ฌ์šฉํ• ์ง€์— ๋Œ€ํ•œ ๊ฒฐ์ •์€ ํฌ๊ฒŒ ์ปจํ…์ŠคํŠธ์˜ ์˜ํ–ฅ์„ ๋ฐ›์œผ๋ฉฐ, ์ ์šฉ์‚ฌ๋ก€์— ๋”ฐ๋ผ ๋‹ฌ๋ผ์ง„๋‹ค.
  • ์šฉ์–ด๊ฐ€ ์ฒ˜์Œ์œผ๋กœ ๋“ฑ์žฅํ•œ ๊ฒƒ์€ 1998๋…„ ์นด๋ฅผ๋กœ ์ŠคํŠธ๋กœ์ฐŒ(Carlo Strozzi)๋ผ๋Š” ์—”์ง€๋‹ˆ์–ด๊ฐ€ ๊ณต๊ฐœํ•œ ํ‘œ์ค€ SQL ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ฑ„์šฉํ•˜์ง€ ์•Š์€ ์ž์‹ ์˜ ๊ฒฝ๋Ÿ‰ Open Source ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ NoSQL์ด๋ผ๊ณ  ๋ช…๋ช…ํ•œ๋ฐ์„œ ์œ ๋ž˜
  • ์ดํ›„ย 2009๋…„์—๋Š” ์š”ํ•œ ์˜ค์Šค์นผ์†(Johan Oskarsson)์ด๋ผ๋Š” ์—”์ง€๋‹ˆ์–ด๊ฐ€ Open Source๊ธฐ๋ฐ˜์˜ ๋ถ„์‚ฐ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ด€๋ จ ํ–‰์‚ฌ๋ฅผ ์ค€๋น„ํ•˜๋ฉด์„œ NoSQL์ด๋ผ๋Š” ์šฉ์–ด๋ฅผ ์‚ฌ์šฉ
# NoSQL ํŠน์ง•
  • ๊ด€๊ณ„ํ˜• ๋ชจ๋ธ์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์œผ๋ฉฐ ํ…Œ์ด๋ธ”๊ฐ„์˜ ์กฐ์ธ ๊ธฐ๋Šฅ ์—†์Œ
  • ์ง์ ‘ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ํ•˜๋Š” ๋“ฑ์˜ ๋น„SQL ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ํ†ตํ•œ ๋ฐ์ดํ„ฐ ์•ก์„ธ์Šค
  • ๋Œ€๋ถ€๋ถ„ ์—ฌ๋Ÿฌ ๋Œ€์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„œ๋ฒ„๋ฅผ ๋ฌถ์–ด์„œ(ํด๋Ÿฌ์Šคํ„ฐ๋ง) ํ•˜๋‚˜์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๊ตฌ์„ฑ
  • ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ๋Š” ์ง€์›ํ•˜๋Š” Data์ฒ˜๋ฆฌ ์™„๊ฒฐ์„ฑ(Transaction ACID ์ง€์›) ๋ฏธ๋ณด์žฅ
  • ๋ฐ์ดํ„ฐ์˜ ์Šคํ‚ค๋งˆ์™€ ์†์„ฑ๋“ค์„ ๋‹ค์–‘ํ•˜๊ฒŒ ์ˆ˜์šฉ ๋ฐ ๋™์  ์ •์˜ (Schema-less)
  • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์ค‘๋‹จ ์—†๋Š” ์„œ๋น„์Šค์™€ ์ž๋™ ๋ณต๊ตฌ ๊ธฐ๋Šฅ์ง€์›
  • ๋‹ค์ˆ˜๊ฐ€ Open Source๋กœ ์ œ๊ณต
  • ํ™•์žฅ์„ฑ, ๊ฐ€์šฉ์„ฑ, ๋†’์€ ์„ฑ๋Šฅ

=> NoSQL์€ ์ดˆ๊ณ ์šฉ๋Ÿ‰ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ๋“ฑ ์„ฑ๋Šฅ์— ํŠนํ™”๋œ ๋ชฉ์ ์„ ์œ„ํ•ด, ๋น„๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ ์ €์žฅ์†Œ์—, ๋น„๊ตฌ์กฐ์ ์ธ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•œ ๋ถ„์‚ฐ ์ €์žฅ ์‹œ์Šคํ…œ

# ์œ ํ˜•

  • Key-Value(ํ‚ค-๊ฐ’) DB
    • redis
    • riak
  • Document(๋„ํ๋จผํŠธ) DB : JSON, XML๊ณผ ๊ฐ™์€ Collection ๋ฐ์ดํ„ฐ ๋ชจ๋ธ ๊ตฌ์กฐ๋ฅผ ์ฑ„ํƒ
    • mongoDB
    • CouchDB
  • Wide-Columnar Store(์™€์ด๋“œ-์ปฌ๋Ÿผ) DB : Column Family ๋ฐ์ดํ„ฐ ๋ชจ๋ธ์„ ์‚ฌ์šฉ
    • HBASE
    • Cassandra
  • Graph(๊ทธ๋ž˜ํ”„) DB : Nodes, Relationship, Key-Value ๋ฐ์ดํ„ฐ ๋ชจ๋ธ์„ ์ฑ„์šฉ
    • neo4j
    • OrientDB

# ์†์„ฑ/ํŠน์„ฑ

# NoSQL

๊ฐ€์šฉ์„ฑ๊ณผ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ์„ฑ๋Šฅ ํ–ฅ์ƒ์— ์ดˆ์ 

  • BASE
    • Basically Available(๊ฐ€์šฉ์„ฑ)
    • Soft State(์†Œํ”„ํŠธ ์ƒํƒœ)
      • ๊ฐ๊ฐ์˜ ๋ฐ์ดํ„ฐ๊ฐ€ ๋„๋‹ฌํ•œ ์‹œ์ ์— ๋ฐ์ดํ„ฐ๊ฐ€ ๊ฐฑ์‹ ๋จ
    • Eventually Consistent(๊ฒฐ๊ณผ์  ์ผ๊ด€์„ฑ)
      • ๋ณต์ œ๊ฐ€ ๋™์‹œ์— ์‹คํ–‰๋  ์ˆ˜ ์—†์œผ๋‚˜, ์ตœ์ข…์ ์œผ๋กœ๋Š” ๋ชจ๋“  ์„œ๋ฒ„์— ๋ฐ์ดํ„ฐ๊ฐ€ ๋ณต์ œ๋จ
# RDBMS

๋ฐ์ดํ„ฐ ์ผ๊ด€์„ฑ์— ์ดˆ์ 

  • ACID
    • Atomicity(์›์ž์„ฑ)
      • ํŠธ๋žœ์žญ์…˜์€ ์ตœ์†Œ์˜ ์—…๋ฌด๋‹จ์œ„๋กœ ํ•œ ํŠธ๋žœ์žญ์…˜์€ ๋ชจ๋‘ ์ฒ˜๋ฆฌ๋˜๊ฑฐ๋‚˜ ๋˜๋Š” ๋ฏธ์ฒ˜๋ฆฌ ๋˜์–ด์•ผ ํ•จ
    • Consistency(์ผ๊ด€์„ฑ)
      • ํŠธ๋žœ์žญ์…˜ ์„ฑ๊ณต ์‹œ DB๋Š” ์ผ๊ด€๋œ ์ƒํƒœ๋ฅผ ์œ ์ง€ํ•ด์•ผ ํ•จ
    • Isolation(๊ฒฉ๋ฆฌ์„ฑ)
      • ์‹คํ–‰ ์ค‘์ธ ํŠธ๋žœ์žญ์…˜์˜ ์ค‘๊ฐ„์— ๋‹ค๋ฅธ ํŠธ๋žœ์žญ์…˜์ด ์ ‘๊ทผํ•  ์ˆ˜ ์—†์Œ
    • Durability(์˜์†์„ฑ)
      • ํŠธ๋žœ์žญ์…˜ ์„ฑ๊ณต ์‹œ ๊ทธ ๊ฒฐ๊ณผ๋Š” ์žฅ์•  ๋ฐœ์ƒ ์—ฌ๋ถ€์™€ ๊ด€๊ณ„์—†์ด DB์— ์ €์žฅ๋˜์–ด์•ผ ํ•จ

# 1116 - OLTP/OLAP

  • DB ์„ ํƒ/์„ค๊ณ„์‹œ์˜ ๊ด€์ 

# OLTP(On-Line Transaction Processing)

# ์ •์˜

  • '์šด์˜'๊ณ„ ๋ฐ์ดํ„ฐ ๋ฐ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์˜๋ฏธ
  • ๋ณต์ˆ˜์˜ ์‚ฌ์šฉ์ž PC์—์„œ ๋ฐœ์ƒ๋˜๋Š” ํŠธ๋žœ์žญ์…˜(Transaction)์„ DB ์„œ๋ฒ„๊ฐ€ ์ฒ˜๋ฆฌ, ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ์š”์ฒญํ•œ ์‚ฌ์šฉ์ž์—๊ฒŒ ๊ฒฐ๊ณผ๊ฐ’์„ ๋˜๋Œ๋ ค์ฃผ๋Š” ๊ณผ์ •
  • 1๊ฐœ์˜ ํŠธ๋žœ์žญ์…˜์—์„œ ๋ฐœ์ƒ๋˜๋Š” INSERT, UPDATE, DELETE๋ฅผ ๋ฌด๊ฒฐ์„ฑ ๋ณด์žฅํ•˜์—ฌ ์ฒ˜๋ฆฌ, ๊ฒฐ๊ณผ๋ฅผ SELECTํ•˜๋Š” ๊ณผ์ •

# ํŠน์ง•

  • ๊ณผ๊ฑฐ์—๋Š” ์ฃผ๋กœ RDBMS ๊ธฐ๋ฐ˜์˜ ์‹œ์Šคํ…œ์„ ๊ทผ๊ฐ„์œผ๋กœ ํ–ˆ์œผ๋‚˜ NoSQL๋„ ์šด์˜๊ณ„ ๋ฐ์ดํ„ฐ์˜ ์„ฑ๊ฒฉ์„ ๋ค๋‹ค๋ฉด OLTP๋กœ ๋ถ„๋ฅ˜ ๊ฐ€๋Šฅ
  • ํ˜„์žฌ ๋ฐ์ดํ„ฐ๊ฐ€ ์ฒ˜๋ฆฌ๊ฐ€ ์–ผ๋งˆ๋‚˜ ์ •ํ™•ํ•˜๊ณ  ๋ฌด๊ฒฐํ•œ์ง€๊ฐ€ ์ค‘์š”
  • ์‹ค์งˆ์ ์ธ ๋ฐ์ดํ„ฐ์˜ ์ €์žฅ, ์‚ญ์ œ, ์ˆ˜์ • ๋“ฑ์˜ ์ž‘์—…์„ ์˜๋ฏธ
  • ๋น„๊ต์  ์ž‘์€ ๊ทœ๋ชจ์˜ ํŠธ๋žœ์žญ์…˜๋“ค๋กœ ๊ตฌ์„ฑ
  • CRUD์™€ ๊ด€๋ จ๋œ ์ฟผ๋ฆฌ๋“ค์ด ์ฃผ๋ฅผ ์ด๋ฃธ
  • ์ „ํ†ต์ ์ธ DBMS๋“ค์ด ์ฃผ๋กœ ์‚ฌ์šฉ๋จ
  • ๋ฐ์ดํ„ฐ ๊ฐ„์˜ ๊ตฌ์กฐ๋ฅผ ์ž˜ ์ •๋ฆฌํ•˜๋ ค๊ณ  ๋…ธ๋ ฅ

# OLAP(On-Line Analytical Processing)

# ์ •์˜

  • '๋ถ„์„'๊ณ„ ๋ฐ์ดํ„ฐ ๋ฐ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์˜๋ฏธ
  • ๋ฐ์ดํ„ฐ ์›จ์–ดํ•˜์šฐ์Šค (DW), DB์— ์ €์žฅ๋˜์–ด ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋ถ„์„, ์‚ฌ์šฉ์ž์—๊ฒŒ ์œ ์˜๋ฏธํ•œ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•ด์ฃผ๋Š” ์ฒ˜๋ฆฌ ๋ฐฉ๋ฒ•
  • ๊ธฐ์กด์— ์ €์žฅ๋˜์–ด ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉ์ž์˜ ์š”๊ตฌ์™€ ๋ชฉ์ ์— ๋งž๊ฒŒ ๋ถ„์„ํ•˜์—ฌ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•˜๋Š” ๊ฐœ๋…

# ํŠน์ง•

  • ๋ถ„์„์„ ํ†ตํ•ด BI(Business Intelligence)์™€ ์—ฐ๊ณ„ํ•˜์—ฌ ํŠน์ • ์ง€ํ‘œ ์ถ”์ถœ, ๋ฆฌํฌํŠธ ์ƒ์‚ฐ, ์˜์‚ฌ ๊ฒฐ์ •์— ๋„์›€
  • ์ด๋ฏธ ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ์–ด๋–ค ์ •๋ณด๋ฅผ ์ œ๊ณตํ•˜๋Š”์ง€๊ฐ€ ์ค‘์š”
  • ๋ฐ์ดํ„ฐ๊ฐ€ ๋ฌด๊ฒฐ, ์ •ํ™•ํ•˜๋‹ค๋Š” ์ „์žฌ ํ•˜์— ์ •๋ณด๋ฅผ ์–ด๋–ค ์‹์œผ๋กœ ํ‘œํ˜„ํ•˜๊ณ  ์ œ๊ณตํ•˜๋Š”์ง€๋ฅผ ์˜๋ฏธ
  • ๋Œ€์šฉ๋Ÿ‰ ๋ฐ์ดํ„ฐ๋ฅผ ์ทจ๊ธ‰
  • ํ†ต๊ณ„/์ง‘๊ณ„ ๋“ฑ์˜ ๋ณต์žกํ•œ ์ฟผ๋ฆฌ๋“ค์ด ์ฃผ๋ฅผ ์ด๋ฃธ
  • DW (Data Warehouse)๋ฅผ ๊ตฌ์ถ•
  • ๋ฐ์ดํ„ฐ๊ฐ€ ์–ด๋Š ์ •๋„ ์ค‘๋ณต์ด ๋˜๋”๋ผ๋„ ๋ณ„ ์ƒ๊ด€์ด ์—†์œผ๋ฉฐ ๋งŽ์€ ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘์ด ํ•„์š”

# ์ƒํ˜ธ ๋ณด์™„์  ๊ด€๊ณ„

  • OLTP์™€ OLAP๋ฅผ ๋‘๊ณ  ๋ดค์„ ๋•Œ ๊ฐ€์žฅ ์„ ํ–‰๋˜์–ด์•ผ ํ•  ๋ถ€๋ถ„์€ OLTP (๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ๊ณผ์ • ๋ฐ ๋ฐ์ดํ„ฐ ์ž์ฒด์˜ ๋ฌด๊ฒฐ์„ฑ ์ค‘์š”)
  • OLTP๊ฐ€ ์›์ฒœ ๋ฐ์ดํ„ฐ์˜ ์ œ๊ณต์ฒ˜์ด๋ฉฐ ETL ์ž‘์—…์„ ํ†ตํ•ด OLAP์— ๋ฐ์ดํ„ฐ๋ฅผ ์ œ๊ณต
Last update: November 28, 2023 23:01
Contributors: jaesungahn91