6. E-R Model
Overview of the Design Process
- Design Phases(μ€κ³ λ¨κ³)
- μ΄κΈ° λ¨κ³: μλΉ λ°μ΄ν°λ² μ΄μ€ μ¬μ©μμ λ°μ΄ν° μꡬμ¬νμ μμ ν νΉμ±ν
- κ²°κ³Όλ¬Ό: μ¬μ©μ μꡬμ¬ν λͺ μΈμ
- λ λ²μ§Έ λ¨κ³: λ°μ΄ν° λͺ¨λΈμ μ ννκ³ ν΄λΉ λ°μ΄ν° λͺ¨λΈμ κ°λ
μ μ©
- μ¬μ©μ μꡬμ¬νμ λ°μ΄ν°λ² μ΄μ€μ κ°λ μ μ€ν€λ§(conceptual schema)λ‘ λ³ν
- κ°λ μ μ€ν€λ§λ κΈ°μ μ κΈ°λ₯μ μꡬμ¬νμ λνλ
- λ°μ΄ν°μ μνλ μμ (λλ νΈλμμ )μ μ’ λ₯λ₯Ό κΈ°μ
- μ΅μ’
λ¨κ³: μΆμ λ°μ΄ν° λͺ¨λΈμμ λ°μ΄ν°λ² μ΄μ€ ꡬνμΌλ‘ μ΄λ
- λ
Όλ¦¬μ μ€κ³(Logical Design): λ°μ΄ν°λ² μ΄μ€ μ€ν€λ§ κ²°μ
- "μ’μ" κ΄κ³ μ€ν€λ§(relation schema)μ μ§ν©μ μ°ΎμμΌ ν¨
- λΉμ¦λμ€ κ²°μ : λ°μ΄ν°λ² μ΄μ€μ μ΄λ€ μμ±(attribute)μ κΈ°λ‘ν΄μΌ νλκ°?
- μ»΄ν¨ν° κ³Όν κ²°μ : μ΄λ€ κ΄κ³ μ€ν€λ§λ₯Ό κ°μ ΈμΌ νλ©°, μμ±λ€μ λ€μν κ΄κ³ μ€ν€λ§μ μ΄λ»κ² λΆλ°°ν΄μΌ νλκ°?
- 물리μ μ€κ³(Physical Design): λ°μ΄ν°λ² μ΄μ€μ 물리μ λ μ΄μμ κ²°μ
- λ
Όλ¦¬μ μ€κ³(Logical Design): λ°μ΄ν°λ² μ΄μ€ μ€ν€λ§ κ²°μ
- μ΄κΈ° λ¨κ³: μλΉ λ°μ΄ν°λ² μ΄μ€ μ¬μ©μμ λ°μ΄ν° μꡬμ¬νμ μμ ν νΉμ±ν
Design Approaches
- Entity-Relationship Model(κ°μ²΄-κ΄κ³ λͺ¨λΈ) (λ³Έ μ₯μμ λ€λ£Έ)
- κΈ°μ μ κ°μ²΄(entities)μ κ΄κ³(relationships)μ μ§ν©μΌλ‘ λͺ¨λΈλ§
- Entity(κ°μ²΄): λ€λ₯Έ κ°μ²΄μ ꡬλ³λλ κΈ°μ
λ΄μ "μ¬λ¬Ό" λλ "κ°μ²΄"
- μμ± μ§ν©μ μν΄ κΈ°μ λ¨
- Relationship(κ΄κ³): μ¬λ¬ κ°μ²΄ κ°μ μ°κ΄μ±
- κ°μ²΄-κ΄κ³ λ€μ΄μ΄κ·Έλ¨ (E-R diagram)μΌλ‘ λμννμ¬ νν
- Normalization Theory(μ κ·ν μ΄λ‘ ) (λ€μ μ₯μμ λ€λ£Έ)
- μ΄λ€ μ€κ³κ° λμμ§ κ³΅μννκ³ μ΄λ₯Ό ν μ€νΈν¨
Outline of the Entity-Relationship Model
Entity Sets
- κ°μ²΄(entity)λ μ‘΄μ¬νλ©° λ€λ₯Έ κ°μ²΄μ ꡬλ³λλ κ°μ²΄
- μ: νΉμ μ¬λ, νμ¬, μ΄λ²€νΈ
- κ°μ²΄ μ§ν©(entity set)μ λμΌν μμ±μ 곡μ νλ λμΌν μ νμ κ°μ²΄ μ§ν©
- μ: λͺ¨λ μ¬λ, νμ¬, λ무, ν΄μΌμ μ§ν©
- κ°μ²΄λ μμ± μ§ν©μΌλ‘ ννλ¨
- μμ±: κ°μ²΄ μ§ν©μ λͺ¨λ ꡬμ±μμ΄ μμ ν κΈ°μ μ μμ±
- μ:
instructor= (ID,name,salary),course= (course_id,title,credits)
- λλ©μΈ(Domain): κ° μμ±μ νμ©λλ κ°μ μ§ν©
- μμ±μ μΌλΆ μ§ν©μ κ°μ²΄ μ§ν©μ κΈ°λ³Έ ν€(primary key)λ₯Ό νμ±
- κΈ°λ³Έ ν€λ μ§ν©μ κ° κ΅¬μ±μμ κ³ μ νκ² μλ³ν¨
Entity Sets: instructor and student
- ER λ€μ΄μ΄κ·Έλ¨μμ κ°μ²΄ μ§ν©μ λ€μκ³Ό κ°μ΄ κ·Έλν½μΌλ‘ νν κ°λ₯:
- μ¬κ°νμ κ°μ²΄ μ§ν©μ λνλ
- μμ±μ κ°μ²΄ μ¬κ°ν λ΄λΆμ λμ΄λ¨
- λ°μ€μ κΈ°λ³Έ ν€ μμ±μ λνλ
Relationship Sets
- κ΄κ³λ μ¬λ¬ κ°μ²΄ κ°μ μ°κ΄μ±
- μ:
studentκ°μ²΄ -advisorκ΄κ³ μ§ν© -instructorκ°μ²΄
- μ:
- κ΄κ³ μ§ν©(relationship set)μ κ°μ κ°μ²΄ κ°μ μνμ κ΄κ³λ‘, κ° κ°μ²΄λ κ°μ²΄ μ§ν©μμ κ°μ Έμ΄:
- μ¬κΈ°μ μ κ΄κ³. μ:
- μ: μ§λκ΅μ μν μ νλ κ°μ¬μ νμ κ°μ μ°κ΄μ±μ λνλ΄κΈ° μν΄
advisorκ΄κ³ μ§ν© μ μ - λμμ μΌλ‘, κ΄λ ¨λ κ°μ²΄ μ¬μ΄μ μ μ κ·Έλ¦Ό
- ER λ€μ΄μ΄κ·Έλ¨μμ λ€μ΄μλͺ¬λλ κ΄κ³ μ§ν©μ λνλ
Relationship Sets with Attributes
- μμ±μ κ΄κ³ μ§ν©κ³Όλ μ°κ΄λ μ μμ
- μλ₯Ό λ€μ΄,
instructorμstudentκ°μ²΄ μ§ν© κ°μadvisorκ΄κ³ μ§ν©μ νμμ΄ μ§λκ΅μμ μ°κ΄λκΈ° μμν μμ μ μΆμ νλ 'date' μμ±μ κ°μ§ μ μμ - κ΄κ³ μ§ν©μ μ°¨μ(Degree)
- μ΄μ§ κ΄κ³(Binary relationship):
- λ κ°μ κ°μ²΄ μ§ν©(λλ 2μ°¨)μ ν¬ν¨
- λ°μ΄ν°λ² μ΄μ€ μμ€ν μ λλΆλΆ κ΄κ³ μ§ν©μ μ΄μ§ κ΄κ³
- μΈ κ° μ΄μμ κ°μ²΄ μ§ν© κ°μ κ΄κ³λ λλ¬Ύ
- μ: νμλ€μ΄ κ°μ¬μ μ§λ νμ μ°κ΅¬ νλ‘μ νΈλ₯Ό μν
proj_guideκ΄κ³λinstructor,student,projectκ°μ 3μ§ κ΄κ³(ternary relationship)
- μ΄μ§ κ΄κ³(Binary relationship):
- κ΄κ³μ κ°μ²΄ μ§ν©μ μλ‘ κ΅¬λ³λ νμκ° μμ
- κ°μ²΄ μ§ν©μ κ° λ°μμ κ΄κ³μμ "μν (role)"μ μν
- "course_id"μ "prereq_id" λ μ΄λΈμ μν (role)μ΄λΌκ³ λΆλ¦Ό
Complex Attributes
- μμ± μ ν:
- λ¨μ(Simple) μμ±κ³Ό 볡ν©(composite) μμ±
- λ¨μ: κ°μ΄ νμ λΆλΆμΌλ‘ λλ μ μμ (μ:
first_name,last_name) - 볡ν©: μ¬λ¬ λΆλΆμΌλ‘ ꡬμ±λ¨ (μ:
name= (first_name,last_name))
- λ¨μ: κ°μ΄ νμ λΆλΆμΌλ‘ λλ μ μμ (μ:
- λ¨μΌκ°(Single-valued) (μ:
name) λ° λ€μ€κ°(multivalued) (μ:phone_numbers) μμ± - νμ(Derived) μμ±
- λ€λ₯Έ μμ±μΌλ‘λΆν° κ³μ° κ°λ₯
- μ:
date_of_birthκ° μ£Όμ΄μ‘μ λage
- λ¨μ(Simple) μμ±κ³Ό 볡ν©(composite) μμ±
- λ³΅ν© μμ±μ μμ±μ νμ λΆλΆ(λ€λ₯Έ μμ±)μΌλ‘ λλ μ μκ² ν¨
Representing Complex Attributes in ER Diagram
- λ€μ€κ° μμ±(Multivalued attribute)
- νμ μμ±(Derived attribute)
Mapping Cardinality Constraints
- λ€λ₯Έ κ°μ²΄κ° κ΄κ³ μ§ν©μ ν΅ν΄ μ°κ΄λ μ μλ κ°μ²΄μ μλ₯Ό νν
- μ΄μ§ κ΄κ³ μ§ν©μ μ€λͺ νλ λ° κ°μ₯ μ μ©
- μ΄μ§ κ΄κ³ μ§ν©μ κ²½μ°, λ§€ν μΉ΄λλ리ν°(mapping cardinality)λ λ€μ μ ν μ€ νλμ¬μΌ ν¨:
- μΌλμΌ(One to one)
- μΌλλ€(One to many)
- λ€λμΌ(Many to one)
- λ€λλ€(Many to many)
- μ°Έκ³ : Aμ Bμ μΌλΆ μμλ λ€λ₯Έ μ§ν©μ μ΄λ€ μμμλ λ§€νλμ§ μμ μ μμ
Representing Cardinality Constraints in ER Diagram
- μΉ΄λλλ¦¬ν° μ μ½ μ‘°κ±΄μ κ΄κ³ μ§ν©κ³Ό κ°μ²΄ μ§ν© μ¬μ΄μ λ°©ν₯μ± μλ μ (β, "μΌ") λλ λ°©ν₯μ± μλ μ (β, "λ€")μ κ·Έλ € νν
- κ°μ¬μ νμ κ°μ μΌλμΌ κ΄κ³:
- νμμ
advisorκ΄κ³λ₯Ό ν΅ν΄ μ΅λ ν λͺ μ κ°μ¬μ μ°κ΄λ¨ - κ°μ¬λ κ΄κ³λ₯Ό ν΅ν΄ μ΅λ ν λͺ μ νμμ μ§λν¨
- νμμ
- κ°μ¬μ νμ κ°μ μΌλλ€ κ΄κ³:
- κ°μ¬λ μ¬λ¬ λͺ (0 ν¬ν¨)μ νμμ μ§λν¨
- νμμ
advisorκ΄κ³λ₯Ό ν΅ν΄ μ΅λ ν λͺ μ κ°μ¬μ μ°κ΄λ¨
- κ°μ¬μ νμ κ°μ λ€λμΌ κ΄κ³:
- κ°μ¬λ
advisorλ₯Ό ν΅ν΄ μ΅λ ν λͺ μ νμμ μ§λν¨ - νμμ
advisorλ₯Ό ν΅ν΄ μ¬λ¬ λͺ (0 ν¬ν¨)μ κ°μ¬μ μ°κ΄λ¨
- κ°μ¬λ
- κ°μ¬μ νμ κ°μ λ€λλ€ κ΄κ³:
- κ°μ¬λ
advisorλ₯Ό ν΅ν΄ μ¬λ¬ λͺ (0 ν¬ν¨)μ νμμ μ§λν¨ - νμμ
advisorλ₯Ό ν΅ν΄ μ¬λ¬ λͺ (0 ν¬ν¨)μ κ°μ¬μ μ°κ΄λ¨
- κ°μ¬λ
Mapping Cardinalities affect ER Design
- κ΄κ³ μΉ΄λλ리ν°λ κ΄κ³ μμ±μ λ°°μΉμ μν₯μ μ€ μ μμ:
- κ° νμμ΄ λ¨ ν λͺ
μ κ°μ¬λ§ κ°μ§ μ μλ€λ©΄,
dateλ₯Ό κ΄κ³(advisor) μμ± λμ νμ("λ€" μͺ½)μ μμ±μΌλ‘ λ§λ€ μ μμ
- κ° νμμ΄ λ¨ ν λͺ
μ κ°μ¬λ§ κ°μ§ μ μλ€λ©΄,
advisorκ΄κ³κ° μΌλλ€ μΉ΄λλ리ν°λ₯Ό κ°μ§λ€κ³ κ°μ
Total and Partial Participation
- μ 체 μ°Έμ¬(Total participation) (μ΄μ€μ μΌλ‘ νμ): κ°μ²΄ μ§ν©μ λͺ¨λ κ°μ²΄λ κ΄κ³ μ§ν©μμ μ΅μ νλμ κ΄κ³μ μ°Έμ¬
- μ:
advisorκ΄κ³μμstudentμ μ°Έμ¬λ μ 체 μ°Έμ¬ - λͺ¨λ νμμ μ°κ΄λ κ°μ¬κ° μμ΄μΌ ν¨
- μ:
- λΆλΆ μ°Έμ¬(Partial participation): μΌλΆ κ°μ²΄λ κ΄κ³ μ§ν©μ μ΄λ€ κ΄κ³μλ μ°Έμ¬νμ§ μμ μ μμ
- μ:
advisorμμinstructorμ μ°Έμ¬λ λΆλΆ μ°Έμ¬ - μ΄λ€ νμλ μ§λνμ§ μλ κ°μ¬κ° μμ μ μμ
- μ:
Notation for Expressing More Complex Constraints
- μ μλ ννλ‘ μ΅μ λ° μ΅λ μΉ΄λλ리ν°κ° μ°κ΄λ μ μμΌλ©°, μ¬κΈ°μ μ μ΅μ, λ μ΅λ μΉ΄λλ리ν°
- μ΅μκ° 1μ μ 체 μ°Έμ¬λ₯Ό λνλ
- μ΅λκ° 1μ κ°μ²΄κ° μ΅λ νλμ κ΄κ³μ μ°Έμ¬ν¨μ λνλ
- μ΅λκ° *λ μ νμ΄ μμμ λνλ
- μμ
- κ°μ¬λ 0λͺ μ΄μμ νμμ μ§λν μ μμ
- νμμ λ°λμ 1λͺ μ μ§λκ΅μλ₯Ό κ°μ ΈμΌ νλ©°, μ¬λ¬ λͺ μ κ°μ§ μ μμ
Cardinality Constraints on Ternary Relationship
- μΉ΄λλλ¦¬ν° μ μ½ μ‘°κ±΄μ λνλ΄κΈ° μν΄ 3μ§(λλ κ·Έ μ΄μμ μ°¨μ) κ΄κ³μμ λμ€λ νμ΄νλ μ΅λ νλλ§ νμ©
- μλ₯Ό λ€μ΄,
proj_guideμμinstructorλ‘μ νμ΄νλ κ° νμμ΄ νλ‘μ νΈμ λν΄ μ΅λ ν λͺ μ μ§λκ΅μλ₯Ό κ°μ§μ λνλ - νμ΄νκ° νλ μ΄μ μλ κ²½μ°, μλ―Έλ₯Ό μ μνλ λ κ°μ§ λ°©λ² μ‘΄μ¬
- μλ₯Ό λ€μ΄, , , κ°μ 3μ§ κ΄κ³ μμ μ λ‘ νμ΄νκ° μλ κ²½μ°
- κ° κ°μ²΄λ μ λ‘λΆν° κ³ μ ν κ°μ²΄μ μ°κ΄λ¨, λλ
- (, )μ κ° κ°μ²΄ μμ κ³ μ ν κ°μ²΄μ μ°κ΄λκ³ , κ° μ (, )λ κ³ μ ν μ μ°κ΄λ¨
- μλ₯Ό λ€μ΄, , , κ°μ 3μ§ κ΄κ³ μμ μ λ‘ νμ΄νκ° μλ κ²½μ°
- νΌλμ νΌνκΈ° μν΄ νλ μ΄μμ νμ΄νλ κΈμ§
Primary Key
- κΈ°λ³Έ ν€λ μ£Όμ΄μ§ κ°μ²΄ μ§ν© λ΄μ κ°μ²΄μ μ£Όμ΄μ§ κ΄κ³ μ§ν© λ΄μ κ΄κ³λ₯Ό ꡬλ³νλ λ°©λ²μ μ 곡
- κ³ λ € λμ κΈ°λ³Έ ν€:
- κ°μ²΄ μ§ν©
- κ΄κ³ μ§ν©
- μ½ν κ°μ²΄ μ§ν©
Primary Key for Entity Sets
- μ μμ λ°λΌ, κ°λ³ κ°μ²΄λ ꡬλ³λ¨
- λ°μ΄ν°λ² μ΄μ€ κ΄μ μμ, κ·Έλ€ κ°μ μ°¨μ΄λ μμ±μ κ΄μ μμ ννλμ΄μΌ ν¨
- κ°μ²΄μ μμ± κ°μ κ°μ²΄λ₯Ό κ³ μ νκ² μλ³ν μ μμ΄μΌ ν¨
- κ°μ²΄ μ§ν© λ΄ μ΄λ€ λ κ°μ²΄λ λͺ¨λ μμ±μ λν΄ μ νν λμΌν κ°μ κ°μ§ μ μμ
- κ°μ²΄ μ§ν©μ ν€λ κ°μ²΄ μ§ν© λ΄μ κ°μ²΄λ₯Ό μλ‘ κ΅¬λ³νκΈ°μ μΆ©λΆν μμ± μ§ν©
Primary Key for Relationship Sets
- κ΄κ³ μ§ν©μ λ€μν κ΄κ³λ₯Ό ꡬλ³νκΈ° μν΄, κ΄κ³ μ§ν©μ μλ κ°μ²΄μ κ°λ³ κΈ°λ³Έ ν€ μ¬μ©
- μ΄ κ°μ²΄ μ§ν© μ ν¬ν¨νλ κ΄κ³ μ§ν©μ΄λΌ ν λ,
- κ°μ²΄ μ§ν© μ κΈ°λ³Έ ν€μ ν©μ§ν©(union)μ μ κ°λ³ κ΄κ³λ₯Ό κΈ°μ (μ¦, μνΌν€(superkey) νμ±)
- κ΄κ³ μ§ν© μ μμ±μ΄ μ°κ΄λμ΄ μλ€λ©΄, μ μ μλ―Έμ λ°λΌ λ¬λΌμ§ (μ¦, μ€ νλ μ΄μμ μμ±μ ν¬ν¨ν μ μμ)
- μ: "advisor" κ΄κ³ μ§ν©
- μνΌν€λ
instructor.IDμstudent.IDλ‘ κ΅¬μ±
- μνΌν€λ
- κ°μ²΄ μ§ν©μ΄ κ΄κ³μ λ λ² μ΄μ μ°Έμ¬νλ κ²½μ°, κ°μ²΄ μ§ν© μ΄λ¦ λμ μν μ΄λ¦ μ¬μ©
- μ) "prereq" κ΄κ³ μ§ν©μμ, μνΌν€λ
course_id.IDμprereq_id.IDλ‘ κ΅¬μ±
- μ) "prereq" κ΄κ³ μ§ν©μμ, μνΌν€λ
Choice of Primary key for Binary Relationship
- κ΄κ³ μ§ν©μ κΈ°λ³Έ ν€ μ νμ κ΄κ³ μ§ν©μ λ§€ν μΉ΄λλ리ν°μ λ°λΌ λ¬λΌμ§ (μ΄μ§ κ΄κ³ μ§ν© κ°μ )
- λ€λλ€ κ΄κ³
- μμ κΈ°λ³Έ ν€λ€μ ν©μ§ν©μ μ΅μ μνΌν€μ΄λ©° κΈ°λ³Έ ν€λ‘ μ νλ¨:
- μΌλλ€ λλ λ€λμΌ κ΄κ³
- "λ€(Many)" μͺ½μ κΈ°λ³Έ ν€κ° μ΅μ μνΌν€μ΄λ©° κΈ°λ³Έ ν€λ‘ μ¬μ©λ¨
- μΌλλ€: , λ€λμΌ:
- μΌλμΌ κ΄κ³
- μ°Έμ¬νλ λ κ°μ²΄ μ§ν© μ€ νλμ κΈ°λ³Έ ν€κ° μ΅μ μνΌν€λ₯Ό νμ±νλ©°, λ μ€ νλλ₯Ό μ νν μ μμ: λλ
Weak Entity Sets
course_id,semester,year,sec_idλ‘ κ³ μ νκ² μλ³λλsectionκ°μ²΄λ₯Ό κ³ λ €- λΆλͺ
ν
sectionκ°μ²΄λcourseκ°μ²΄μ κ΄λ ¨ μμ sectionκ³Όcourseκ°μ²΄ μ§ν© μ¬μ΄μsec_courseκ΄κ³ μ§ν©μ λ§λ λ€κ³ κ°μ sec_courseμ μ 보λsectionμ΄ μ΄λ―Έcourse_idμμ±μ κ°μ§κ³ μμΌλ―λ‘ μ€λ³΅λ¨- μ΄ μ€λ³΅μ±μ μ²λ¦¬νλ ν κ°μ§ μ΅μ
μ
sec_courseκ΄κ³λ₯Ό μ κ±°νλ κ²μ΄μ§λ§, μ΄λ κ² νλ©΄sectionκ³Όcourseκ°μ κ΄κ³κ° μμ± λ΄μμ μμμ μ΄ λμ΄ λ°λμ§νμ§ μμ - μ΄ μ€λ³΅μ±μ μ²λ¦¬νλ λμμ μΈ λ°©λ²μ
sectionκ°μ²΄μcourse_idμμ±μ μ μ₯νμ§ μκ³ λλ¨Έμ§ μμ±μΈsection_id,year,semesterλ§ μ μ₯νλ κ² - κ·Έλ¬λ,
sectionκ°μ²΄ μ§ν©μ νΉμ sectionκ°μ²΄λ₯Ό κ³ μ νκ² μλ³νκΈ°μ μΆ©λΆν μμ±μ κ°μ§ λͺ»νκ² λ¨section= (course_id,section_id,semester,year,building,room_number,time_slot_id)
- μ΄ λ¬Έμ λ₯Ό ν΄κ²°νκΈ° μν΄
sec_courseκ΄κ³λ₯Όsectionκ°μ²΄λ₯Ό κ³ μ νκ² μλ³νλ λ° νμν μΆκ° μ 보(course_id)λ₯Ό μ 곡νλ νΉλ³ν κ΄κ³λ‘ μ·¨κΈ - κ°ν κ°μ²΄ μ§ν©(Strong entity set): μ체 κΈ°λ³Έ ν€λ₯Ό κ°μ§ μΌλ° κ°μ²΄ μ§ν©
- μ½ν κ°μ²΄ μ§ν©(Weak entity set)
- κΈ°λ³Έ ν€λ₯Ό νμ±νκΈ°μ μΆ©λΆν μμ±μ κ°μ§ μλ κ°μ²΄ μ§ν©
- κ°ν κ°μ²΄ μ§ν©μΈ μλ³ κ°μ²΄ μ§ν©(identifying entity set)μ μμ‘΄
- μ½ν κ°μ²΄μ κΈ°λ³Έ ν€λ₯Ό μ°κ΄μν€λ λμ , μλ³ κ°μ²΄μ ν¨κ» νλ³μ μμ±(discriminator attributes)μ΄λΌλ μΆκ° μμ±μ μ¬μ©νμ¬ μ½ν κ°μ²΄λ₯Ό κ³ μ νκ² μλ³
- μ½ν κ°μ²΄ μ§ν©μ κΈ°λ³Έ ν€ = μλ³ κ°μ²΄ μ§ν©μ κΈ°λ³Έ ν€ + νλ³μ
Weak Entity Sets (Cont.)
- λͺ¨λ μ½ν κ°μ²΄λ μλ³ κ°μ²΄μ μ°κ΄λμ΄μΌ ν¨; μ¦, μ½ν κ°μ²΄ μ§ν©μ μλ³ κ°μ²΄ μ§ν©μ μ‘΄μ¬ μ’ μμ (existence dependent)μ
- μλ³ κ°μ²΄ μ§ν©μ κ°μ²΄κ° μμ λλ©΄, μ½ν κ°μ²΄ μ§ν©μ μ°κ΄λ λͺ¨λ κ°μ²΄λ μμ λμ΄μΌ ν¨
- μλ³ κ°μ²΄ μ§ν©μ κ·Έκ²μ΄ μλ³νλ μ½ν κ°μ²΄ μ§ν©μ μμ (own)νλ€κ³ ν¨
- μ½ν κ°μ²΄ μ§ν©μ μλ³ κ°μ²΄ μ§ν©κ³Ό μ°κ΄μν€λ κ΄κ³λ₯Ό μλ³ κ΄κ³(identifying relationship)λΌκ³ ν¨
Expressing Weak Entity Sets
- E-R λ€μ΄μ΄κ·Έλ¨μμ, μ½ν κ°μ²΄ μ§ν©μ μ΄μ€ μ¬κ°νμΌλ‘ νμ
- μ½ν κ°μ²΄ μ§ν©μ νλ³μλ μ μ μΌλ‘ λ°μ€μ κ·Έμ
- μ½ν κ°μ²΄ μ§ν©μ μλ³ κ°ν κ°μ²΄ μ§ν©μ μ°κ²°νλ κ΄κ³ μ§ν©μ μ΄μ€ λ€μ΄μλͺ¬λλ‘ νμ
sectionμ κΈ°λ³Έ ν€ = (course_id,sec_id,semester,year)
Redundant Attributes
- λ€μκ³Ό κ°μ κ°μ²΄ μ§ν©μ΄ μλ€κ³ κ°μ :
student: μμ±μΌλ‘ID,name,tot_cred,dept_namedepartment: μμ±μΌλ‘dept_name,building,budget
- κ° νμμ΄ μ°κ΄λ νκ³Όκ° μλ€λ μ¬μ€μ
stud_deptκ΄κ³ μ§ν©μ μ¬μ©νμ¬ λͺ¨λΈλ§ studentκ°μ²΄ μ§ν©μdept_nameμμ±μ κ΄κ³μ μλ μ 보λ₯Ό 볡μ νλ―λ‘ μ€λ³΅λλ©°, μ κ±° νμdept_nameμ μ κ±°ν νμλstudentκ°μ²΄ μ§ν©μ μ¬μ ν κ°ν κ°μ²΄ μ§ν©μΌλ‘ λ¨μ (IDλ₯Ό κΈ°λ³Έ ν€λ‘ κ°μ§)- κ·Έλ¬λ, ν μ΄λΈ(κ΄κ³ν λͺ¨λΈ)λ‘ λ€μ λ³νν λ, μ΄λ€ κ²½μ°μλ μμ±μ΄ λ€μ λμ λ¨
E-R Diagram for a University Enterprise
Reducing E-R Diagrams to Relational Schemas
Reduction to Relation Schemas
- E-R λ€μ΄μ΄κ·Έλ¨μ λ°λ₯΄λ λ°μ΄ν°λ² μ΄μ€λ κ΄κ³ μ€ν€λ§(ν μ΄λΈ)μ μ§ν©μΌλ‘ ννλ μ μμ
- E-R λͺ¨λΈκ³Ό κ΄κ³ν λ°μ΄ν°λ² μ΄μ€ λͺ¨λΈμ μ μ¬ν μ€κ³ μμΉμ μ¬μ©
- E-R μ€κ³λ₯Ό κ΄κ³ν μ€κ³λ‘ λ³ν κ°λ₯
- κΈ°λ³Έ κ·μΉ
- κ° κ°μ²΄ μ§ν©κ³Ό κ΄κ³ μ§ν©μ λν΄, ν΄λΉ κ°μ²΄ μ§ν© λλ κ΄κ³ μ§ν©μ μ΄λ¦μ΄ ν λΉλ κ³ μ ν μ€ν€λ§κ° μμ
- κ° κ°μ²΄ μ§ν© κ³ μ ν κ΄κ³ μ€ν€λ§
- κ° κ΄κ³ μ§ν© κ³ μ ν κ΄κ³ μ€ν€λ§
- κ°ν κ°μ²΄ μ§ν©μ λμΌν μμ±μ κ°μ§ μ€ν€λ§λ‘ μΆμλ¨:
student(ID,name,tot_cred) - μ½ν κ°μ²΄ μ§ν©μ μλ³ κ°ν κ°μ²΄ μ§ν©μ κΈ°λ³Έ ν€λ₯Ό μν μ΄μ ν¬ν¨νλ ν
μ΄λΈμ΄ λ¨:
section(course_id,sec_id,sem,year)
Representation of Entity Sets with Composite Attributes
- λ³΅ν© μμ±μ κ° κ΅¬μ± μμ μμ±μ λν΄ λ³λμ μμ±μ μμ±νμ¬ ννν(flattened out)λ¨
- μ:
instructorκ°μ²΄ μ§ν©μ κ΅¬μ± μμ μμ±first_name,middle_initial,last_nameμ κ°μ§ λ³΅ν© μμ±nameμ΄ μ£Όμ΄μ§ κ²½μ°, κ°μ²΄ μ§ν©μ ν΄λΉνλ μ€ν€λ§λname_first_name,name_middle_initial,name_last_nameμΈ μμ±μ κ°μ§- λͺ¨νΈν¨μ΄ μμΌλ©΄ μ λμ¬ μλ΅ κ°λ₯
- λ€μ€κ° μμ±μ 무μν νμ₯λ
instructorμ€ν€λ§:Instructor(ID,first_name,middle_initial,last_name,street_number,street_name,apt_number,city,state,zip_code,date_of_birth)
Representation of Entity Sets with Multivalued Attributes
- κ°μ²΄ μ λ€μ€κ° μμ± μ λ³λμ μ€ν€λ§ μΌλ‘ ννλ¨
- μ€ν€λ§ μ μ κΈ°λ³Έ ν€μ ν΄λΉνλ μμ±κ³Ό λ€μ€κ° μμ± μ ν΄λΉνλ μμ±μ κ°μ§
- μ:
instructorμ λ€μ€κ° μμ±phone_numberλinst_phone(ID,phone_number) μ€ν€λ§λ‘ ννλ¨ - λ€μ€κ° μμ±μ κ° κ°μ μ€ν€λ§ μ λν κ΄κ³μ λ³λ ννμ λ§€νλ¨
Representing Relationship Sets
- κΈ°λ³Έ κ·μΉ (λ€λλ€ κ΄κ³ μ§ν©μ©)
- λ₯Ό ν¬ν¨νλ κ΄κ³ μ§ν© μ ν΄λΉνλ μμ±μ κ°μ§ κ΄κ³ μ€ν€λ§
- μ:
advisorκ΄κ³ μ§ν©μ μ€ν€λ§:advisor= (s_ID,i_ID)
Combination of Schemas for Removing Redundancy
- "λ€(many)" μͺ½μμ μ 체 μ°Έμ¬μΈ λ€λμΌ λ° μΌλλ€ κ΄κ³ μ§ν©
- μ λν λ³λμ μ€ν€λ§λ₯Ό λ§λλ λμ , λ₯Ό λνλ΄λ κ΄κ³ μ€ν€λ§μ μμ± μΆκ°
- μ΄λ¬ν κ΄κ³ μ§ν©μ "λ€" μͺ½μ "μΌ(one)" μͺ½μ κΈ°λ³Έ ν€λ₯Ό ν¬ν¨νλ μΆκ° μμ±μ μΆκ°νμ¬ νν κ°λ₯
- μ:
inst_deptλ°stud_deptκ΄κ³ μ§ν©μ λν μ€ν€λ§λ₯Ό μμ±νλ λμ ,instructorλ°studentκ°μ²΄ μ§ν©μμ λ°μνλ μ€ν€λ§μdept_nameμμ± μΆκ°instructorμ€ν€λ§ = (ID,name,salary,dept_name)studentμ€ν€λ§ = (ID,name,tot_cred,dept_name)
- μΌλμΌ κ΄κ³ μ§ν©μ κ²½μ°, μ΄λ μͺ½μ΄λ "λ€" μͺ½ μν μ νλλ‘ μ ν κ°λ₯
- "λ€" μͺ½μμμ μ°Έμ¬κ° λΆλΆμ μΈ κ²½μ°, "λ€" μͺ½μ ν΄λΉνλ μ€ν€λ§μ μΆκ° μμ±μΌλ‘ μ€ν€λ§λ₯Ό λ체νλ©΄
nullκ°μ΄ λ°μν μ μμ - μ½ν κ°μ²΄ μ§ν©μ μλ³ κ°ν κ°μ²΄ μ§ν©μ μ°κ²°νλ κ΄κ³ μ§ν©μ ν΄λΉνλ μ€ν€λ§λ μ€λ³΅λ¨
- μ½ν κ°μ²΄ μ§ν©μ μ€ν€λ§λ μ΄λ―Έ μλ³ κ°μ²΄ μ§ν©μ κΈ°λ³Έ ν€λ₯Ό ν¬ν¨νλ―λ‘, κ΄κ³μ λͺ¨λ μ λ³΄κ° μ½ν κ°μ²΄ μ§ν©μ μ€ν€λ§μ λνλ¨
- λ°λΌμ κ΄κ³ν λ°μ΄ν°λ² μ΄μ€ μ€κ³μ μ‘΄μ¬ν νμκ° μμ
Extended E-R Features
Specialization
- κ°μ²΄ μ§ν©μ μ§ν© λ΄ λ€λ₯Έ κ°μ²΄μ μ΄λ€ λ©΄μμ ꡬλ³λλ κ°μ²΄μ νμ κ·Έλ£Ήμ ν¬ν¨ν μ μμ
- κ°μ²΄ μ§ν© λ΄μ κ°μ²΄ νμ μ§ν©μ κ°μ²΄ μ§ν©μ λ€λ₯Έ λͺ¨λ κ°μ²΄μ 곡μ λμ§ μλ μμ±μ κ°μ§ μ μμ
- μ)
personκ°μ²΄ μ§ν©μemployeeμstudentλ‘ λ λΆλ₯λ μ μμΌλ©°, κ°κ° κ³ μ ν μμ±μ κ°μ§ - νΉμν(Specialization): κ°μ²΄ μ§ν© λ΄ νμ κ·Έλ£Ήμ μ§μ νλ μν₯μ(top-down) νλ‘μΈμ€
- μ΄λ¬ν λ νΉν κ°μ²΄ κ·Έλ£Ήμ λνλ΄κΈ° μν΄ E-R λͺ¨λΈμ΄ μ 곡νλ μλ¨
- μ΄λ¬ν νμ κ·Έλ£Ήμ μμ μμ€ κ°μ²΄ μ§ν©μ μ μ©λμ§ μλ μμ±μ κ°κ±°λ κ΄κ³μ μ°Έμ¬νλ νμ μμ€ κ°μ²΄ μ§ν©μ΄ λ¨
- μμ΄ λΉ νμ΄ν λ¨Έλ¦¬κ° νΉμνλ κ°μ²΄μμ μμ μμ€ κ°μ²΄λ‘ ν₯νλ κ²μΌλ‘ λ¬μ¬λ¨
- μ΄ κ΄κ³λ₯Ό ISA κ΄κ³λΌκ³ ν¨ (μ:
student"is a"person) - μμ± μμ(Attribute inheritance): νμ μμ€ κ°μ²΄ μ§ν©μ μ°κ²°λ μμ μμ€ κ°μ²΄ μ§ν©μ λͺ¨λ μμ±κ³Ό κ΄κ³ μ°Έμ¬λ₯Ό μμν¨
Specialization Example
- μ€μ²© νΉμν(Overlapping specialization)
- κ°μ²΄λ μ¬λ¬ νΉμνλ κ°μ²΄ μ§ν©μ μν μ μμ
- κ° νΉμνλ κ°μ²΄ μ§ν©μ λν΄ λ³λμ νμ΄ν μ¬μ©
- μ)
employeeμstudent
- λΉμ°κ΄ νΉμν(Disjoint specialization)
- κ°μ²΄λ μ΅λ νλμ νΉμνλ κ°μ²΄ μ§ν©μ μν¨
- λ¨μΌ νμ΄ν μ¬μ©
- μ)
instructorμsecretary
Representing Specialization via Schemas
- λ°©λ² 1:
- μμ μμ€ κ°μ²΄ μ§ν©μ λν μ€ν€λ§ νμ±
- κ° νμ μμ€ κ°μ²΄ μ§ν©μ λν μ€ν€λ§ νμ±, μμ μμ€ κ°μ²΄ μ§ν©μ κΈ°λ³Έ ν€μ μ§μ μμ± ν¬ν¨
- λ¨μ :
employeeμ λν μ 보λ₯Ό μ»μΌλ €λ©΄ λ κ°μ κ΄κ³, μ¦ νμ μμ€ μ€ν€λ§(κΈμ¬λ₯Ό μ»κΈ° μν΄)μ μμ μμ€ μ€ν€λ§(μ΄λ¦, 거리, λμλ₯Ό μ»κΈ° μν΄)μ μ κ·Όν΄μΌ ν¨
- λ°©λ² 2:
- λͺ¨λ μ§μ λ° μμλ μμ±μ κ°μ§ κ° κ°μ²΄ μ§ν©μ λν μ€ν€λ§ νμ±
- λ¨μ :
studentμemployeeλͺ¨λμΈ μ¬λλ€μ κ²½μ°name,street,cityκ° μ€λ³΅ μ μ₯λ μ μμ
Generalization
- λμΌν νΉμ§μ 곡μ νλ μ¬λ¬ κ°μ²΄ μ§ν©μ μμ μμ€ κ°μ²΄ μ§ν©μΌλ‘ κ²°ν©νλ νν₯μ(bottom-up) μ€κ³ νλ‘μΈμ€
- νΉμνμ μΌλ°ν(generalization)λ μλ‘μ λ¨μν μκ΄κ³
- μ΄λμ μμνλλμ λ°λΌ λ€λ¦
- E-R λ€μ΄μ΄κ·Έλ¨μμ λμΌν λ°©μμΌλ‘ ννλ¨
- νΉμνμ μΌλ°ν μ©μ΄λ μνΈ κ΅νμ μΌλ‘ μ¬μ©λ¨
Completeness constraint
- μμ μ± μ μ½ μ‘°κ±΄(Completeness constraint): μμ μμ€ κ°μ²΄ μ§ν©μ κ°μ²΄κ° μΌλ°ν λ΄μ νμ μμ€ κ°μ²΄ μ§ν© μ€ μ μ΄λ νλμ μν΄μΌ νλμ§ μ¬λΆλ₯Ό λͺ μ
total: κ°μ²΄λ νμ μμ€ κ°μ²΄ μ§ν© μ€ νλμ μν΄μΌ ν¨partial(κΈ°λ³Έκ°): κ°μ²΄λ νμ μμ€ κ°μ²΄ μ§ν© μ€ νλμ μν νμκ° μμ- ER λ€μ΄μ΄κ·Έλ¨μ "total" ν€μλλ₯Ό μΆκ°νκ³ ν΄λΉ ν€μλμμ μ μ©λλ μμ΄ λΉ νμ΄ν 머리(λΉμ°κ΄ μΌλ°νμ κ²½μ°) λλ νμ΄ν 머리 μ§ν©(μ€μ²© μΌλ°νμ κ²½μ°)μΌλ‘ μ μ μ κ·Έλ € μ 체 μΌλ°νλ₯Ό λͺ μ κ°λ₯
Aggregation
- μμ λ³Έ 3μ§ κ΄κ³
proj_guideλ₯Ό κ³ λ € - νλ‘μ νΈμμ νμμ μ§λνλ κ° κ°μ¬κ° νκ° λ³΄κ³ μλ₯Ό μ μ₯ν΄μΌ νλ€κ³ κ°μ
- νκ° λ³΄κ³ μλ₯Ό 'evaluation' κ°μ²΄λ‘ λͺ¨λΈλ§
- κ·Έλ¬λ©΄
instructor,student,project,evaluationκ°μ²΄λ₯Ό μ°κ΄μν€λ 4μ§(4-way) κ΄κ³ μ§ν©eval_forκ° νμ eval_forμproj_guideκ΄κ³ μ§ν©μ μ€λ³΅λλ μ 보λ₯Ό λνλ- μ΄ μ€λ³΅μ±μ μ§ν©ν(aggregation)λ₯Ό ν΅ν΄ μ κ±°
- κ΄κ³λ₯Ό κ°λ μ μμ μμ€ κ°μ²΄λ‘ μΆμν
- κ΄κ³ κ°μ κ΄κ³λ₯Ό νμ©
- μ€λ³΅μ±μ λμ νμ§ μκ³ μ§ν©νλ₯Ό ν΅ν΄ μ΄ μ€λ³΅μ± μ κ±°
- λ€μ λ€μ΄μ΄κ·Έλ¨μ λ€μμ λνλ:
- νμμ νΉμ νλ‘μ νΈμμ νΉμ κ°μ¬μ μ§λλ₯Ό λ°μ
- νμ, κ°μ¬, νλ‘μ νΈ μ‘°ν©μ μ°κ΄λ νκ°λ₯Ό κ°μ§ μ μμ
Aggregation: Reduction to Relational Schemas
- μ§ν©νλ₯Ό λνλ΄κΈ° μν΄ λ€μμ ν¬ν¨νλ μ€ν€λ§ μμ±
- μ§ν©νλ κ΄κ³μ κΈ°λ³Έ ν€
- μ°κ΄λ κ°μ²΄ μ§ν©μ κΈ°λ³Έ ν€
- μ‘΄μ¬νλ κ²½μ° λͺ¨λ κΈ°μ μ μμ±
- μμ μμ:
eval_forμ€ν€λ§λeval_for(s_ID,project_id,i_ID,evaluation_id)proj_guideμ λν κ΄κ³ μ€ν€λ§λ μ€λ³΅λ¨
Design Issues
Common Mistakes in E-R Diagrams
- (a) κ΄κ³λ₯Ό μ¬μ©νλ λμ , κ°μ²΄ μ§ν©(
department)μ κΈ°λ³Έ ν€(dept_name)λ₯Ό λ€λ₯Έ κ°μ²΄ μ§ν©(student)μ μμ±μΌλ‘ μ¬μ© - (b) λ€μ€κ° μμ±μ΄ νμν μν©μμ λ¨μΌκ° μμ±(
assignment,marks)μ κ°μ§ κ΄κ³ μ¬μ© (μ°Έκ³ : ν κ³Όλͺ© μ 곡μμ μ¬λ¬ κ³Όμ κ° μμ μ μμ)
E-R Design Decisions
- κ°μ²΄λ₯Ό λνλ΄κΈ° μν΄ μμ± λλ κ°μ²΄ μ§ν© μ¬μ© (μ:
phone_numbers) - μ€μΈκ³ κ°λ μ΄ κ°μ²΄ μ§ν© λλ κ΄κ³ μ§ν©μΌλ‘ κ°μ₯ μ ννλλμ§ μ¬λΆ
- 3μ§ κ΄κ³ λ ν μμ μ΄μ§ κ΄κ³ μ¬μ©
- κ°ν λλ μ½ν κ°μ²΄ μ§ν© μ¬μ©
- νΉμν/μΌλ°ν μ¬μ©: μ€κ³μ λͺ¨λμ±(modularity)μ κΈ°μ¬
- μ§ν©ν μ¬μ©: μ§ν© κ°μ²΄ μ§ν©μ λ΄λΆ ꡬ쑰μ μΈλΆ μ¬νμ λν κ±±μ μμ΄ λ¨μΌ λ¨μλ‘ μ·¨κΈ κ°λ₯
