μμ± 2026. 6. 12.Β·μμ 2026. 6. 12.
- Design Phases(μ€κ³ λ¨κ³)
- μ΄κΈ° λ¨κ³: μλΉ λ°μ΄ν°λ² μ΄μ€ μ¬μ©μμ λ°μ΄ν° μꡬμ¬νμ μμ ν νΉμ±ν
- κ²°κ³Όλ¬Ό: μ¬μ©μ μꡬμ¬ν λͺ
μΈμ
- λ λ²μ§Έ λ¨κ³: λ°μ΄ν° λͺ¨λΈμ μ ννκ³ ν΄λΉ λ°μ΄ν° λͺ¨λΈμ κ°λ
μ μ©
- μ¬μ©μ μꡬμ¬νμ λ°μ΄ν°λ² μ΄μ€μ κ°λ
μ μ€ν€λ§(conceptual schema)λ‘ λ³ν
- κ°λ
μ μ€ν€λ§λ κΈ°μ
μ κΈ°λ₯μ μꡬμ¬νμ λνλ
- λ°μ΄ν°μ μνλ μμ
(λλ νΈλμμ
)μ μ’
λ₯λ₯Ό κΈ°μ
- μ΅μ’
λ¨κ³: μΆμ λ°μ΄ν° λͺ¨λΈμμ λ°μ΄ν°λ² μ΄μ€ ꡬνμΌλ‘ μ΄λ
- λ
Όλ¦¬μ μ€κ³(Logical Design): λ°μ΄ν°λ² μ΄μ€ μ€ν€λ§ κ²°μ
- "μ’μ" κ΄κ³ μ€ν€λ§(relation schema)μ μ§ν©μ μ°ΎμμΌ ν¨
- λΉμ¦λμ€ κ²°μ : λ°μ΄ν°λ² μ΄μ€μ μ΄λ€ μμ±(attribute)μ κΈ°λ‘ν΄μΌ νλκ°?
- μ»΄ν¨ν° κ³Όν κ²°μ : μ΄λ€ κ΄κ³ μ€ν€λ§λ₯Ό κ°μ ΈμΌ νλ©°, μμ±λ€μ λ€μν κ΄κ³ μ€ν€λ§μ μ΄λ»κ² λΆλ°°ν΄μΌ νλκ°?
- 물리μ μ€κ³(Physical Design): λ°μ΄ν°λ² μ΄μ€μ 물리μ λ μ΄μμ κ²°μ
- Entity-Relationship Model(κ°μ²΄-κ΄κ³ λͺ¨λΈ) (λ³Έ μ₯μμ λ€λ£Έ)
- κΈ°μ
μ κ°μ²΄(entities)μ κ΄κ³(relationships)μ μ§ν©μΌλ‘ λͺ¨λΈλ§
- Entity(κ°μ²΄): λ€λ₯Έ κ°μ²΄μ ꡬλ³λλ κΈ°μ
λ΄μ "μ¬λ¬Ό" λλ "κ°μ²΄"
- μμ± μ§ν©μ μν΄ κΈ°μ λ¨
- Relationship(κ΄κ³): μ¬λ¬ κ°μ²΄ κ°μ μ°κ΄μ±
- κ°μ²΄-κ΄κ³ λ€μ΄μ΄κ·Έλ¨ (E-R diagram)μΌλ‘ λμννμ¬ νν
- Normalization Theory(μ κ·ν μ΄λ‘ ) (λ€μ μ₯μμ λ€λ£Έ)
- μ΄λ€ μ€κ³κ° λμμ§ κ³΅μννκ³ μ΄λ₯Ό ν
μ€νΈν¨
- κ°μ²΄(entity)λ μ‘΄μ¬νλ©° λ€λ₯Έ κ°μ²΄μ ꡬλ³λλ κ°μ²΄
- μ: νΉμ μ¬λ, νμ¬, μ΄λ²€νΈ
- κ°μ²΄ μ§ν©(entity set)μ λμΌν μμ±μ 곡μ νλ λμΌν μ νμ κ°μ²΄ μ§ν©
- μ: λͺ¨λ μ¬λ, νμ¬, λ무, ν΄μΌμ μ§ν©
- κ°μ²΄λ μμ± μ§ν©μΌλ‘ ννλ¨
- μμ±: κ°μ²΄ μ§ν©μ λͺ¨λ ꡬμ±μμ΄ μμ ν κΈ°μ μ μμ±
- μ:
instructor = (ID, name, salary), course = (course_id, title, credits)
- λλ©μΈ(Domain): κ° μμ±μ νμ©λλ κ°μ μ§ν©
- μμ±μ μΌλΆ μ§ν©μ κ°μ²΄ μ§ν©μ κΈ°λ³Έ ν€(primary key)λ₯Ό νμ±
- κΈ°λ³Έ ν€λ μ§ν©μ κ° κ΅¬μ±μμ κ³ μ νκ² μλ³ν¨
- ER λ€μ΄μ΄κ·Έλ¨μμ κ°μ²΄ μ§ν©μ λ€μκ³Ό κ°μ΄ κ·Έλν½μΌλ‘ νν κ°λ₯:
- μ¬κ°νμ κ°μ²΄ μ§ν©μ λνλ
- μμ±μ κ°μ²΄ μ¬κ°ν λ΄λΆμ λμ΄λ¨
- λ°μ€μ κΈ°λ³Έ ν€ μμ±μ λνλ
- κ΄κ³λ μ¬λ¬ κ°μ²΄ κ°μ μ°κ΄μ±
- μ:
student κ°μ²΄ - advisor κ΄κ³ μ§ν© - instructor κ°μ²΄
- κ΄κ³ μ§ν©(relationship set)μ nβ₯2κ°μ κ°μ²΄ κ°μ μνμ κ΄κ³λ‘, κ° κ°μ²΄λ κ°μ²΄ μ§ν©μμ κ°μ Έμ΄:
R={(e1β,e2β,β¦,enβ)β£e1ββE1β,e2ββE2β,β¦,enββEnβ}
- μ¬κΈ°μ (e1β,e2β,β¦,enβ)μ κ΄κ³. μ: (76766,98988)βadvisor
- μ: μ§λκ΅μ μν μ νλ κ°μ¬μ νμ κ°μ μ°κ΄μ±μ λνλ΄κΈ° μν΄
advisor κ΄κ³ μ§ν© μ μ - λμμ μΌλ‘, κ΄λ ¨λ κ°μ²΄ μ¬μ΄μ μ μ κ·Έλ¦Ό
- ER λ€μ΄μ΄κ·Έλ¨μμ λ€μ΄μλͺ¬λλ κ΄κ³ μ§ν©μ λνλ
- μμ±μ κ΄κ³ μ§ν©κ³Όλ μ°κ΄λ μ μμ
- μλ₯Ό λ€μ΄,
instructorμ student κ°μ²΄ μ§ν© κ°μ advisor κ΄κ³ μ§ν©μ νμμ΄ μ§λκ΅μμ μ°κ΄λκΈ° μμν μμ μ μΆμ νλ 'date' μμ±μ κ°μ§ μ μμ - κ΄κ³ μ§ν©μ μ°¨μ(Degree)
- μ΄μ§ κ΄κ³(Binary relationship): R={(e1β,e2β)β£e1ββE1β,e2ββE2β}
- λ κ°μ κ°μ²΄ μ§ν©(λλ 2μ°¨)μ ν¬ν¨
- λ°μ΄ν°λ² μ΄μ€ μμ€ν
μ λλΆλΆ κ΄κ³ μ§ν©μ μ΄μ§ κ΄κ³
- μΈ κ° μ΄μμ κ°μ²΄ μ§ν© κ°μ κ΄κ³λ λλ¬Ύ
- μ: νμλ€μ΄ κ°μ¬μ μ§λ νμ μ°κ΅¬ νλ‘μ νΈλ₯Ό μν
proj_guide κ΄κ³λ instructor, student, project κ°μ 3μ§ κ΄κ³(ternary relationship)
- κ΄κ³μ κ°μ²΄ μ§ν©μ μλ‘ κ΅¬λ³λ νμκ° μμ
- κ°μ²΄ μ§ν©μ κ° λ°μμ κ΄κ³μμ "μν (role)"μ μν
- "course_id"μ "prereq_id" λ μ΄λΈμ μν (role)μ΄λΌκ³ λΆλ¦Ό
- μμ± μ ν:
- λ¨μ(Simple) μμ±κ³Ό 볡ν©(composite) μμ±
- λ¨μ: κ°μ΄ νμ λΆλΆμΌλ‘ λλ μ μμ (μ:
first_name, last_name) - 볡ν©: μ¬λ¬ λΆλΆμΌλ‘ ꡬμ±λ¨ (μ:
name = (first_name, last_name))
- λ¨μΌκ°(Single-valued) (μ:
name) λ° λ€μ€κ°(multivalued) (μ: phone_numbers) μμ± - νμ(Derived) μμ±
- λ€λ₯Έ μμ±μΌλ‘λΆν° κ³μ° κ°λ₯
- μ:
date_of_birthκ° μ£Όμ΄μ‘μ λ age
- λ³΅ν© μμ±μ μμ±μ νμ λΆλΆ(λ€λ₯Έ μμ±)μΌλ‘ λλ μ μκ² ν¨
- λ€μ€κ° μμ±(Multivalued attribute)
- νμ μμ±(Derived attribute)
- λ€λ₯Έ κ°μ²΄κ° κ΄κ³ μ§ν©μ ν΅ν΄ μ°κ΄λ μ μλ κ°μ²΄μ μλ₯Ό νν
- μ΄μ§ κ΄κ³ μ§ν©μ μ€λͺ
νλ λ° κ°μ₯ μ μ©
- μ΄μ§ κ΄κ³ μ§ν©μ κ²½μ°, λ§€ν μΉ΄λλ리ν°(mapping cardinality)λ λ€μ μ ν μ€ νλμ¬μΌ ν¨:
- μΌλμΌ(One to one)
- μΌλλ€(One to many)
- λ€λμΌ(Many to one)
- λ€λλ€(Many to many)
- μ°Έκ³ : Aμ Bμ μΌλΆ μμλ λ€λ₯Έ μ§ν©μ μ΄λ€ μμμλ λ§€νλμ§ μμ μ μμ
- μΉ΄λλλ¦¬ν° μ μ½ μ‘°κ±΄μ κ΄κ³ μ§ν©κ³Ό κ°μ²΄ μ§ν© μ¬μ΄μ λ°©ν₯μ± μλ μ (β, "μΌ") λλ λ°©ν₯μ± μλ μ (β, "λ€")μ κ·Έλ € νν
- κ°μ¬μ νμ κ°μ μΌλμΌ κ΄κ³:
- νμμ
advisor κ΄κ³λ₯Ό ν΅ν΄ μ΅λ ν λͺ
μ κ°μ¬μ μ°κ΄λ¨ - κ°μ¬λ κ΄κ³λ₯Ό ν΅ν΄ μ΅λ ν λͺ
μ νμμ μ§λν¨
- κ°μ¬μ νμ κ°μ μΌλλ€ κ΄κ³:
- κ°μ¬λ μ¬λ¬ λͺ
(0 ν¬ν¨)μ νμμ μ§λν¨
- νμμ
advisor κ΄κ³λ₯Ό ν΅ν΄ μ΅λ ν λͺ
μ κ°μ¬μ μ°κ΄λ¨
- κ°μ¬μ νμ κ°μ λ€λμΌ κ΄κ³:
- κ°μ¬λ
advisorλ₯Ό ν΅ν΄ μ΅λ ν λͺ
μ νμμ μ§λν¨ - νμμ
advisorλ₯Ό ν΅ν΄ μ¬λ¬ λͺ
(0 ν¬ν¨)μ κ°μ¬μ μ°κ΄λ¨
- κ°μ¬μ νμ κ°μ λ€λλ€ κ΄κ³:
- κ°μ¬λ
advisorλ₯Ό ν΅ν΄ μ¬λ¬ λͺ
(0 ν¬ν¨)μ νμμ μ§λν¨ - νμμ
advisorλ₯Ό ν΅ν΄ μ¬λ¬ λͺ
(0 ν¬ν¨)μ κ°μ¬μ μ°κ΄λ¨
- κ΄κ³ μΉ΄λλ리ν°λ κ΄κ³ μμ±μ λ°°μΉμ μν₯μ μ€ μ μμ:
- κ° νμμ΄ λ¨ ν λͺ
μ κ°μ¬λ§ κ°μ§ μ μλ€λ©΄,
dateλ₯Ό κ΄κ³(advisor) μμ± λμ νμ("λ€" μͺ½)μ μμ±μΌλ‘ λ§λ€ μ μμ
advisor κ΄κ³κ° μΌλλ€ μΉ΄λλ리ν°λ₯Ό κ°μ§λ€κ³ κ°μ
- μ 체 μ°Έμ¬(Total participation) (μ΄μ€μ μΌλ‘ νμ): κ°μ²΄ μ§ν©μ λͺ¨λ κ°μ²΄λ κ΄κ³ μ§ν©μμ μ΅μ νλμ κ΄κ³μ μ°Έμ¬
- μ:
advisor κ΄κ³μμ studentμ μ°Έμ¬λ μ 체 μ°Έμ¬ - λͺ¨λ νμμ μ°κ΄λ κ°μ¬κ° μμ΄μΌ ν¨
- λΆλΆ μ°Έμ¬(Partial participation): μΌλΆ κ°μ²΄λ κ΄κ³ μ§ν©μ μ΄λ€ κ΄κ³μλ μ°Έμ¬νμ§ μμ μ μμ
- μ:
advisorμμ instructorμ μ°Έμ¬λ λΆλΆ μ°Έμ¬ - μ΄λ€ νμλ μ§λνμ§ μλ κ°μ¬κ° μμ μ μμ
- μ μλ l..h ννλ‘ μ΅μ λ° μ΅λ μΉ΄λλ리ν°κ° μ°κ΄λ μ μμΌλ©°, μ¬κΈ°μ lμ μ΅μ, hλ μ΅λ μΉ΄λλ리ν°
- μ΅μκ° 1μ μ 체 μ°Έμ¬λ₯Ό λνλ
- μ΅λκ° 1μ κ°μ²΄κ° μ΅λ νλμ κ΄κ³μ μ°Έμ¬ν¨μ λνλ
- μ΅λκ° *λ μ νμ΄ μμμ λνλ
- μμ
- κ°μ¬λ 0λͺ
μ΄μμ νμμ μ§λν μ μμ
- νμμ λ°λμ 1λͺ
μ μ§λκ΅μλ₯Ό κ°μ ΈμΌ νλ©°, μ¬λ¬ λͺ
μ κ°μ§ μ μμ
- μΉ΄λλλ¦¬ν° μ μ½ μ‘°κ±΄μ λνλ΄κΈ° μν΄ 3μ§(λλ κ·Έ μ΄μμ μ°¨μ) κ΄κ³μμ λμ€λ νμ΄νλ μ΅λ νλλ§ νμ©
- μλ₯Ό λ€μ΄,
proj_guideμμ instructorλ‘μ νμ΄νλ κ° νμμ΄ νλ‘μ νΈμ λν΄ μ΅λ ν λͺ
μ μ§λκ΅μλ₯Ό κ°μ§μ λνλ - νμ΄νκ° νλ μ΄μ μλ κ²½μ°, μλ―Έλ₯Ό μ μνλ λ κ°μ§ λ°©λ² μ‘΄μ¬
- μλ₯Ό λ€μ΄, A, B, C κ°μ 3μ§ κ΄κ³ Rμμ Bμ Cλ‘ νμ΄νκ° μλ κ²½μ°
- κ° A κ°μ²΄λ Bμ Cλ‘λΆν° κ³ μ ν κ°μ²΄μ μ°κ΄λ¨, λλ
- (A, B)μ κ° κ°μ²΄ μμ κ³ μ ν C κ°μ²΄μ μ°κ΄λκ³ , κ° μ (A, C)λ κ³ μ ν Bμ μ°κ΄λ¨
- νΌλμ νΌνκΈ° μν΄ νλ μ΄μμ νμ΄νλ κΈμ§
- κΈ°λ³Έ ν€λ μ£Όμ΄μ§ κ°μ²΄ μ§ν© λ΄μ κ°μ²΄μ μ£Όμ΄μ§ κ΄κ³ μ§ν© λ΄μ κ΄κ³λ₯Ό ꡬλ³νλ λ°©λ²μ μ 곡
- κ³ λ € λμ κΈ°λ³Έ ν€:
- κ°μ²΄ μ§ν©
- κ΄κ³ μ§ν©
- μ½ν κ°μ²΄ μ§ν©
- μ μμ λ°λΌ, κ°λ³ κ°μ²΄λ ꡬλ³λ¨
- λ°μ΄ν°λ² μ΄μ€ κ΄μ μμ, κ·Έλ€ κ°μ μ°¨μ΄λ μμ±μ κ΄μ μμ ννλμ΄μΌ ν¨
- κ°μ²΄μ μμ± κ°μ κ°μ²΄λ₯Ό κ³ μ νκ² μλ³ν μ μμ΄μΌ ν¨
- κ°μ²΄ μ§ν© λ΄ μ΄λ€ λ κ°μ²΄λ λͺ¨λ μμ±μ λν΄ μ νν λμΌν κ°μ κ°μ§ μ μμ
- κ°μ²΄ μ§ν©μ ν€λ κ°μ²΄ μ§ν© λ΄μ κ°μ²΄λ₯Ό μλ‘ κ΅¬λ³νκΈ°μ μΆ©λΆν μμ± μ§ν©
- κ΄κ³ μ§ν©μ λ€μν κ΄κ³λ₯Ό ꡬλ³νκΈ° μν΄, κ΄κ³ μ§ν©μ μλ κ°μ²΄μ κ°λ³ κΈ°λ³Έ ν€ μ¬μ©
- Rμ΄ κ°μ²΄ μ§ν© E1β,E2β,β¦,Enβμ ν¬ν¨νλ κ΄κ³ μ§ν©μ΄λΌ ν λ,
- κ°μ²΄ μ§ν© E1β,E2β,β¦,Enβμ κΈ°λ³Έ ν€μ ν©μ§ν©(union)μ Rμ κ°λ³ κ΄κ³λ₯Ό κΈ°μ (μ¦, μνΌν€(superkey) νμ±)
- PK(R)=PK(E1β)βͺβ―βͺPK(Enβ)
- κ΄κ³ μ§ν© Rμ a1β,a2β,β¦,amβ μμ±μ΄ μ°κ΄λμ΄ μλ€λ©΄, PK(R)μ Rμ μλ―Έμ λ°λΌ λ¬λΌμ§ (μ¦, a1β,a2β,β¦,amβ μ€ νλ μ΄μμ μμ±μ ν¬ν¨ν μ μμ)
- μ: "advisor" κ΄κ³ μ§ν©
- μνΌν€λ
instructor.IDμ student.IDλ‘ κ΅¬μ±
- κ°μ²΄ μ§ν©μ΄ κ΄κ³μ λ λ² μ΄μ μ°Έμ¬νλ κ²½μ°, κ°μ²΄ μ§ν© μ΄λ¦ λμ μν μ΄λ¦ μ¬μ©
- μ) "prereq" κ΄κ³ μ§ν©μμ, μνΌν€λ
course_id.IDμ prereq_id.IDλ‘ κ΅¬μ±
- κ΄κ³ μ§ν©μ κΈ°λ³Έ ν€ μ νμ κ΄κ³ μ§ν©μ λ§€ν μΉ΄λλ리ν°μ λ°λΌ λ¬λΌμ§ (μ΄μ§ κ΄κ³ μ§ν© R κ°μ )
- λ€λλ€ κ΄κ³
- μμ κΈ°λ³Έ ν€λ€μ ν©μ§ν©μ μ΅μ μνΌν€μ΄λ©° κΈ°λ³Έ ν€λ‘ μ νλ¨: PK(R)=PK(E1β)βͺPK(E2β)
- μΌλλ€ λλ λ€λμΌ κ΄κ³
- "λ€(Many)" μͺ½μ κΈ°λ³Έ ν€κ° μ΅μ μνΌν€μ΄λ©° κΈ°λ³Έ ν€λ‘ μ¬μ©λ¨
- μΌλλ€: PK(R)=PK(E2β,Many), λ€λμΌ: PK(R)=PK(E1β)
- μΌλμΌ κ΄κ³
- μ°Έμ¬νλ λ κ°μ²΄ μ§ν© μ€ νλμ κΈ°λ³Έ ν€κ° μ΅μ μνΌν€λ₯Ό νμ±νλ©°, λ μ€ νλλ₯Ό μ νν μ μμ: PK(R)=PK(E1β) λλ PK(E2β)
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)μ΄λΌλ μΆκ° μμ±μ μ¬μ©νμ¬ μ½ν κ°μ²΄λ₯Ό κ³ μ νκ² μλ³
- μ½ν κ°μ²΄ μ§ν©μ κΈ°λ³Έ ν€ = μλ³ κ°μ²΄ μ§ν©μ κΈ°λ³Έ ν€ + νλ³μ
- λͺ¨λ μ½ν κ°μ²΄λ μλ³ κ°μ²΄μ μ°κ΄λμ΄μΌ ν¨; μ¦, μ½ν κ°μ²΄ μ§ν©μ μλ³ κ°μ²΄ μ§ν©μ μ‘΄μ¬ μ’
μμ (existence dependent)μ
- μλ³ κ°μ²΄ μ§ν©μ κ°μ²΄κ° μμ λλ©΄, μ½ν κ°μ²΄ μ§ν©μ μ°κ΄λ λͺ¨λ κ°μ²΄λ μμ λμ΄μΌ ν¨
- μλ³ κ°μ²΄ μ§ν©μ κ·Έκ²μ΄ μλ³νλ μ½ν κ°μ²΄ μ§ν©μ μμ (own)νλ€κ³ ν¨
- μ½ν κ°μ²΄ μ§ν©μ μλ³ κ°μ²΄ μ§ν©κ³Ό μ°κ΄μν€λ κ΄κ³λ₯Ό μλ³ κ΄κ³(identifying relationship)λΌκ³ ν¨
- E-R λ€μ΄μ΄κ·Έλ¨μμ, μ½ν κ°μ²΄ μ§ν©μ μ΄μ€ μ¬κ°νμΌλ‘ νμ
- μ½ν κ°μ²΄ μ§ν©μ νλ³μλ μ μ μΌλ‘ λ°μ€μ κ·Έμ
- μ½ν κ°μ²΄ μ§ν©μ μλ³ κ°ν κ°μ²΄ μ§ν©μ μ°κ²°νλ κ΄κ³ μ§ν©μ μ΄μ€ λ€μ΄μλͺ¬λλ‘ νμ
sectionμ κΈ°λ³Έ ν€ = (course_id, sec_id, semester, year)
- λ€μκ³Ό κ°μ κ°μ²΄ μ§ν©μ΄ μλ€κ³ κ°μ :
student: μμ±μΌλ‘ ID, name, tot_cred, dept_namedepartment: μμ±μΌλ‘ dept_name, building, budget
- κ° νμμ΄ μ°κ΄λ νκ³Όκ° μλ€λ μ¬μ€μ
stud_dept κ΄κ³ μ§ν©μ μ¬μ©νμ¬ λͺ¨λΈλ§ student κ°μ²΄ μ§ν©μ dept_name μμ±μ κ΄κ³μ μλ μ 보λ₯Ό 볡μ νλ―λ‘ μ€λ³΅λλ©°, μ κ±° νμdept_nameμ μ κ±°ν νμλ student κ°μ²΄ μ§ν©μ μ¬μ ν κ°ν κ°μ²΄ μ§ν©μΌλ‘ λ¨μ (IDλ₯Ό κΈ°λ³Έ ν€λ‘ κ°μ§)- κ·Έλ¬λ, ν
μ΄λΈ(κ΄κ³ν λͺ¨λΈ)λ‘ λ€μ λ³νν λ, μ΄λ€ κ²½μ°μλ μμ±μ΄ λ€μ λμ
λ¨
- E-R λ€μ΄μ΄κ·Έλ¨μ λ°λ₯΄λ λ°μ΄ν°λ² μ΄μ€λ κ΄κ³ μ€ν€λ§(ν
μ΄λΈ)μ μ§ν©μΌλ‘ ννλ μ μμ
- E-R λͺ¨λΈκ³Ό κ΄κ³ν λ°μ΄ν°λ² μ΄μ€ λͺ¨λΈμ μ μ¬ν μ€κ³ μμΉμ μ¬μ©
- E-R μ€κ³λ₯Ό κ΄κ³ν μ€κ³λ‘ λ³ν κ°λ₯
- κΈ°λ³Έ κ·μΉ
- κ° κ°μ²΄ μ§ν©κ³Ό κ΄κ³ μ§ν©μ λν΄, ν΄λΉ κ°μ²΄ μ§ν© λλ κ΄κ³ μ§ν©μ μ΄λ¦μ΄ ν λΉλ κ³ μ ν μ€ν€λ§κ° μμ
- κ° κ°μ²΄ μ§ν© β κ³ μ ν κ΄κ³ μ€ν€λ§
- κ° κ΄κ³ μ§ν© β κ³ μ ν κ΄κ³ μ€ν€λ§
- κ°ν κ°μ²΄ μ§ν©μ λμΌν μμ±μ κ°μ§ μ€ν€λ§λ‘ μΆμλ¨:
student(ID, name, tot_cred) - μ½ν κ°μ²΄ μ§ν©μ μλ³ κ°ν κ°μ²΄ μ§ν©μ κΈ°λ³Έ ν€λ₯Ό μν μ΄μ ν¬ν¨νλ ν
μ΄λΈμ΄ λ¨:
section(course_id, sec_id, sem, year)
- λ³΅ν© μμ±μ κ° κ΅¬μ± μμ μμ±μ λν΄ λ³λμ μμ±μ μμ±νμ¬ ννν(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)
- κ°μ²΄ Eμ λ€μ€κ° μμ± Mμ λ³λμ μ€ν€λ§ EMμΌλ‘ ννλ¨
- μ€ν€λ§ EMμ Eμ κΈ°λ³Έ ν€μ ν΄λΉνλ μμ±κ³Ό λ€μ€κ° μμ± Mμ ν΄λΉνλ μμ±μ κ°μ§
- μ:
instructorμ λ€μ€κ° μμ± phone_numberλ inst_phone(ID, phone_number) μ€ν€λ§λ‘ ννλ¨ - λ€μ€κ° μμ±μ κ° κ°μ μ€ν€λ§ EMμ λν κ΄κ³μ λ³λ ννμ λ§€νλ¨
- κΈ°λ³Έ κ·μΉ (λ€λλ€ κ΄κ³ μ§ν©μ©)
- E1β,β¦,Ekβλ₯Ό ν¬ν¨νλ κ΄κ³ μ§ν© RβPK(E1β)βͺβ―βͺPK(Ekβ)βͺattr(R)μ ν΄λΉνλ μμ±μ κ°μ§ κ΄κ³ μ€ν€λ§ R
- μ:
advisor κ΄κ³ μ§ν©μ μ€ν€λ§: advisor = (s_ID, i_ID)
- "λ€(many)" μͺ½μμ μ 체 μ°Έμ¬μΈ λ€λμΌ λ° μΌλλ€ κ΄κ³ μ§ν©
- Rμ λν λ³λμ μ€ν€λ§λ₯Ό λ§λλ λμ , E2βλ₯Ό λνλ΄λ κ΄κ³ μ€ν€λ§μ PK(E1β)βͺattr(R) μμ± μΆκ°
- μ΄λ¬ν κ΄κ³ μ§ν©μ "λ€" μͺ½μ "μΌ(one)" μͺ½μ κΈ°λ³Έ ν€λ₯Ό ν¬ν¨νλ μΆκ° μμ±μ μΆκ°νμ¬ νν κ°λ₯
- μ:
inst_dept λ° stud_dept κ΄κ³ μ§ν©μ λν μ€ν€λ§λ₯Ό μμ±νλ λμ , instructor λ° student κ°μ²΄ μ§ν©μμ λ°μνλ μ€ν€λ§μ dept_name μμ± μΆκ° instructor μ€ν€λ§ = (ID, name, salary, dept_name)student μ€ν€λ§ = (ID, name, tot_cred, dept_name)
- μΌλμΌ κ΄κ³ μ§ν©μ κ²½μ°, μ΄λ μͺ½μ΄λ "λ€" μͺ½ μν μ νλλ‘ μ ν κ°λ₯
- "λ€" μͺ½μμμ μ°Έμ¬κ° λΆλΆμ μΈ κ²½μ°, "λ€" μͺ½μ ν΄λΉνλ μ€ν€λ§μ μΆκ° μμ±μΌλ‘ μ€ν€λ§λ₯Ό λ체νλ©΄
null κ°μ΄ λ°μν μ μμ - μ½ν κ°μ²΄ μ§ν©μ μλ³ κ°ν κ°μ²΄ μ§ν©μ μ°κ²°νλ κ΄κ³ μ§ν©μ ν΄λΉνλ μ€ν€λ§λ μ€λ³΅λ¨
- μ½ν κ°μ²΄ μ§ν©μ μ€ν€λ§λ μ΄λ―Έ μλ³ κ°μ²΄ μ§ν©μ κΈ°λ³Έ ν€λ₯Ό ν¬ν¨νλ―λ‘, κ΄κ³μ λͺ¨λ μ λ³΄κ° μ½ν κ°μ²΄ μ§ν©μ μ€ν€λ§μ λνλ¨
- λ°λΌμ κ΄κ³ν λ°μ΄ν°λ² μ΄μ€ μ€κ³μ μ‘΄μ¬ν νμκ° μμ
- κ°μ²΄ μ§ν©μ μ§ν© λ΄ λ€λ₯Έ κ°μ²΄μ μ΄λ€ λ©΄μμ ꡬλ³λλ κ°μ²΄μ νμ κ·Έλ£Ήμ ν¬ν¨ν μ μμ
- κ°μ²΄ μ§ν© λ΄μ κ°μ²΄ νμ μ§ν©μ κ°μ²΄ μ§ν©μ λ€λ₯Έ λͺ¨λ κ°μ²΄μ 곡μ λμ§ μλ μμ±μ κ°μ§ μ μμ
- μ)
person κ°μ²΄ μ§ν©μ employeeμ studentλ‘ λ λΆλ₯λ μ μμΌλ©°, κ°κ° κ³ μ ν μμ±μ κ°μ§ - νΉμν(Specialization): κ°μ²΄ μ§ν© λ΄ νμ κ·Έλ£Ήμ μ§μ νλ μν₯μ(top-down) νλ‘μΈμ€
- μ΄λ¬ν λ
νΉν κ°μ²΄ κ·Έλ£Ήμ λνλ΄κΈ° μν΄ E-R λͺ¨λΈμ΄ μ 곡νλ μλ¨
- μ΄λ¬ν νμ κ·Έλ£Ήμ μμ μμ€ κ°μ²΄ μ§ν©μ μ μ©λμ§ μλ μμ±μ κ°κ±°λ κ΄κ³μ μ°Έμ¬νλ νμ μμ€ κ°μ²΄ μ§ν©μ΄ λ¨
- μμ΄ λΉ νμ΄ν λ¨Έλ¦¬κ° νΉμνλ κ°μ²΄μμ μμ μμ€ κ°μ²΄λ‘ ν₯νλ κ²μΌλ‘ λ¬μ¬λ¨
- μ΄ κ΄κ³λ₯Ό ISA κ΄κ³λΌκ³ ν¨ (μ:
student "is a" person) - μμ± μμ(Attribute inheritance): νμ μμ€ κ°μ²΄ μ§ν©μ μ°κ²°λ μμ μμ€ κ°μ²΄ μ§ν©μ λͺ¨λ μμ±κ³Ό κ΄κ³ μ°Έμ¬λ₯Ό μμν¨
- μ€μ²© νΉμν(Overlapping specialization)
- κ°μ²΄λ μ¬λ¬ νΉμνλ κ°μ²΄ μ§ν©μ μν μ μμ
- κ° νΉμνλ κ°μ²΄ μ§ν©μ λν΄ λ³λμ νμ΄ν μ¬μ©
- μ)
employeeμ student
- λΉμ°κ΄ νΉμν(Disjoint specialization)
- κ°μ²΄λ μ΅λ νλμ νΉμνλ κ°μ²΄ μ§ν©μ μν¨
- λ¨μΌ νμ΄ν μ¬μ©
- μ)
instructorμ secretary
- λ°©λ² 1:
- μμ μμ€ κ°μ²΄ μ§ν©μ λν μ€ν€λ§ νμ±
- κ° νμ μμ€ κ°μ²΄ μ§ν©μ λν μ€ν€λ§ νμ±, μμ μμ€ κ°μ²΄ μ§ν©μ κΈ°λ³Έ ν€μ μ§μ μμ± ν¬ν¨
- λ¨μ :
employeeμ λν μ 보λ₯Ό μ»μΌλ €λ©΄ λ κ°μ κ΄κ³, μ¦ νμ μμ€ μ€ν€λ§(κΈμ¬λ₯Ό μ»κΈ° μν΄)μ μμ μμ€ μ€ν€λ§(μ΄λ¦, 거리, λμλ₯Ό μ»κΈ° μν΄)μ μ κ·Όν΄μΌ ν¨
- λ°©λ² 2:
- λͺ¨λ μ§μ λ° μμλ μμ±μ κ°μ§ κ° κ°μ²΄ μ§ν©μ λν μ€ν€λ§ νμ±
- λ¨μ :
studentμ employee λͺ¨λμΈ μ¬λλ€μ κ²½μ° name, street, cityκ° μ€λ³΅ μ μ₯λ μ μμ
- λμΌν νΉμ§μ 곡μ νλ μ¬λ¬ κ°μ²΄ μ§ν©μ μμ μμ€ κ°μ²΄ μ§ν©μΌλ‘ κ²°ν©νλ νν₯μ(bottom-up) μ€κ³ νλ‘μΈμ€
- νΉμνμ μΌλ°ν(generalization)λ μλ‘μ λ¨μν μκ΄κ³
- μ΄λμ μμνλλμ λ°λΌ λ€λ¦
- E-R λ€μ΄μ΄κ·Έλ¨μμ λμΌν λ°©μμΌλ‘ ννλ¨
- νΉμνμ μΌλ°ν μ©μ΄λ μνΈ κ΅νμ μΌλ‘ μ¬μ©λ¨
- μμ μ± μ μ½ μ‘°κ±΄(Completeness constraint): μμ μμ€ κ°μ²΄ μ§ν©μ κ°μ²΄κ° μΌλ°ν λ΄μ νμ μμ€ κ°μ²΄ μ§ν© μ€ μ μ΄λ νλμ μν΄μΌ νλμ§ μ¬λΆλ₯Ό λͺ
μ
total: κ°μ²΄λ νμ μμ€ κ°μ²΄ μ§ν© μ€ νλμ μν΄μΌ ν¨partial (κΈ°λ³Έκ°): κ°μ²΄λ νμ μμ€ κ°μ²΄ μ§ν© μ€ νλμ μν νμκ° μμ- ER λ€μ΄μ΄κ·Έλ¨μ "total" ν€μλλ₯Ό μΆκ°νκ³ ν΄λΉ ν€μλμμ μ μ©λλ μμ΄ λΉ νμ΄ν 머리(λΉμ°κ΄ μΌλ°νμ κ²½μ°) λλ νμ΄ν 머리 μ§ν©(μ€μ²© μΌλ°νμ κ²½μ°)μΌλ‘ μ μ μ κ·Έλ € μ 체 μΌλ°νλ₯Ό λͺ
μ κ°λ₯
- μμ λ³Έ 3μ§ κ΄κ³
proj_guideλ₯Ό κ³ λ € - νλ‘μ νΈμμ νμμ μ§λνλ κ° κ°μ¬κ° νκ° λ³΄κ³ μλ₯Ό μ μ₯ν΄μΌ νλ€κ³ κ°μ
- νκ° λ³΄κ³ μλ₯Ό 'evaluation' κ°μ²΄λ‘ λͺ¨λΈλ§
- κ·Έλ¬λ©΄
instructor, student, project, evaluation κ°μ²΄λ₯Ό μ°κ΄μν€λ 4μ§(4-way) κ΄κ³ μ§ν© eval_forκ° νμ eval_forμ proj_guide κ΄κ³ μ§ν©μ μ€λ³΅λλ μ 보λ₯Ό λνλ- μ΄ μ€λ³΅μ±μ μ§ν©ν(aggregation)λ₯Ό ν΅ν΄ μ κ±°
- κ΄κ³λ₯Ό κ°λ
μ μμ μμ€ κ°μ²΄λ‘ μΆμν
- κ΄κ³ κ°μ κ΄κ³λ₯Ό νμ©
- μ€λ³΅μ±μ λμ
νμ§ μκ³ μ§ν©νλ₯Ό ν΅ν΄ μ΄ μ€λ³΅μ± μ κ±°
- λ€μ λ€μ΄μ΄κ·Έλ¨μ λ€μμ λνλ:
- νμμ νΉμ νλ‘μ νΈμμ νΉμ κ°μ¬μ μ§λλ₯Ό λ°μ
- νμ, κ°μ¬, νλ‘μ νΈ μ‘°ν©μ μ°κ΄λ νκ°λ₯Ό κ°μ§ μ μμ
- μ§ν©νλ₯Ό λνλ΄κΈ° μν΄ λ€μμ ν¬ν¨νλ μ€ν€λ§ μμ±
- μ§ν©νλ κ΄κ³μ κΈ°λ³Έ ν€
- μ°κ΄λ κ°μ²΄ μ§ν©μ κΈ°λ³Έ ν€
- μ‘΄μ¬νλ κ²½μ° λͺ¨λ κΈ°μ μ μμ±
- μμ μμ:
eval_for μ€ν€λ§λ eval_for(s_ID, project_id, i_ID, evaluation_id)proj_guideμ λν κ΄κ³ μ€ν€λ§λ μ€λ³΅λ¨
- (a) κ΄κ³λ₯Ό μ¬μ©νλ λμ , κ°μ²΄ μ§ν©(
department)μ κΈ°λ³Έ ν€(dept_name)λ₯Ό λ€λ₯Έ κ°μ²΄ μ§ν©(student)μ μμ±μΌλ‘ μ¬μ© - (b) λ€μ€κ° μμ±μ΄ νμν μν©μμ λ¨μΌκ° μμ±(
assignment, marks)μ κ°μ§ κ΄κ³ μ¬μ© (μ°Έκ³ : ν κ³Όλͺ© μ 곡μμ μ¬λ¬ κ³Όμ κ° μμ μ μμ)
- κ°μ²΄λ₯Ό λνλ΄κΈ° μν΄ μμ± λλ κ°μ²΄ μ§ν© μ¬μ© (μ:
phone_numbers) - μ€μΈκ³ κ°λ
μ΄ κ°μ²΄ μ§ν© λλ κ΄κ³ μ§ν©μΌλ‘ κ°μ₯ μ ννλλμ§ μ¬λΆ
- 3μ§ κ΄κ³ λ ν μμ μ΄μ§ κ΄κ³ μ¬μ©
- κ°ν λλ μ½ν κ°μ²΄ μ§ν© μ¬μ©
- νΉμν/μΌλ°ν μ¬μ©: μ€κ³μ λͺ¨λμ±(modularity)μ κΈ°μ¬
- μ§ν©ν μ¬μ©: μ§ν© κ°μ²΄ μ§ν©μ λ΄λΆ ꡬ쑰μ μΈλΆ μ¬νμ λν κ±±μ μμ΄ λ¨μΌ λ¨μλ‘ μ·¨κΈ κ°λ₯