• Mindscape πŸ”₯
    • Playlist 🎧
  • πŸ€– Artifical Intelligence

    • 1. Basics; Linear Algebra
    • 2. Basics; Linear Algebra (2), Search (1)
    • 3. Search (2)
    • 4. Knowledge and Logic (1)
    • 5. Knowledge and Logic (2)
    • 6. Probability
    • 7. Information Theory
    • 8. Probabilitc Reasoning (2)
    • 9. Probabilitc Reasoning (3)
    • 10. Machine Learning (1)
    • 11. Machine Learning (2)
    • 12. Machine Learning (3)
    • 13. Linear Models
    • 14. Other Classic ML Models (1)
    • 15. Other Classic ML Models (2)
  • πŸ”’ Computer Security

    • 01. Overview
    • 02. μ •λ³΄λ³΄μ•ˆμ •μ±… 및 λ²•κ·œ
    • 03. Cryptographic Tools
    • 04. User Authentication
    • 05. Access Control
    • 06. Database Security
    • 07. Malicious Software
    • 08. Firmware Analysis
  • πŸ—„οΈ Database System

    • 1. Introduction
    • 2. Relational Model
    • 3. SQL
    • 6. E-R Model
    • 7. Relational Database Design (1)
    • 7. Relational Database Design (2)
    • 13. Data Storage Structures
    • 14. Indexing
    • 15. Query Processing
  • πŸ“ Software Engineering

    • 2. Introduction to Software Engineering
    • 3. Process
    • 4. Process Models
    • 5. Agile
    • 6. Requirements
    • 7. Requirements Elicitation and Documentation
    • 8. Architecture
    • 9. Unified Modelling Language
    • 10. Object-Oriented Analysis
    • Object-Oriented Design
  • 🧠 Algorithm

    • Python μ‹œκ°„ 초과 λ°©μ§€λ₯Ό μœ„ν•œ 팁
    • C++ std::vector μ‚¬μš©λ²• 정리
    • Vim μ‚¬μš© 맀뉴얼
    • 1018번: 체슀판 λ‹€μ‹œ μΉ ν•˜κΈ°
    • 1966번: ν”„λ¦°ν„° 큐

6. E-R Model

