λ°μ΄ν°λ² μ΄μ€ μ€κ³λ₯Ό ν λ, λ°μ΄ν°λ₯Ό ν¨μ¨μ μΌλ‘ μ μ₯νκ³ μ€λ³΅μ μ΅μννκΈ° μν΄ μ κ·ν(Normalization) κ³Όμ μ κ±°μΉκ² λ©λλ€. μ€λ³΅ λ°μ΄ν°λ₯Ό νμ©νμ§ μμΌλ©΄μ 무결μ±μ μ μ§νλ©΄μλ DB μ μ₯ μ©λμ ν¨μ¨μ μΌλ‘ κ΄λ¦¬ν μ μμ΅λλ€. μ€λμ κ³ κ°κ³Ό μ£Όλ¬Έ λ°μ΄ν°λ₯Ό μμλ‘ λ€μ΄, μ κ·νμ κ° λ¨κ³λ₯Ό μ€λͺ ν΄ λ릴κ²μ! π
쑰건: κ° μ»¬λΌμ νλμ κ°(μμκ°)λ§μ κ°μ ΈμΌ ν©λλ€. μ¦, ν μ΄λΈ λ΄ λͺ¨λ μ μ λ μ΄μ λλ μ μλ μμ κ°μ κ°μ ΈμΌ νλ©°, λ°λ³΅λλ κ·Έλ£Ήμ΄ μμ΄μΌ ν©λλ€.
λΉμ κ·νλ λ°μ΄ν°μμλ μ μ΄ νλμ κ°μ κ°μ§ μ μμ§λ§, μ€λ³΅λ 컬λΌμ΄ μμ κ²½μ° μ΄λ₯Ό λΆλ¦¬ν΄μΌ ν©λλ€. κ·Έλ¬λ μλ μμλ μ€λ³΅λ 컬λΌμ΄ μμ΄ 1NF 쑰건μ μΆ©μ‘±νκ³ μμ΅λλ€.
μ£Όλ¬Έλ²νΈ | κ³ κ°μ΄λ¦ | κ³ κ°μ£Όμ | μνλͺ | μνκ°κ²© | μλ |
---|---|---|---|---|---|
1001 | νκΈΈλ | μμΈ κ°λ¨κ΅¬ 123 | μ€λ§νΈν° | 500,000 | 1 |
1002 | μ΄λͺ½λ£‘ | μμΈ κ°λꡬ 456 | λ ΈνΈλΆ | 1,200,000 | 1 |
1003 | νκΈΈλ | μμΈ κ°λ¨κ΅¬ 123 | νλΈλ¦Ώ | 300,000 | 2 |
μ΄ ν μ΄λΈμ 1NFκ° μ μ©λ μνλ‘, λͺ¨λ μ μ΄ μμ κ°μ κ°μ§κ³ μμ΄ λ°μ΄ν°μ μμμ±μ΄ 보μ₯λ©λλ€. π―
μ 리νμλ©΄, μ 1μ κ·νμ λͺ¨λ μ μ΄ μμ κ°μ κ°μ ΈμΌ νλ€λ κ·μΉμ ν΅ν΄ λ°μ΄ν°μ μΌκ΄μ±κ³Ό μ νμ±μ 보μ₯νλ 첫 λ²μ§Έ λ¨κ³μ λλ€! π
쑰건: κΈ°λ³Έ ν€μ μΌλΆμλ§ μ’ μλ μμ±μ μ κ±°νκ³ , κ° μμ±μ κΈ°λ³Έ ν€μ μμ μ’ μλλλ‘ ν΄μΌ ν©λλ€.
μ΄ ν
μ΄λΈμμ κΈ°λ³Έ ν€κ° 'μ£Όλ¬Έλ²νΈ'λΌκ³ κ°μ νλ©΄, κ³ κ°μ΄λ¦
, κ³ κ°μ£Όμ
λ μ£Όλ¬Έκ³Ό κ΄κ³μμ΄ κ³ κ°μ κ³ μ ν μ 보μ
λλ€. λ°λΌμ κ³ κ° μ 보λ₯Ό λ°λ‘ λΆλ¦¬νμ¬ κ³ κ° ν
μ΄λΈμ λ§λ€μ΄μΌ ν©λλ€. π
μ¦, κΈ°λ³Έν€μ λΆλΆμ§ν©μ΄ κ²°μ μκ° λμ΄μλ μλ©λλ€. μ¦, μ 2μ κ·ν μ μ ν
μ΄λΈμμ κΈ°λ³Έν€μ μν΄ μμμ§λ λͺ¨λ₯΄λ κ³ κ°μ΄λ¦
μ λ°λΌ κ³ κ°μ£Όμ
κ° κ²°μ λμ΄ κ²°μ μκ° λλ€. κ·Έλ κΈ° λλ¬Έμ μ΄λ₯Ό λ³λλ‘ κ΄λ¦¬ν΄μΌ ν©λλ€.
κ³ κ°ID | κ³ κ°μ΄λ¦ | κ³ κ°μ£Όμ |
---|---|---|
C001 | νκΈΈλ | μμΈ κ°λ¨κ΅¬ 123 |
C002 | μ΄λͺ½λ£‘ | μμΈ κ°λꡬ 456 |
μ£Όλ¬Έλ²νΈ | κ³ κ°ID | μνλͺ | μνκ°κ²© | μλ |
---|---|---|---|---|
1001 | C001 | μ€λ§νΈν° | 500,000 | 1 |
1002 | C002 | λ ΈνΈλΆ | 1,200,000 | 1 |
1003 | C001 | νλΈλ¦Ώ | 300,000 | 2 |
μ΄μ
κ³ κ°μ΄λ¦
κ³Όκ³ κ°μ£Όμ
κ° λ μ΄μ μ£Όλ¬Έ ν μ΄λΈμ μ€λ³΅ μ μ₯λμ§ μκ³ ,κ³ κ°ID
λ‘ μ°Έμ‘°νμ¬ κ΄λ¦¬λ©λλ€ π
쑰건: κΈ°λ³Έ ν€κ° μλ μμ± κ° μ’ μμ±μ΄ μμ΄μΌ ν©λλ€. μ¦, κΈ°λ³Έ ν€κ° μλ 컬λΌμ΄ λ€λ₯Έ λΉκΈ°λ³Έ ν€ μ»¬λΌμ μ’ μλμ΄ μμΌλ©΄ μ λ©λλ€.
μ¬κΈ°μ μνλͺ
κ³Ό μνκ°κ²©
μ μλ‘ μ’
μ κ΄κ³μ μμ΄μ. μ¦, μνμ΄ μ ν΄μ§λ©΄ κ°κ²©λ μλμΌλ‘ κ²°μ λμ£ . λ°λΌμ μν μ 보λ₯Ό λ°λ‘ λΆλ¦¬νμ¬ μν ν
μ΄λΈλ‘ κ΄λ¦¬ν΄μΌ ν©λλ€. π
μ 2 μ κ·νλ₯Ό μ μ©ν ν
μ΄λΈμμ A->B, B->Cκ° μ±λ¦½ν λ, A->Cκ° μ±λ¦½νλ κ²μ μ΄νμ μ’
μμ΄λΌκ³ νλλ° μ΄λ€ μ£Όλ¬Έμ΄ μ΄λ€ μνκ³Ό μ΄λ€ κ³ κ°μ΄ μλμ§λ₯Ό μ’
μμ±μΌλ‘ κ°μ§κ³ μλλ° μ¬κΈ°μ μνλͺ
κ³Ό μνκ°κ²©
μ΄ μ’
μκ΄κ³μ μμΌλ―λ‘ μ΄λ₯Ό λΆλ¦¬ν΄μΌ ν©λλ€.
κ³ κ°ID | κ³ κ°μ΄λ¦ | κ³ κ°μ£Όμ |
---|---|---|
C001 | νκΈΈλ | μμΈ κ°λ¨κ΅¬ 123 |
C002 | μ΄λͺ½λ£‘ | μμΈ κ°λꡬ 456 |
μνID | μνλͺ | μνκ°κ²© |
---|---|---|
P001 | μ€λ§νΈν° | 500,000 |
P002 | λ ΈνΈλΆ | 1,200,000 |
P003 | νλΈλ¦Ώ | 300,000 |
μ£Όλ¬Έλ²νΈ | κ³ κ°ID | μνID | μλ |
---|---|---|---|
1001 | C001 | P001 | 1 |
1002 | C002 | P002 | 1 |
1003 | C001 | P003 | 2 |
μ΄μ
μνλͺ
κ³Όμνκ°κ²©
μ μν ν μ΄λΈμμ κ΄λ¦¬λκ³ , μ£Όλ¬Έ ν μ΄λΈμμνID
λ₯Ό μ°Έμ‘°νκ² λ©λλ€. μ΄λ κ² ν¨μΌλ‘μ¨ μ΄νμ μ’ μμ±μ΄ μ κ±°λμμ΄μ π―
쑰건: λͺ¨λ κ²°μ μκ° ν보 ν€μ¬μΌ ν©λλ€. μ 3μ κ·νμμλ μ΄νμ μ’ μμ±μ μ κ±°νμ§λ§, BCNFλ ν보 ν€μ μ μ½μ λ κ°νν©λλ€. μ¦, μ 3μ κ·νλ₯Ό μ§νν ν μ΄λΈμ λν΄ λͺ¨λ κ²°μ μκ° ν보ν€κ° λλλ‘ ν©λλ€.
μλ₯Ό λ€μ΄, λ§μ½ ν μ£Όλ¬Έμμ ν κ³ κ°μ΄ νΉμ μμ
μ¬μμ λ΄λΉνλ€κ³ κ°μ ν κ²½μ°, μ£Όλ¬Έλ²νΈ
μ κ³ κ°ID
μΈμλ μμ
μ¬μ IDκ° ν¨κ» ν¬ν¨λ μ μμ΅λλ€. μ΄λ, κ³ κ°ID
κ° μμ
μ¬μμ κ²°μ νλ λΉμ κ·μ κ΄κ³κ° μ‘΄μ¬ν μ μμ΅λλ€.
κ³ κ°ID | κ³ κ°μ΄λ¦ | κ³ κ°μ£Όμ |
---|---|---|
C001 | νκΈΈλ | μμΈ κ°λ¨κ΅¬ 123 |
C002 | μ΄λͺ½λ£‘ | μμΈ κ°λꡬ 456 |
μνID | μνλͺ | μνκ°κ²© |
---|---|---|
P001 | μ€λ§νΈν° | 500,000 |
P002 | λ ΈνΈλΆ | 1,200,000 |
P003 | νλΈλ¦Ώ | 300,000 |
μ£Όλ¬Έλ²νΈ | κ³ κ°ID | μνID | μλ |
---|---|---|---|
1001 | C001 | P001 | 1 |
1002 | C002 | P002 | 1 |
1003 | C001 | P003 | 2 |
κ³ κ°ID | μμ μ¬μID |
---|---|
C001 | S001 |
C002 | S002 |
μ¬κΈ°μλ
κ³ κ°ID
κ° μμ μ¬μμ κ²°μ νλ λΉμ κ·μ μΈ κ΄κ³λ₯Ό μ κ±°νμ¬, κ³ κ°κ³Ό μμ μ¬μμ μ 보λ₯Ό λ³λλ‘ κ΄λ¦¬νκ² λ©λλ€ π
μλλ μ κ·νμ λ¨μ λ§μ Velogμ μ¬λ¦¬κΈ° μ ν©νκ² μ 리νκ³ κΎΈλ―Ό λ΄μ©μ λλ€. μ΄λͺ¨μ§μ μμ λͺ©μΌλ‘ μκ°μ ν¨κ³Όλ₯Ό λνμ΅λλ€.
λ°μ΄ν°λ² μ΄μ€ μ€κ³μμ μ κ·νλ λ§μ μ₯μ μ μ 곡νμ§λ§, λͺ¨λ μν©μμ μλ²½ν ν΄λ²μ΄ λμ§λ μμ΅λλ€. μ κ·νλ₯Ό κ³Όλνκ² μ μ©ν κ²½μ° λ°μν μ μλ λͺ κ°μ§ λ¨μ μ μμλ³΄κ² μ΅λλ€.
μ κ·νλ₯Ό ν΅ν΄ ν μ΄λΈμ΄ λ§μ΄ λΆλ¦¬λλ©΄, λ°μ΄ν°λ₯Ό μ‘°νν λ μ¬λ¬ ν μ΄λΈμ JOINν΄μΌ ν©λλ€. μ΄λ‘ μΈν΄ 쿼리 κ΅¬μ‘°κ° λ³΅μ‘ν΄μ§κ³ , μμ± λ° μ μ§ κ΄λ¦¬κ° μ΄λ €μμ§ μ μμ΅λλ€.
JOIN μ°μ°μ΄ μμ£Ό μ¬μ©λλ κ²½μ° λ°μ΄ν° μ‘°ν μ±λ₯μ΄ μ νλ μ μμ΅λλ€. νΉν λμ©λ λ°μ΄ν°λ² μ΄μ€μμ μ κ·νλ ν μ΄λΈμ λ€μμ ν μ΄λΈμ ν©μ³μΌ νλ―λ‘, μ±λ₯μ λΆμ μ μΈ μν₯μ λ―ΈμΉ μ μμ΅λλ€.
μ κ·νλ ν μ΄λΈμ λ°μ΄ν°λ₯Ό μ½μ νκ±°λ μ λ°μ΄νΈν λ μ¬λ¬ ν μ΄λΈμ μμ μ ν΄μΌ ν μ μμ΅λλ€. μ΄λ‘ μΈν΄ μ½μ /μμ μμ μ΄ λ³΅μ‘ν΄μ§κ³ μ±λ₯μ΄ λ¨μ΄μ§ κ°λ₯μ±μ΄ μμ΅λλ€.
λ무 λ§μ ν μ΄λΈμ λΆλ¦¬νλ©΄ λ°μ΄ν°λ² μ΄μ€ κ΅¬μ‘°κ° μ§λμΉκ² 볡μ‘ν΄μ§λλ€. κ°λ°μκ° ν μ΄λΈ ꡬ쑰λ₯Ό μ΄ν΄νκΈ° μ΄λ ΅κ±°λ, μ μ§λ³΄μκ° λΆνΈν΄μ§ μ μμ΅λλ€.
μ κ·νλ μ½κΈ° μμ μμλ μ 리νμ§λ§, μ°κΈ° μμ μ΄ λΉλ²ν μμ€ν μμλ λΆλ¦¬ν μ μμ΅λλ€. μ¬λ¬ ν μ΄λΈμ λ°μ΄ν°λ₯Ό λλμ΄ μ μ₯νλ κ³Όμ μμ μ°κΈ° μ±λ₯μ΄ μ νλ μ μμ΅λλ€.
μ κ·νλ λ°μ΄ν°λ² μ΄μ€μ 무결μ±μ μ μ§νκ³ μ€λ³΅μ μ€μ΄κΈ° μν νμμ μΈ κ³Όμ μ΄μ§λ§, λλ‘λ μ±λ₯κ³Ό ν¨μ¨μ±μ μν΄ λΉμ κ·νλ₯Ό μ μ©νμ¬ μ μ ν κ· νμ λ§μΆλ κ²μ΄ νμν©λλ€. κ° μν©μ λ§λ μ΅μ μ λ°©λ²μ μ ννλ κ²μ΄ μ€μν©λλ€! π‘
μλλ μμ κ·νμ λν΄ Velogμ μ λ‘λνκΈ° μ ν©νκ² μ 리ν λ΄μ©μ λλ€. μκ°μ ν¨κ³Όλ₯Ό μν΄ μ΄λͺ¨μ§μ μμ λͺ©μ μ¬μ©ν΄ 꾸며보μμ΅λλ€.
λ°μ΄ν°λ² μ΄μ€ μ€κ³μμ μ κ·ν(Normalization)λ νμμ μ΄μ§λ§, λλ‘λ μ±λ₯ μ΅μ νλ₯Ό μν΄ μμ κ·ν(Denormalization)λ₯Ό μ μ©ν΄μΌ ν λκ° μμ΅λλ€. μμ κ·νλ λ°μ΄ν° μ€λ³΅μ νμ©νκ±°λ ν μ΄λΈ κ²°ν©μ ν΅ν΄ μ±λ₯μ μ΅μ ννλ λ°©λ²μ λλ€. μ΄λ² κΈμμλ μμ κ·νλ₯Ό μ μ©νλ μ΄μ μ κ·Έ νμμ±μ λν΄ μμλ³΄κ² μ΅λλ€.
μ κ·νλ ν μ΄λΈμμλ λ°μ΄ν°λ₯Ό μ‘°νν λ JOIN μ°μ°μ΄ μμ£Ό λ°μνμ¬ μ±λ₯μ΄ μ νλ μ μμ΅λλ€. μμ κ·νλ₯Ό ν΅ν΄ λ°μ΄ν°λ₯Ό μ€λ³΅ μ μ₯νκ±°λ κ²°ν©νλ©΄, JOIN μ°μ°μ μ€μ¬ μ‘°ν μλλ₯Ό ν¬κ² ν₯μμν¬ μ μμ΅λλ€. νΉν μ½κΈ° μμ μ΄ λΉλ²ν μμ€ν μμ ν° ν¨κ³Όλ₯Ό λ΄ λλ€.
μ κ·νκ° μ¬νλ μλ‘ μΏΌλ¦¬ κ΅¬μ‘°κ° λ³΅μ‘ν΄μ§ μ μμ΅λλ€. μ¬λ¬ ν μ΄λΈμ JOINν΄μΌ νλ μν©μμ, μμ κ·νλ₯Ό ν΅ν΄ λ°μ΄ν°λ₯Ό κ²°ν©νκ±°λ μ€λ³΅ μ μ₯νλ©΄ 쿼리 ꡬ쑰λ₯Ό λ¨μνν μ μμ΅λλ€. μ΄λ₯Ό ν΅ν΄ 쿼리 μμ±κ³Ό μ μ§λ³΄μκ° μ¬μμ§λλ€.
μ€μκ° μ±λ₯μ΄ μ€μν μμ€ν μμλ λ°μ΄ν° μΌκ΄μ±λ³΄λ€ μλ΅ μλκ° λ μ€μν κ²½μ°κ° λ§μ΅λλ€. μ΄λ΄ λλ μμ κ·νλ₯Ό μ μ©ν΄ μ±λ₯μ λμΌ μ μμ΅λλ€. μλ₯Ό λ€μ΄, λκ·λͺ¨ μΉμ¬μ΄νΈλ μ€μκ° κ²μ μμ§μμλ μ±λ₯μ΄ ν΅μ¬μ΄λ―λ‘, μ½κ°μ λ°μ΄ν° μ€λ³΅μ κ°μνκ³ μλΌλ λΉ λ₯Έ μλ΅ μλλ₯Ό μ μ§νλ κ²μ΄ μ€μν©λλ€.
μ½κΈ° μμ μ΄ μ°κΈ° μμ λ³΄λ€ ν¨μ¬ λ§μ μμ€ν μμλ λ°μ΄ν°λ₯Ό μ¬λ¬ λ² μ½λ κ²μ΄ λΉν¨μ¨μ μΌ μ μμ΅λλ€. μμ κ·νλ₯Ό ν΅ν΄ λ°μ΄ν°λ₯Ό ν κ³³μ λͺ¨μλλ©΄ μ½κΈ° μμ μ΄ μ΅μ νλκ³ , λ°μ΄ν° μ κ·Ό μλκ° λΉ¨λΌμ§λλ€. μλ₯Ό λ€μ΄, 리ν¬ν μμ€ν μ΄λ λ°μ΄ν° λΆμ μμ€ν μμλ μμ κ·νκ° μ 리ν©λλ€.
μμ κ·νλ λ°μ΄ν°λ₯Ό μ€λ³΅ μ μ₯νκΈ° λλ¬Έμ μ μ₯ 곡κ°μ λ λ§μ΄ μ¬μ©νκ² λ©λλ€. νμ§λ§ νλμ μμ€ν μμλ μ μ₯ κ³΅κ° λΉμ©μ΄ μ λ ΄ν΄μ‘κΈ° λλ¬Έμ, μ±λ₯ ν₯μμ μν΄ μΆκ°μ μΈ μ μ₯ 곡κ°μ μ¬μ©νλ κ²μ΄ μΆ©λΆν κ°λ₯ν΄μ‘μ΅λλ€.