1. λ°μ΄ν°λ² μ΄μ€
λ°μ΄ν°λ₯Ό μ μ₯ λ° λ³΄μ‘΄νλ μμ€ν
π DBλ₯Ό μ μ¬μ©ν΄?????
: λ°μ΄ν°λ₯Ό μ₯κΈ°κ° λμ μ μ₯νκ³ λ³΄κ΄νκΈ° μν΄μ μ¬μ©
1) κ΄κ³νλ°μ΄ν°λ² μ΄μ€(RDBMS)
2) λΉκ΄κ³νλ°μ΄ν°λ² μ΄μ€(NoSQL)
2. κ΄κ³νλ°μ΄ν°λ² μ΄μ€
λ°μ΄ν°λ₯Ό μλ‘ μνΈκ΄λ €μ±μ κ°μ§ ννλ‘ ννν λ°μ΄ν°
- λͺ¨λ λ°μ΄ν°λ€μ ν
μ΄λΈλ‘ ꡬμ±λλ€
- κ° λ‘μ°λ κ°μμ κ³ μ ν€κ° μλ€(κ³ μ ν€ = Primary Key)
μ΄ PKλ₯Ό ν΅ν΄ ν΄λΉ λ‘μ°λ₯Ό μ°Ύκ±°λ μΈμ©νκ²λλ€
ν
μ΄λΈ μ°κ²° λ°©λ² 3κ°μ§
1) one to one
2) one to many
3) many to many
2-1) one to one
ν
μ΄λΈ Aμ λ‘μ°μ ν
μ΄λΈBμ λ‘μ°κ° μ νν μΌλμΌ λ§€μΉμ΄ λλ κ΄κ³
ex. μ΄λ¦ : μ£Όλ―Όλ²νΈ
2-2) one to many
ν
μ΄λΈAμ λ‘μ°κ° ν
μ΄λΈBμ μ¬λ¬ λ‘μ°μ μ°κ²°μ΄ λλ κ΄κ³
ex. λΈλ‘κ·Έ : ν¬μ€νΈ
2-3) many to many
ν
μ΄λΈAμ μ¬λ¬ λ‘μ°κ° ν
μ΄λΈ Bμ μ¬λ¬ λ‘μ°μ μ°κ²°μ΄ λλ κ΄κ³
ex. μκ° : μ±
μ΄λ κ² λλ μ§ μ¬λ¬ ν
μ΄λΈμ μ°κ²°νλ λ°©λ²μ΄ μ¬λ¬κ°μ§ μλ€
π κ·Έλ λ€λ©΄ !
ν
μ΄λΈμ μ λλμ΄μ μ μ₯νκ³ , μ μ°κ²°ν κΉ?
- νλμ ν
μ΄λΈμ μ λΆ λ΄μΌλ©΄ λμΌν μ 보λ€μ΄ μ μ₯λμ΄ λΆνμν μ©λ μ°¨μ§λ₯Ό νλ€
- μλͺ»λ λ°μ΄ν°κ° μ μ₯λ κ°λ₯μ±μ΄ λλ€
κ·Έλμ!!
ν
μ΄λΈμ λλκ³ μ°κ²°νκ² λλ©΄,
- μ€λ³΅λ λ°μ΄ν°λ₯Ό μ μ₯νμ§ μκΈ° λλ¬Έμ μ’ λ λμ€ν¬λ₯Ό ν¨μ¨μ μΌλ‘ μΈ μ μμΌλ©°
- μλ‘ κ°μ λ°μ΄ν°λΌλ λΆλΆμ μΌλ‘ νλ¦° λ°μ΄ν°κ° μκΈ°λ λ¬Έμ κ° μμ΄μ§λ€
μ΄κ²μ μ κ·νλΌκ³ νλ€
ACID
(Atomicity, Consistency, Isolation, Durability)
1. μμμ±(Atomicity)
- νΈλμ μ
κ³Ό κ΄λ ¨λ μμ
λ€μ΄ λΆλΆμ μΌλ‘ μ€νλλ€κ° μ€λ¨λμ§ μλ κ²μ 보μ₯νλ€
μμ
λ¨μλ₯Ό μΌλΆλΆλ§ μ€ννμ§ μλλ€
2. μΌκ΄μ±(Consistency)
- νΈλμ μ
μ΄ μ€νλλ©΄ μΌκ΄μ μΈ DBμνλ‘ μ μ§νλ κ²μ΄λ€.
3. κ³ λ¦½μ±(Isolation)
- νΈλμμ
μ μν μ λ€λ₯Έ νΈλμμ
μ μ°μ° μμ
μ΄ λΌμ΄λ€μ§ λͺ»νλλ‘ λ³΄μ₯νλ κ².
- νΈλμμ
λ°μ μλ μ΄λ€ μ°μ°λ μ€κ° λ¨κ³μ λ°μ΄ν°λ₯Ό λ³Ό μ μλ€
4. μ§μμ±(Durability)
- μ±κ³΅ν νΈλμμ
μ μμν λ°μλμ΄μΌ νλ€
- μμ€ν
λ¬Έμ , DB μΌκ΄μ± μ²΄ν¬ λ±μ νλλΌλ μ μ§λμ΄μΌ ν¨μ μλ―Ένλ€
νΈλ μ μ
-
μΌλ ¨μ μμ
λ€μ ν λ²μ νλμ μ λμΌλ‘ μ€ννλ κ²μ΄λ€
-
νΈλμμ
μ μΌλ ¨μ μμ
λ€μ΄ λ§μΉ νλμ μμ
μ²λΌ μ·¨κΈλμ΄μ λͺ¨λ λ€ μ±κ³΅νκ±°λ μλλ©΄ λͺ¨λ λ€ μ€ν¨νλκ±Έ μ΄μΌκΈ° νλ€.
- μ²λ¦¬λ₯Ό μ§ννλ€κ° μ€λ¨λλ©΄ λ‘€λ°± ν λ€μ μ§ν / μλ£λλ©΄ 컀λ°
SQL(RDBMS) VS NoSQL
SQL
- μ₯μ :
- λ°μ΄ν°λ₯Ό λ ν¨μ¨μ μ΄κ³ 체κ³μ μΌλ‘ μ μ₯ λ° κ΄λ¦¬κ° κ°λ₯νλ€
- 미리 μ μ₯νλ λ°μ΄ν°λ€μ ꡬ쑰(ν
μ΄λΈ μ€ν€λ§)λ₯Ό μ μ ν¨μΌλ‘ λ°μ΄ν°μ μμ μ±μ΄ 보μ₯λλ€.
- νΈλμμ
(transaction)
- μ ννλ λ°μ΄ν°λ€ κ·Έλ¦¬κ³ λ°μ΄ν°μ μμ μ±μ΄ μ€μν λ°μ΄ν°λ€μ μ μ₯νλλ° μ 리νλ€.
μ) μ μμκ±°λ μ 보. μν κ³μ’ μ 보, κ±°λ μ 보 λ±λ±.
- λ¨μ :
- ν
μ΄λΈμ 미리 μ μν΄μΌ ν¨μΌλ‘ ν
μ΄λΈ ꡬ쑰 λ³ν λ±μ λ μ μ°νλ€.
- νμ₯μ±μ΄ μ½μ§ μλ€.
- ν
μ΄λΈ κ΅¬μ‘°κ° λ―Έλ¦¬ μ μ λμ΄ μλ€λ³΄λ λ¨μν μλ²λ₯Ό λ리λκ² λ§μΌλ‘ νμ₯νκΈ°κ° μ½μ§ μκ³ μλ²μ μ±λ₯ μ체λ λμ¬μΌ νλ€.
- μλ²λ₯Ό λλ €μ λΆμ° μ μ₯ νλκ²λ μ½μ§ μλ€.
NoSQL
- μ₯μ :
- ν
μ΄ν° ꡬ쑰λ₯Ό 미리 μ μνμ§ μκΈ° λλ¬Έμ λ°μ΄ν°μ ꡬ쑰 λ³νμ μ μ°νλ€.
- νμ₯νκΈ°κ° λΉκ΅μ μ½λ€ (κ·Έλ₯ μλ² μλ₯Ό λ리면 λ¨(scale out))
- λ°©λν μμ λ°μ΄ν°λ₯Ό μ μ₯νλλ° μ 리νλ€.
- μ£Όλ‘ λΉμ νν λ°μ΄ν° κ·Έλ¦¬κ³ μμ μ±μ΄ μλμ μΌλ‘ λ μ 리ν λ°μ΄ν°λ₯Ό μ μ₯νλλ° μ 리νλ€.
μ) λ‘κ·Έ λ°μ΄ν
- λ¨μ :
- λ°μ΄ν°μ μμ μ±μ΄ λ 보μ₯λλ€.
- νΈλμμ
μ΄ μλκ±°λ λΉκ΅μ λΆμμ νλ€.