π³DataBase
πΎλ°μ΄ν°λ² μ΄μ€(Database, DB)λ?
λ°μ΄ν°λ² μ΄μ€λ₯Ό ν λ§λλ‘ μ μνλ©΄ βλ°μ΄ν°μ μ§ν©βμ΄λΌκ³ ν μ μμ΅λλ€.
λ°μ΄ν°λ² μ΄μ€μλ μΌμμν λλΆλΆμ μ λ³΄κ° μ μ₯λκ³ κ΄λ¦¬λ©λλ€. μ€λ 보λ΄κ±°λ λ°μ μΉ΄μΉ΄μ€ν‘ λ©μμ§, μΈμ€νκ·Έλ¨μ λ±λ‘ν μ¬μ§, μΉ΄νμμ ꡬ맀ν μμ΄μ€ μλ©λ¦¬μΉ΄λ Έ λ±μ μ λ³΄κ° λͺ¨λ λ°μ΄ν°λ² μ΄μ€μ κΈ°λ‘λ©λλ€.
πΎDBMSλ?
λ°μ΄ν°λ² μ΄μ€λ₯Ό βλ°μ΄ν°μ μ§ν©βμ΄λΌκ³ μ μνλ€λ©΄, μ΄λ° λ°μ΄ν°λ² μ΄μ€λ₯Ό κ΄λ¦¬νκ³ μ΄μνλ μννΈμ¨μ΄λ₯Ό DBMS(Database Management System)λΌκ³ ν©λλ€. λ€μν λ°μ΄ν°κ° μ μ₯λμ΄ μλ λ°μ΄ν°λ² μ΄μ€λ μ¬λ¬ λͺ μ μ¬μ©μλ μμ© νλ‘κ·Έλ¨κ³Ό 곡μ νκ³ λμμ μ κ·Όμ΄ κ°λ₯ν΄μΌ ν©λλ€.
μλ‘ μνμ μκΈ κ³μ’λ λ§μ μ¬λλ€μ΄ κ°μ§κ³ μμ΅λλ€. μ¬λ¬ λͺ μ μκΈ κ³μ’ μ 보λ₯Ό λͺ¨μ λμ κ²μ΄ λ°μ΄ν°λ² μ΄μ€μ λλ€. μνμ΄ κ°μ§κ³ μλ μκΈ κ³μ’ λ°μ΄ν°λ² μ΄μ€μλ μ¬λ¬ λͺ μ΄ λμμ μ κ·Όν μ μμ΅λλ€. μκΈ κ³μ’ μ£ΌμΈ, μν μ§μ, μΈν°λ· λ± νΉ, ATM κΈ°κΈ° λ±μμ λͺ¨λ μ κ·Όμ΄ κ°λ₯νλκΉμ. μ΄λ¬ν κ²μ΄ κ°λ₯ν μ΄μ λ λ°λ‘ DBMSκ° μκΈ° λλ¬Έμ λλ€.

πΎDBMSμ μ’
λ₯
DBMSμ κ°μ μννΈμ¨μ΄λ νΉμ λͺ©μ μ μ²λ¦¬νκΈ° μν νλ‘κ·Έλ¨μ λλ€. μλ₯Ό λ€μ΄ λ¬Έμλ₯Ό μμ±νκΈ° μν΄μλ μλμνκΈ(HWP)μ΄λ μλ(Word), ν κ³μ°μ μν΄μλ μμ (Excel)μ΄λ μΊν¬(Calc), λ©μ§ μ¬μ§μ νΈμ§νλ €λ©΄ ν¬ν μ΅(PhotoShop)μ΄λ κΉν(Gimp)μ κ°μ μννΈμ¨μ΄λ₯Ό μ€μΉν΄μΌ ν©λλ€.
λ§μ°¬κ°μ§λ‘ λ°μ΄ν°λ² μ΄μ€λ₯Ό μ¬μ©νκΈ° μν΄μλ μννΈμ¨μ΄, μ¦ DBMSλ₯Ό μ€μΉν΄μΌ νλλ° λνμ μΌλ‘ MySQL, μ€λΌν΄(Oracle), SQL μλ², MariaDB λ±μ΄ μμ΅λλ€. μννΈμ¨μ΄ κ°κ°μ μ¬μ© λ°©λ²κ³Ό νΉμ§μ΄ λ€λ₯΄μ§λ§ νΉμ λͺ©μ μ μν΄μλ μ΄λ€ κ²μ μ¬μ©ν΄λ 무방ν©λλ€.
λνμ μΈ DBMSμ νΉμ§


κ΄κ³ν DB μ NoSQL
κ΄κ³ν λ°μ΄ν° λ² μ΄μ€λ λ°μ΄ν°λ₯Ό ν μ΄λΈ ννλ‘ μ μ₯νλ€.
μ½κ² μκ°νλ©΄ μμ νμ λ°μ΄ν°λ₯Ό μ μ₯νλ κ²κ³Ό λμΌνλ€κ³ 보면λλ€.
μ€μ λ‘ κ° λ°μ΄ν° νλͺ©λ€μ ν(row)μ μ μ₯λκ³ , νλͺ©μ μμ±μ μ΄(column)μ΄λΌκ³ νννλ€. μ΄μ νλͺ©μ μμ±μΈ λ§νΌ μ λ ₯λλ λ°μ΄ν°μ μ νμ΄ μ ν΄μ§λ€.

