๋ฐ์ํ
์ด ๊ธ์ ์ ๊ณต "๋น ๋ฐ์ดํฐ์์คํ " ๊ฐ์ ๋ด์ฉ์ ์ ๋ฆฌํ ๊ธ์ ๋๋ค.
Centralized Storage
- Data is stored on the database of one single machine
- Relational databases
- Allows related data to be stored across multiple tables, and linked by establishing a relationship between the tables ⇒ ๋ค์์ ํ ์ด๋ธ์ ์ฐ๊ด๋ data๋ฅผ ์ ์ฅํ๊ณ , ํ ์ด๋ธ๋ค๊ฐ์ ๊ด๊ณ๋ฅผ ์ค์ ํ์ฌ ์ฐ๊ฒฐํ ์ ์๋ค.
- Inflexible - ์ฃผ๋ก structured data์ ์ ํฉํ๊ณ ๋ค๋ฅธ ํ์ ์ ๋ํด ์ ์ฐ์ฑ์ด ์๋ค.
- Velocity - ๋น ๋ฅด๊ฒ ์ฆ๊ฐํ๋ ๋ฐ์ดํฐ๋ณด๋จ ์ ์ ์ธ ๋ฐ์ดํฐ๋ฅผ ์ํด ์ค๊ณ๋์ด์๋ค.
- No scalability - ํฐ ํฌ๊ธฐ๋ก ํ์ฅํ๊ธฐ ์ฝ์ง ์๋ค.
- Weak SQL - SQL ๊ธฐ๋ณธ ์ฟผ๋ฆฌ๋ก๋ ํน์ ์ฟผ๋ฆฌ๋ฅผ ๊ตฌํํ๊ธฐ ์ด๋ ต๋ค.
Decentralized storage
- Database run on multiple machines at the same time
- NoSQL databases
What is NoSQL?
- Some claim for it to mean “No SQL” ⇒ ์ผ๋ถ์์๋ “No SQL”์ ์๋ฏธํ๋ค๊ณ ํ๋ค.
- SQL์ ์ฌ์ฉํ์ง ์๊ณ ๋ค๋ฅธ ๋์ฒด ์ฟผ๋ฆฌ ์ธ์ด๋ฅผ ์ฌ์ฉํ๋ค.
- The definition is sometimes expanded to mean “Not only SQL” ⇒ ๋๋๋ก “Not Only SQL”์ผ๋ก ํ์ฅ๋๊ธฐ๋ ํ๋ค.
- ์์คํ ์์ SQL์ ๋ค๋ฅธ ๊ธฐ์ /์ฟผ๋ฆฌ ์ธ์ด์ ํจ๊ป ์ฌ์ฉํ๋ค๋ ๊ฒ์ ์๋ฏธํ๋ค.
- Many argue that the one thing all NoSQL databases have in common is that they’re non-relational ⇒ ๋๋ค์๋ ๋ชจ๋ NoSQL ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ํ ๊ฐ์ง ๊ณตํต์ ์ ๋น๊ด๊ณ์ ์ด๋ผ๋ ๊ฒ์ด๋ผ๊ณ ํ๋ค.
- “NoREL” is a more suitable name
Why NoSQL
- Features of NoSQL
- Flexible - ์คํค๋ง๊ฐ ์๊ฑฐ๋ ์ฌ์ ์คํค๋ง๋ฅผ ๊ฐ์ง๋ค(๋ฐ์ดํฐ ์คํค๋ง์ ์ ์๋ฅผ ์๊ตฌํ์ง ์๋๋ค.)
- Scalability - Scale-Up(vertical scaling)์ ์ฌ์ฉํ๋ RDBMS์ ๋ฌ๋ฆฌ, Scale-Out(horizotal scaling)์ ์ฌ์ฉํ๋ค.
- Fault tolerance - single machin๋ณด๋ค several machine์ด ๋ fault tolerance๊ฐ ๋๋ค.
- Open Source - ๋๋ถ๋ถ NoSQL database๋ oepn source์ด๋ค.
NoSQL Databases
Representative NoSQL Databases
- Key-Value Store
- Column
- Document
- Graph
Key-Value Store Database
- ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ธฐ ์ํด์ ๊ฐ๋จํ key-value ๋ฐฉ์์ ์ฌ์ฉํ๋ค.
- ๋ฐ์ดํฐ ์ ์ฅ ๋ฐฉ๋ฒ์ด ๊ฐ๋จํ๋ค(Simple method of storing data)
- ํ์ฅ์ด ์๋๋ค.(Scale Well)
- key-value pair๋ ๋ง์ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์์ ์ ์ ๋ฆฝ๋ ๊ฐ๋
์ด๋ค
- ex) Dictionary, hash, associative array, etc
Example of Key-Value Stores
- Stock Trading
What can a key-value store database be used for?
- ์น์ฌ์ดํธ์์ User profiles and session info
- ๊ธฐ์ฌ/๋ธ๋ก๊ทธ ๋๊ธ
- ์ ํ๋ฒํธ๋ถ
- IP forwarding tables
- etc...
Key-Value DBMS
- Redis
- Oracle NoSQL Database
- Project Voldemort
- Aerospike
- Oracle Berkeley DB
Document Store Database
- ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ ๋ document-oriented model์ ์ฌ์ฉํ๋ค.
- key-value store database์ ์ ์ฌํ์ง๋ง, Document store database๋ semi-structure data๋ก ๊ตฌ์ฑ๋ ๊ฐ์ ์ฌ์ฉํ๋ค.
- ํ๋์ document์์ ์ฐ๊ด๋ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ค.
- ๊ฐ๊ฐ์ document๋ ๋ค์ํ ์ฟผ๋ฆฌ๋ฅผ ์ฌ์ฉํ ์ ์๋ semi-structured ๋ฐ์ดํฐ๊ฐ ํฌํจ๋์ด ์๋ค.
- Usually XML or JSON
What can a Document Database be used for?
- Web application
- ์ ์ ๊ฐ ๋ง๋๋ Content(Chat sessions, tweets, blog posts)
- Networking/computing(Sensor data, log files)
- Catalog Data
Examples of Document Store DBMS
- MongoDB
- DocumentDB
- CouchDB
- MarkLogic
- OriendDB
Column Store Database
- column oriented model์ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ค.
- column family๋ ์ฌ๋ฌ๊ฐ์ row๋ค๋ก ๊ตฌ์ฑ๋๋ค.
- ๊ฐ row๋ ๋ค๋ฅธ row์ ๋ค๋ฅธ ์์ colums์ผ๋ก ๊ตฌ์ฑ๋ ์ ์๋ค.
- ๋ค๋ฅธ column ์ด๋ฆ, ๋ฐ์ดํฐ ์ ํ ๋ฑ์ ๊ฐ์ง ์ ์๋ค.
- Row Key : ๊ฐ row๋ ์๋ณํ ์ ์๋ unique key๋ฅผ ๊ฐ์ง๋ค.
- Column: ๊ฐ column์ ์ด๋ฆ, ๊ฐ, timestamp๋ฅผ ๊ฐ์ง๋ค.
Examples of column store databases include
- Bigtable
- Cassandra
- HBase
- Vertica
- Druid
Graph Database
- ๋ฐ์ดํฐ๋ฅผ ํํํ๊ณ ์ ์ฅํ๊ธฐ ์ํด graphical model์ ์ฌ์ฉํ๋ค.
- relational model์ ๋์์ด๋ค.
- relational database์์, ๋ฐ์ดํฐ๋ ๋ฏธ๋ฆฌ ์ ์๋ ์คํค๋ง๊ฐ ์๋ ๊ฒฌ๊ณ ํ ๊ตฌ์กฐ๋ฅผ ์ฌ์ฉํ์ฌ ํ ์ด๋ธ์ ์ ์ฅ๋๋ค.
- graph database์์๋, ๋ฏธ๋ฆฌ ์ ์๋ ์คํค๋ง๊ฐ ์๋ค.(๋จ์ํ๊ฒ ์ ๋ จ๋ ๋ฐ์ดํฐ์ reflection์ด๋ค.)
- ์ฐ๊ฒฐ๋ ๋ฐ์ดํฐ๋ก ์์ ํ๋๋ฐ ๋งค์ฐ ์ ํฉํ๋ค.
- circle์ node์ด๊ณ , ๋ฐ์ดํฐ๋ฅผ ํฌํจํ๋ค.
- ํ์ดํ๋ node ์ฌ์ด ๊ด๊ณ๋ฅผ ํํํ๋ค.
Example of Graph Databases
- Neo4j
- Blazegraph
- GraphBase
๋ฐ์ํ
'Back-end > MongoDB' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
MongoDB: ๊ณ ๊ธ ์ฟผ๋ฆฌ(Advanced Queries - Aggregation Framework) (0) | 2022.04.29 |
---|---|
MongoDB: ์ค๊ธ ์ฟผ๋ฆฌ (Manipulating Data - Intermediate Query) (0) | 2022.04.29 |
MongoDB: ๊ธฐ๋ณธ ์ฟผ๋ฆฌ(Basic Quries) (0) | 2022.04.29 |
MongoDB Overview (0) | 2022.04.26 |
Introduction to Big Data (0) | 2022.04.26 |