λ°μ΄ν° λͺ¨λΈκ³Ό λ°μ΄ν°λ² μ΄μ€μ ꡬμ±μμ
λ°μ΄ν°μ λ°μ΄ν°λͺ¨λΈ
λ°μ΄ν°μ λ°μ΄ν° λͺ¨λΈμ μ 보 κΈ°μ λ° μ»΄ν¨ν° κ³Όν λΆμΌμμ μ€μν κ°λ
μ
λλ€.
1. λ°μ΄ν°(Data)
λ°μ΄ν°λ μ¬μ€μ΄λ μ 보λ₯Ό λνλ΄λ μμΉ, λ¬Έμ, κΈ°νΈ λ±μ ννλ‘ ννλ κ°μ
λλ€. μλ₯Ό λ€λ©΄ μ«μ, ν
μ€νΈ, μ΄λ―Έμ§, μμ± λ±μ΄ λ μ μμ΅λλ€. μ°λ¦¬κ° μ΄ν΄λ³΄λ λ°μ΄ν°λ² μ΄μ€λ λλΆλΆ μμΉ, λ¬Έμλ‘ μ΄λ£¨μ΄μ Έ μμ΅λλ€. μλ₯Ό λ€λ©΄, νμμ μ΄λ¦κ³Ό νλ²μ λνλ΄λ λͺ¨λΈμμλ μ΄λ¦μ λ¬Έμ, νλ²μ μ«μλ‘ νννμ£ .
λ°μ΄ν°λ μ ν λ°μ΄ν°(Structured Data), λ°μ ν λ°μ΄ν°(Semi-structured Data), λΉμ ν λ°μ΄ν°(Unstructured Data)λ‘ λΆλ₯λ©λλ€. μ ν λ°μ΄ν°λ ν ννμ λ°μ΄ν°λ‘ μ컨λ λ°μ΄ν°λ² μ΄μ€μ ν μ΄λΈμ΄ μ΄μ ν΄λΉνλ©°, λ°μ ν λ°μ΄ν°λ μΌλΆ ꡬ쑰λ₯Ό κ°μΆ λ°μ΄ν°λ‘ XML, JSONκ³Ό κ°μ ννκ° μμ΅λλ€. λΉμ ν λ°μ΄ν°λ ꡬ쑰νλμ§ μμ λ°μ΄ν°λ‘ ν μ€νΈ, μ΄λ―Έμ§, λΉλμ€ λ±μ΄ ν΄λΉλ©λλ€.
2. λ°μ΄ν° λͺ¨λΈ(Data Model)
λ°μ΄ν° λͺ¨λΈμ νμ€ μΈκ³μ κ°λ
μ΄λ μ
무 κ·μΉμ μΆμννμ¬ νννλ λ°©λ²μ μλ―Έν©λλ€. μ΄λ λ°μ΄ν°λ² μ΄μ€ μ€κ³ λ° κ΄λ¦¬, μμ€ν
λΆμ λ° μ€κ³ λ± λ€μν λΆμΌμμ μ¬μ©λ©λλ€. λνμ μΈ λ°μ΄ν° λͺ¨λΈμ μ’
λ₯λ₯Ό μ΄ν΄λ³Όκ²μ.
- κ΄κ³ν λ°μ΄ν° λͺ¨λΈ: ν
μ΄λΈμ μ¬μ©ν΄ λ°μ΄ν°λ₯Ό μ 리νκ³ μ°κ²°νλ λ°©μμ
λλ€. κ°μ₯ νν μλ‘ SQL λ°μ΄ν°λ² μ΄μ€κ° μμ΅λλ€.
- κ°μ²΄μ§ν₯ λ°μ΄ν° λͺ¨λΈ: νμ€ μΈκ³μ κ°μ²΄λ₯Ό κ°μ²΄λ‘ νννκ³ , μ΄ κ°μ²΄ κ°μ κ΄κ³λ₯Ό λνλ΄λ λ°©μμ
λλ€.
- λ¬Έμ λ°μ΄ν° λͺ¨λΈ: λ°μ΄ν°λ₯Ό λ¬Έμλ‘ νννλ©°, NoSQL λ°μ΄ν°λ² μ΄μ€μμ μ¬μ©λ©λλ€.
- κ³μΈ΅ν λ°μ΄ν° λͺ¨λΈ: λ°μ΄ν°λ₯Ό νΈλ¦¬ κ΅¬μ‘°λ‘ νννλ©°, μμ μ μ£Όλ‘ μ¬μ©λμλ λ°©μ μ€ νλμ
λλ€.
λ°μ΄ν° λͺ¨λΈμ λ°μ΄ν°μ ꡬ쑰μ κ΄κ³λ₯Ό λͺ
νν μ μν¨μΌλ‘μ¨, λ°μ΄ν°λ₯Ό ν¨μ¨μ μΌλ‘ κ΄λ¦¬νκ³ κ²μν μ μλλ‘ λμ΅λλ€. λν μμ€ν
μ€κ³ λ¨κ³μμ μꡬμ¬νμ λͺ
νν μ΄ν΄νκ³ νννλ λ° μ¬μ©λ©λλ€. κ°λ¨ν λ§ν΄, λ°μ΄ν°λ νμ€ μΈκ³μ μ 보λ₯Ό λνλ΄κ³ , λ°μ΄ν° λͺ¨λΈμ κ·Έ λ°μ΄ν°λ₯Ό ꡬ쑰ννκ³ νννλ λ°©λ²μ μ μν©λλ€. κ°λ° μͺ½μμλ λ°μ΄ν° λͺ¨λΈμ μν°ν°λ‘ μ μνκ³ λ ν¬μ§ν 리(Repository) ν¨ν΄μ νμ©νμ¬ λ°μ΄ν° μν°ν°λ₯Ό κ΄λ¦¬νλ λ°©μμ μμ£Ό μ¬μ©ν©λλ€. NestJSμ TypeORM, Springμ JPAκ° μ΄μ ν΄λΉν©λλ€. μ΄λ κ°μ²΄μ κ΄κ³ν λ°μ΄ν°λ² μ΄μ€μ λ°μ΄ν°λ₯Ό μλμΌλ‘ 맀νν΄μ£Όλ λΌμ΄λΈλ¬λ¦¬μ
λλ€. μΆνμ μ’ λ μμΈν λ€λ£¨λλ‘ νμ£ .
λ°μ΄ν°λ² μ΄μ€ ꡬμ±μμ
보νΈμ μΌλ‘ λ§μ΄ μ¬μ©νλ κ΄κ³ν λ°μ΄ν°λ² μ΄μ€μ ꡬμ±μμμ λν΄ μ΄ν΄λ³΄κ² μ΅λλ€.
1. ν
μ΄λΈ(Table)
- ν
μ΄λΈμ λ°μ΄ν°λ₯Ό νκ³Ό μ΄μ ννλ‘ μ μ₯νλ κΈ°λ³Έμ μΈ κ΅¬μ‘°μ
λλ€. ν
μ΄λΈμ μ κ·ννμ¬ μ€λ³΅μ μ΅μννκ³ λ°μ΄ν° μΌκ΄μ±μ μ μ§νλ κ²μ΄ μ’μ΅λλ€. κ° ν
μ΄λΈμ νλμ μ£Όμ λλ μν°ν°μ κ΄λ ¨λ μ 보λ§μ ν¬ν¨νλλ‘ κ΅¬μ±νλ κ²μ΄ μ’μ΅λλ€.
2. μ΄(Column)
- μ΄μ ν
μ΄λΈμμ νλμ μμ±μ λνλ΄λ©°, κ° μ΄μ νΉμ λ°μ΄ν° μ νμ κ°μ§κ³ μμ΅λλ€. κ° μ΄μ λ°μ΄ν° μ νμ μ ννκ² μ§μ νκ³ , NULL κ°μ μ΅μννμ¬ λ°μ΄ν° μΌκ΄μ±μ μ μ§νλ κ²μ΄ μ’μ΅λλ€.
3. ν(Row)
- νμ ν
μ΄λΈμμ νλμ λ μ½λλ₯Ό λνλ
λλ€. μ¬κΈ°μ λ μ½λλ νλμ μλ―Έ μλ λ°μ΄ν° λ¬Άμμ΄λΌκ³ 보면 λ κ² κ°μ΅λλ€. κ° νμ κ³ μ ν μλ³μ(primary key)λ₯Ό κ°μ§λλ‘ μ€κ³νμ¬ λ°μ΄ν°λ₯Ό μ μΌνκ² μλ³ν μ μλλ‘ νλ κ²μ΄ μ’μ΅λλ€. 보νΈμ μΌλ‘ idκ° κ³ μ ν μλ³μκ° λ©λλ€.
4. μΈλ±μ€(Index)
- μΈλ±μ€λ νΉμ μ΄μ λν κ²μ μ±λ₯μ ν₯μμν€κΈ° μν΄ μ¬μ©λ©λλ€. μμ£Ό κ²μλλ μ΄μ μΈλ±μ€λ₯Ό μμ±νλ©΄ κ²μ μ±λ₯μ μ΅μ νν μ μμ΅λλ€. μ΄λ μ λ κ·λͺ¨κ° μλ λ°μ΄ν°λ² μ΄μ€λ μΈλ±μ€λ₯Ό μ μ ν νμ©νκ³ μμ΅λλ€. λ€λ§, μΈλ±μ€λ₯Ό κ³Όλνκ² μ¬μ©νλ©΄ μ°κΈ° μμ
μ μ±λ₯μ μν₯μ μ€ μ μμΌλ―λ‘ μ μ νκ² μ¬μ©ν΄μΌ ν©λλ€.
5. κΈ°λ³Έ ν€(Primary Key)
- κΈ°λ³Έ ν€λ κ° νμ μ μΌνκ² μλ³νλ λ° μ¬μ©λλ μ΄ λλ μ΄μ μ‘°ν©μ
λλ€. κΈ°λ³Έ ν€λ NULL κ°μ νμ©νμ§ μκ³ , λ³νμ§ μλ κ°μ μ ννμ¬ μ¬μ©ν©λλ€. 보νΈμ μΌλ‘ idλ₯Ό κΈ°λ³Έ ν€λ‘ μ¬μ©ν©λλ€.
6. μΈλ ν€(Foreign Key)
- μΈλ ν€λ λ ν
μ΄λΈ κ°μ κ΄κ³λ₯Ό λνλ΄λ©°, λ€λ₯Έ ν
μ΄λΈμ κΈ°λ³Έ ν€λ₯Ό μ°Έμ‘°ν©λλ€. μΈλ ν€ μ μ½ μ‘°κ±΄μ μ¬μ©νμ¬ λ°μ΄ν° 무결μ±μ μ μ§ν΄μΌ ν©λλ€. κ΄λ ¨λ ν
μ΄λΈ κ°μ μΌκ΄μ±μ μ μ§νκΈ° μν΄ μΈλ ν€λ₯Ό μ¬μ©ν©λλ€.
7. λ·°(View)
- λ·°λ νλ μ΄μμ ν
μ΄λΈμμ μ νν μ΄ λ° νμ μλΈμ
μ λνλ΄λ κ°μ ν
μ΄λΈμ
λλ€. 볡μ‘ν 쿼리λ νΉμ μ¬μ©μμκ² νμν λ°μ΄ν°λ§μ ν¬ν¨νλ λ·°λ₯Ό μμ±νμ¬ λ³΄μ λ° ν¨μ¨μ±μ ν₯μμν¬ μ μμ΅λλ€.
8. νΈλμμ
(Transaction)
- νΈλμμ
μ λ°μ΄ν°λ² μ΄μ€μμ μνλλ μμ
μ λ
Όλ¦¬μ μΈ λ¨μλ₯Ό λνλ
λλ€. νΈλμμ
μ μ¬μ©νμ¬ λ°μ΄ν° μΌκ΄μ±μ 보μ₯νκ³ , λ‘€λ°±κ³Ό 컀λ°μ μ μ νκ² νμ©νμ¬ λ°μ΄ν°λ² μ΄μ€μ μμ μ±μ μ μ§ν μ μμ΅λλ€.
μ΄λ¬ν ꡬμ±μμλ₯Ό μ‘°μ¬μ€λ½κ² μ€κ³νκ³ κ΄λ¦¬ν¨μΌλ‘μ¨ λ°μ΄ν°λ² μ΄μ€μ μ±λ₯, μΌκ΄μ±, 보μ λ±μ ν¨κ³Όμ μΌλ‘ κ΄λ¦¬ν μ μμ΅λλ€.