Overview of the Design Process

  • Design Phases(섀계 단계)
    • 초기 단계: μ˜ˆλΉ„ λ°μ΄ν„°λ² μ΄μŠ€ μ‚¬μš©μžμ˜ 데이터 μš”κ΅¬μ‚¬ν•­μ„ μ™„μ „νžˆ νŠΉμ„±ν™”
      • κ²°κ³Όλ¬Ό: μ‚¬μš©μž μš”κ΅¬μ‚¬ν•­ λͺ…μ„Έμ„œ
    • 두 번째 단계: 데이터 λͺ¨λΈμ„ μ„ νƒν•˜κ³  ν•΄λ‹Ή 데이터 λͺ¨λΈμ˜ κ°œλ… 적용
      • μ‚¬μš©μž μš”κ΅¬μ‚¬ν•­μ„ λ°μ΄ν„°λ² μ΄μŠ€μ˜ κ°œλ…μ  μŠ€ν‚€λ§ˆ(conceptual schema)둜 λ³€ν™˜
      • κ°œλ…μ  μŠ€ν‚€λ§ˆλŠ” κΈ°μ—…μ˜ κΈ°λŠ₯적 μš”κ΅¬μ‚¬ν•­μ„ λ‚˜νƒ€λƒ„
      • 데이터에 μˆ˜ν–‰λ  μž‘μ—…(λ˜λŠ” νŠΈλžœμž­μ…˜)의 μ’…λ₯˜λ₯Ό 기술
    • μ΅œμ’… 단계: 좔상 데이터 λͺ¨λΈμ—μ„œ λ°μ΄ν„°λ² μ΄μŠ€ κ΅¬ν˜„μœΌλ‘œ 이동
      • 논리적 섀계(Logical Design): λ°μ΄ν„°λ² μ΄μŠ€ μŠ€ν‚€λ§ˆ κ²°μ •
        • "쒋은" 관계 μŠ€ν‚€λ§ˆ(relation schema)의 집합을 μ°Ύμ•„μ•Ό 함
        • λΉ„μ¦ˆλ‹ˆμŠ€ κ²°μ •: λ°μ΄ν„°λ² μ΄μŠ€μ— μ–΄λ–€ 속성(attribute)을 기둝해야 ν•˜λŠ”κ°€?
        • 컴퓨터 κ³Όν•™ κ²°μ •: μ–΄λ–€ 관계 μŠ€ν‚€λ§ˆλ₯Ό κ°€μ Έμ•Ό ν•˜λ©°, 속성듀을 λ‹€μ–‘ν•œ 관계 μŠ€ν‚€λ§ˆμ— μ–΄λ–»κ²Œ λΆ„λ°°ν•΄μ•Ό ν•˜λŠ”κ°€?
      • 물리적 섀계(Physical 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)은 nβ‰₯2n \ge 2nβ‰₯2개의 개체 κ°„μ˜ μˆ˜ν•™μ  κ΄€κ³„λ‘œ, 각 κ°œμ²΄λŠ” 개체 μ§‘ν•©μ—μ„œ κ°€μ Έμ˜΄:

    R={(e1,e2,…,en)∣e1∈E1,e2∈E2,…,en∈En}R = \{(e_1, e_2, \dots, e_n) | e_1 \in E_1, e_2 \in E_2, \dots, e_n \in E_n\} R={(e1​,e2​,…,en​)∣e1β€‹βˆˆE1​,e2β€‹βˆˆE2​,…,enβ€‹βˆˆEn​}

    • μ—¬κΈ°μ„œ (e1,e2,…,en)(e_1, e_2, \dots, e_n)(e1​,e2​,…,en​)은 관계. 예: (76766,98988)∈advisor(76766, 98988) \in \text{advisor}(76766,98988)∈advisor
  • 예: μ§€λ„κ΅μˆ˜ 역할을 ν•˜λŠ” 강사와 학생 κ°„μ˜ 연관성을 λ‚˜νƒ€λ‚΄κΈ° μœ„ν•΄ advisor 관계 μ§‘ν•© μ •μ˜
  • λ„μ‹μ μœΌλ‘œ, κ΄€λ ¨λœ 개체 사이에 선을 κ·Έλ¦Ό
  • ER λ‹€μ΄μ–΄κ·Έλž¨μ—μ„œ 닀이아λͺ¬λ“œλŠ” 관계 집합을 λ‚˜νƒ€λƒ„

