본문 바로가기
데이터베이스

Entity-Relationship Model

by kwon5346 2024. 4. 9.
반응형

Overview of Database Design Process

다음은 데이터베이스 설계 과정을 단순화한 것이다. 크게 4가지로 나눌 수 있다.

  • 요구사항 수집 및 분석
    • 데이터 요구사항을 이해하고 기능적 요구사항 명시
  • 개념 스키마(conceptual schema) 만들기
    • 데이터 타입, 관계, 제약 조건 자세하게 설명
  • 논리적 설계(데이터 모델 mapping)
    • 개념 스키마를 구현 데이터 모델로 변환
  • 물리적 설계(physical design)
    • 데이터베이스 파일들에 대한 내부 저장 구조, 파일 구성, 인덱스, 접근 경로, 물리적 파라미터 등 명시


Methodologies for Conceptual Design

  • Use of Design Tools in industry for designing and documenting large scale designs
  • ER diagrams(Entity Relationship)
  • EER diagram(Enhanced Entity Relationship diagrams
  • UML Class Diagrmas(Unified Modeling Language)
    • 개념적 데이터베이스 설계를 문서화하기 위해 업계에서 널리 사용


ER Model Concepts

ER 모델은 데이터를 엔티티, 관계, attribute로 기술한다.

  • Entity and Attributes
    • Entity
      • 엔티티는 실세계에서 독립적으로 존재하는 실제로 존재하는 객체이거나 회사, 직업 등 개념적으로 존재하는 객체이다.
      • 특정 엔티티는 각 attribute에 대한 값을 가진다.
    • Attributes
      • 각 엔티티를 설명하는 값.

다음은 두 개의 엔티티(사원 e1과 회사 c1)와 attribute이다.



Types of Attributes

ER 모델에는 여러 가지 attribute 유형이 있다.

  • Simple attributes
    • 더이상 나눌수 없는 attribute를 말한다.
  • Composite attributes
    • 더 작은 구성 요소들로 나눌 수 있는 attribute
  • Multi-valued attributes
    • 한 attribute에 대해 여러 값을 가지는 attribute

위 그림을 예시로 설명하면 Address는 Street, City, State, Zip으로 나눌 수 있으므로 복합 어트리뷰트이고, Number, Street는 더이상 나눌 수 없으므로 단순 어트리뷰트이다.

multi-valued attribute는 예시를 들자면 자동차에 대한 Color attribute를 예시로 들 수 있다. 한 색깔을 가진 자동차는 단일값을 가지는 반면 두가지 색을 띤 자동차는 두 개의 값을 가지게 된다.



Entity Types and Key Attributes


  • Entity type
    • 동일한 attributes를 갖는 엔티티들의 집함.
    • entity type은 ER 다이어그램에서 ractanguar box로 보여진다.
  • Key attribute
    • 엔티티 타입은 엔티티 집합 내에서 각 엔티티마다 서로 다른 값을 가지는 한 개 이상의 attribute를 가진다. 이러한 attribute를 key attribute라고 한다.
    • 만약 COMPANY 엔티티 타입에서 회사마다 다른 이름을 가진다면 Name attribute가 키가 된다.
    • 전형적인 예 : SSN(Social Security Number) -주민등록번호
    • ER 다이어그램에서 각 키 attribute는 이름에 밑줄을 그어 표시한다.

두 개 이상의 key attribute를 가지는 엔티티 타입도 있다.

엔티티 타입 CAR에서 Vehicle_id와 Registration attribute는 각각 key이다.
Registration attribute는 두 개의 단순 attribute인 RegistrationNumber와 State로 구성된 복합키이며, 각 구성 attribute는 독자적으로는 키가 될 수 없다.


NOTATION for ER diagrams

Initial Conceptual Design of Entity Types for the COMPANY Database Schema



Relationships

  • A relationship
    • 어떤 엔티티 타입의 한 attribute가 다른 엔티티 아빙르 참조할 때, 두 엔티티 간에는 관계가 성립된다.
  • Relationship type
    • 관계 타입은 엔티티 타입들에 속하는 엔티티들 간의 연관(association)들의 집합으로 정의한다.
    • ER 다이어그램에서, 관계 타입은 다이아몬드 타입으로 나타내며 관계 타입에 참여하는 엔티티 타입으로 표현하는 사각형들과 직선으로 연결된다.

The degree of a relationship type

  • 관계 타입의 차수(degree)는 참여하고 있는 엔티티 타입들의 개수이다.
  • 아래 그림에서 WORKS_FOR 관계 타입의 degree는 2이다.

Constraints on Relationship Types

  • 카디널리티 비율 (maximum participate 지정)
    각 엔티티가 참여할 수 있는 관계 인스턴스의 최소 수를 명시
    • 1:1 (one-to-one)
    • 1:N or N:1 (one-to-many or many-to-one)
    • M:N (Many-to-many)
  • 존재 종속성 (existence dependency)
    • 사원 엔티티들의 전체집합에 속하는 모든 엔티티들이 반드시 WORKS_FOR에 의해서 한 부서 엔티티와 연관되어야 한다는 것을 의미한다.
    • ER diagram에서 전체 참여(존재 종속성)는 참여하고 있는 엔티티 타입을 관계에 이중선으로 연결하여 나타내고, 부분 참여는 단일선으로 연결하여 나타낸다.

예시) EMPLOYEE 엔티티 타입과 DEPARTMENT 엔티티 타입 간의 관계 타입 WORKS_FOR

