Data Modeling & ERD Diagram
1.λ°μ΄ν° λͺ¨λΈλ§μ΄λ?
λ°μ΄ν° λͺ¨λΈλ§μ΄λ μ 보μμ€ν ꡬμΆμ λμμ΄ λλ μ 무 λ΄μ©μ λΆμνμ¬ μ΄ν΄νκ³ μ½μλ νκΈ°λ²μ μν΄ νν νλκ±Έ μλ―Ένλ€. κ·Έλ¦¬κ³ μ΄λ κ² λΆμλ λͺ¨λΈμ κ°μ§κ³ μ€μ λ°μ΄ν°λ² μ΄μ€λ₯Ό μμ±νμ¬ κ°λ° λ° λ°μ΄ν° κ΄λ¦¬μ μ¬μ©λλ€.
νΉν λ°μ΄ν°λ₯Ό μΆμνν λ°μ΄ν° λͺ¨λΈμ λ°μ΄ν°λ² μ΄μ€μ 골격μ μ΄ν΄νκ³ κ·Έ μ΄ν΄λ₯Ό λ°νμΌλ‘ SQL λ¬Έμ₯μ κΈ°λ₯κ³Ό μ±λ₯μ μΈ μΈ‘λ©΄μμ ν¨μ¨μ μΌλ‘ μμ±ν μ μκΈ° λλ¬Έμ, λ°μ΄ν° λͺ¨λΈλ§μ λ°μ΄ν°λ² μ΄μ€ μ€κ³μ ν΅μ¬κ³Όμ μ΄λΌκ³ ν μ μλ€.

2.λ°μ΄ν° λͺ¨λΈλ§ μμ μ μ°¨
2-1.μ
무 νμ
(μꡬμ¬ν μμ§ λ° λΆμ)
μ 무 νμ μ μ΄λ ν μ 무λ₯Ό μμνκΈ° μ μ ν΄λΉνλ μ 무μ λν΄μ νμ νλ λ¨κ³.
λͺ¨λΈλ§μ μμ κ°μ λ¨Όμ ν΄μΌν κ²μ μ΄λ ν μ 무λ₯Ό λ°μ΄ν°ννμ¬ λͺ¨λΈλ§ ν κ²μΈμ§μ λν μꡬμ¬ν μμ§μΌ κ²μ΄λ€. μ 무νμ μ νκΈ° μ’μ λ°©λ²μ UIλ₯Ό μλ’°μΈκ³Ό ν¨κ» νμΈν΄ λκ°λ κ²μ΄λ€. κ·Έλ¦¬κ³ κΆκ·Ήμ μΌλ‘ λ§λ€μ΄μΌ νλ κ²μ΄ 무μμΈμ§ μμ보μμΌ νλ€.
μ°λ¦¬κ° νν μ¬μ©νλ κ²μν (Okky) μ μλ‘ μ΄ν΄λ³΄μ

2-2 κ°λ
μ λ°μ΄ν° λͺ¨λΈλ§
κ°λ μ λ°μ΄ν° λͺ¨λΈλ§μ λ΄κ° νκ³ μ νλ μΌμ λ°μ΄ν° κ°μ κ΄κ³λ₯Ό ꡬμνλ λ¨κ³μ΄λ€. κ° κ°μ²΄λ€κ³Ό κ·Έλ€κ°μ κ΄κ³λ₯Ό λ°κ²¬νκ³ νννκΈ° μν΄ ERD λ€μ΄μ΄κ·Έλ¨μ μ¬μ©νλ€.

μ 무νμ λ¨κ³μμ κ²°μ νλ κ²μν λ°μ΄ν° ꡬμμ κ°λ μ λ°μ΄ν° λͺ¨λΈλ‘ ꡬνν κ².
κ²μνμλ λνμ μΌλ‘ κ²μν μ΄μ©μμ νμ μ 보, λ‘κ·ΈμΈ μ 보, κ·Έλ¦¬κ³ κ²μνμ κ²μκΈ, λκΈμ΄ μλ€.

