DataBase/LegacyPosts

[DataBase] 05. E-R Model

lumana 2024. 6. 25. 03:14

Design Phases(디자인 단계)

초기 단계

  • 잠재적 database 사용자들의 data 요구를 완전히 파악

두 번째 단계

  • data model 선택
    • 선택한 data model의 개념 적용
    • 이러한 요구사항을 database의 개념적 schema로 변환
    • 완전히 개발된 개념적 schema는 기업의 기능적 요구사항(functional requirements)을 나타냅니다.
      • data에 대해 수행될 작업(또는 트랜잭션)의 종류를 설명

최종 단계

  • abstract data model에서 database 구현으로 이동
    • 논리적 설계(Logical design)
      • database schema 결정
      • database 설계는 '좋은' relation schemas 컬렉션을 찾아야 함을 요구합니다.
        • 비즈니스 관점에서 decision: database에 어떤 attribute를 기록해야 하는가?
        • Computer Science 관점에서 decision: 어떤 relation schemas를 가져야 하고 attributes를 다양한 relation schemas에 어떻게 분배해야 하는가?
    • 물리적 설계(Physical design)
      • database의 물리적 레이아웃 결정

Design Alternatives

  • database schema를 설계할 때, 우리는 두 가지 주요 함정을 피해야 합니다:
    • Redundancy(중복): 나쁜 설계는 중복된 정보를 초래할 수 있습니다.
      • 정보의 중복된 표현은 정보의 다양한 복사본 간의 data 불일치를 초래할 수 있습니다.
    • Incompleteness(불완전성): 나쁜 설계는 기업의 특정 측면을 모델링하기 어렵거나 불가능하게 만들 수 있습니다.
  • 나쁜 설계를 피하는 것만으로는 충분하지 않습니다. 우리는 선택해야 할 많은 좋은 설계가 있을 수 있습니다.

Design Approaches(디자인 접근 방식)

  • Entity Relationship 모델
    • entity 및 relation의 모음
      • Entity: 다른 객체와 구별되는 'thing(것)' 또는 'object(객체)'
        • attributes 집합에 의해 설명됨
      • Relationship: 여러 entities 간의 association

ER model in Database Modeling(Database 모델링에서의 ER 모델)

  • ER data model은 database 설계를 용이하게 하기 위해 database의 전체 논리적 구조를 나타내는 schema 지정 기능을 제공하여 개발되었습니다.
    • ER data model은 세 가지 기본 개념을 사용합니다.
      • Entity sets
      • Relationship sets
      • Attributes
    • ER 모델은 database의 전체 논리적 구조를 그래픽으로 표현할 수 있는 ER 다이어그램이라는 관련 다이어그램 표현도 가지고 있습니다.

Entity Sets(엔티티 집합)

  • Entity는, 존재하며 다른 객체들과 구별되는 객체입니다.
    • 예: 특정 사람, 회사, 이벤트, 식물
  • Entity set은 동일한 유형의 entities의 집합으로, 동일한 properties를 공유합니다.
    • 예: 모든 사람, 회사, 나무, 휴일...의 집합
  • Entity는 attributes의 집합으로 표현됩니다. 즉, entity set의 모든 구성원이 소유한 descriptive properties(기술적 속성?)입니다.
    • 예:
      • instructor = (ID, name, salary)
      • course = (course_id, title, credits)
  • attributes의 하위 집합은 entity set의 primary key를 형성합니다. 즉, 각 구성원을 고유하게 식별합니다.

Entity Sets (instructor and student)

Representing Entity sets in ER Diagram(ER 다이어그램에서 Entity 집합 표현)

  • Entity sets은 다음과 같이 그래픽으로 표현될 수 있습니다:
    • 사각형은 entity sets을 나타냅니다.
    • attributes는 entity 사각형 내부에 나열됩니다.
    • 밑줄은 primary key attributes를 나타냅니다.

Relationship Sets

  • 관계 유형은 entity types 간의 연관을 나타냅니다.
    • 예: advisor relationship set을 정의하여 student와 그들의 advisor 역할을 하는 instructor 간의 연관을 나타냅니다.
    • 관련 entities 간의 선을 그릴 수 있습니다.

  • attribute는 relationship set과도 연관될 수 있습니다.
    • 예: instructor와 student 사이의 advisor relationship set은 학생이 advisor와 연관된 날짜를 추적하는 attribute data를 가질 수 있습니다.