μ©μ΄ μ 리
β μ΄(column)
κ°κ°μ μ΄μ μ μΌν μ΄λ¦μ κ°μ§κ³ μμΌλ©°, μμ λ§μ νμ (number, stringλ±)μ κ°μ§κ³ μλ€. μ΄μ νλ(field) λλ μμ±(attribute)μ΄λΌκ³ λ νλ€.
β ν(row)
νμ κ΄κ³λ λ°μ΄ν°μ λ¬Άμμ μλ―Ένλ€. ν ν μ΄λΈμ λͺ¨λ νμ κ°μ μμ μ΄μ κ°μ§λ€. νμ νν(tuple)μ΄λ λ μ½λ(record)λΌκ³ λ λΆλ₯Έλ€.
β κ°(value)
ν μ΄λΈμ κ°κ°μ νκ³Ό μ΄μ λμνλ κ°μ κ°λλ€. μ΄ κ°μ μ΄μ νμ μ λ§μμΌνλ€.
β ν€(key)
ν μ΄λΈμμ νμ μλ³μλ‘ μ΄μ©λλ μ΄μ (key)λλ κΈ°λ³Έ ν€(primary key)λΌκ³ νλ€. κ°μ²΄μ JSμμ κ°μ²΄μ idμ μ μ¬ν μν μ νλ€. μ¦, ν μ΄λΈμμ μ μ₯λ λ μ½λλ₯Ό κ³ μ νκ² μλ³νλ ν보 ν€(candidate key) μ€μμ λ°μ΄ν°λ² μ΄μ€ μ€κ³μκ° μ§μ ν μμ±μ μλ―Ένλ€.
β κ΄κ³(relationship)
ν μ΄λΈ κ°μ κ΄κ³λ κ΄κ³λ₯Ό λ§Ίλ ν μ΄λΈ μμ λ€λΌ λ€μκ³Ό κ°μ΄ λλ μ μμ΅λλ€.
μΌλμΌ κ΄κ³
μΌλλ€ κ΄κ³
λ€λλ€ κ΄κ³
β κ΄κ³ν λ°μ΄ν°λ² μ΄μ€μμλ μ΄λ¬ν κ΄κ³λ₯Ό λνλ΄κΈ° μν΄ μΈλ ν€(foreigh key)λΌλ κ²μ μ¬μ©νλ€. μΈλ ν€λ ν ν μ΄λΈμ ν€ μ€μμ λ€λ₯Έ ν μ΄λΈμ ν(row)μ μλ³ν μ μλ ν€λ₯Ό μλ―Ένλ€.
β μ€ν€λ§(Schema)
μ€ν€λ§λ ν
μ΄λΈμ λμμΈνκΈ° μν μ²μ¬μ§ μ΄λΌκ³ ν μ μλ€.
μ΄λ¬ν μ€ν€λ§λ ν
μ΄λΈμ κ° μ΄μ λν νλͺ©κ³Ό νμ
λΏλ§ μλλΌ κΈ°λ³Έ ν€μ μΈλν€λ λνλ΄μΌ νλ€.
μ€ν€λ§λ κ°μ²΄-κ΄κ³ λ€μ΄μ΄κ·Έλ¨(entity-relationship diagram)μ΄λ λ¬Έμμ΄λ‘ ννν μ μλ€.
Reservation(ID, Name, Date, RoomNum)
SQL
Structured Query Language(SQL)μ λ°μ΄ν°λ² μ΄μ€ μΈμ΄λ‘, μ£Όλ‘ κ΄κ³ν λ°μ΄ν°λ² μ΄μ€μ μ¬μ©νλ€. λ°μ΄ν°μ κ΅¬μ‘°κ° κ³ μ λμμλ€. λ°μ΄ν°λ² μ΄μ€μ© νλ‘κ·Έλ¨μΈμ΄μΈ SQLμ λ°μ΄ν°λ² μ΄μ€μ 쿼리λ₯Ό λ³΄λ΄ μνλ λ°μ΄ν°λ₯Ό κ°μ Έμ€κ³ λ μ½μ ν μ μλ€. κ·Έλ¦¬κ³ SQLμ relationμ΄λΌκ³ λΆλ¦¬λ λ°μ΄ν°κ° ꡬ쑰νλ ν μ΄λΈμ μ¬μ©νλ λ°μ΄ν°λ² μ΄μ€μμ νμ© ν μ μλ€. SQLμ μ¬μ©νλ κ΄κ³νλ°μ΄ν° λ°μ΄ν°λ² μ΄μ€ μ. MySQL, Oracle, SQLite, PostgreSQLλ±
NoSQL
λ°μ΄ν°μ κ΅¬μ‘°κ° κ³ μ λμ§ μμ λ°μ΄ν°λ² μ΄μ€λ ν μ΄λΈμ μ¬μ©νμ§ μκ³ λ°μ΄ν°λ₯Ό λ€λ₯Έ ννλ‘ μ μ₯νλ€.
Key - Value DB : redis
Graph DB : Amazon Neptune
Docoment DB : mongoDB, CouchDB, Cloud Firesotre
Column-family DB : cassandra, Google Bigtable
Search engine : elastic, CloudSearch
Last updated