Relationship Sets with Attributes

  • 속성은 관계 집합과도 연관될 수 있음
  • 예λ₯Ό λ“€μ–΄, instructor와 student 개체 μ§‘ν•© κ°„μ˜ advisor 관계 집합은 학생이 μ§€λ„κ΅μˆ˜μ™€ μ—°κ΄€λ˜κΈ° μ‹œμž‘ν•œ μ‹œμ μ„ μΆ”μ ν•˜λŠ” 'date' 속성을 κ°€μ§ˆ 수 있음
  • 관계 μ§‘ν•©μ˜ 차수(Degree)
    • 이진 관계(Binary relationship): R={(e1,e2)∣e1∈E1,e2∈E2}R = \{(e_1, e_2) | e_1 \in E_1, e_2 \in E_2\}R={(e1​,e2​)∣e1β€‹βˆˆE1​,e2β€‹βˆˆE2​}
      • 두 개의 개체 μ§‘ν•©(λ˜λŠ” 2μ°¨)을 포함
      • λ°μ΄ν„°λ² μ΄μŠ€ μ‹œμŠ€ν…œμ˜ λŒ€λΆ€λΆ„ 관계 집합은 이진 관계
    • μ„Έ 개 μ΄μƒμ˜ 개체 μ§‘ν•© κ°„μ˜ κ΄€κ³„λŠ” λ“œλ¬Ύ
      • 예: 학생듀이 κ°•μ‚¬μ˜ 지도 ν•˜μ— 연ꡬ ν”„λ‘œμ νŠΈλ₯Ό μˆ˜ν–‰
      • proj_guide κ΄€κ³„λŠ” instructor, student, project κ°„μ˜ 3μ§„ 관계(ternary 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
  • 볡합 속성은 속성을 ν•˜μœ„ λΆ€λΆ„(λ‹€λ₯Έ 속성)으둜 λ‚˜λˆŒ 수 있게 함

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

  • μ„ μ—λŠ” l..hl..hl..h ν˜•νƒœλ‘œ μ΅œμ†Œ 및 μ΅œλŒ€ 카디널리티가 연관될 수 있으며, μ—¬κΈ°μ„œ lll은 μ΅œμ†Œ, hhhλŠ” μ΅œλŒ€ 카디널리티
  • μ΅œμ†Œκ°’ 1은 전체 μ°Έμ—¬λ₯Ό λ‚˜νƒ€λƒ„
  • μ΅œλŒ€κ°’ 1은 κ°œμ²΄κ°€ μ΅œλŒ€ ν•˜λ‚˜μ˜ 관계에 참여함을 λ‚˜νƒ€λƒ„
  • μ΅œλŒ€κ°’ *λŠ” μ œν•œμ΄ μ—†μŒμ„ λ‚˜νƒ€λƒ„
  • μ˜ˆμ‹œ
    • κ°•μ‚¬λŠ” 0λͺ… μ΄μƒμ˜ 학생을 지도할 수 있음
    • 학생은 λ°˜λ“œμ‹œ 1λͺ…μ˜ μ§€λ„κ΅μˆ˜λ₯Ό κ°€μ Έμ•Ό ν•˜λ©°, μ—¬λŸ¬ λͺ…을 κ°€μ§ˆ 수 μ—†μŒ

Cardinality Constraints on Ternary Relationship

  • 카디널리티 μ œμ•½ 쑰건을 λ‚˜νƒ€λ‚΄κΈ° μœ„ν•΄ 3μ§„(λ˜λŠ” κ·Έ μ΄μƒμ˜ 차수) κ΄€κ³„μ—μ„œ λ‚˜μ˜€λŠ” ν™”μ‚΄ν‘œλŠ” μ΅œλŒ€ ν•˜λ‚˜λ§Œ ν—ˆμš©
  • 예λ₯Ό λ“€μ–΄, proj_guideμ—μ„œ instructor둜의 ν™”μ‚΄ν‘œλŠ” 각 학생이 ν”„λ‘œμ νŠΈμ— λŒ€ν•΄ μ΅œλŒ€ ν•œ λͺ…μ˜ μ§€λ„κ΅μˆ˜λ₯Ό 가짐을 λ‚˜νƒ€λƒ„
  • ν™”μ‚΄ν‘œκ°€ ν•˜λ‚˜ 이상 μžˆλŠ” 경우, 의미λ₯Ό μ •μ˜ν•˜λŠ” 두 κ°€μ§€ 방법 쑴재
    • 예λ₯Ό λ“€μ–΄, AAA, BBB, CCC κ°„μ˜ 3μ§„ 관계 RRRμ—μ„œ BBB와 CCC둜 ν™”μ‚΄ν‘œκ°€ μžˆλŠ” 경우
      1. 각 AAA κ°œμ²΄λŠ” BBB와 CCCλ‘œλΆ€ν„° κ³ μœ ν•œ κ°œμ²΄μ™€ 연관됨, λ˜λŠ”
      2. (AAA, BBB)의 각 개체 μŒμ€ κ³ μœ ν•œ CCC κ°œμ²΄μ™€ μ—°κ΄€λ˜κ³ , 각 쌍 (AAA, CCC)λŠ” κ³ μœ ν•œ BBB와 연관됨
  • ν˜Όλ™μ„ ν”Όν•˜κΈ° μœ„ν•΄ ν•˜λ‚˜ μ΄μƒμ˜ ν™”μ‚΄ν‘œλŠ” κΈˆμ§€

Primary Key

  • κΈ°λ³Έ ν‚€λŠ” μ£Όμ–΄μ§„ 개체 μ§‘ν•© λ‚΄μ˜ κ°œμ²΄μ™€ μ£Όμ–΄μ§„ 관계 μ§‘ν•© λ‚΄μ˜ 관계λ₯Ό κ΅¬λ³„ν•˜λŠ” 방법을 제곡
  • κ³ λ € λŒ€μƒ κΈ°λ³Έ ν‚€:
    • 개체 μ§‘ν•©
    • 관계 μ§‘ν•©
    • μ•½ν•œ 개체 μ§‘ν•©

Primary Key for Entity Sets

  • μ •μ˜μ— 따라, κ°œλ³„ κ°œμ²΄λŠ” ꡬ별됨
  • λ°μ΄ν„°λ² μ΄μŠ€ κ΄€μ μ—μ„œ, κ·Έλ“€ κ°„μ˜ μ°¨μ΄λŠ” μ†μ„±μ˜ κ΄€μ μ—μ„œ ν‘œν˜„λ˜μ–΄μ•Ό 함
  • 개체의 속성 값은 개체λ₯Ό κ³ μœ ν•˜κ²Œ 식별할 수 μžˆμ–΄μ•Ό 함
  • 개체 μ§‘ν•© λ‚΄ μ–΄λ–€ 두 κ°œμ²΄λ„ λͺ¨λ“  속성에 λŒ€ν•΄ μ •ν™•νžˆ λ™μΌν•œ 값을 κ°€μ§ˆ 수 μ—†μŒ
  • 개체 μ§‘ν•©μ˜ ν‚€λŠ” 개체 μ§‘ν•© λ‚΄μ˜ 개체λ₯Ό μ„œλ‘œ κ΅¬λ³„ν•˜κΈ°μ— μΆ©λΆ„ν•œ 속성 μ§‘ν•©

Primary Key for Relationship Sets

  • 관계 μ§‘ν•©μ˜ λ‹€μ–‘ν•œ 관계λ₯Ό κ΅¬λ³„ν•˜κΈ° μœ„ν•΄, 관계 집합에 μžˆλŠ” 개체의 κ°œλ³„ κΈ°λ³Έ ν‚€ μ‚¬μš©
  • RRR이 개체 μ§‘ν•© E1,E2,…,EnE_1, E_2, \dots, E_nE1​,E2​,…,En​을 ν¬ν•¨ν•˜λŠ” 관계 집합이라 ν•  λ•Œ,
    • 개체 μ§‘ν•© E1,E2,…,EnE_1, E_2, \dots, E_nE1​,E2​,…,Enβ€‹μ˜ κΈ°λ³Έ ν‚€μ˜ ν•©μ§‘ν•©(union)은 RRR의 κ°œλ³„ 관계λ₯Ό 기술 (즉, μŠˆνΌν‚€(superkey) ν˜•μ„±)
    • PK(R)=PK(E1)βˆͺβ‹―βˆͺPK(En)PK(R) = PK(E_1) \cup \dots \cup PK(E_n)PK(R)=PK(E1​)βˆͺβ‹―βˆͺPK(En​)
  • 관계 μ§‘ν•© RRR에 a1,a2,…,ama_1, a_2, \dots, a_ma1​,a2​,…,am​ 속성이 μ—°κ΄€λ˜μ–΄ μžˆλ‹€λ©΄, PK(R)PK(R)PK(R)은 RRR의 μ˜λ―Έμ— 따라 달라짐 (즉, a1,a2,…,ama_1, a_2, \dots, a_ma1​,a2​,…,am​ 쀑 ν•˜λ‚˜ μ΄μƒμ˜ 속성을 포함할 수 있음)
  • 예: "advisor" 관계 μ§‘ν•©
    • μŠˆνΌν‚€λŠ” instructor.ID와 student.ID둜 ꡬ성
  • 개체 집합이 관계에 두 번 이상 μ°Έμ—¬ν•˜λŠ” 경우, 개체 μ§‘ν•© 이름 λŒ€μ‹  μ—­ν•  이름 μ‚¬μš©
    • 예) "prereq" 관계 μ§‘ν•©μ—μ„œ, μŠˆνΌν‚€λŠ” course_id.ID와 prereq_id.ID둜 ꡬ성