Relationship Sets을 ER 다이어그램으로 표현하기

Relationship sets with Attribute

 

Roles

  • Entity가 Relationship에서 수행하는 기능을 Role이라고 한다.
    • Relationship set의 의미가 명확하지 않을 때 유용하다.
  • ER 다이어그램에서, Entity(직사각형)와 Relationship(다이아몬드)를 연결하는 선에 라벨을 붙여 이를 나타낼 수 있다.

 

Relationship Set의 차수

Binary Relationship

  • 두 개의 Entity set(또는 차수 2)을 포함한다.
  • 데이터베이스 시스템에서 대부분의 Relationship sets은 Binary 관계이다.
    • 예: 학생이, 수강 중인 코스에 등록되어 있다.

  • 두 개 이상의 Entity 집합 간의 Relationship은 드물다
    • 예: 학생들이 강사의 지도 아래 연구 프로젝트를 수행한다.
      • Relationship proj_guide는 instructor, student, project 간의 삼항 관계(ternary relationship)이다.

Non-binary Relationship Sets

  • 대부분의 Relationship sets은 Binary 관계이다.
    • Non-binary 관계로 표현하는 것이 더 편리한 경우가 있다.
    • ER 다이어그램의 삼항 관계

 

Attributes

  • Attribute 유형:
    • Simple 및 Composite Attributes
    • Single-valued 및 Multivalued Attributes
      • 예: Multivalued Attribute: phone_numbers
  • Derived Attributes
    • 다른 Attributes로부터 계산될 수 있음
    • 예: 나이, 생년월일
  • Domain
    • 각 Attribute에 허용되는 값의 집합

Attributes

  • Attributes는 Entity type을 정의하는 속성들이다.
    • 예: Roll_No, Name, Age, Address, Phone_numbers는 학생 Entity type을 정의하는 Attributes이다.
    • ER 다이어그램에서 Attribute는 타원으로 표현된다.

Key Attribute

  • Entity set의 각 Entity를 고유하게 식별하는 Attribute를 Key Attribute라고 한다.
    • 예: Roll_No는 각 학생마다 고유하다.
    • ER 다이어그램에서 Key Attribute는 밑줄이 있는 타원으로 표현된다.

 

Attributes

  • Attributes는 Entity type을 정의하는 속성들이다.
    • Composite Attribute
      • 여러 다른 Attribute로 구성된 Attribute를 Composite Attribute라고 한다.
        • 예: 학생 Entity 유형의 address Attribute는 street, city, state, country로 구성된다.
        • ER 다이어그램에서 Composite Attribute는 여러 타원으로 구성된 타원으로 표현된다.

 

  • Attributes는 Entity 유형을 정의하는 속성들이다.
  • Multivalued Attribute
    • 주어진 Entity에 대해 하나 이상의 값을 가질 수 있는 Attribute를 Multivalued Attribute라고 한다.
      • 예: Phone_No (학생의 경우 여러 값을 가질 수 있다).
      • ER 다이어그램에서 Multivalued Attribute는 이중 타원으로 표현된다.

  • Derived Attribute
    • 다른 Attributes로부터 도출될 수 있는 Attribute를 Derived Attribute라고 한다.
      • 예: 나이 (생년월일(DOB)로부터 도출될 수 있다).
      • ER 다이어그램에서 Derived Attribute는 점선 타원으로 표현된다.

  • 학생 Entity type은 다음과 같은 Attributes로 표현될 수 있다.

Mapping Cardinality Constraints

  • Entity가 Relationship 집합을 통해 연관될 수 있는 Entity의 수를 표현한다.
    • Binary Relationship 집합을 설명하는 데 가장 유용하다.
    • Binary Relationship 집합의 경우, 매핑 Cardinality는 다음 유형 중 하나여야 한다:
      • One to one
      • One to many
      • Many to one
      • Many to many

Mapping Cardinalities

  • 주의: A와 B의 일부 요소는 다른 집합의 어떤 요소에도 매핑되지 않을 수 있다.

  • 주의: A와 B의 일부 요소는 다른 집합의 어떤 요소에도 매핑되지 않을 수 있다.