2-3 λ
Όλ¦¬μ λ°μ΄ν° λͺ¨λΈλ§
κ°λ μ μΈ λ°μ΄ν° λͺ¨λΈμ΄ μμ±λλ©΄, ꡬ체νλ μ 무 μ€μ¬μ λ°μ΄ν° λͺ¨λΈμ λ§λλλ°, μ΄κ²μ λ Όλ¦¬μ μΈ λ°μ΄ν° λͺ¨λΈλ§μ΄λΌκ³ νλ€. μ΄ λ¨κ³μμ μ 무μ λν Key, μμ±, κ΄κ³λ±μ νμνλ©°, μ κ·νλ₯Ό μννλ€. μ κ·νλ λ°μ΄ν° λͺ¨λΈμ μΌκ΄μ±μ ν보νκ³ μ€λ³΅μ μ κ±°νμ¬ μ λ’°μ±μλ λ°μ΄ν° ꡬ쑰λ₯Ό μ»λλ° λͺ©μ μ΄ μλ€.
μ΄λ, λ¨μν μΆμμ μΈ λ°μ΄ν°μμ λ³΄λ€ κ΅¬μ²΄νν λ°μ΄ν°λ‘ μμ±νλ€. μλ₯Ό λ€μ΄ νμμ 보μ μμ΄λ, λΉλ°λ²νΈμ κ° λ°μ΄ν° νμ μ λͺ μνκ³ , κ° λ°μ΄ν°κ°μ κ΄κ³λ₯Ό μ λ°νκ² λ§Ίμ΄μ£Όλ©° ν μ΄λΈμ ν€(Key)λ₯Ό μ§μ ν΄μ€λ€.

2-4 물리μ λ°μ΄ν° λͺ¨λΈλ§
물리μ λ°μ΄ν° λͺ¨λΈλ§μ μ΅μ’ μ μΌλ‘ λ°μ΄ν°λ₯Ό κ΄λ¦¬ν λ°μ΄ν°λ² μ΄μ€λ₯Ό μ ννκ³ , μ νν λ°μ΄ν° λ² μ΄μ€μ μ€μ ν μ΄λΈμ λ§λλ μμ μ λ§νλ€. μκ°μ μΈ κ΅¬μ‘°λ₯Ό λ§λ€μμΌλ©΄ κ·Έκ²μ μ€μ λ‘ SQL λ‘ μμ±νλ λ¨κ³λΌκ³ 보면 λλ€.

λ°μ΄ν° λͺ¨λΈλ§ μ μ°¨ μ 리
1. κ²μνμ νλ©΄μ μ΄λ ν κ²λ€μ΄ νμνμ§μ λν κ°λ
μ μ‘κΈ° (μꡬμ¬ν μμ§)
2.κ²μνμ νλ©΄μ ννλλ λ°μ΄ν°λ₯Ό νμ
ν΄ κ΄κ³λ₯Ό μ€μ (κ°λ
μ λ°μ΄ν° λͺ¨λΈλ§)
3.κ°λ
μ λ°μ΄ν° λͺ¨λΈλ§ ν κ²μ νλ‘ λ§λ€κΈ° (λ
Όλ¦¬μ λ°μ΄ν° λͺ¨λΈλ§)
4.μ€μ λ°μ΄ν°λ² μ΄μ€ ν
μ΄λΈλ‘ λ§λ€κΈ° (물리μ λ°μ΄ν° λͺ¨λΈλ§)

3. ERD 그리기
ERD (Entity Relationship Diagram)λ λ¨μ΄μμ μλ―Ένλ κ·Έλλ‘ 'Entity κ°μ²΄'μ 'Relationshipκ΄κ³'λ₯Ό μ€μ μ μΌλ‘ νμνλ λ°μ΄ν°λ² μ΄μ€ ꡬ쑰λ₯Ό ν λμ μμ보기 μν΄ κ·Έλ €λλ λ€μ΄μ΄κ·Έλ¨μ΄λ€. κ°μ²΄ κ΄κ³λλΌκ³ λ λΆλ¦¬λ©° μꡬλΆμμ¬νμμ μ»μ μν°ν°μ μμ±λ€μ κ΄κ³λ₯Ό κ·Έλ¦ΌμΌλ‘ ννν κ²μ΄λ€.