Choice of Primary key for Binary Relationship

  • 관계 μ§‘ν•©μ˜ κΈ°λ³Έ ν‚€ 선택은 관계 μ§‘ν•©μ˜ λ§€ν•‘ 카디널리티에 따라 달라짐 (이진 관계 μ§‘ν•© RRR κ°€μ •)
  • λ‹€λŒ€λ‹€ 관계
    • μ•žμ„  κΈ°λ³Έ ν‚€λ“€μ˜ 합집합은 μ΅œμ†Œ μŠˆνΌν‚€μ΄λ©° κΈ°λ³Έ ν‚€λ‘œ 선택됨: PK(R)=PK(E1)βˆͺPK(E2)PK(R) = PK(E_1) \cup PK(E_2)PK(R)=PK(E1​)βˆͺPK(E2​)
  • μΌλŒ€λ‹€ λ˜λŠ” λ‹€λŒ€μΌ 관계
    • "λ‹€(Many)" μͺ½μ˜ κΈ°λ³Έ ν‚€κ°€ μ΅œμ†Œ μŠˆνΌν‚€μ΄λ©° κΈ°λ³Έ ν‚€λ‘œ μ‚¬μš©λ¨
    • μΌλŒ€λ‹€: PK(R)=PK(E2,Many)PK(R) = PK(E_2, \text{Many})PK(R)=PK(E2​,Many), λ‹€λŒ€μΌ: PK(R)=PK(E1)PK(R) = PK(E_1)PK(R)=PK(E1​)
  • μΌλŒ€μΌ 관계
    • μ°Έμ—¬ν•˜λŠ” 두 개체 μ§‘ν•© 쀑 ν•˜λ‚˜μ˜ κΈ°λ³Έ ν‚€κ°€ μ΅œμ†Œ μŠˆνΌν‚€λ₯Ό ν˜•μ„±ν•˜λ©°, λ‘˜ 쀑 ν•˜λ‚˜λ₯Ό 선택할 수 있음: PK(R)=PK(E1)PK(R) = PK(E_1)PK(R)=PK(E1​) λ˜λŠ” PK(E2)PK(E_2)PK(E2​)

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_name
    • department: μ†μ„±μœΌλ‘œ 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 섀계λ₯Ό κ΄€κ³„ν˜• μ„€κ³„λ‘œ λ³€ν™˜ κ°€λŠ₯
  • κΈ°λ³Έ κ·œμΉ™
    • 각 개체 μ§‘ν•©κ³Ό 관계 집합에 λŒ€ν•΄, ν•΄λ‹Ή 개체 μ§‘ν•© λ˜λŠ” 관계 μ§‘ν•©μ˜ 이름이 ν• λ‹Ήλœ κ³ μœ ν•œ μŠ€ν‚€λ§ˆκ°€ 있음
    • 각 개체 μ§‘ν•© β†’\rightarrowβ†’ κ³ μœ ν•œ 관계 μŠ€ν‚€λ§ˆ
    • 각 관계 μ§‘ν•© β†’\rightarrowβ†’ κ³ μœ ν•œ 관계 μŠ€ν‚€λ§ˆ
  • κ°•ν•œ 개체 집합은 λ™μΌν•œ 속성을 κ°€μ§„ μŠ€ν‚€λ§ˆλ‘œ μΆ•μ†Œλ¨: 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

  • 개체 EEE의 닀쀑값 속성 MMM은 λ³„λ„μ˜ μŠ€ν‚€λ§ˆ EMEMEM으둜 ν‘œν˜„λ¨
  • μŠ€ν‚€λ§ˆ EMEMEM은 EEE의 κΈ°λ³Έ 킀에 ν•΄λ‹Ήν•˜λŠ” 속성과 닀쀑값 속성 MMM에 ν•΄λ‹Ήν•˜λŠ” 속성을 가짐
  • 예: instructor의 닀쀑값 속성 phone_numberλŠ” inst_phone(ID, phone_number) μŠ€ν‚€λ§ˆλ‘œ ν‘œν˜„λ¨
  • 닀쀑값 μ†μ„±μ˜ 각 값은 μŠ€ν‚€λ§ˆ EMEMEM에 λŒ€ν•œ κ΄€κ³„μ˜ 별도 νŠœν”Œμ— 맀핑됨

