week10_incheol_4 - GANGNAM-JAVA/JAVA-STUDY GitHub Wiki
SQL
- SQLμ 'ꡬ쑰ν λ 쿼리 μΈμ΄ (Structured Query Language)'μ μ½μμ΄λ€.
- νΉμ μ νμ λ°μ΄ν°λ² μ΄μ€μ μνΈ μμ©νλ λ° μ¬μ© νλ 쿼리 μΈμ΄μ΄λ€.
- SQLμ μ¬μ©νλ©΄ κ΄κ³ν λ°μ΄ν°λ² μ΄μ€ κ΄λ¦¬ μμ€ν (RDBMS)μμ λ°μ΄ν°λ₯Ό μ μ₯, μμ , μμ λ° κ²μ ν μ μλ€.
RDBMS νΉμ§
- λ°μ΄ν°λ μ ν΄μ§(μ격ν) λ°μ΄ν° μ€ν€λ§ (= structure)λ₯Ό λ°λΌ λ°μ΄ν°λ² μ΄μ€ ν μ΄λΈμ μ μ₯λλ€.
- λ°μ΄ν°λ κ΄κ³λ₯Ό ν΅ν΄μ μ°κ²°λ μ¬λ¬κ°μ ν μ΄λΈμ λΆμ°λλ€.
μ격ν μ€ν€λ§
- λ°μ΄ν°λ ν μ΄λΈμ λ μ½λλ‘ μ μ₯λλ©° κ° ν μ΄λΈμλ λͺ ννκ² μ μλ ꡬ쑰(schema)μ΄ μλ€.
- μ€ν€λ§λ₯Ό μ€μνμ§ μλ λ μ½λλ μΆκ°ν μ μλ€.
λ°μ΄ν° κ΄κ³
- μ κ·νλ₯Ό ν΅ν΄ λ°μ΄ν°λ€μ μ¬λ¬κ°μ ν μ΄λΈμ λλμ΄μ, λ°μ΄ν°λ€μ μ€λ³΅μ νΌν μ μλ€.
NoSQL
- No SQLμ Non-SQL, Not Only SQL, non-relational databaseλΌκ³ λ λΆλ₯Έλ€. μλ―Έλ SQLκ³Ό λ°λλλ μ κ·Όλ°©μμΌλ‘ μ΄ν΄ν μ μλ€.
- RDBμ λ μ½λλ λ¬Έμ(documents)λ‘ μΌμ»«λλ€.
- λ€λ₯Έ ꡬ쑰μ λ°μ΄ν°λ₯Ό κ°μ 컬λ μ (SQLμ ν μ΄λΈμ μλ―Έ)μ μΆκ°ν μ μλ€.
λΉκ΅ λΆμ
νμ₯μ±
SQL
- SQLμ μμμ μΌλ‘ νμ₯νλ€.
- μμ§μ νμ₯μ CPIλ RAM κ°μ λΆνμ μ κ·Έλ μ΄λνκ±°λ νλμ¨μ΄λ₯Ό μΆκ°νμ¬ μλ²μ μ±λ₯μ ν₯μμν¨λ€.
NoSQL
- NoSQLμ μνμ μΌλ‘ νμ₯νλ€.
- μνμ νμ₯μ λ λ§μ μλ²λ₯Ό μΆκ°ν΄μ μλ²λ₯Ό μ 체μ μΌλ‘ λΆμ°μν¨λ€.
κ΄κ³
SQL
- κ΄κ³ν λ°μ΄ν°λ κ° table κ°μ κ΄κ³(JOIN)μ ν΅ν΄ λ°μ΄ν°λ₯Ό νμ ν μ μλ€.
- λ°μ΄ν° μ€λ³΅μ μμ¨ μ μκ³ λ°μ΄ν°μ μ νμ±μ λμΌ μ μλ€.
NoSQL
- λ€λ₯Έ Collectionμ΄ νμνλ€λ©΄ κΈ°μ‘΄ Collectionμ λ°μ΄ν°λ₯Ό μΌλΆ 볡μ νλ€.
- Collection λ³λ‘ μ€λ³΅λ λ°μ΄ν°κ° μ‘΄μ¬νλ€.
- μ€λ³΅λ λ°μ΄ν°λ μμ νκ±°λ μ λ°μ΄νΈν λ λ°μμ΄ λμ§ μμ μ μλ€.
Sharding(μ€λ©)μ κ°μ ν μ΄λΈ μ€ν€λ§λ₯Ό κ°μ§ λ°μ΄ν°λ₯Ό λ€μμ DBμ λΆμ°νμ¬ μ μ₯νλ λ°©λ²μ΄λ€. μ΄ κΈ°μ μ μ λͺ©νλ©΄ SQLλ μνμ νμ₯μ μ μ©ν μ λ μμ§λ§, μ€μ ꡬνμ μ΄λ ΅λ€κ³ νλ€.
μμ±
SQL
- SQLμ ACID νΉμ±μ λ°λ₯Έλ€.
- ACIDλ DBμ νΈλμμ μ΄ μμ νκ² μνλλκ²μ 보μ₯νκΈ° μν νΉμ§μ΄λ€.
NoSQL
- NoSQLμ CAPμ΄λ‘ μ λ°λ₯Έλ€.
- CAPμ΄λ‘ μ λΆμ° μμ€ν μμλ CAP μΈ κ°μ§ μμ± λͺ¨λλ₯Ό λ§μ‘±νλ κ²μ λΆκ°λ₯νλ©°, μ€μ§ 2κ°μ§λ§ λ§μ‘±ν μ μλ€λ κ²μΌλ‘ μ μν μ μλ€.
Consistency (μΌκ΄μ±) : λͺ¨λ μμ²μ μ΅μ λ°μ΄ν° λλ μλ¬λ₯Ό μλ΅λ°λλ€. (DBκ° 3κ°λ‘ λΆμ°λμλ€κ³ κ°μ ν λ, νλμ νΉμ DBμ λ°μ΄ν°κ° μμ λλ©΄ λλ¨Έμ§ 2κ°μ DBμμλ μμ λ λ°μ΄ν°λ₯Ό μλ΅λ°μμΌ νλ€.) Availability (κ°μ©μ±) : λͺ¨λ μμ²μ μ μ μλ΅μ λ°λλ€. (νΉμ DBκ° μ₯μ κ° λλ μλΉμ€κ° κ°λ₯ν΄μΌ νλ€.) Partitions Tolerance (λΆλ¦¬ λ΄κ΅¬μ±) : DBκ° ν΅μ μ΄ μ€ν¨νλ κ²½μ°λΌλ μμ€ν μ μ μ λμ νλ€.
μ€ν€λ§
SQL
- SQLμ λ°μ΄ν°λ₯Ό μ μ₯νκΈ° μν΄ μ€ν€λ§κ° λ¨Όμ μ μ λμ΄μΌ νλ€.
NoSQL
- NoSQLμ JSON νΉμ κ°μ²΄μ ννμΈ Key-Valueλ‘ λ°μ΄ν°κ° μ μ₯λλ€. (Document β Collection β Database)
κ²°λ‘
SQL
μ₯μ
- μ€ν€λ§κ° μ μλμ΄ μμ΄ νμ€νκ³ λͺ ννλ€.
- ꡬ쑰μ μμ μ±μ 보μ₯ν μ μλ€.
- κ΄κ³λ₯Ό μ€μ νκΈ°μ, λ°μ΄ν°λ μ€λ³΅μμ΄ νλ²λ§ μ μ₯λλ€.
λ¨μ
- μ μ°νμ§ λͺ»νλ€. μ€ν€λ§λ₯Ό μ¬μ μ μκ° λ€μ¬ μ² μ νκ² μ§μΌ νκ³ λμ€μ μμ νκΈ° λ²κ±°λ‘λ€ (μ격ν μ€ν€λ§).
- κ΄κ³λ₯Ό λ§Ίμ΄ λ°μ΄ν°λ₯Ό μ μ₯νκΈ°μ, μ€λ³΅λμ§λ μμ§λ§, μ‘°μΈμ λ§μ΄ ν΄μΌν κ²½μ° λ§€μ° λ³΅μ‘ν 쿼리λ₯Ό μμ±ν΄μΌ ν μ μλ€.
- μνμ νμ₯μ΄ κ°λ₯νμ§λ§ μ΄λ ΅κΈ° λλ¬Έμ μ±μ₯ νκ³κ° μ€λ μμ μ΄ μ¨λ€.
κ΄κ³λ₯Ό λ§Ίκ³ μλ λ°μ΄ν°κ° μμ£Ό λ³κ²½λλ κ²½μ°, λ λͺ νν μ€ν€λ§κ° μ¬μ©μμ λ°μ΄ν°μκ² μ€μν κ²½μ° κ΄κ³ν λ°μ΄ν°λ² μ΄μ€λ₯Ό μ¬μ©νλκ² μ’λ€. κΈμ΅ μ°μ κ³Ό κ°μ μμ€ν μ ννκ° κΈκ²©νκ² λ³νμ§ μμΌλ©΄μ κ·Έ μμ λ°μ΄ν°κ° κ³μ λ°λλ 보μμ μΈ μμ€ν μμ μ 리νλ€.
NoSQL
μ₯μ
- μ€ν€λ§κ° μκΈ°μ, ν¨μ¬ λ μ μ°νλ€. μΈμ λ μ§ λ°μ΄ν°λ₯Ό μΆκ°ν μ μλ€ (νλ μΆκ°).
- μ΄λ ν νμμΌλ‘λ λ°μ΄ν°λ₯Ό μ μ₯ν μ μκΈ°μ, νμν λλ‘ μ μ₯ν΄ μ½μ΄μ€λ μλκ° λΉ¨λΌμ§λ€.
- μμ§ λ° μν νμ₯ λͺ¨λ κ°λ₯ν΄ λ°μ΄ν°λ² μ΄μ€κ° μ ν리μΌμ΄μ μμ λ°μμν€λ λͺ¨λ μ½κΈ° / μ°κΈ° μμ²μ μ²λ¦¬ν μ μλ€.
λ¨μ
- μ μ°μ±μ μν΄, λ°μ΄ν° ꡬ쑰 κ²°μ μ κ³μ λ―Έλ£° μ μλ€.
- λ°μ΄ν°λ₯Ό μ€λ³΅λκ² νμν 컬λ μ λ§λ€ μ μ₯ν μ μμ΄, νμν 컬λ μ λ§λ€ λλ©΄μ μ¬λ¬ κ°μ λ μ½λλ₯Ό λ€ μ λ°μ΄νΈν΄μ€μΌ νλ€. λλ½ν μ, λ°μ΄ν°κ° μ΅μ μ΄ μλ μ μλ€.
- μμ μ, λͺ¨λ 컬λ μ μμ λ€ μμ ν΄μ€μΌ νλ€.
λΉκ΄κ³ν λ°μ΄ν°λ² μ΄μ€λ μ νν λ°μ΄ν° ꡬ쑰λ₯Ό μ μ μκ±°λ λ³κ²½ / νμ₯ λ μ μλ κ²½μ° (μνμ μΌλ‘), μ½κΈ° μ²λ¦¬λ λ§μ΄ νμ§λ§, λ°μ΄ν°λ₯Ό μμ£Ό λ³κ²½νμ§ μλ κ²½μ° μ¬μ©νλ©΄ μ 리νλ€.