π RDBMSμ NoSQL
- RDBMS - Relational DataBase Management System
- RDB - Relational DataBase
- NoSQL - Not Only SQL
π RDBMS?
RDB
κ΄κ³ν (λ°μ΄ν°) λͺ¨λΈμ κΈ°μ΄λ₯Ό λ λ°μ΄ν°λ² μ΄μ€μ λλ€. κ΄κ³ν λͺ¨λΈ(Relational model)μ΄λ λ°μ΄ν°λ₯Ό ꡬμ±νλλ° νμν λ°©λ² μ€ νλλ‘ λͺ¨λ λ°μ΄ν°λ₯Ό 2μ°¨μμ ν μ΄λΈ ννλ‘ νννλ κ²μ λλ€.
ν μ΄λΈμ κ° νμ κ³ μ ν ν€λ₯Ό κ°μ§κ³ μκ³ , ν μ΄λΈμ κ° νμ λ€λ₯Έ ν μ΄λΈμ νμ μμ μ κ³ μ ν€κ° λ΄κΈ΄ μ΄μ μΆκ°νλ κ²μΌλ‘ μ°κ²°λ μ μμ΅λλ€. μ΄ λ ν€λ€μ μΈλΆ ν€(Foreign Key)μ λλ€.
κΈ°λ³Έμ μΌλ‘ RDBλ PKμ μ΅μ νλ©λλ€.
RDB μ©μ΄
SQL | RDB | μ€λͺ |
---|---|---|
ν(Row) | νν(Tuple) λλ λ μ½λ(Record) |
νλμ νλͺ©μ λννλ λ°μ΄ν° |
μ΄(Column) | μμ±(Attribute) | ννμ μ΄λ¦ μμ (μ: "id", "name", "address") |
ν μ΄λΈ(Table) | κ΄κ³(Relation) λλ κ΄κ³λ³μ(Base relvar) |
κ°μ μμ±μ 곡μ νλ ννμ λͺ¨μ (컬λΌμ΄λ λ‘μ°μ λͺ¨μ) |
RDBMS
- DBMS - λ°μ΄ν°λ² μ΄μ€μ λν μ‘μΈμ€λ₯Ό μ μ, μμ±, μ μ§ λ° μ μ΄ν μ μλλ‘ νλ μννΈμ¨μ΄ μμ€ν μ λλ€.
λ°μ΄ν°λ² μ΄μ€κ° κ΄κ³νμΌ λ RDBMSλΌκ³ λΆλ¦
λλ€.
λ°λΌμ, κ΄κ³ν λͺ¨λΈμ κΈ°λ°ν λ°μ΄ν°λ² μ΄μ€ κ΄λ¦¬ μμ€ν
(DBMS)μ΄λΌκ³ ν μ μμ΅λλ€.
λ§μ κ΄κ³ν λ°μ΄ν°λ² μ΄μ€ μμ€ν μλ λ°μ΄ν°λ² μ΄μ€λ₯Ό 쿼리νκ³ μ λ°μ΄νΈνκΈ° μν΄ SQL(Structured Query Language)μ μ¬μ©νλ μ΅μ μ μ 곡ν©λλ€.
νΉμ§
- λ°μ΄ν°μ λΆλ₯, μ λ ¬, νμ μλκ° λΉ λ¦
- μ€ν€λ§κ° λͺ ννκ² μ μλ¨
- μ€λ μ¬μ©λ λ§νΌ μ λ’°μ±μ΄ λκ³ , μ΄λ€ μν©μμλ λ°μ΄ν°μ 무결μ±μ 보μ₯
- λ°μ΄ν°λ₯Ό μ€λ³΅ μμ΄ ν λ²λ§ μ μ₯ κ°λ₯
- μ μ§λ³΄μκ° νΈλ¦¬ν¨
- μ ν μ 보μ μ κ·Όνλ κ°μ₯ ν¨μ¨μ μ΄κ³ μ μ°ν λ°©λ²
π NoSQL?
- λ°°κ²½ - μ»΄ν¨ν° ν΄λ¬μ€ν°μ μν νμ₯κ³Ό κ°μ κΈ°μ μ νμ₯μΌλ‘ μΈν΄ NoSQL λ°μ΄ν°λ² μ΄μ€λ RDBMSμ λμμΌλ‘ λ μ¬λμ΅λλ€.
κ΄κ³ν λ°μ΄ν°λ² μ΄μ€ λ³΄λ€ λ μ΅ν΅μ± μλ λ°μ΄ν° λͺ¨λΈμ μ¬μ©νκ³ , λ°μ΄ν°μ μ μ₯ λ° κ²μμ μν νΉνλ 맀컀λμ¦μ μ 곡ν©λλ€.
μ΄λ₯Ό ν΅ν΄ NoSQL λ°μ΄ν°λ² μ΄μ€λ λ¨μ κ²μ λ° μΆκ° μμ
μ μμ΄μ λ§€μ° μ΅μ νλ ν€ κ° μ μ₯ κΈ°λ²μ μ¬μ©νμ¬, μλ΅μλλ, μ²λ¦¬ ν¨μ¨ λ±μ μμ΄μ λ§€μ° λ°μ΄λ μ±λ₯μ λνλ
λλ€.
RDB μ©μ΄
μ’ λ₯ | μ€λͺ |
---|---|
Key Value DB | Keyμ Valueμ μμΌλ‘ λ°μ΄ν°κ° μ μ₯λλ κ°μ₯ λ¨μν ννμ μ루μ
μΌλ‘ Amazonμ Dynamo Paperμμ μ λλμμ΅λλ€. Riak, Vodemort, Tokyo λ±μ μ νμ΄ λ§μ΄ μλ €μ Έ μλ€. |
Wide Columnar Store | Big Table DBλΌκ³ λ νλ©°, Googleμ BigTable Paperμμ μ λλμμ΅λλ€. Key Value μμ λ°μ λ ννμ Column Family λ°μ΄ν° λͺ¨λΈμ μ¬μ©νκ³ μκ³ , HBase, Cassandra, ScyllaDB λ±μ΄ μ΄μ ν΄λΉν©λλ€. |
Document DB | Lotus Notesμμ μ λλμμΌλ©°, JSON, XMLκ³Ό κ°μ Collection λ°μ΄ν° λͺ¨λΈ ꡬ쑰λ₯Ό μ±ννκ³ μμ΅λλ€. MongoDB, CoughDBκ° μ΄ μ’ λ₯μ ν΄λΉν©λλ€. |
Graph DB | Euler & Graph Theoryμμ μ λν DBμ
λλ€. Nodes, Relationship, Key-Value λ°μ΄ν° λͺ¨λΈμ μ±μ©νκ³ μμ΅λλ€. Neo4J, OreientDB λ±μ μ νμ΄ μμ΅λλ€. |
λμ νμ₯μ±κ³Ό κ°μ©μ±μ΄ μ£Όμ μ₯μ μΈ NoSQL λ°μ΄ν°λ² μ΄μ€λ μ€μκ° μΉ μ ν리μΌμ΄μ λ° λΉ λ°μ΄ν°μ λ리 μ¬μ©λλ€.
νΉμ§
- κ΄κ³ν λͺ¨λΈμ μ¬μ©νμ§ μμΌλ©° ν μ΄λΈκ°μ μ‘°μΈ κΈ°λ₯ μμ
- μ§μ νλ‘κ·Έλλ°μ νλ λ±μ λΉSQL μΈν°νμ΄μ€λ₯Ό ν΅ν λ°μ΄ν° μ‘μΈμ€
- λλΆλΆ μ¬λ¬ λμ λ°μ΄ν°λ² μ΄μ€ μλ²λ₯Ό λ¬Άμ΄μ(ν΄λ¬μ€ν°λ§) νλμ λ°μ΄ν°λ² μ΄μ€λ₯Ό ꡬμ±
- κ΄κ³ν λ°μ΄ν°λ² μ΄μ€μμλ μ§μνλ Dataμ²λ¦¬ μκ²°μ±(Transaction ACID μ§μ) 미보μ₯
- λ°μ΄ν°μ μ€ν€λ§μ μμ±λ€μ λ€μνκ² μμ© λ° λμ μ μ (Schema*less)
- λ°μ΄ν°λ² μ΄μ€μ μ€λ¨ μλ μλΉμ€μ μλ 볡ꡬ κΈ°λ₯μ§μ
- λ€μκ° Open Sourceλ‘ μ 곡
- νμ₯μ±, κ°μ©μ±, λμ μ±λ₯
μ°Έκ³
https://en.wikipedia.org/wiki/Relational_database
https://en.wikipedia.org/wiki/Relational_database#RDBMS
https://jwprogramming.tistory.com/52
https://en.wikipedia.org/wiki/NoSQL
https://www.samsungsds.com/kr/insights/1232564_4627.html
'Database' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
Transactionκ³Ό ACID (0) | 2023.10.12 |
---|---|
Row Oriented & Column Oriented Database (0) | 2023.10.05 |