Representing Relationship Sets

  • κΈ°λ³Έ κ·œμΉ™ (λ‹€λŒ€λ‹€ 관계 μ§‘ν•©μš©)
    • E1,…,EkE_1, \dots, E_kE1​,…,Ek​λ₯Ό ν¬ν•¨ν•˜λŠ” 관계 μ§‘ν•© Rβ†’PK(E1)βˆͺβ‹―βˆͺPK(Ek)βˆͺattr(R)R \rightarrow PK(E_1) \cup \dots \cup PK(E_k) \cup \text{attr}(R)Rβ†’PK(E1​)βˆͺβ‹―βˆͺPK(Ek​)βˆͺattr(R)에 ν•΄λ‹Ήν•˜λŠ” 속성을 κ°€μ§„ 관계 μŠ€ν‚€λ§ˆ RRR
  • 예: advisor 관계 μ§‘ν•©μ˜ μŠ€ν‚€λ§ˆ: advisor = (s_ID, i_ID)

Combination of Schemas for Removing Redundancy

  • "λ‹€(many)" μͺ½μ—μ„œ 전체 참여인 λ‹€λŒ€μΌ 및 μΌλŒ€λ‹€ 관계 μ§‘ν•©
    • RRR에 λŒ€ν•œ λ³„λ„μ˜ μŠ€ν‚€λ§ˆλ₯Ό λ§Œλ“œλŠ” λŒ€μ‹ , E2E_2E2​λ₯Ό λ‚˜νƒ€λ‚΄λŠ” 관계 μŠ€ν‚€λ§ˆμ— PK(E1)βˆͺattr(R)PK(E_1) \cup \text{attr}(R)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 값이 λ°œμƒν•  수 있음
  • μ•½ν•œ 개체 집합을 식별 κ°•ν•œ 개체 집합에 μ—°κ²°ν•˜λŠ” 관계 집합에 ν•΄λ‹Ήν•˜λŠ” μŠ€ν‚€λ§ˆλŠ” 쀑볡됨
    • μ•½ν•œ 개체 μ§‘ν•©μ˜ μŠ€ν‚€λ§ˆλŠ” 이미 식별 개체 μ§‘ν•©μ˜ κΈ°λ³Έ ν‚€λ₯Ό ν¬ν•¨ν•˜λ―€λ‘œ, κ΄€κ³„μ˜ λͺ¨λ“  정보가 μ•½ν•œ 개체 μ§‘ν•©μ˜ μŠ€ν‚€λ§ˆμ— λ‚˜νƒ€λ‚¨
    • λ”°λΌμ„œ κ΄€κ³„ν˜• λ°μ΄ν„°λ² μ΄μŠ€ 섀계에 μ‘΄μž¬ν•  ν•„μš”κ°€ μ—†μŒ

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)에 κΈ°μ—¬
  • μ§‘ν•©ν™” μ‚¬μš©: μ§‘ν•© 개체 집합을 λ‚΄λΆ€ ꡬ쑰의 μ„ΈλΆ€ 사항에 λŒ€ν•œ κ±±μ • 없이 단일 λ‹¨μœ„λ‘œ μ·¨κΈ‰ κ°€λŠ₯
졜근 μˆ˜μ •: 25. 11. 6. μ˜€ν›„ 12:07
Contributors: kmbzn
Prev
3. SQL
Next
7. Relational Database Design (1)

BUILT WITH

CloudflareNode.jsGitHubGitVue.jsJavaScriptVSCodenpm

All trademarks and logos are property of their respective owners.
Β© 2025 kmbzn Β· MIT License