μν°ν°(Entity)
μν°ν°λ μ μ κ°λ₯ν μ¬λ¬Ό λλ κ°λ μ μλ―Ένλ€.
μ¬λλ λ μ μμΌλ©° νλ‘νμ΄λ λμμ 보μ κ°μ 무νμ μ 보λ λ°μ΄ν°νκ° κ°λ₯νλ€.
λ°μ΄ν°λ² μ΄μ€μ ν μ΄λΈμ΄ μν°ν°λ‘ ννλλ€κ³ 보면 λλ€.
μλ₯Όλ€μ΄ νμ Entityλ μλμ κ·Έλ¦Όκ³Ό κ°μ΄ ννλλ€.

μν°ν° μμ±(Attribute)
μν°ν°μλ κ°μ²΄κ° κ°κ³ μλ μμ±(Attribute)μ ν¬ν¨νλ€.
μλ₯Όλ€μ΄ νμ μν°ν°λΌλ©΄, νλ², μ΄λ¦, μ£Όμ, μ 곡 ..λ± μμ±λ€μ΄ μλ€.
λ°μ΄ν°λ² μ΄μ€μ ν μ΄λΈμ κ° νλ(컬λΌ)λ€μ΄ μν°ν° μμ±μ΄λΌκ³ 보면 λλ€.

μν°ν° λλ©μΈ(Domain)
λλ©μΈμ μμ±μ κ°, νμ , μ μ½μ¬ν λ±μ λν κ°μ λ²μλ₯Ό νννλ κ²μ΄λ€.
μ¬μ©μ κΈ°νΈμ λ°λΌ μμ± νμ λ§ κ·Έλ¦΄μλ μκ³ , κ°λ μ±μ μν΄μ μλ΅ν μλ μλ€.
μ΄λ λ°μ΄ν° νμ μ λͺ μν λ, λ°μ΄ν°λ² μ΄μ€κ° μ§μνλ νμ μ λ§κ² ν΄μΌνλ€.
μν°ν° λΆλ₯
μν°ν°λ μ μ₯νλ λ°μ΄ν° μ 보 μ£Όμ μ λ°λΌ μ’ λ₯κ° λ€μνλ€.
κ³ κ° μ 보κ°μ μ€μ λ‘ λ¬Όλ¦¬μ μΈ ννλ‘ μλ μ 보μ ꡬ맀 μ΄λ ₯κ°μ 무νμ μ΄κ³ κ°λ μ μΈ μ λ³΄κ° μλ€.
μ΄ μν°ν° λΆλ₯ ꡬλΆμ μ ν΄μ£Όμ΄μΌ λ°μ΄ν°λ² μ΄μ€ μ€κ³μ μμ΄ κ° λ°μ΄ν° μ£Όμ μ λ§κ² λͺ¨λΈλ§μ ꡬμΆν μ μλ€.

λ€μμ μμμ λ§λ νμ μν°ν°μ νμλ³ μ·¨λ―Έλ₯Ό νννλ μν°ν°λ₯Ό μΆκ°νμλ€. νμ μν°ν°λ μ ν μν°ν°μ μνμ¬, νμλ³ μ·¨λ―Έλ 무ν μν°ν°μ μνκ² λλ€.

ERD ν€μ μ μ½ μ‘°κ±΄ νκΈ°λ²
μ£Όμλ³μ(PK)
λ°μ΄ν°λ² μ΄μ€ ν μ΄λΈμ Primary Keyλ₯Ό νν
μ€λ³΅μ΄ μκ³ NULL κ°μ΄ μλ μ μΌν κ°μ μ§μ νλ μλ³μ
μλ κ·Έλ¦Όκ³Ό κ°μ΄ β λ€μ΄μλͺ¬λλ‘ νννκΈ°λ νκ³ μλλ©΄ μ΄μ λ‘λ νννκΈ°λ νλ€.
κ·Έλ¦¬κ³ μ£Ό μλ³μλ μ μΌν μμ±μ΄λ―λ‘ λ€λ₯Έ μμ±κ³Όμ λͺ νν ꡬλΆμ μν΄ κ΅¬λΆμ μ λκΈ°λ νλ€.

NOT NULL
ν΄λΉ μμ±μ λ€μ΄κ° κ°μ Null μ λΉνμ©νλ€λ©΄, N νΉμ NNμ μ λλ€.
λ§μΌ Null νμ©νλ€λ©΄ Nμ μ μ§ μλλ€.

