λ°μ΄ν°λ² μ΄μ€ λͺ¨λΈλ§ π
λ°μ΄ν°λ² μ΄μ€ λͺ¨λΈλ§μ΄λ μ 보ν μμ€ν
μ ꡬμΆνκΈ° μν΄ νμ€ μΈκ³μ λ°μ΄ν°λ₯Ό 체κ³μ μΌλ‘ μ μ₯νκ³ κ΄λ¦¬νλ λ°©λ²μ κ³ννλ κ³Όμ μ
λλ€. μ£Όλ‘ λ°μ΄ν°λ₯Ό λΆμνκ³ μ€κ³νλ©°, μ΄ κ³Όμ μ ν¬κ² μꡬ μ¬ν λΆμ, μ€κ³, ꡬν λ¨κ³λ‘ λλ©λλ€. κ°κ°μ λ¨κ³λ λ°μ΄ν°λ² μ΄μ€μ ꡬ쑰μ μ±λ₯μ μ€λν μν₯μ λ―ΈμΉλ―λ‘ κΌΌκΌΌν κ³νμ΄ νμν©λλ€. μ΄μ κ° λ¨κ³λ₯Ό μ°¨κ·Όμ°¨κ·Ό μ΄ν΄λ³ΌκΉμ? π
1. μꡬ μ¬ν μμ§ λ° λΆμ π
첫 λ¨κ³λ μμ€ν
μμ νμν λ°μ΄ν°λ₯Ό νμ
νκ³ λΆμνλ κ³Όμ μ
λλ€. νμ€ μΈκ³μ μ 보μ μ¬μ©μμ μꡬ μ¬νμ κΈ°λ°μΌλ‘ λ°μ΄ν°λ² μ΄μ€μ λ΄κ²¨μΌ ν λ°μ΄ν°λ₯Ό μ 리νλ μμ
μ΄μμ.
-
μ¬μ©μ μλ³: μμ€ν
μ μ¬μ©ν μ£Όμ μ¬μ©μλ₯Ό νμ
ν©λλ€. λκ° λ°μ΄ν°λ₯Ό μμ±νκ³ , μμ νλ©°, μ‘°νν κ²μΈμ§ μμμΌ μμ€ν
μ€κ³μ λ°μν μ μμ΅λλ€.
-
λ°μ΄ν°λ² μ΄μ€ μ©λ μλ³: λ°μ΄ν°λ² μ΄μ€κ° μμ€ν
μμ μ΄λ»κ² μ¬μ©λ μ§ μ μνλ λ¨κ³μ
λλ€. μλ₯Ό λ€μ΄, μ¬μ©μκ° λ°μ΄ν°λ₯Ό λ¨μ μ‘°νλ§ ν κ²μΈμ§, λ°μ΄ν°λ₯Ό μ
λ ₯νκ³ μμ ν νμλ μλμ§ λΆμν©λλ€.
-
μ¬μ©μ μꡬ μ¬ν μμ§ λ° λͺ
μΈ: μ¬μ©μ μΈν°λ·°, μ€λ¬Έ μ‘°μ¬ λ±μΌλ‘ νμν λ°μ΄ν°λ₯Ό μμ§νκ³ , μ΄λ₯Ό λ°νμΌλ‘ λͺ
μΈμλ₯Ό μμ±ν΄ μ€κ³ λ¨κ³μμ μ°Έκ³ ν μ μλλ‘ ν©λλ€.
2. μ€κ³ π
μ€κ³ λ¨κ³λ ν¬κ² κ°λ
μ , λ
Όλ¦¬μ , 물리μ μ€κ³λ‘ λλ©λλ€. κ° μ€κ³λ λ°μ΄ν°λ₯Ό μ΄λ»κ² ꡬ쑰νν μ§ κ΅¬μ²΄ννλ κ³Όμ μ
λλ€. νλμ© μ΄ν΄λ³ΌκΉμ?
2-1. κ°λ
μ λͺ¨λΈλ§ π‘
μ΄ λ¨κ³μμλ λ°μ΄ν°λ² μ΄μ€μ ν¬ν¨λ μ€μν κ°λ
λ€μ μ μνκ³ , μ΄λ€μ μ΄λ»κ² ννν μ§λ₯Ό ꡬμν©λλ€. λ°μ΄ν°λ² μ΄μ€ κ΄λ¦¬ μμ€ν
(DBMS)μ λν ꡬ체μ μΈ μ¬νμ κ³ λ €νμ§ μκ³ , νμ€ μΈκ³μ λ°μ΄ν°λ₯Ό μ΄λ»κ² ꡬ쑰νν κ²μΈμ§λ₯Ό μ€κ³νλ κ²μ΄ λͺ©νμ
λλ€.
-
ν΅μ¬ Entity λμΆ: νμ€ μΈκ³μμ μ€μν κ°μ²΄λ€μ μλ³ν©λλ€. μλ₯Ό λ€μ΄, νκ΅ μμ€ν
μ΄λΌλ©΄ νμ, κ°μ¬, κ³Όλͺ© λ±μ΄ μ£Όμ κ°μ²΄κ° λ μ μμ΄μ.
-
ERD μμ±: ERD(Entity Relationship Diagram)λ μν°ν°, κ΄κ³, μμ±μ μκ°μ μΌλ‘ λνλΈ λ€μ΄μ΄κ·Έλ¨μ
λλ€. μ΄ λ€μ΄μ΄κ·Έλ¨μ ν΅ν΄ λ°μ΄ν° ꡬ쑰λ₯Ό κ°λ
μ μΌλ‘ ννν μ μμ΅λλ€.
-
DBMS κ²°μ : λ§μ§λ§μΌλ‘, μμ€ν
μꡬ μ¬νμ λ§λ DBMSλ₯Ό κ²°μ ν©λλ€. μλ₯Ό λ€μ΄, MySQL, PostgreSQL, Oracle λ±μ΄ μ¬μ©λ μ μμ΅λλ€.
2-2. λ
Όλ¦¬μ λͺ¨λΈλ§ π§©
λ
Όλ¦¬μ λͺ¨λΈλ§μ κ°λ
μ λͺ¨λΈλ§μμ ꡬ체νλ κ°λ
λ€μ μ€μ λ°μ΄ν°λ² μ΄μ€ κ΄λ¦¬ μμ€ν
μμ μ¬μ©ν μ μλλ‘ κ΅¬μ²΄ννλ λ¨κ³μ
λλ€.
-
ERD 맀ν: κ°λ
μ μΌλ‘ μμ±λ ERDλ₯Ό νΉμ κ΄κ³ν λ°μ΄ν°λ² μ΄μ€ μμ€ν
μ λ§κ² λ³νν©λλ€. μλ₯Ό λ€μ΄, μν°ν°λ₯Ό ν
μ΄λΈλ‘, μν°ν° κ°μ κ΄κ³λ₯Ό μΈλ ν€λ‘ λ³νν©λλ€.
-
μμΈ μμ± μ μ: κ° ν
μ΄λΈμ 컬λΌκ³Ό μμ±, λ°μ΄ν° νμ
λ±μ ꡬ체μ μΌλ‘ μ μν©λλ€. μ»¬λΌ μ μ½ μ‘°κ±΄, κΈ°λ³Έκ°, μΈλ±μ€ μ€μ λ±λ ν¬ν¨λ©λλ€.
-
μ κ·ν: λ°μ΄ν°λ₯Ό μ€λ³΅ μμ΄ μ μ₯νκ³ λ¬΄κ²°μ±μ μ μ§νκΈ° μν΄ ν
μ΄λΈμ μ κ·νν©λλ€. μ κ·νλ λ°μ΄ν°λ₯Ό μ¬λ¬ ν
μ΄λΈλ‘ λΆλ¦¬ν΄ μ€λ³΅μ μ΅μννλ μμ
μ΄μμ.
2-3. 물리μ λͺ¨λΈλ§ π
μ΄ λ¨κ³λ μ€μ λ°μ΄ν°λ² μ΄μ€λ₯Ό ꡬμΆνκΈ° μν 물리μ μ€κ³μ
λλ€. DBMSμ νΉμ±μ λ°λΌ λ°μ΄ν°λ² μ΄μ€λ₯Ό μ΅μ ννλ κ³Όμ μ΄ ν¬ν¨λ©λλ€.
-
DB κ°μ²΄ μ μ: ν
μ΄λΈ, μΈλ±μ€, λ·°, μ μ₯ νλ‘μμ λ±μ λ°μ΄ν°λ² μ΄μ€ κ°μ²΄λ€μ μ€κ³νκ³ μμ±ν©λλ€.
-
ν
μ΄λΈ λ° μΈλ±μ€ μ€κ³: μ±λ₯μ κ³ λ €ν ν
μ΄λΈμ 물리μ μ μ₯ ꡬ쑰λ₯Ό μ€κ³νκ³ , μ μ ν μΈλ±μ€λ₯Ό μ μν΄ λ°μ΄ν°λ² μ΄μ€ μ±λ₯μ μ΅μ νν©λλ€.
3. λ°μ΄ν°λ² μ΄μ€ ꡬν π
λ§μ§λ§ λ¨κ³λ μ€κ³λ λ°μ΄ν°λ² μ΄μ€ λͺ¨λΈμ μ€μ μμ€ν
μ ꡬννλ κ²μ
λλ€. μ΄μ 본격μ μΌλ‘ λ°μ΄ν°λ² μ΄μ€κ° ꡬμΆλκ³ μ΄μλκΈ° μμν΄μ!
- 쿼리 μμ±: μ€κ³λ ν
μ΄λΈκ³Ό μΈλ±μ€, νΈλ¦¬κ±°, λ·° λ±μ μμ±ν ν, λ°μ΄ν°λ₯Ό μ½μ
νκ³ μΏΌλ¦¬λ₯Ό μμ±ν©λλ€.
- μ±λ₯ μ΅μ ν: λ°μ΄ν°λ² μ΄μ€ μ±λ₯μ λμ΄κΈ° μν΄ μΈλ±μ€λ₯Ό μ΅μ ννκ³ , μ±λ₯ λ¬Έμ κ° λ°μνλμ§ μ κ²ν©λλ€.
κ°λ
μ λ°μ΄ν°λ² μ΄μ€ λͺ¨λΈλ§ π¨
κ°λ
μ λ°μ΄ν°λ² μ΄μ€ λͺ¨λΈλ§μ μ
무 λΆμ λ¨κ³μμ μ»μ΄μ§ μ 보λ₯Ό λ°νμΌλ‘ Entity(μ€μ²΄)λ₯Ό μΆμΆνκ³ , κ° Entityμ μμ±μ ꡬμ±νλ©°, Entity κ°μ κ΄κ³λ₯Ό μ μνμ¬ ER-Diagram(ERD)λ₯Ό μμ±νλ λ¨κ³μ
λλ€. μ΄λ νμ€ μΈκ³μ λ°μ΄ν°λ₯Ό μκ°μ μΌλ‘ νννμ¬ λ°μ΄ν°λ² μ΄μ€ ꡬ쑰λ₯Ό λͺ
νν μ΄ν΄νκ³ μ€κ³ν μ μκ² ν©λλ€. π
1. μ¬μ©μ λΆλ¬Έμ μ²λ¦¬ νμ λΆμ π
μ²λ¦¬ νμ λΆμμ μ€μ μ
무μμ μ΄λ€ λ°μ΄ν°κ° μ²λ¦¬λλμ§λ₯Ό λΆμνλ λ¨κ³μ
λλ€. μ΄ λΆμμ μμ€ν
μμ μ¬μ©μκ° μ΄λ€ λ°μ΄ν°λ₯Ό λ€λ£¨κ³ μ²λ¦¬νλμ§λ₯Ό λͺ
νν νμ
νλ μ€μν μΆλ°μ μ
λλ€.
- μμ: μ¨λΌμΈ μΌνλͺ°μ κ²½μ°, κ³ κ°μ΄ μ£Όλ¬Ένκ³ κ²°μ λ₯Ό μλ£νλ κ³Όμ μμ λ°μνλ μ£Όλ¬Έ μ 보, κ²°μ μ 보 λ±μ΄ νμν λ°μ΄ν°μ
λλ€.
2. μ€μ²΄μ κ΄κ³ νμ
νμ¬ ERD μμ± π§©
λ€μμΌλ‘, λΆμλ λ°μ΄ν°λ₯Ό λ°νμΌλ‘ μμ€ν
μμ μ€μν μ€μ²΄(Entity)μ μ΄λ€ κ°μ κ΄κ³(Relationship)λ₯Ό νμ
ν©λλ€. μ΄ν, κ° μ€μ²΄μ κ΄κ³λ₯Ό μκ°μ μΌλ‘ λνλΈ ERDλ₯Ό μμ±ν©λλ€.
- μμ: κ³ κ°μ μ¬λ¬ μ£Όλ¬Έμ ν μ μκ³ , νλμ μ£Όλ¬Έμλ μ¬λ¬ μνμ΄ ν¬ν¨λ μ μμ΅λλ€. μ΄λ¬ν κ΄κ³λ₯Ό ERDμ ννν΄ μ€μ²΄ κ°μ κ΄κ³λ₯Ό λͺ
νν ν μ μμ΅λλ€. π
3. μ€μ²΄μ λν μμΈ μ μ π
μ€μ²΄(Entity)λ₯Ό ꡬ체μ μΌλ‘ μ μνλ κ³Όμ μ
λλ€. μ΄ λ¨κ³μμλ μ€μ²΄κ° λ°μ΄ν°λ² μ΄μ€μμ μ΄λ€ μν μ νκ³ , μ΄λ€ νΉμ±μ κ°μ§μ§ μ€λͺ
ν©λλ€.
- μμ: 'κ³ κ°' μ€μ²΄μλ κ³ κ° ID, κ³ κ° μ΄λ¦, μ£Όμ λ±μ μμ±μ΄ ν¬ν¨λ©λλ€. μ΄λ¬ν μμ±μ μ μνμ¬ λ°μ΄ν°λ² μ΄μ€ λ΄μμ μ€μ²΄μ μν μ ꡬ체νν©λλ€.
4. μλ³μ μ μ λ° μ
무 κ·μΉ μ€μ π
κ° μ€μ²΄λ₯Ό κ³ μ νκ² κ΅¬λΆν μ μλ μλ³μ(Identifier)λ₯Ό μ μν©λλ€. μ΄ μλ³μλ λ°μ΄ν°λ² μ΄μ€ λ΄μμ μ€μ²΄λ₯Ό ꡬλΆνλ μ€μν μμ±μ΄λ©°, μ
무 κ·μΉμ λ°λΌ κ΄λ¦¬λ©λλ€.
- μμ: 'κ³ κ° ID'λ κ³ κ°μ κ³ μ νκ² μλ³νλ μλ³μμ
λλ€. μ΄ κ°μ μ€λ³΅λ μ μλ€λ κ·μΉμ μ€μ ν΄ λ°μ΄ν°λ² μ΄μ€μ 무결μ±μ μ μ§ν©λλ€.
5. μ€μ²΄λ³ μμ± μμΈν βοΈ
μ€μ²΄κ° κ°μ§λ μμ±(Attribute)μ ꡬ체μ μΌλ‘ μ μν©λλ€. κ° μ€μ²΄μ μμ±μ λμ΄νκ³ , μ΄ μμ±λ€μ λ°μ΄ν° νμ
κ³Ό μ μ½ μ‘°κ±΄μ μ€μ ν©λλ€.
- μμ: 'κ³ κ°' μ€μ²΄μ μμ±μΌλ‘λ κ³ κ° μ΄λ¦, μ΄λ©μΌ, μ νλ²νΈκ° μμΌλ©°, κ°κ°μ λ°μ΄ν° νμ
μ λ¬Έμμ΄κ³Ό μ«μ νμμΌλ‘ μ μλ©λλ€.
6. μμ± λ° μμ μμΈ μ μ π
μμ±μ κ°μ΄ κ°μ ΈμΌ ν λ²μ(μμ)λ₯Ό μ μνλ λ¨κ³μ
λλ€. μμ± κ°μ΄ κ°μ§ μ μλ μ΅μκ°, μ΅λκ° λλ νΉμ νμ λ±μ μ§μ νμ¬ λ°μ΄ν°μ μΌκ΄μ±μ μ μ§ν©λλ€.
- μμ: κ³ κ°μ μ΄λ©μΌ μμ±μ '@' λ¬Έμλ₯Ό ν¬ν¨ν΄μΌ νλ©°, μ νλ²νΈλ 10μ리 μ«μλ‘ μ ννλ λ°©μμΌλ‘ μ μλ©λλ€.
7. μμ±μ λν μ
무 κ·μΉ μ μ π
κ° μμ±μ λν λΉμ¦λμ€ κ·μΉμ μ€μ νλ λ¨κ³μ
λλ€. μ΄λ μμ±μ κ°μ λν 쑰건μ΄λ κ°μ΄ λ³κ²½λλ κ·μΉ λ±μ μ€μ νμ¬ λ°μ΄ν°μ μ νμ±κ³Ό 무결μ±μ μ μ§ν©λλ€.
- μμ: 'μ£Όλ¬Έ' μ€μ²΄μμλ μ£Όλ¬Έ μνκ° 'μ²λ¦¬ μ€', 'λ°°μ‘ μ€', 'μλ£' μ€ νλλ‘ μ νλλ©°, μ£Όλ¬Έ κΈμ‘μ μμκ° λ μ μλ€λ κ·μΉμ μ€μ ν μ μμ΅λλ€.
8. μ¬μ©μμ ν¨κ» λͺ¨λΈ κ²ν π₯
λ§μ§λ§μΌλ‘, μ€κ³λ ERDμ μμ±, κ·μΉ λ±μ μ¬μ©μμ ν¨κ» κ²ν νλ λ¨κ³μ
λλ€. μ¬μ©μμ μꡬ μ¬νμ΄ μ νν λ°μλμλμ§ νμΈνκ³ , λλ½λ λΆλΆμ΄ μλμ§ κ²ν ν©λλ€. νΌλλ°±μ λ°μν΄ λͺ¨λΈμ μμ νκ±°λ 보μν μ μμ΅λλ€.
- μμ: μ¨λΌμΈ μΌνλͺ° μμ€ν
μ κ²½μ°, κ³ κ° μλΉμ€ λ΄λΉμμ ν¨κ» λ°μ΄ν° λͺ¨λΈμ κ²ν νμ¬ μ€λ¬΄μ νμν λͺ¨λ λ°μ΄ν°κ° μ μ μλμλμ§ νμΈν©λλ€.
1. κ°μ²΄ (Entity) π§βπΌ
κ°μ²΄(Entity)λ νμ€ μΈκ³μμ λ°μ΄ν°λ‘ κ΄λ¦¬λμ΄μΌ ν μ¬λ, μ¬λ¬Ό, μ₯μ, μ¬κ±΄ λ±μ μλ―Έν΄μ. μ΄λ λ°μ΄ν°λ² μ΄μ€μ μ μ₯λκ³ κ΄λ¦¬λλ μ€μν κ°μ²΄λ‘, μλ₯Ό λ€μ΄ κ³ κ°, μ ν, μ£Όλ¬Έ λ±μ΄ μ΄μ ν΄λΉν©λλ€.
-
Entity μ°Ύλ λ²:
-
μμμ μΌλ‘ μ‘΄μ¬νλ κ²: ν λ² μμ±λλ©΄ μ§μμ μΌλ‘ κ΄λ¦¬λμ΄μΌ ν λμμ΄μμ. μΌμμ μΈ κ²μ΄ μλλΌ, μ₯κΈ°κ° μ‘΄μ¬νκ±°λ μΆμ ν νμκ° μλ κ°μ²΄μ
λλ€.
- μ: κ³ κ°, μ ν, μ£Όλ¬Έ λ±μ μκ°μ΄ μ§λλ κΎΈμ€ν κ΄λ¦¬λμ΄μΌ νλ λ°μ΄ν°μ
λλ€.
-
κ³ μ νκ² μλ³ν μ μλ λ°μ΄ν° μμ: κ° κ°μ²΄λ κ³ μ νκ² μλ³ν μ μλ μμ±μ κ°μ ΈμΌ ν©λλ€. μ΄λ₯Ό ν΅ν΄ κ°μ μ νμ μ¬λ¬ κ°μ²΄λ₯Ό ꡬλΆν μ μμ£ .
- μ: κ³ κ° ID, μ ν λ²νΈ, μ£Όλ¬Έ λ²νΈ λ±μ΄ κ°μ²΄λ₯Ό κ³ μ νκ² μλ³νλ μμ±μ
λλ€.
-
λ°λμ μμ±μ κ°μ ΈμΌ ν¨: κ°μ²΄λ λ°λμ νλ μ΄μμ μμ±(Attribute)μ κ°μ ΈμΌ ν©λλ€. μμ±μ κ°μ²΄μ λν ꡬ체μ μΈ μ 보λ₯Ό λνλ΄μ£ .
- μ: 'κ³ κ°' κ°μ²΄λ κ³ κ° μ΄λ¦, μ νλ²νΈ λ±μ μμ±μ κ°μ§ μ μμ΅λλ€.
-
λͺ
μ¬μ νν: κ°μ²΄λ μ£Όλ‘ λͺ
μ¬λ‘ ννλΌμ. μμ€ν
λ΄μμ μ€μν μν μ νλ κ°μ²΄μ΄κΈ° λλ¬Έμ, λͺ
μ¬ν λ¨μ΄λ‘ νννλ κ²μ΄ μΌλ°μ μ
λλ€.
- μ: κ³ κ°(Customer), μ£Όλ¬Έ(Order), μ ν(Product) λ±.
2. μμ± (Attribute) π·οΈ
μμ±(Attribute)μ κ°μ²΄μ κ΄ν ꡬ체μ μΈ μ 보λ₯Ό μ μ₯νλ μμμ
λλ€. μμ±μ κ°μ²΄μ μ±μ§, μν, νΉμ± λ±μ λνλ΄λ©°, μ΅μ’
μ μΌλ‘λ ν
μ΄λΈμ 컬λΌ(Column)μΌλ‘ μ¬μ©λ©λλ€.
-
μμ±μ νΉμ§:
-
μ μ₯ν νμκ° μλ μ 보: μμ±μ λ°μ΄ν°λ² μ΄μ€μ μ μ₯ν κ°μΉκ° μλ μ 보λ₯Ό λ΄μ΅λλ€.
- μ: 'κ³ κ°' κ°μ²΄μ μμ±μΌλ‘λ κ³ κ° μ΄λ¦, μ£Όμ, μ νλ²νΈ λ±μ΄ μμ΅λλ€.
-
κ°μ²΄μ νΉμ±: μμ±μ κ°μ²΄κ° κ°μ§ λ€μν μ 보λ₯Ό λνλ΄λ©°, μ΄λ₯Ό ν΅ν΄ κ°μ²΄μ νΉμ§μ νμ
ν μ μμ΄μ.
- μ: μ νμ κ°κ²©, μ¬κ³ μν, μ£Όλ¬Έ λ μ§ λ±μ΄ μμ±μΌλ‘ μ μλ μ μμ΅λλ€.
-
μμ±μ κ°μ: κ°μ²΄μ ν¬ν¨λλ μμ±μ 10κ° λ΄μΈλ‘ μ μ§νλ κ²μ΄ λ°λμ§ν©λλ€. λ무 λ§μΌλ©΄ κ΄λ¦¬κ° 볡μ‘ν΄μ§ μ μμ£ .
-
μμ±μ μ ν:
-
κΈ°μ΄μμ±: κ°μ²΄κ° μλ κ°μ§κ³ μλ κΈ°λ³Έ μμ±μ
λλ€.
- μ: 'κ³ κ°'μ μ΄λ¦, μ£Όμ, μ νλ²νΈ.
-
μΆμΆμμ±: κΈ°μ΄ μμ±μ λ°νμΌλ‘ κ³μ°λ μμ±μ
λλ€.
- μ: 'μ£Όλ¬Έ'μμ μν κ°κ²©κ³Ό μλμ κ³±ν΄ κ³μ°λ μ΄ μ£Όλ¬Έ κΈμ‘.
-
μ€κ³μμ±: ν¨μ¨μ±μ λμ΄κΈ° μν΄ μΆκ°λ μμ±μ
λλ€.
- μ: μ£Όλ¬Έ μνλ₯Ό λνλ΄λ 'μ£Όλ¬Έ μν' μμ±.
3. μλ³μ (Identifier) π
μλ³μ(Identifier)λ λ°μ΄ν°λ² μ΄μ€μμ νλμ κ°μ²΄ λ΄μ μΈμ€ν΄μ€λ₯Ό μ μΌνκ² κ΅¬λΆν μ μλ μμ±μ
λλ€. μ΄λ₯Ό ν΅ν΄ κ° μΈμ€ν΄μ€λ₯Ό μ νν μλ³ν μ μμ΅λλ€.
4. νλ³΄ν€ (Candidate Key) π―
ν보ν€(Candidate Key)λ κ°μ²΄ λ΄μμ κ° μΈμ€ν΄μ€λ₯Ό κ³ μ νκ² κ΅¬λΆν μ μλ μμ± λλ μμ± κ·Έλ£Ήμ λ§ν΄μ. κ·Έ μ€ νλλ κΈ°λ³Έν€(Primary Key)λ‘ μ νλ©λλ€.
- νΉμ§: μ€λ³΅λμ§ μκ³ κ° μΈμ€ν΄μ€λ₯Ό κ³ μ νκ² κ΅¬λΆν μ μμ΄μΌ ν©λλ€.
- μμ: κ³ κ° IDμ μ΄λ©μΌ μ£Όμκ° κ³ μ ν κ²½μ°, λ λ€ ν보ν€κ° λ μ μμ΅λλ€.
5. κΈ°λ³Έν€ (Primary Key) π
κΈ°λ³Έν€(Primary Key)λ νλ³΄ν€ μ€μμ κ°μ²΄ λ΄ μΈμ€ν΄μ€λ₯Ό κ³ μ νκ² μλ³νλ κ°μ₯ μ ν©ν ν€μ
λλ€. κ° λ μ½λλ₯Ό μ μΌνκ² κ΅¬λΆνλ©°, λ°μ΄ν°λ² μ΄μ€μ 무결μ±μ μ μ§νλ λ° μ€μν μν μ ν΄μ.
- κΈ°λ³Έν€ μ μ κΈ°μ€:
- λνμ±: μ€μ²΄λ₯Ό λνν μ μμ΄μΌ ν©λλ€.
- 짧μ κΈΈμ΄: λ°μ΄ν°λ² μ΄μ€ μ±λ₯μ κ³ λ €ν΄ κ°λ₯ν 짧μ κΈΈμ΄λ‘ μ€μ νλ κ²μ΄ μ’μ΅λλ€.
- μμ: κ³ κ° IDλ κ³ κ°μ κ³ μ νκ² μλ³ν μ μλ λνμ μΈ κΈ°λ³Έν€μ
λλ€.
6. λμ²΄ν€ (Alternate Key) π
λ체ν€(Alternate Key)λ νλ³΄ν€ μ€ κΈ°λ³Έν€λ‘ μ νλμ§ μμ μμ±μ
λλ€. μ¬μ ν κ° μΈμ€ν΄μ€λ₯Ό κ³ μ νκ² κ΅¬λΆν μ μλ ν€μμ.
- μμ: κ³ κ° IDκ° κΈ°λ³Έν€λ‘ μ νλλ©΄, μ΄λ©μΌ μ£Όμλ λ체ν€κ° λ μ μμ΅λλ€.
7. 볡ν©ν€ (Composite Key) π
볡ν©ν€(Composite Key)λ λ μ΄μμ μμ±μ κ²°ν©ν΄ κΈ°λ³Έν€λ‘ μ¬μ©νλ κ²½μ°μ
λλ€. μ¬λ¬ μμ±μ μ‘°ν©μ ν΅ν΄ μ μΌν μλ³μλ₯Ό λ§λλ λ°©μμ΄μ£ .
- νΉμ§: κ°λ³ μμ±μ κ³ μ νμ§ μμ§λ§, μ¬λ¬ μμ±μ ν©μΉλ©΄ κ³ μ ν΄μ§ λ μ¬μ©λ©λλ€.
- μμ: μ£Όλ¬Έ λ²νΈμ μ ν IDλ₯Ό κ²°ν©ν΄ 볡ν©ν€λ‘ μ€μ ν μ μμ΅λλ€.
8. λλ¦¬ν€ (Surrogate Key) π§©
λ리ν€(Surrogate Key)λ μλ λ°μ΄ν°μ μ‘΄μ¬νμ§ μμ§λ§, μ±λ₯ μ΅μ νλ₯Ό μν΄ μΆκ°λ μΈμμ μΈ ν€μ
λλ€. μ£Όλ‘ λ°μ΄ν°λ² μ΄μ€μμ μλμΌλ‘ μμ±λλ κ°μΌλ‘ μ¬μ©λ©λλ€.
- νΉμ§: μλ―Έ μμ΄ μλ³ λͺ©μ μΌλ‘λ§ μ¬μ©λ©λλ€.
- μμ: μλ μμ±λλ μ£Όλ¬Έ IDλ λ리ν€λ‘ μ¬μ©λ μ μμ΅λλ€.
1. κ΄κ³ (Relationship) π
κ΄κ³(Relationship)λ λ κ° μ΄μμ Entity(κ°μ²΄) κ°μ μ
무μ μΈ μ°κ΄μ±μ μλ―Έν©λλ€. μλ₯Ό λ€μ΄, 'κ³ κ°'κ³Ό 'μ£Όλ¬Έ'μ μλ‘ κ΄λ ¨μ΄ μμΌλ©°, κ³ κ°μ΄ μ£Όλ¬Έμ νλ€λ μ¬μ€μ΄ κ΄κ³λ‘ ννλ μ μμ΄μ. κ΄κ³λ μ€μ²΄λ€μ΄ μλ‘ μ΄λ»κ² μνΈμμ©νκ³ , μ΄λ€ μ°κ΄μ±μ κ°μ§λμ§λ₯Ό λͺ
νν μ μνλ μ€μν μμμ
λλ€.
2. κ΄κ³ λΆμ (Relationship Analysis) π
κ΄κ³ λΆμμμλ λ Entity κ°μ μ°κ΄μ±μ ꡬ체μ μΌλ‘ νμ
νκ³ , μμ€ν
μ νμ¬μ λ―ΈλκΉμ§ κ³ λ €ν λΆμμ΄ νμν©λλ€. μμ€ν
μ΄ νμ₯λλλΌλ μ΄ κ΄κ³κ° μ ν¨νμ§ νμΈνλ κ²μ΄ μ€μν΄μ.
- κ° Entity κ° μ‘΄μ¬ μ¬λΆ κ²°μ : λ μ€μ²΄κ° μ€μ λ‘ κ΄κ³λ₯Ό κ°μ§κ³ μλμ§, λλ λ―Έλμ μ΄λ€ λ°©μμΌλ‘ κ΄κ³λ₯Ό κ°μ§ μ μλμ§ λΆμν©λλ€.
- μ: 'κ³ κ°'μ 'μ£Όλ¬Έ'μ ν μ μκ³ , 'μ£Όλ¬Έ'μ 'κ³ κ°'μ μν΄ λ°μνλ―λ‘ λ Entity κ°μ κ΄κ³κ° μ‘΄μ¬ν©λλ€.
- λ―Έλ μ¬μ© κ³ λ €: νμ¬λΏλ§ μλλΌ, μμ€ν
μ΄ νμ₯λ λμλ κ΄κ³κ° μ ν¨νμ§ κ²ν ν©λλ€. λ―Έλμ κΈ°λ₯μ΄λ μꡬμ¬νμ μΌλμ λκ³ λΆμν΄μΌ ν©λλ€.
3. E-R DiagramμΌλ‘ κ΄κ³ μ€μ νλ μμ π
E-R Diagram(ERD)μ Entityμ κ·Έλ€ κ°μ κ΄κ³λ₯Ό μκ°μ μΌλ‘ νννλ λ€μ΄μ΄κ·Έλ¨μ΄μμ. Entity κ° κ΄κ³λ₯Ό μ€μ ν λλ λ€μμ μμλ₯Ό λ°λ¦
λλ€.
1. κ΄κ³ μλ λ μ€μ²΄λ₯Ό μ€μ μΌλ‘ μ°κ²°νκ³ κ΄κ³λ₯Ό λΆμ¬ ποΈ
λ¨Όμ , λ κ°μ Entityκ° μ΄λ€ κ΄κ³μ μλμ§λ₯Ό λνλ΄κΈ° μν΄ μ€μ μΌλ‘ μ°κ²°νκ³ , κ·Έ κ΄κ³μ λν΄ λΌλ²¨μ λΆμ¬ μ€λͺ
ν©λλ€.
- μμ: 'κ³ κ°'κ³Ό 'μ£Όλ¬Έ'μ μ€μ μΌλ‘ μ°κ²°νκ³ , "κ³ κ°μ μ£Όλ¬Ένλ€"λΌλ κ΄κ³λ₯Ό λΆμ¬ν μ μμ΄μ.
2. κ΄κ³ μ°¨μ(Cardinality)λ₯Ό νν π’
μ°¨μμ±(Cardinality)μ νλμ Entity μΈμ€ν΄μ€κ° λ€λ₯Έ Entity μΈμ€ν΄μ€μ λͺ κ°μ κ΄κ³λ₯Ό λ§Ίμ μ μλμ§ λνλ
λλ€.
-
μ°¨μμ±μ μ’
λ₯:
-
1:1 (μΌλμΌ): λ μ€μ²΄μ μΈμ€ν΄μ€κ° μλ‘ νλμ©λ§ λμλλ κ²½μ°.
- μ: 'μ§μ'κ³Ό 'μ¬μμ¦'μ κ΄κ³λ 1:1μΌ μ μμ΅λλ€. κ° μ§μμ νλμ μ¬μμ¦λ§ κ°μ§κ³ , μ¬μμ¦μ ν μ§μμκ²λ§ λμλ©λλ€.
-
1:N (μΌλλ€): ν μ€μ²΄μ μΈμ€ν΄μ€κ° λ€λ₯Έ μ€μ²΄μ μ¬λ¬ μΈμ€ν΄μ€μ μ°κ²°λ μ μλ κ²½μ°.
- μ: 'κ³ κ°'κ³Ό 'μ£Όλ¬Έ' κ°μ κ΄κ³λ 1:Nμ
λλ€. ν κ³ κ°μ μ¬λ¬ μ£Όλ¬Έμ ν μ μμ§λ§, κ° μ£Όλ¬Έμ ν κ³ κ°μλ§ μν©λλ€.
-
N:N (λ€λλ€): λ μ€μ²΄κ° μλ‘ μ¬λ¬ κ°μ μΈμ€ν΄μ€μ κ΄κ³λ₯Ό λ§Ίμ μ μλ κ²½μ°.
- μ: 'νμ'κ³Ό 'κ°μ' κ°μ κ΄κ³λ N:Nμ
λλ€. μ¬λ¬ νμμ΄ μ¬λ¬ κ°μλ₯Ό λ€μ μ μκ³ , ν κ°μμλ μ¬λ¬ νμμ΄ μ°Έμ¬ν μ μμ΅λλ€.
3. μ νμ±(Optionality)μ νμ β
μ νμ±(Optionality)μ λ Entity κ°μ κ΄κ³κ° νμμΈμ§, μ νμ μΈμ§ λνλ
λλ€.
- νμ(Mandatory): κ΄κ³κ° λ°λμ μ±λ¦½ν΄μΌ νλ κ²½μ°.
- μ: 'μ£Όλ¬Έ'μ λ°λμ 'κ³ κ°'μ μν΄ μμ±λμ΄μΌ νλ―λ‘, μ£Όλ¬Έκ³Ό κ³ κ° κ°μ κ΄κ³λ νμμ
λλ€.
- μ νμ (Optional): κ΄κ³κ° μ±λ¦½λμ§ μμ μλ μλ κ²½μ°.
- μ: 'κ³ κ°'μ λ°λμ μ£Όλ¬Έμ ν νμκ° μμΌλ―λ‘, κ³ κ°κ³Ό μ£Όλ¬Έ κ°μ κ΄κ³λ μ νμ μΌ μ μμ΅λλ€.
μ νμ± μ€μ λ°©λ²:
- μ
무 κ·μΉμ λ°λΌ μ νμ±μ λ¨Όμ νλ¨ν©λλ€.
- κ΄κ³κ° νμ μ±λ¦½ν΄μΌ νλμ§, λλ μ±λ¦½λμ§ μμλ λλ κ²½μ°κ° μλμ§ κ³ λ €ν©λλ€.
- κ° Entityμμ μμͺ½ λ°©ν₯μΌλ‘ κ΄κ³λ₯Ό μ‘°μ¬νμ¬ μ νμ±μ μ€μ ν©λλ€.
- μ: κ³ κ°μ μ£Όλ¬Έμ νμ§ μμλ λμ§λ§, μ£Όλ¬Έμ λ°λμ κ³ κ°μ μν΄ μμ±λμ΄μΌ νλ κ²½μ°, κ³ κ°κ³Ό μ£Όλ¬Έ κ°μ μ νμ±μ λ€λ₯Ό μ μμ΅λλ€.
λ
Όλ¦¬μ λ°μ΄ν°λ² μ΄μ€ λͺ¨λΈλ§ π οΈ
λ
Όλ¦¬μ λ°μ΄ν°λ² μ΄μ€ λͺ¨λΈλ§μ κ°λ
μ λ°μ΄ν°λ² μ΄μ€ λͺ¨λΈλ§μμ μ μλ ER-Diagramμ μ€μ κ΄κ³ν λ°μ΄ν°λ² μ΄μ€(RDBMS)μμ ꡬνν μ μλλ‘ κ΅¬μ²΄ννλ κ³Όμ μ΄μμ. μ΄ λ¨κ³μμλ ERDλ₯Ό ν
μ΄λΈλ‘ λ³ννκ³ , μ€ν€λ§ μ€κ³λ₯Ό ν΅ν΄ λ°μ΄ν° ꡬ쑰λ₯Ό μΈλ°νκ² λ€λ¬μ΅λλ€. λν, λ°μ΄ν° μ κ·ν(Normalization)λ₯Ό ν΅ν΄ μ€λ³΅μ μ΅μννκ³ , λ°μ΄ν°λ² μ΄μ€μ 무결μ±μ μ μ§ν©λλ€.
λ
Όλ¦¬μ λ°μ΄ν°λ² μ΄μ€ λͺ¨λΈλ§μ μ£Όμ κ°λ
π‘
-
κ°λ
μ λ°μ΄ν°λ² μ΄μ€ λͺ¨λΈλ§μμ μ μλ ER-Diagram πΊοΈ
- κ°λ
μ λͺ¨λΈλ§μμλ νμ€ μΈκ³μ μ€μ²΄(Entity)μ κ·Έλ€ κ°μ κ΄κ³(Relationship)λ₯Ό μΆμμ μΌλ‘ ννν ERDλ₯Ό μμ±ν©λλ€.
- ERDλ μ€μ²΄, μμ±, κ΄κ³λ₯Ό μκ°μ μΌλ‘ ννν λͺ¨λΈλ‘, λ
Όλ¦¬μ λͺ¨λΈλ§ λ¨κ³μμλ μ΄λ₯Ό κ΄κ³ν λ°μ΄ν°λ² μ΄μ€μ ν
μ΄λΈλ‘ λ³νν©λλ€.
-
Mapping Rule μ μ© π
- Mapping Ruleμ ERDμ μμλ₯Ό κ΄κ³ν λ°μ΄ν°λ² μ΄μ€ ꡬ쑰μ λ§κ² λ³ννλ κ·μΉμ΄μμ.
- κ° μ€μ²΄(Entity)λ ν
μ΄λΈ(Table)λ‘, μμ±(Attribute)μ 컬λΌ(Column)μΌλ‘, κ΄κ³(Relationship)λ μΈλν€(Foreign Key)λ‘ λ³νλ©λλ€.
- μ£Όμ Mapping Rule:
- Entity -> Table: μ€μ²΄(Entity)λ κ΄κ³ν λ°μ΄ν°λ² μ΄μ€μμ ν
μ΄λΈλ‘ λ³νλ©λλ€.
- Attribute -> Column: μμ±(Attribute)μ ν
μ΄λΈμ 컬λΌμΌλ‘ λ³νλ©λλ€.
- Relationship -> Foreign Key: μ€μ²΄ κ°μ κ΄κ³λ μΈλν€λ₯Ό ν΅ν΄ μ°κ²°λλ©°, λ°μ΄ν°μ μ°Έμ‘° 무결μ±μ μ μ§νλ λ° μ€μν μν μ ν©λλ€.
μμ:
- 'κ³ κ°'κ³Ό 'μ£Όλ¬Έ'μ΄ 1:N κ΄κ³μΈ κ²½μ°, κ³ κ° ν
μ΄λΈκ³Ό μ£Όλ¬Έ ν
μ΄λΈμ λ§λ€κ³ , μ£Όλ¬Έ ν
μ΄λΈμ κ³ κ° IDλ₯Ό μΈλν€λ‘ μΆκ°νμ¬ λ ν
μ΄λΈ κ°μ κ΄κ³λ₯Ό ꡬνν μ μμ΅λλ€.
-
μ κ·ν(Normalization) βοΈ
- μ κ·νλ λ°μ΄ν°λ₯Ό μ€λ³΅ μμ΄ μ μ₯νκ³ , λ°μ΄ν° 무결μ±μ μ μ§νκΈ° μν κ³Όμ μ
λλ€. λ°μ΄ν°λ² μ΄μ€ μ±λ₯μ κ°μ νκ³ λΉμΌκ΄μ± λ¬Έμ λ₯Ό λ°©μ§νλ λ° μ€μν μν μ νμ£ .
- μ κ·νμ λͺ©μ μ λ°μ΄ν° μ€λ³΅μ μ΅μννκ³ , λ°μ΄ν° λ³κ²½ μμ
(μ
λ°μ΄νΈ, μμ , μ½μ
)μμ λ°μν μ μλ λΉμΌκ΄μ± λ¬Έμ λ₯Ό λ°©μ§νλ κ²μ
λλ€.
μ κ·ν κ³Όμ :
- μ 1μ κ·ν(1NF): κ° μ»¬λΌμ λ¨μΌ κ°μ κ°μ ΈμΌ ν΄μ. μ¬λ¬ κ°μ 컬λΌμ μ μ₯νμ§ μκ³ , λ°μ΄ν°λ μμμ±μ κ°μ ΈμΌ ν©λλ€.
- μ 2μ κ·ν(2NF): μ 1μ κ·νμ λ§μ‘±νλ©΄μ, κΈ°λ³Έν€κ° μλ λͺ¨λ μμ±μ΄ κΈ°λ³Έν€ μ 체μ λν΄ μμ ν¨μμ μ’
μμ κ°μ ΈμΌ ν©λλ€.
- μ 3μ κ·ν(3NF): μ 2μ κ·νμ λ§μ‘±νλ©΄μ, κΈ°λ³Έν€κ° μλ μμ±λ€μ΄ μ΄νμ μ’
μ κ΄κ³μ μμ§ μμμΌ ν©λλ€.
μ κ·ν μμ:
- 1NF: 'μ£Όλ¬Έ' ν
μ΄λΈμμ 'μ ν' 컬λΌμ μ¬λ¬ μ νμ μ μ₯νλ λμ , κ° μ£Όλ¬Έμ λν΄ νλμ μ νλ§ κΈ°λ‘.
- 2NF: 'μ£Όλ¬Έ' ν
μ΄λΈμμ 'μ£Όλ¬Έ λ²νΈ'λ‘ μ£Όλ¬Έμ κ³ μ νκ² μλ³νκ³ , 'κ³ κ° ID'λ ν΄λΉ μ£Όλ¬Έμ λν΄ μμ νκ² μ’
μλμ΄μΌ ν©λλ€.
- 3NF: 'κ³ κ°' ν
μ΄λΈμμ κ³ κ°μ μ£Όμμ μ νλ²νΈκ° μλ‘ μ’
μμ μ΄μ§ μκ² λΆλ¦¬.
μ£Όμ:
- κ³Όλν μ κ·νλ λ°μ΄ν°λ² μ΄μ€μ μ±λ₯μ μ νμν¬ μ μμΌλ―λ‘, μ€λ¬΄μμλ μ μ ν μμ€μμ μ κ·νλ₯Ό μ μ©νλ κ²μ΄ μ€μν΄μ.
κΈ°λ³Έν€(Primary Key) π
- νλ³΄ν€ μ€μμ μ μ λ μ£Ό ν€: νλ³΄ν€ μ€μμ ν κ°λ₯Ό μ ννμ¬ κ° λ μ½λλ₯Ό κ³ μ νκ² μλ³νλ λ° μ¬μ©λ©λλ€.
- Null κ°μ κ°μ§ μ μμ: κΈ°λ³Έν€λ λ μ½λλ₯Ό κ³ μ νκ² μλ³ν΄μΌ νλ―λ‘, λΉμ΄μλ κ°(Null)μ νμ©νμ§ μμ΅λλ€.
- μ€λ³΅ λΆκ°: κΈ°λ³Έν€λ κ° λ μ½λκ° κ³ μ ν΄μΌ νλ―λ‘, λμΌν κ°μ΄ μ€λ³΅λμ΄ μ μ₯λ μ μμ΅λλ€.
μ°Έμ‘°ν€, μΈλν€ (Foreign Key) π
- κ΄κ³ μ€μ μ μν ν€: λ μν°ν°(Entity) κ°μ κ΄κ³λ₯Ό λ§Ίμ λ, ν μν°ν°μ μμ±(Attribute)μ λ€λ₯Έ μν°ν°μμ μ°Έμ‘°νλ ν€λ‘ μ¬μ©λ©λλ€.
- 릴λ μ΄μ
κ°μ μ°Έμ‘°: μ°Έμ‘°ν€λ 릴λ μ΄μ
(ν
μ΄λΈ) κ°μ μ°κ²°μ μ μ§νλ©°, λ°μ΄ν° 무결μ±μ 보μ₯ν©λλ€. μλ₯Ό λ€μ΄, 'μ£Όλ¬Έ' ν
μ΄λΈμ κ³ κ° IDλ 'κ³ κ°' ν
μ΄λΈμ κΈ°λ³Έν€λ₯Ό μ°Έμ‘°νλ μΈλν€κ° λ μ μμ΅λλ€.
Mapping Rule π§©
Mapping Ruleμ κ°λ
μ λͺ¨λΈλ§μμ λμΆλ κ°μ²΄(Entity)μ κ΄κ³(Relationship)λ₯Ό μ€μ ν
μ΄λΈκ³Ό 컬λΌμΌλ‘ λ³ννλ κ·μΉμ
λλ€.
- λ¨μ μν°ν° -> ν
μ΄λΈ(Table): κ°μ²΄(Entity)λ κ΄κ³ν λ°μ΄ν°λ² μ΄μ€μμ ν
μ΄λΈλ‘ λ³νλ©λλ€.
- μμ±(Attribute) -> 컬λΌ(Column): κ°μ²΄ λ΄μ μμ±μ λ°μ΄ν°λ² μ΄μ€ ν
μ΄λΈμ 컬λΌμΌλ‘ λ³νλ©λλ€.
- μλ³μ(Identifier) -> κΈ°λ³Έν€(Primary Key): κ°μ²΄μ μλ³μλ ν
μ΄λΈμ κΈ°λ³Έν€λ‘ μ€μ λ©λλ€.
- κ΄κ³(Relationship) -> μΈλν€(Foreign Key): κ°μ²΄ κ°μ κ΄κ³λ μ°Έμ‘°ν€(μΈλν€)λ₯Ό ν΅ν΄ ν
μ΄λΈ κ°μ μ°κ²°λ‘ ꡬνλ©λλ€.
1:1 (μΌλμΌ) κ΄κ³ μμ π₯
μ¬μ(Employee) ν
μ΄λΈ
Employee_ID | Name | Department |
---|
1 | John Doe | HR |
2 | Jane Smith | IT |
3 | Alice Brown | Marketing |
μ¬μμ¦(Badge) ν
μ΄λΈ
Badge_ID | Employee_ID (FK) | Issue_Date |
---|
101 | 1 | 2023-01-15 |
102 | 2 | 2023-02-01 |
103 | 3 | 2023-03-10 |
- 1:1 κ΄κ³ μ€λͺ
: κ° μ¬μ(Employee)μ νλμ μ¬μμ¦(Badge)μ κ°μ§κ³ μμΌλ©°, Employee_IDκ° Badge ν
μ΄λΈμμ μΈλν€(Foreign Key)λ‘ μ¬μ©λ©λλ€. μ¦, κ° Employeeλ νλμ Badgeλ§ κ°μ§ μ μμ΅λλ€. μΌλμΌ κ΄κ³λ μ¬μμ κ³ μ ν μ λΆ μ¦λͺ
κ³Ό κ°μ μ 보μ μ ν©ν©λλ€.
1:N (μΌλλ€) κ΄κ³ μμ π€β‘οΈπ¦
κ³ κ°(Customer) ν
μ΄λΈ
Customer_ID | Name | Phone |
---|
1 | John Doe | 010-1234-5678 |
2 | Jane Smith | 010-9876-5432 |
3 | Alice Brown | 010-5555-7777 |
μ£Όλ¬Έ(Order) ν
μ΄λΈ
Order_ID | Customer_ID (FK) | Order_Date |
---|
1001 | 1 | 2024-01-10 |
1002 | 2 | 2024-01-11 |
1003 | 1 | 2024-01-12 |
1004 | 3 | 2024-01-13 |
- 1:N κ΄κ³ μ€λͺ
: ν κ³ κ°(Customer)μ μ¬λ¬ κ°μ μ£Όλ¬Έ(Order)μ ν μ μμ΅λλ€. Customer_IDκ° μ£Όλ¬Έ ν
μ΄λΈμμ μΈλν€(Foreign Key)λ‘ μ¬μ©λμ΄, κ° μ£Όλ¬Έμ΄ μ΄λ€ κ³ κ°μ μν΄ λ°μνλμ§ λͺ
μλ©λλ€. μ΄λ κ³ κ°μ΄ μ¬λ¬ λ² κ΅¬λ§€ν μ μλ μν©μ μ ν©ν λ°μ΄ν° ꡬ쑰μ
λλ€.
M:N (λ€λλ€) κ΄κ³ μμ π©βπβοΈπ
νμ(Student) ν
μ΄λΈ
Student_ID | Name |
---|
1 | John Doe |
2 | Jane Smith |
3 | Alice Brown |
κ°μ(Course) ν
μ΄λΈ
Course_ID | Course_Name |
---|
101 | Database Design |
102 | Data Structures |
103 | Operating Systems |
νμ-κ°μ(Student_Course) κ΅μ°¨ ν
μ΄λΈ
Student_ID (FK) | Course_ID (FK) |
---|
1 | 101 |
1 | 102 |
2 | 101 |
3 | 103 |
3 | 102 |
- M:N κ΄κ³ μ€λͺ
: μ¬λ¬ νμ(Student)μ΄ μ¬λ¬ κ°μ(Course)λ₯Ό μκ°ν μ μμ΅λλ€. μ΄λ₯Ό ꡬννκΈ° μν΄ κ΅μ°¨ ν
μ΄λΈ(Student_Course)μ΄ μ¬μ©λλ©°, 볡ν©ν€(Student_ID, Course_ID)λ₯Ό ν΅ν΄ M:N κ΄κ³κ° μ€μ λ©λλ€. μ΄λ₯Ό ν΅ν΄ νμκ³Ό κ°μ κ°μ λ€λλ€ κ΄κ³λ₯Ό κ΄λ¦¬νλ©°, κ°μλ₯Ό λ£λ μ¬λ¬ νμκ³Ό, μ¬λ¬ κ°μλ₯Ό λ£λ νμλ€μ μ½κ² μΆμ ν μ μμ΅λλ€.
μ κ·ν(Normalization) π οΈ
μ κ·νλ Attribute(μμ±) κ°μ μ‘΄μ¬νλ ν¨μμ μ’
μμ±μ λΆμνμ¬, κ΄κ³ν λ°μ΄ν°λ² μ΄μ€ μ€ν€λ§λ₯Ό λ ν¨μ¨μ μ΄κ³ μΌκ΄μ± μκ² μ μ ν΄ λκ°λ μΌλ ¨μ κ³Όμ μ
λλ€. μ΄λ₯Ό ν΅ν΄ λ°μ΄ν°μ μ€λ³΅μ μ€μ΄κ³ , μμ±λ€μ΄ λ³Έλμ μμΉμ μ μ ν λ°°μΉλλλ‘ ν©λλ€.
μ κ·νμ μ£Όμ λͺ©μ π―
- λ°μ΄ν° μ€λ³΅ μ κ±°: λ°μ΄ν° μ€λ³΅μ μ΅μννμ¬ μ μ₯ 곡κ°μ μ μ½νκ³ , λ°μ΄ν° λ³κ²½ μ λ°μν μ μλ λΉμΌκ΄μ± λ¬Έμ λ₯Ό λ°©μ§ν©λλ€.
- λ°μ΄ν° λ¬΄κ²°μ± μ μ§: μ κ·νλ₯Ό ν΅ν΄ λ°μ΄ν°μ μ νμ±κ³Ό μΌκ΄μ±μ μ μ§ν μ μμ΅λλ€.
- μμ± μμΉ μ΅μ ν: μμ±λ€μ΄ ν΄λΉ μ€μ²΄(Entity) λλ ν
μ΄λΈμ μ¬λ°λ₯΄κ² λ°°μΉλλλ‘ νμ¬ κ΄λ¦¬μ μ‘°ν ν¨μ¨μ±μ λμ
λλ€.
μ κ·νλ μ¬λ¬ λ¨κ³λ‘ λλλ©°, κ°κ°μ λ¨κ³μμ λ°μ΄ν° κ΅¬μ‘°κ° λμ± μ κ΅ν΄μ§κ³ , μ€λ³΅μ΄ μ κ±°λ©λλ€. κ° λ¨κ³λ μμ λ¨κ³μ μꡬ μ¬νμ λ§μ‘±νλ©΄μ λ κ°λ ₯ν λ°μ΄ν° ꡬ쑰λ₯Ό μ 곡ν©λλ€.
μ 1μ κ·ν(1NF)μ λ°μ΄ν°λ² μ΄μ€ μ κ·νμ 첫 λ²μ§Έ λ¨κ³λ‘, λͺ¨λ μμ±κ°μ΄ μμκ°(Atomic Value)μ΄μ΄μΌ νλ©°, μ€λ³΅λ λ°μ΄ν°λ λ°λ³΅λλ κ·Έλ£Ή μμ±μ΄ μ κ±°λ μνλ₯Ό μλ―Έν©λλ€. μ 1μ κ·νμμλ κ° μ»¬λΌμ΄ λΆν΄ν μ μλ λ¨μΌ κ°μ μ μ₯ν΄μΌ ν©λλ€.
μ 1μ κ·νμμ ν΄κ²°νκ³ μ νλ λ¬Έμ μ β
- λΆμμ μΈ λ°μ΄ν° μ€λ³΅: κΈ°λ³Έ λ°μ΄ν°μ λ°λ³΅μ μΈ λ°μ΄ν°κ° ν¨κ» μ μ₯λλ©΄μ λ°μ΄ν° μ€λ³΅μ΄ λ°μν©λλ€. μλ₯Ό λ€μ΄, νλμ 컬λΌμ μ¬λ¬ κ°μ΄ μ μ₯λ κ²½μ° λ°μ΄ν°κ° λΆνμνκ² μ€λ³΅λ©λλ€.
- λ°λ³΅ μ§ν©: κ°μ μ νμ λ°μ΄ν°λ₯Ό μ¬λ¬ 컬λΌμ λλμ΄ μ μ₯νλ©΄ λ°μ΄ν°μ μΌκ΄μ±μ μ μ§νκΈ° μ΄λ €μ°λ©°, μ€λ³΅λ λ°μ΄ν°κ° λ§μμ§ μ μμ΅λλ€.
ν΄κ²° λ°©λ² π‘
- λ°λ³΅λλ κ·Έλ£Ή μμ± μ κ±°: κ°μ μ±κ²©μ λ°μ΄ν°κ° μ¬λ¬ 컬λΌμ λλμ΄ μ μ₯λλ μν©μ νΌνκΈ° μν΄ μλ‘μ΄ ν
μ΄λΈμ μμ±ν΄ λ°μ΄ν°λ₯Ό λΆλ¦¬ν©λλ€.
- μλ‘μ΄ ν
μ΄λΈ μμ±: λ°λ³΅λλ λ°μ΄ν°λ₯Ό λ³λμ ν
μ΄λΈλ‘ λΆλ¦¬νκ³ , κΈ°λ³Έ ν
μ΄λΈμ κΈ°λ³Έν€λ₯Ό μ΄μ©ν΄ λ ν
μ΄λΈ κ°μ 1:N κ΄κ³λ₯Ό νμ±ν©λλ€.
μ 1μ κ·νμ νΉμ§ π―
- λ°λ³΅λλ κ·Έλ£Ή μμ± μ κ±°: λμΌν μ±κ²©μ λ°μ΄ν°κ° μ¬λ¬ 컬λΌμ λμ΄λμ§ μλλ‘ μ κ±°ν©λλ€.
- μμκ°μΌλ‘ ꡬμ±: κ° μ»¬λΌμ κ°μ λ μ΄μ λΆν΄ν μ μλ λ¨μΌ κ°μ κ°μ ΈμΌ ν©λλ€.
μμ π
λΉμ κ· λ¦΄λ μ΄μ
(1NF μ μ© μ )
νμκ³Ό κ·Έλ€μ΄ μκ°νλ κ³Όλͺ©μ λΉμ κ· λ¦΄λ μ΄μ
μΌλ‘ λνλΈ ν
μ΄λΈμ
λλ€.
νμ_ID | νμλͺ
| κ³Όλͺ©1 | κ³Όλͺ©2 | κ³Όλͺ©3 |
---|
1 | John | μν | κ³Όν | μμ΄ |
2 | Alice | μν | κ³Όν | NULL |
3 | Bob | μμ΄ | NULL | NULL |
λ¬Έμ μ π©
- μ€λ³΅λ λ°μ΄ν°: κ³Όλͺ©μ΄ μ¬λ¬ κ°μΌ λ κ° νμμ λν΄ μ€λ³΅λ μ λ³΄κ° μ μ₯λ©λλ€.
- λ°λ³΅ μ§ν©: ν νμμ΄ μ¬λ¬ κ³Όλͺ©μ λ£λ κ²½μ°, λμΌν λ°μ΄ν°κ° λ°λ³΅μ μΌλ‘ μ¬λ¬ 컬λΌμ λμ΄λ©λλ€.
μ 1μ κ·ν μ μ© ν π οΈ
λ°μ΄ν°λ₯Ό μμκ°μΌλ‘ λ§λ€κΈ° μν΄, νμ μ 보μ μκ° κ³Όλͺ©μ λΆλ¦¬νμ¬ λ κ°μ ν
μ΄λΈλ‘ κ΄λ¦¬ν©λλ€.
1. νμ ν
μ΄λΈ
νμ_ID | νμλͺ
|
---|
1 | John |
2 | Alice |
3 | Bob |
2. νμ_κ³Όλͺ© ν
μ΄λΈ
νμ_ID | κ³Όλͺ© |
---|
1 | μν |
1 | κ³Όν |
1 | μμ΄ |
2 | μν |
2 | κ³Όν |
3 | μμ΄ |
μ 1μ κ·ν μ μ© κ²°κ³Ό β
- μ€λ³΅λ λ°μ΄ν° μ κ±°: μ€λ³΅λλ κ³Όλͺ© μ 보λ₯Ό νμ_κ³Όλͺ© ν
μ΄λΈλ‘ λΆλ¦¬νμ¬ ν¨μ¨μ μΈ λ°μ΄ν° μ μ₯ ꡬ쑰λ₯Ό λ§λ€μμ΅λλ€.
- λ°λ³΅ μ§ν© μ κ±°: λ μ΄μ κ°μ μ±κ²©μ λ°μ΄ν°λ₯Ό μ¬λ¬ 컬λΌμ λλμ΄ μ μ₯νμ§ μκ³ , κ° λ°μ΄ν°λ₯Ό μμκ°μΌλ‘ μ²λ¦¬ν©λλ€.
- 1:N κ΄κ³ νμ±:
νμ
ν
μ΄λΈκ³Ό νμ_κ³Όλͺ©
ν
μ΄λΈ κ°μ 1:N κ΄κ³κ° μ±λ¦½λμμ΅λλ€. ν λͺ
μ νμμ΄ μ¬λ¬ κ³Όλͺ©μ μκ°ν μ μμΌλ―λ‘ λ ν
μ΄λΈμ 1:N κ΄κ³μ
λλ€.
μ 2μ κ·ν(2NF)μ μ 1μ κ·ν(1NF)μ λ§μ‘±νλ©΄μ, λΆλΆ ν¨μ μ’
μμ±μ μ κ±°ν μνμ
λλ€. μ¬κΈ°μ λΆλΆ ν¨μ μ’
μμ±μ΄λ 볡ν©ν€(Composite Primary Key)μ μΌλΆμλ§ μ’
μλ μμ±μ λ§ν©λλ€. μ 2μ κ·νμμλ μ΄λ¬ν λΆλΆ ν¨μ μ’
μμ±μ μ κ±°νμ¬ λͺ¨λ μμ±μ΄ κΈ°λ³Έν€ μ 체μ μμ μ’
μλλλ‘ λ§λλλ€.
μ 2μ κ·νμμ ν΄κ²°νκ³ μ νλ λ¬Έμ μ π οΈ
- λΆλΆ ν¨μ μ’
μμ±: ν
μ΄λΈμ κΈ°λ³Έν€κ° μ¬λ¬ κ°μ 컬λΌμΌλ‘ ꡬμ±λ κ²½μ°(볡ν©ν€), κΈ°λ³Έν€μ μΌλΆ 컬λΌμλ§ μ’
μλ μμ±μ΄ μ‘΄μ¬ν μ μμ΅λλ€. μ΄λ‘ μΈν΄ λ°μ΄ν° μ€λ³΅ λ° κ΄λ¦¬ λΉν¨μ¨μ±μ΄ λ°μν μ μμ΅λλ€.
- λΆνμν λ°μ΄ν° μ€λ³΅: 볡ν©ν€μ μΌλΆμλ§ μμ‘΄νλ μμ±λ€μ λ°μ΄ν° μ€λ³΅μ μΌκΈ°νκ³ , λ³κ²½ μ λΉν¨μ¨μ μΈ κ΅¬μ‘°λ₯Ό λ§λ€ μ μμ΅λλ€.
ν΄κ²° λ°©λ² π‘
- 볡ν©ν€μ μΌλΆμλ§ μ’
μλ μμ± μ κ±°: κΈ°λ³Έν€μ μΌλΆ μμ±μλ§ μ’
μλ μμ±λ€μ λΆλ¦¬νμ¬, λͺ¨λ μμ±μ΄ κΈ°λ³Έν€ μ 체μ μμ μ’
μλλλ‘ κ΅¬μ‘°λ₯Ό μ¬κ΅¬μ±ν©λλ€.
- μλ‘μ΄ ν
μ΄λΈ μμ±: 볡ν©ν€μ μΌλΆμ μ’
μλ λ°μ΄ν°λ₯Ό λ³λμ ν
μ΄λΈλ‘ λΆλ¦¬ν΄ λΆλΆ ν¨μ μ’
μμ±μ μ κ±°νκ³ , ν¨μ¨μ μΈ κ΅¬μ‘°λ‘ λ³νν©λλ€.
μ 2μ κ·νμ νΉμ§ π―
- μ 1μ κ·ν(1NF)μ λ§μ‘±νλ©΄μ, κΈ°λ³Έν€μ μΌλΆμλ§ μ’
μλ μμ±μ μ κ±°νμ¬ μμ ν¨μ μ’
μμ λ§μ‘±μν΅λλ€.
- 볡ν©ν€(Composite Key)κ° μ‘΄μ¬νλ ν
μ΄λΈμ μ£Όλ‘ μ μ©λλ©°, 볡ν©ν€κ° μλ κ²½μ°λ μ 1μ κ·νμΌλ‘ μΆ©λΆν κ²½μ°κ° λ§μ΅λλ€.
μμ π
μ 2μ κ·ν μ μ© μ : λΉμ κ· λ¦΄λ μ΄μ
(1NF μν)
μλλ μ£Όλ¬Έ μ λ³΄κ° ν¬ν¨λ ν
μ΄λΈμ
λλ€. μ΄ ν
μ΄λΈμ 볡ν©ν€(Order_ID, Product_ID)λ‘ κ΅¬μ±λμ΄ μμ§λ§, μΌλΆ μμ±(μνλͺ
, λ¨μ, λ¨κ°)μ Product_IDμλ§ μ’
μλμ΄ μλ μνμ
λλ€.
Order_ID | Product_ID | Product_Name | Unit | Price | Quantity |
---|
1001 | 1 | λ
ΈνΈλΆ | λλΉ | 1,000,000 | 2 |
1001 | 2 | λ§μ°μ€ | κ°λΉ | 20,000 | 5 |
1002 | 1 | λ
ΈνΈλΆ | λλΉ | 1,000,000 | 1 |
1002 | 3 | ν€λ³΄λ | κ°λΉ | 30,000 | 3 |
λ¬Έμ μ π©
- λΆλΆ ν¨μ μ’
μμ±:
Product_Name
, Unit
, Price
λ Product_IDμλ§ μ’
μλμ΄ μμΌλ©°, Order_IDμλ 무κ΄ν©λλ€. μ΄λ λΆλΆ ν¨μ μ’
μμ±μ λνλ
λλ€.
- λ°μ΄ν° μ€λ³΅: μνλͺ
, λ¨μ, λ¨κ° λ±μ μ λ³΄κ° μ€λ³΅λμ΄ μ μ₯λκ³ μμ΅λλ€. μλ₯Ό λ€μ΄, λ
ΈνΈλΆμ μ λ³΄κ° μ¬λ¬ μ£Όλ¬Έμ λ°λ³΅μ μΌλ‘ κΈ°λ‘λκ³ μμ΅λλ€.
μ 2μ κ·ν μ μ© ν π οΈ
λΆλΆ ν¨μ μ’
μμ±μ ν΄κ²°νκΈ° μν΄ μν μ 보λ₯Ό λ³λμ ν
μ΄λΈλ‘ λΆλ¦¬ν©λλ€. μ΄λ₯Ό ν΅ν΄ Product_ID
μλ§ μ’
μλ μμ±λ€μ Product ν
μ΄λΈλ‘ μ΄λλκ³ , μ£Όλ¬Έ μμΈ ν
μ΄λΈμλ κΈ°λ³Έν€ μ 체μ μμ μ’
μλ μμ±λ§ λ¨κΉλλ€.
1. μ£Όλ¬Έ μμΈ(Order_Detail) ν
μ΄λΈ
Order_ID | Product_ID (FK) | Quantity |
---|
1001 | 1 | 2 |
1001 | 2 | 5 |
1002 | 1 | 1 |
1002 | 3 | 3 |
2. μν(Product) ν
μ΄λΈ
Product_ID | Product_Name | Unit | Price |
---|
1 | λ
ΈνΈλΆ | λλΉ | 1,000,000 |
2 | λ§μ°μ€ | κ°λΉ | 20,000 |
3 | ν€λ³΄λ | κ°λΉ | 30,000 |
μ 2μ κ·ν μ μ© κ²°κ³Ό β
- λΆλΆ ν¨μ μ’
μμ± μ κ±°:
Product_Name
, Unit
, Price
λ μ΄μ Product ν
μ΄λΈμ μ μ₯λλ©°, Product_IDμ μμ ν μ’
μλμμ΅λλ€.
- λ°μ΄ν° μ€λ³΅ μ κ±°: μ€λ³΅λλ μν μ 보λ Product ν
μ΄λΈμμ ν λ²λ§ μ μ₯λκ³ , μ£Όλ¬Έ μ 보λ μ£Όλ¬Έ μμΈ ν
μ΄λΈμμ κ΄λ¦¬λ©λλ€.
- 1:N κ΄κ³ νμ±: Order_Detail ν
μ΄λΈμ μ£Όλ¬Έκ³Ό μν κ°μ 1:N κ΄κ³λ₯Ό μ μ§νλ©°, μν μ 보λ λ³λμ Product ν
μ΄λΈμμ κ΄λ¦¬λ©λλ€.
μ 3μ κ·ν(3NF)μ μ 2μ κ·ν(2NF)μ λ§μ‘±νλ©΄μ, μ΄νμ ν¨μ μ’
μμ±(Transitive Dependency)μ μ κ±°ν μνμ
λλ€. μ΄νμ ν¨μ μ’
μμ±μ΄λ κΈ°λ³Έν€κ° μλ μμ±μ΄ λ€λ₯Έ μΌλ° μμ±μ μ’
μλλ μν©μ λ§ν©λλ€. μ 3μ κ·νμμλ κΈ°λ³Έν€μ μ§μ μ μΌλ‘ μ’
μλμ§ μκ³ , λ€λ₯Έ μΌλ° 컬λΌμ μ’
μλ μμ±μ λΆλ¦¬νμ¬ λ°μ΄ν°λ² μ΄μ€λ₯Ό λ ꡬ쑰ννκ³ μ€λ³΅μ μ€μ
λλ€.
μ 3μ κ·νμμ ν΄κ²°νκ³ μ νλ λ¬Έμ μ π οΈ
- μ΄νμ ν¨μ μ’
μμ±: κΈ°λ³Έν€κ° μλ 컬λΌμ΄ λ€λ₯Έ μΌλ° 컬λΌμ μ’
μλλ κ²½μ°, λ°μ΄ν°κ° λΆνμνκ² μ€λ³΅λκ³ κ΄λ¦¬κ° μ΄λ ΅μ΅λλ€.
- λ°μ΄ν° μ€λ³΅: μ΄νμ μ’
μμ±μ κ°μ§ 컬λΌμ΄ μ¬λ¬ λ² μ€λ³΅λμ΄ μ μ₯λλ―λ‘, λ°μ΄ν°μ λΉν¨μ¨μ μΈ κ΄λ¦¬λ‘ μ΄μ΄μ§λλ€.
ν΄κ²° λ°©λ² π‘
- μ΄νμ ν¨μ μ’
μμ± μ κ±°: κΈ°λ³Έν€μ μ§μ μ’
μλμ§ μκ³ , λ€λ₯Έ 컬λΌμ μ’
μλ μμ±μ λ³λμ ν
μ΄λΈλ‘ λΆλ¦¬νμ¬ μ΄νμ ν¨μ μ’
μμ±μ μ κ±°ν©λλ€.
- μλ‘μ΄ ν
μ΄λΈ μμ±: μ΄νμ μ’
μ κ΄κ³μ μλ μμ±λ€μ λ³λλ‘ κ΄λ¦¬νμ¬ κΈ°λ³Έ ν
μ΄λΈμ κΈ°λ³Έν€μ μ§μ μ’
μλ μμ±λ§ λ¨κΈ°κ³ , μ€λ³΅μ μ€μ
λλ€.
μ 3μ κ·νμ νΉμ§ π―
- κΈ°λ³Έν€μ μ§μ μ μΌλ‘ ν¨μ μ’
μ: λͺ¨λ 컬λΌμ κΈ°λ³Έν€μ μ§μ μ μΌλ‘ μ’
μλμ΄μΌ νλ©°, λ€λ₯Έ 컬λΌμ μμ‘΄νλ μ΄νμ μ’
μμ±μ μ κ±°ν©λλ€.
- μ 2μ κ·ν(2NF)μ λ§μ‘±νλ©΄μ μ΄νμ μ’
μμ±μ μ κ±°νμ¬ λ°μ΄ν° μ€λ³΅μ μ΅μνν©λλ€.
μμ π
μ 3μ κ·ν μ μ© μ : μ 2μ κ·ν μν
λ€μμ μ£Όλ¬Έ μ 보λ₯Ό ν¬ν¨ν ν
μ΄λΈμ
λλ€. μ΄ ν
μ΄λΈμ μ 2μ κ·νμ λ§μ‘±νμ§λ§, Shipping_ZipCode
λ Shipping_Address
μ μ’
μλμ΄ μμΌλ―λ‘ μ΄νμ μ’
μμ±μ΄ μ‘΄μ¬ν©λλ€.
Order_ID | Customer_ID | Shipping_Address | Shipping_ZipCode | Order_Date |
---|
1001 | 1 | μμΈμ κ°λ¨κ΅¬ | 12345 | 2024-01-10 |
1002 | 2 | μμΈμ κ°λꡬ | 54321 | 2024-01-11 |
1003 | 1 | μμΈμ κ°λ¨κ΅¬ | 12345 | 2024-01-12 |
1004 | 3 | μμΈμ μ€κ΅¬ | 67890 | 2024-01-13 |
λ¬Έμ μ π©
- μ΄νμ ν¨μ μ’
μμ±:
Shipping_ZipCode
λ Shipping_Addressμ μ’
μλμ΄ μμ΄, κ°μ μ£Όμμ λν μ°νΈλ²νΈκ° λ°λ³΅ μ μ₯λκ³ μμ΅λλ€.
- λ°μ΄ν° μ€λ³΅: λμΌν μ£Όμμ κ²½μ° μ°νΈλ²νΈκ° λ°λ³΅ μ μ₯λλ―λ‘, λ°μ΄ν° μ€λ³΅μ΄ λ°μνκ³ κ΄λ¦¬μ λΉν¨μ¨μ±μ΄ μκΉλλ€.
μ 3μ κ·ν μ μ© ν π οΈ
μ΄νμ ν¨μ μ’
μμ±μ μ κ±°νκΈ° μν΄, Shipping_Address
μ Shipping_ZipCode
λ₯Ό λ°°μ‘μ§(Shipping) ν
μ΄λΈλ‘ λΆλ¦¬ν©λλ€. Order
ν
μ΄λΈμ Shipping_IDλ₯Ό μΈλν€λ‘ μ°Έμ‘°νμ¬ λ°°μ‘ μ 보λ₯Ό κ΄λ¦¬ν©λλ€.
1. μ£Όλ¬Έ(Order) ν
μ΄λΈ
Order_ID | Customer_ID | Shipping_ID (FK) | Order_Date |
---|
1001 | 1 | 1 | 2024-01-10 |
1002 | 2 | 2 | 2024-01-11 |
1003 | 1 | 1 | 2024-01-12 |
1004 | 3 | 3 | 2024-01-13 |
2. λ°°μ‘μ§(Shipping) ν
μ΄λΈ
Shipping_ID | Shipping_Address | Shipping_ZipCode |
---|
1 | μμΈμ κ°λ¨κ΅¬ | 12345 |
2 | μμΈμ κ°λꡬ | 54321 |
3 | μμΈμ μ€κ΅¬ | 67890 |
μ 3μ κ·ν μ μ© κ²°κ³Ό β
- μ΄νμ ν¨μ μ’
μμ± μ κ±°:
Shipping_ZipCode
κ° λ μ΄μ Shipping_Address
μ μ’
μλμ§ μκ³ , λ³λμ λ°°μ‘μ§(Shipping) ν
μ΄λΈμμ κ΄λ¦¬λ©λλ€.
- λ°μ΄ν° μ€λ³΅ μ κ±°: λμΌν μ£Όμμ λν μ°νΈλ²νΈκ° λ μ΄μ μ€λ³΅λμ§ μκ³ , μ€λ³΅λ λ°μ΄ν°κ° μ¬λΌμ§λλ€.
- κ΄κ³ μ€μ : Order ν
μ΄λΈκ³Ό Shipping ν
μ΄λΈ κ°μ 1:N κ΄κ³λ₯Ό νμ±νμ¬, μ¬λ¬ μ£Όλ¬Έμ΄ λμΌν λ°°μ‘μ§λ₯Ό μ°Έμ‘°ν μ μμ΅λλ€.
BCNF (Boyce-Codd Normal Form)λ μ 3μ κ·ν(3NF)μ νμ₯ν μ κ·νμ
λλ€. μ 3μ κ·νμ΄ ν΄κ²°νμ§ λͺ»νλ ν보ν€κ° μλ κ²°μ μλ‘ μΈν μ’
μμ± λ¬Έμ λ₯Ό ν΄κ²°νκΈ° μν΄ λμ
λμμ΅λλ€. BCNFλ λͺ¨λ κ²°μ μ(Determinant)κ° ν보ν€μ¬μΌ νλ€λ κ·μΉμ ν΅ν΄, λ°μ΄ν°λ² μ΄μ€ μ’
μμ±μ λ κ°νκ² μ ννμ¬ λ°μ΄ν° 무결μ±μ 보μ₯ν©λλ€.
BCNFμμ ν΄κ²°νκ³ μ νλ λ¬Έμ μ π οΈ
- κ²°μ μ(Determinant): ν
μ΄λΈμμ νλμ μμ±μ΄ λ€λ₯Έ μμ±μ κ°μ κ²°μ νλ μμ±μ κ²°μ μλΌκ³ ν©λλ€. κΈ°λ³Έν€λ κ²°μ μμ ν μλ‘, λ€λ₯Έ 컬λΌμ κ°μ κ²°μ ν μ μμ΅λλ€.
- ν보ν€κ° μλ κ²°μ μ: ν
μ΄λΈμμ ν보ν€κ° μλ μμ±μ΄ κ²°μ μ μν μ νλ©΄, λ°μ΄ν° λ¬΄κ²°μ± λ¬Έμ κ° λ°μν μ μμ΅λλ€. μ΄λ λ°μ΄ν° μ€λ³΅μ μ΄λνκ³ λΉν¨μ¨μ μΈ κ΅¬μ‘°λ‘ μ΄μ΄μ§λλ€.
- μ 3μ κ·νμ νκ³: μ 3μ κ·νμ μ΄νμ μ’
μμ±μ ν΄κ²°νμ§λ§, ν보ν€κ° μλ κ²°μ μμ μν μ’
μμ± λ¬Έμ λ ν΄κ²°νμ§ λͺ»νλ κ²½μ°κ° μμ΅λλ€.
ν΄κ²° λ°©λ² π‘
- ν보ν€κ° μλ κ²°μ μλ₯Ό μ κ±°: ν보ν€κ° μλ μμ±μ΄ κ²°μ μ μν μ ν κ²½μ°, ν΄λΉ μμ±μ λ³λμ ν
μ΄λΈλ‘ λΆλ¦¬νμ¬ λͺ¨λ κ²°μ μκ° ν보ν€κ° λλλ‘ κ΅¬μ‘°λ₯Ό μ¬μ€κ³ν©λλ€.
BCNFμ νΉμ§ π―
- λͺ¨λ κ²°μ μλ ν보ν€μ¬μΌ ν¨: μ¦, ν
μ΄λΈ λ΄μμ λ€λ₯Έ μμ±μ κ²°μ νλ λͺ¨λ μμ±μ λ°λμ ν보ν€μ¬μΌ νλ©°, ν보ν€κ° μλ κ²°μ μλ μ κ±°λμ΄μΌ ν©λλ€.
- μ 3μ κ·νλ³΄λ€ λ μ격ν λ°μ΄ν° λ¬΄κ²°μ± λ³΄μ₯: BCNFλ μ 3μ κ·νλ³΄λ€ λ κ°ν μ μ½μ λμ΄ λ°μ΄ν°λ² μ΄μ€μ 무결μ±μ 보μ₯ν©λλ€.
μμ π
BCNF μ μ© μ : μ 3μ κ·ν μν
λ€μμ μ 3μ κ·νμ λ§μ‘±νλ ν
μ΄λΈμ
λλ€. μ΄ ν
μ΄λΈμμ Instructor_ID
λ κ°μ(Course_ID
)μ κ°μμ€(Room_No
)μ κ²°μ νμ§λ§, Instructor_IDλ ν보ν€κ° μλλλ€. λν, κ°μμ€(Room_No
)μ κ°μ μκ°(Time
)μ κ²°μ ν©λλ€.
Course_ID | Instructor_ID | Room_No | Time |
---|
CS101 | 1 | 201 | 9:00 AM |
CS102 | 2 | 202 | 10:00 AM |
CS103 | 1 | 201 | 9:00 AM |
CS104 | 2 | 202 | 10:00 AM |
λ¬Έμ μ π©
- ν보ν€κ° μλ κ²°μ μ μ‘΄μ¬:
Instructor_ID
λ ν보ν€κ° μλμ§λ§, Room_No
μ Time
μ κ²°μ ν©λλ€.
- μ’
μμ± λ¬Έμ : νΉμ κ°μμ€κ³Ό μκ°μ λμΌν κ°μ¬μ μν΄ λ°λ³΅μ μΌλ‘ μ¬μ©λλ―λ‘ λ°μ΄ν° μ€λ³΅μ΄ λ°μν©λλ€.
- BCNF μλ°: μ΄ ν
μ΄λΈμ μ 3μ κ·νμ λ§μ‘±νμ§λ§, BCNF κ·μΉμ λ°λΌ λͺ¨λ κ²°μ μκ° ν보ν€μ¬μΌ νλ€λ 쑰건μ μλ°νκ³ μμ΅λλ€.
BCNF μ μ© ν π οΈ
BCNFλ₯Ό λ§μ‘±μν€κΈ° μν΄, ν보ν€κ° μλ κ²°μ μμΈ Instructor_IDκ° κ²°μ νλ Room_No
μ Time
μ λ³λμ ν
μ΄λΈλ‘ λΆλ¦¬ν©λλ€.
1. κ°μ(Course) ν
μ΄λΈ
Course_ID | Instructor_ID (FK) |
---|
CS101 | 1 |
CS102 | 2 |
CS103 | 1 |
CS104 | 2 |
2. κ°μ¬-κ°μμ€(Instructor_Room) ν
μ΄λΈ
Instructor_ID | Room_No | Time |
---|
1 | 201 | 9:00 AM |
2 | 202 | 10:00 AM |
BCNF μ μ© κ²°κ³Ό β
- ν보ν€κ° μλ κ²°μ μ μ κ±°:
Instructor_ID
μ μν΄ κ²°μ λλ Room_No
μ Time
μ Instructor_Room ν
μ΄λΈλ‘ λΆλ¦¬νμ¬, λͺ¨λ κ²°μ μκ° ν보ν€κ° λλλ‘ μ€κ³νμ΅λλ€.
- μ€λ³΅λ λ°μ΄ν° μ κ±°: κ°μμ κ΄λ ¨λ μ 보λ
Course
ν
μ΄λΈμμ κ΄λ¦¬νκ³ , κ°μμ€κ³Ό μκ° μ 보λ Instructor_Room
ν
μ΄λΈμμ κ΄λ¦¬νμ¬ μ€λ³΅μ μ€μμ΅λλ€.
- λ°μ΄ν° λ¬΄κ²°μ± λ³΄μ₯: BCNF κ·μΉμ λ§μ‘±νκ² λμ΄, λͺ¨λ κ²°μ μκ° ν보ν€κ° λμκ³ , λ°μ΄ν°μ 무결μ±μ΄ 보μ₯λ©λλ€.
물리μ λ°μ΄ν°λ² μ΄μ€ λͺ¨λΈλ§ π
물리μ λ°μ΄ν°λ² μ΄μ€ λͺ¨λΈλ§μ λ
Όλ¦¬μ λͺ¨λΈλ§μμ μ€κ³λ λ°μ΄ν°λ₯Ό μ€μ λ°μ΄ν°λ² μ΄μ€ μμ€ν
(DBMS)μμ ꡬννλ κ³Όμ μ
λλ€. μ΄ κ³Όμ μμλ λ°μ΄ν°λ² μ΄μ€ μ±λ₯ μ΅μ νλ₯Ό μν μ¬λ¬ κΈ°λ²λ€μ΄ μ μ©λλ©°, λ°μ΄ν°λ² μ΄μ€μ ꡬ체μ μΈ μ μ₯ ꡬ쑰μ μ±λ₯μ κ³ λ €νμ¬ μ€κ³κ° μ΄λ£¨μ΄μ§λλ€.
물리μ λ°μ΄ν°λ² μ΄μ€ λͺ¨λΈλ§μ μ£Όμ κ°λ
π‘
-
DBMS νΉμ±μ λ§λ λ°μ΄ν°λ² μ΄μ€ κ°μ²΄ μ μ
- λλ©μΈ(domain): ν
μ΄λΈμ κ° μ»¬λΌμ λν ꡬ체μ μΈ μλ£νμ μ μν©λλ€. μλ£νμ DBMSμ λ§λ νμ
μΌλ‘ μ€μ ν΄μΌ ν©λλ€.
- μμ:
int
, varchar
, date
, float
μ κ°μ μλ£νμ μ¬μ©ν΄ λ°μ΄ν°λ₯Ό κ΄λ¦¬ν©λλ€.
-
ν¨μ¨μ μΈ λ°μ΄ν°λ² μ΄μ€ μ€κ³λ₯Ό μν λΆμ
- λ°μ΄ν° μ¬μ©λ λΆμ: μμ£Ό μ‘°νλκ±°λ μ
λ°μ΄νΈλλ 컬λΌμ νμ
νμ¬, μ΅μ μ μ±λ₯μ λμΆν μ μλλ‘ μ€κ³ν©λλ€.
- μ
무 νλ‘μΈμ€ λΆμ: λ°μ΄ν°λ² μ΄μ€κ° μ€μ μ
무 νλ¦μ λ§κ² μ΅μ νλμ΄ μλμ§ λΆμνμ¬, λ°μ΄ν° μ²λ¦¬ μλλ₯Ό κ°μ ν©λλ€.
-
ν¨μ¨μ μΈ μΈλ±μ€ μ μ
- μΈλ±μ€λ λ°μ΄ν° κ²μμ λΉ λ₯΄κ² νκΈ° μν ꡬ쑰μ
λλ€. μμ£Ό μ‘°νλλ 컬λΌμ μΈλ±μ€λ₯Ό μΆκ°νλ©΄ μ±λ₯μ΄ ν¬κ² ν₯μλ©λλ€.
- μ£Όμμ¬ν: μΈλ±μ€κ° λ무 λ§μμ§λ©΄ μ½μ
λ° μμ μ μ±λ₯μ΄ μ νλ μ μμΌλ―λ‘ μ μ ν μΈλ±μ€ κ°μλ₯Ό μ μ§ν΄μΌ ν©λλ€.
-
Trigger(νΈλ¦¬κ±°) μ€μ
- νΈλ¦¬κ±°(Trigger)λ νΉμ μ΄λ²€νΈκ° λ°μν λ μλμΌλ‘ μ€νλλ νλ‘κ·Έλ¨μ
λλ€. λ°μ΄ν°λ₯Ό μλμΌλ‘ μ²λ¦¬νκ³ λ¬΄κ²°μ±μ μ μ§ν μ μμ΅λλ€.
- μμ: μ£Όλ¬Έμ΄ μμ±λλ©΄, μ¬κ³ κ° μλμΌλ‘ μ
λ°μ΄νΈλλλ‘ νΈλ¦¬κ±°λ₯Ό μ€μ ν μ μμ΅λλ€.
-
μμ κ·ν(Denormalization) μμ
- μ±λ₯ μ΅μ νλ₯Ό μν΄ μ κ·νλ λ°μ΄ν°λ₯Ό μΌλΆ μμ κ·ννμ¬ μ€λ³΅ μ μ₯νλ μμ
μ
λλ€. μ±λ₯μ΄ μ€μν κ²½μ° μ‘°ν μλλ₯Ό ν₯μμν€κΈ° μν΄ μ¬μ©λμ§λ§, λ°μ΄ν° μΌκ΄μ± λ¬Έμ λ₯Ό μΌκΈ°ν μ μμΌλ―λ‘ μ μ€νκ² μ¬μ©ν΄μΌ ν©λλ€.
μμ κ·ν(DeNormalization) μ€λͺ
π
μμ κ·ν(DeNormalization)λ μ κ·νλ λ°μ΄ν°λ² μ΄μ€ ꡬ쑰μμ μ±λ₯μ ν₯μμν€κΈ° μν΄ λ°μ΄ν°λ₯Ό μ€λ³΅ μ μ₯νκ±°λ ν
μ΄λΈμ μ¬κ΅¬μ±νλ μμ
μ
λλ€. μ‘°μΈ μ°μ°μ μ€μ΄κ±°λ 볡μ‘ν μ°μ°μ νΌνκΈ° μν΄ μλμ μΌλ‘ λ°μ΄ν° μ€λ³΅μ νμ©νμ¬ μ±λ₯μ λμ
λλ€.
μμ κ·ν λ°©λ² π§
-
λ°μ΄ν° μ€λ³΅ (μ»¬λΌ μμ κ·ν):
- λ°μ΄ν° μ‘°μΈ μμ
μ μ€μ΄κΈ° μν΄ μ€λ³΅λ λ°μ΄ν°λ₯Ό 컬λΌμ μΆκ°νμ¬ μ‘°ν μ±λ₯μ ν₯μμν΅λλ€.
- μμ: μ£Όλ¬Έ ν
μ΄λΈμ κ³ κ° μ£Όμ μ 보λ₯Ό μ€λ³΅ μ μ₯νμ¬ μ‘°μΈ μμ΄ μ‘°νν μ μλλ‘ μ€κ³.
-
νμ 컬λΌμ μμ±:
- μ°μ°μ λ°λ³΅μ μΌλ‘ μννμ§ μλλ‘, 미리 κ³μ°λ κ°μ μ μ₯νλ νμ 컬λΌμ μμ±νμ¬ μ‘°ν μ±λ₯μ λμ
λλ€.
- μμ: ν맀 κΈμ‘(μλ * λ¨κ°)μ 미리 κ³μ°ν΄ μ μ₯νλ 컬λΌμ μΆκ°ν΄ μ‘°ν μλλ₯Ό λμ
λλ€.
-
ν
μ΄λΈ λΆλ¦¬:
- μ»¬λΌ μλ λ μ½λ μκ° λ§μ ν
μ΄λΈμ μμ ν
μ΄λΈλ‘ λΆλ¦¬νμ¬ μ±λ₯μ μ΅μ νν©λλ€.
- μμ: κ³ κ° ν
μ΄λΈμμ μμ£Ό μ‘°νλμ§ μλ μ£Όμ μ 보λ₯Ό λ³λμ ν
μ΄λΈλ‘ λΆλ¦¬νμ¬ κ΄λ¦¬.
-
μμ½ ν
μ΄λΈ μμ±(Summary Table):
- μμ£Ό μ§κ³λλ λ°μ΄ν°λ₯Ό 미리 κ³μ°νμ¬ μ μ₯νλ μμ½ ν
μ΄λΈμ μμ±νμ¬ μ±λ₯μ ν₯μμν΅λλ€.
- μμ: μΌμΌ μ΄ ν맀λμ 미리 μ μ₯νμ¬ λ³΅μ‘ν μ‘°ν μμ
μ μ€μ.
-
ν
μ΄λΈ ν΅ν©:
- μμ£Ό μ‘°μΈλλ ν
μ΄λΈμ ν΅ν©νμ¬ μ±λ₯μ μ΅μ νν©λλ€.
- μμ: κ³ κ°κ³Ό μ£Όλ¬Έ ν
μ΄λΈμ μμ£Ό μ‘°μΈν΄μΌ ν κ²½μ°, μ΄λ₯Ό νλμ ν
μ΄λΈλ‘ ν΅ν©νμ¬ μ‘°ν μ±λ₯μ λμ
λλ€.
μμ κ·νμ μ₯μ κ³Ό λ¨μ βοΈ
- μ₯μ : μ‘°ν μ±λ₯μ΄ ν¬κ² ν₯μλκ³ , 볡μ‘ν μ°μ°μ΄λ μ‘°μΈ μμ
μ μ€μΌ μ μμ΅λλ€.
- λ¨μ : λ°μ΄ν° μ€λ³΅μΌλ‘ μΈν΄ μΌκ΄μ± μ μ§κ° μ΄λ €μμ§κ³ , μ
λ°μ΄νΈ μ μ€λ³΅λ λ°μ΄ν°λ₯Ό λͺ¨λ μμ ν΄μΌ νλ μΆκ° μμ
μ΄ λ°μν μ μμ΅λλ€.
μ΄μμΌλ‘ 물리μ λ°μ΄ν°λ² μ΄μ€ λͺ¨λΈλ§μ λν μ€λͺ
μ λ§μΉκ² μ΅λλ€. π 물리μ λͺ¨λΈλ§μ λ°μ΄ν°λ² μ΄μ€μ μ±λ₯κ³Ό ν¨μ¨μ±μ μ΅μ ννλ μ€μν λ¨κ³μ
λλ€. μ€κ³ λ¨κ³μμμ μμ μ νμ΄ λ°μ΄ν°λ² μ΄μ€μ μ±λ₯κ³Ό 무결μ±μ ν° μν₯μ λ―ΈμΉκΈ° λλ¬Έμ, κ° κΈ°λ²μ μν©μ λ§κ² μ μ€νκ² μ μ©νλ κ²μ΄ μ€μν©λλ€.
λ°μ΄ν°λ² μ΄μ€ μ΅μ νλ₯Ό ν΅ν΄ λμ± λΉ λ₯΄κ³ ν¨μ¨μ μΈ μμ€ν
μ ꡬμΆν΄ 보μΈμ! π