Representing Cardinality Constraints in ER diagram

  • Cardinality 제약 조건은 Relationship 집합과 Entity 집합 사이에 방향성이 있는 선(→)을 그려 "one"을 나타내거나 방향성이 없는 선(—)을 그려 "many"를 나타내어 표현한다.
  • One-to-one Relationship between an instructor and a student:
    • 학생은 advisor Relationship을 통해 최대 한 명의 instructor와 연관된다.
    • 학생은 stud_dept를 통해 최대 한 개의 학과와 연관된다.

 

One-to-Many Relationship

  • One-to-many Relationship between an instructor and a student
    • Instructor는 advisor를 통해 여러 명의 학생(0명 포함)과 연관된다.
    • 학생은 advisor를 통해 최대 한 명의 instructor와 연관된다.

 

Many-to-One Relationship

  • Many-to-one Relationship between an instructor and a student
    • Instructor는 advisor를 통해 최대 한 명의 학생과 연관된다.
    • 학생은 advisor를 통해 여러 명의 instructor(0명 포함)와 연관된다.

Many-to-Many Relationship

  • Instructor는 advisor를 통해 여러 명의 학생(0명 포함)과 연관된다.
  • 학생은 advisor를 통해 여러 명의 instructor(0명 포함)와 연관된다.

Total and Partial Participation

  • Total participation (이중 선으로 표시됨) 
    • Entity 집합의 모든 Entity는 Relationship Sets의 적어도 하나의 Relationship에 참여한다.
    • advisor 관계에서 학생의 참여는 총체적이다.
      • 모든 학생은 연관된 instructor가 있어야 한다.
  • Partial participation
    • 일부 Entity는 Relationship Sets의 어떤 Relationship에도 참여하지 않을 수 있다.
      • 예: advisor 관계에서 instructor의 참여는 부분적이다.

Notation for Expressing More Complex Constraints

  • 선은 최소 및 최대 Cardinality를 가질 수 있으며, l..h 형식으로 표시되며, 여기서 l은 최소값, h는 최대값이다.
    • 최소값이 1이면 총 참여를 나타낸다.
    • 최대값이 1이면 Entity가 최대 하나의 Relationship에 참여함을 나타낸다.
    • 최대값이 *이면 제한이 없음을 나타낸다.

  • instructor는 0명 이상의 학생을 지도할 수 있다.
  • 학생은 1명의 advisor를 가져야 하며, 여러 advisor를 가질 수 없다.

Weak Entity Sets

  • Entity type은 Entity set의 각 Entity를 고유하게 식별하는 키 Attribute를 가져야 한다.
    • 그러나 key attribute를 정의할 수 없는 일부 Entity type이 존재한다 → 이러한 유형을 weak entity type이라고 한다.
    • 충분한 Attribute가 없어 Primary Key를 형성할 수 없는 Entity set을 weak entity sets라고 한다.
    • Primary Key를 가진 Entity set을 strong entity sets라고 한다.
  • Weak entity
    • Weak entities는 Primary Key가 없기 때문에 스스로 식별할 수 없으며, 다른 Entity(소유자 Entity로 알려진)에 의존한다.
      • Weak entities는 소유자 아이덴티티와의 식별 관계에서 총 참여 제약 조건(total participation constraint)을 가진다.
      • Weak entity type은 partial keys를 가진다.
        • Partial keys는 weak entities의 튜플을 구별하고 식별할 수 있는 Attribute 집합이다.
  • Weak entity는 Weak entity의 존재를 보장하기 위해 Strong entity에 의존한다.
    • E-R 다이어그램에서 Weak entity set은 이중 사각형으로 표시된다.
      • Weak entity set의 식별자를 점선으로 밑줄 친다.
      • Weak entity set을 식별하는 Strong entity set과 연결하는 Relationship set은 이중 다이아몬드로 표시된다.
      • Section의 Primary key는 (course_id, sec_id, semester, year)이다.

 

E-R Diagram for a University

 

Extended E-R Features

  • 데이터의 복잡성이 증가함에 따라 기존의 ER 모델을 데이터베이스 모델링에 사용하기가 점점 더 어려워졌다.
  • 따라서 기존 ER 모델에 일부 개선 또는 향상을 추가하여 더 복잡한 애플리케이션을 더 잘 처리할 수 있도록 했다.
  • Enhanced ER 모델의 일환으로, 다른 개선 사항들과 함께 기존 ER 모델에 새로운 개념이 추가되었다.
    • Specialization
    • Generalization
    • Aggregation