μΈλ μλ³μ(FK)
λ°μ΄ν°λ² μ΄μ€ ν μ΄λΈμ Foreign Keyλ₯Ό νν
μΈλ μλ³μ μμ keyμ μΌμ’ μ΄λΌ ERD μν°ν°μλ μ΄μ μμ΄μ½μΌλ‘ νμνλ€. (νλ‘κ·Έλ¨μ λ°λΌ λ€λ₯Ό μ μλ€)
μΈλ μλ³μλ₯Ό νμν λμλ μ μ μ΄μ΄μ£Όλλ° κ°μ²΄μ κ΄κ³λ₯Ό λ°μ Έ νμνλ€.

ERD μν°ν° κ΄κ³ νκΈ°λ²
κ° μν°ν° μ νλ€μ λ§λ€μμΌλ©΄, μν°ν° λΌλ¦¬ κ΄κ³κ° μλ κ²½μ° μ μ μ΄μ΄ κ΄κ³λ₯Ό λ§Ίμ΄μΌ νλ€. μν°ν° λΌλ¦¬ κ΄κ³ μ μ κ·Έμλ μ€μ μΌλ‘ κ·Έμμ§ μ μ μΌλ‘ κ·Έμμ§ λλλλ°, λ μν°ν° κ΄κ³μμ λΆλͺ¨μ ν€λ₯Ό μμμμ PKλ‘ μ¬μ©νλμ§ μΌλ° μμ±μΌλ‘ μ¬μ©νμ§μ λ°λΌμ νκΈ°κ° λ€λ₯΄κ² λλ€.
μ€μ μΌλ‘ κ·ΈμΌλ©΄ κ°ν κ΄κ³λ₯Ό λνλ΄λ κ²μ΄λ©° 'μλ³μ κ΄κ³'λΌκ³ λΆλ¦¬μ°λ©°, μ μ μΌλ‘ κ·ΈμΌλ©΄ μ½ν κ΄κ³λ₯Ό λνλ΄λ κ²μ΄λ©° 'λΉμλ³μ κ΄κ³'λΌκ³ λΆλ¦¬μ°κ² λλ€.

μλ³μ κ΄κ³
μ€μ μΌλ‘ νν
λΆλͺ¨ μμ κ΄κ³μμ μμμ΄ λΆλͺ¨μ μ£Ό μλ³μλ₯Ό μΈλ μλ³μλ‘ μ°Έμ‘°ν΄μ μμ μ μ£Ό μλ³μλ‘ μ€μ
μλ κ·Έλ¦Όμμ μμ μν°ν°(νμλ³ μ·¨λ―Έ)κ° λΆλͺ¨ μν°ν°(νμ)μ νλ²μ μμ μ μ£Ό μλ³μλ‘ μ€μ νμλ€.

λΉμλ³μ κ΄κ³
μ μ μΌλ‘ νν
λΆλͺ¨ μμ κ΄κ³μμ μμμ΄ λΆλͺ¨μ μ£Ό μλ³μλ₯Ό μΈλ μλ³μλ‘ μ°Έμ‘°ν΄μ μΌλ° μμ±μΌλ‘ μ¬μ©.
μλ κ·Έλ¦Όμμ μμ μν°ν°(μ¬μμ 보)κ° λΆλͺ¨ μν°ν°(λΆμμ 보)μ λΆμμ½λλ₯Ό μΌλ° μμ±μΌλ‘ λμλ€.

ERD κ΄κ³μ μΉ΄λλ리ν°
κ΄κ³κ° μ‘΄μ¬νλ λ entityμ¬μ΄μ ν entityμμ λ€λ₯Έ entity λͺκ°μ κ°μ²΄μ λμλλμ§ μ μ½μ‘°κ±΄μ νκΈ°νκΈ°μν΄ μ μ κ·Έμ΄ νννλ€. λνμ μΌλ‘ Mapping Cardinalityμ μ’ λ₯λ λ€μκ³Ό κ°λ€.