Many-to-one (N:1) Relationship

WORKS_FOR 내의 각 관계 인스턴스는 하나의 사원 엔티티와 하나의 부서 엔티티를 연관시킨다. 각 관계 인스턴스 ri는 ri에 참여하는 사원 엔티티와 부서 엔티티에 연결되어 있다.

Many-to-many (M:N) Relationship

관계 집합 WORKS_ON은 하나의 EMPLOYEE 엔티티와 하나의 PROJECT 엔티티와 연관이 있다.
예를 들면 한 사원이 여러 개의 PROJECT에 참여할 수 있거나, 여러 사원이 한 PROJECT에 참여할 경우 M:N으로 나타낼 수 있다.


Recursive Relationship Type

  • 같은 엔티티 타입에 참여하는 관계 타입은 관계 내에서 특정한 역할을 담당한다. (example : SUPERVISION relationship)
  • SUPERVISION 관계 타입은 사원과 상사를 연관시킨다.
  • 여기서 사원 엔티티와 상사 엔티티는 같은 EMPLOYEE 엔티티 집합의 원소들이다.
  • 그러므로 EMPLOYEE 타입은 SUPERVISION 관계 타입에 두 번 참여한다.(한번은 상사의 역할, 한번은 부하의 역할)

ER DIAGRAM



Weak Entity Types

  • 약한 엔티티 타입(weak entity types)
    • 자신의 키 attribute가 없는 엔티티 타입
    • 반면 키 attribute를 가지는 정규 엔티티 타입을 강한 엔티티 타입이라고 한다.
    • 약한 엔티티 타입의 엔티티들은 그들의 attribute 값들 중 하나를 통해 다른 엔티티 타입의 엔티티들과 연계됨으로써 식별할 수 있다. 이런 역할을 담당하는 다른 엔티티 타입을 식별 엔티티 타입이라고 한다.


ER 다이어그램의 또 다른 표기법(Alternative (min,max) notation)

구조적 제약 조건(관계차수 1:1, 1:N, N:M과 단일선과 이중선)을 대체하는 대안 표기법을 소개한다.
관계 타입 R에서 엔티티 타입 E의 참여마다 정수의 쌍(min,max)을 연계시키는 방법이다.

  • 이 정수의 쌍은 E의 각 엔티티 e에 대하여 e는 항상 min과 max 사이의 관계 인스턴스 수만큼 참여해야 한다는 것을 나타낸다.
  • min이 0이면 부분 참여를 의미하고 min이 0보다 크면 전체 참여를 의미한다.

  • 관리자에 직원을 참여시키려면 (0,1)
  • 관리자의 부서 참여를 (1,1)

직원은 정확히 한 부서에서만 근무할 수 있지만 한 부서에 여러 명의 직원이 있을 수 있다.

  • WORKS_FOR에 직원을 참여시키려면 (1,1)
  • WORKS_FOR에 부서를 참여시키려면 (1,N)

ER diagram(The (min,max) notation for relationship constraints)



반응형

'데이터베이스' 카테고리의 다른 글

More SQL  (0) 2024.04.22
Basic SQL  (0) 2024.04.16
The Relational Data Model  (0) 2024.04.15
Database System Concepts and Architecture  (0) 2024.04.08
Databases and Database Users  (0) 2024.04.07