Extended E-R Features: Specialization

  • Specialization
    • 하나의 상위 Entity가 두 개의 하위 Entity로 나뉘는 상향식(top-down) 접근법이다.
    • Attribute inheritance(상속): lower-level의 Entity set은 연결된 higher-level의 Entity set의 모든 Attribute와 Relationship participation를 상속받는다.

Extended E-R Features: An Example of Specialization in ER diagram

  • ER 다이어그램에서 Specialization의 예:
    •  

 

Extended E-R Features: Generalization

  • Generalization
    • 동일한 기능을 공유하는 여러 Entity set을 higher-level의 Entity set으로 결합하는 하향식(bottom-up) 접근법이다.
    • Specialization과 Generalization은 서로 단순히 반전한 것이다.

 

Extended E-R Features: Aggregation

  • Aggregation
    • 여러 Entity 간의 Relationship이 단일 Entity로 처리되는 프로세스이다.
    • 예시:
      • Center와 Course 사이의 Relationship은 다른 Entity인 Visitor와 관계를 맺고 있는 Entity로 작동한다.
      • 현실 세계에서 Visitor 또는 Student가 Coaching Center를 방문하면, 단순히 Center나 Course만 묻지 않고 둘 다 묻는다.

  • Aggregation
    • 삼항 관계 proj_guide를 고려한다.
    • 프로젝트에 대한 가이드에 의해 학생의 평가를 기록하려고 한다고 가정

 

  • Aggregation
    • Relationship sets인 eval_for와 proj_guide는 중복 정보를 나타낸다.
      • 모든 eval_for Relationship은 proj_guide Relationship에 해당한다.
      • 그러나 일부 proj_guide Relationship은 eval_for Relationship과 일치하지 않을 수 있다.
        • 따라서 proj_guide Relationship을 삭제할 수 없다.
    • Aggregation을 통해 이 중복을 제거한다.
      • Relationship을 abstract Entity로 처리한다.
      • Relationship 간의 relationships를 허용한다.
      • Relationship의 Abstraction을 새로운 Entity로 만든다.

  • 특정 프로젝트에서 특정 instructor가 학생을 지도한다.
  •  학생, instructor, 프로젝트 조합에는 관련된 평가가 있을 수 있다.

E-R Design Decisions

  • 객체를 나타내기 위해 attribute나 entity set을 사용하는 것
  • strong entity set 또는 weak entity set을 사용하는 것
  • ternary relationship을 사용할지 binary relationship 쌍을 사용할지 결정하는 것
  • specialization/generalization을 사용하는 것
    • 이는 설계에서 modularity를 높이는 데 기여한다.
  • aggregation을 사용하는 것
    • 이는 aggregate entity set을 내부 구조의 세부 사항에 대한 고려 없이 단일 단위로 처리할 수 있다.

Summary of Symbols used in ER Notation

  • E: entity set
  • R: relationship set
  • 이중 사각형: weak entity set을 식별하는 relationship set
  • 이중 선: relationship에 대한 entity set의 전체 참여
  • 밑줄: primary key
  • 점선 밑줄: weak entity set의 구별 attribute

Unified Modeling Language (UML)

  • UML은 범용 모델링 언어이다.
    • UML의 주요 목표는 시스템이 설계된 방식을 시각화하는 표준 방법을 정의하는 것이다.
    • UML에는 전체 소프트웨어 시스템의 다양한 측면을 그래픽으로 모델링하기 위한 많은 구성 요소가 있다.
    • UML은 소프트웨어 엔지니어, 시스템 설계자에게 모델링, 설계 및 분석을 돕는다.
  • UML 클래스 다이어그램은 E-R 다이어그램에 해당하지만 몇 가지 차이점이 있다.

UML Diagrams

  • 클래스 다이어그램
  • 복합 구조 다이어그램
  • 객체 다이어그램
  • 구성 요소 다이어그램
  • 배포 다이어그램
  • 패키지 다이어그램
  • 기타

ER vs. UML Class Diagrams

  •