νμ§λ§ ERD λ€μ΄μ΄κ·Έλ¨μ μμκ°μ΄ μ λ€μ λ§ κΈλλ€λ©΄ κ°λ μ±μ΄ λ§€μ° μμ’μμ§κ³ νκ° λλ¬μμ§κΈ° λλ¬Έμ, μ΄λ¬ν μν°ν°κ°μ 1 λ λ€μ κ΄κ³λ₯Ό νκΈ° νκΈ° μν΄ ERDμμλ μ μ λ λͺ¨μμ λ€λ₯΄κ² νμνλ λ°©λ²μ μ¬μ©νλ€.
One-to-One Cardinality (1:1 κ΄κ³)
νμ μ 체μ 보λ 1:1λ‘ λ§€μΉλλ€.
νλͺ μ νμμ νλμ μ 체μ 보λ₯Ό κ°κΈ° λλ¬Έμ΄λ€.

One-to-Many Cardinality (1:N κ΄κ³)
νλͺ μ νμμ μ¬λ¬κ°μ μ·¨λ―Έλ₯Ό κ°μ§μλ μλ€.

Many-to-Many Cardinality (M:N κ΄κ³)
μ ν μν°ν° μ μ₯μμ, TV μ νμ λμ° ν°λΉ, μΌμ± ν°λΉ, μ ν ν°λΉ κ°μ μ¬λ¬ μ μ‘°μ 체 μ νμ΄ μμ μ μλ€.μ΄λ λμ₯κ³ λ μΈνκΈ°λ λ§μ°¬κ°μ§μ΄λ€.
μ¬λ¬ κΈ°μ μμ μμ λ§μ μνλ₯Ό μμ°νλ€. μ μ‘°μ 체 μν°ν° μ μ₯μμ, μΌμ± μ μ‘°μ 체λ μΈνκΈ°λ§ μμ°νλκ² μλλΌ MP3λ κ°μ΄ μμ°νλ€.μ€μ λ‘ μΌμ±μ΄λ μ ν νμ¬λ κ°μ μ ν, μ€λ§νΈν°, μ μκΈ°κΈ° λ± μ¬λ¬ μ’ λ₯μ μ νμ μμ°νλ€.
λ°λΌμ μ νκ³Ό μ μ‘°μ 체 κ΄κ³λ λ€ λ λ€ κ΄κ³ λλ€.

Many-to-Many Cardinality κ΄κ³μ ν΄μ
κ·Έλ°λ° λ μν°ν°κ° λ€ λ λ€ κ΄κ³μ μλ κ²½μ°, λκ°μ μν°ν°λ§μΌλ‘λ μλ‘λ₯Ό νννλλ° λΆμ‘±νλ€.
λ°μ΄ν° λͺ¨λΈλ§μμλ M:N κ΄κ³λ₯Ό μμ±λμ§ μμ λͺ¨λΈλ‘ κ°μ£Όνμ¬, λ μν°ν°μ κ΄κ³λ₯Ό 1:N, N:1 λ‘ μ‘°μ νλ μμ μ΄ νμνλ€.
λ°λΌμ λ μν°ν°μ κ΄λ ¨μ±μ νννκΈ° μν΄μλ μ€κ°μ λ λ€λ₯Έ μν°ν°λ₯Ό νμλ‘ νλ€. μ΄ μ€κ° μν°ν°(μ μ²΄λ³ μ ν)κ° λ μν°ν°μ 곡μ μμ± μν μ νκ² λλ€.
μ΄ λΆλΆμ λ°μ΄ν° λͺ¨λΈλ§μμ 곡μ μ²λΌ μ μ©λλ κ·μΉμ΄λ©°, ERD νλ‘κ·Έλ¨μμ M:Nμ μ‘κ² λλ€λ©΄ μλμΌλ‘ μλμ κ°μ΄ μ‘°μ μμ μ΄ νν΄μ§κ² λλ€.

ERD κ΄κ³μ μ°Έμ¬λ
κ΄κ³μ κ° μΈ‘μ λμλ½μ κΈ°νΈλ₯Ό νμνλ€.
'|' νμκ° μλ κ³³μ λ°λμ μμ΄μΌ νλ κ°μ²΄. (νμ)
'O' νμκ° μλ€λ©΄ μμ΄λ λλ κ°μ²΄. (μ ν)

Last updated