Computer Science/데이터 베이스

[데이터베이스] ER 모델(Entity Type, Entity Sets, Attributes and Keys)

바보1 2023. 10. 21. 01:33

앞의 글을 읽으시면 이해에 도움이 됩니다.

 

2023.10.20 - [Computer Science/데이터 베이스] - [데이터베이스] 스키마(Schema), 인스턴스(Instance), 상태(State)

 

[데이터베이스] 스키마(Schema), 인스턴스(Instance), 상태(State)

앞의 글을 읽으시면 이해에 도움이 됩니다. 2023.10.20 - [Computer Science/데이터 베이스] - [데이터베이스] 데이터 모델 [데이터베이스] 데이터 모델 앞의 글을 읽으시면 이해에 도움이 됩니다. 2023.10.10

hi-guten-tag.tistory.com


1. ER 모델이란?

 

 

  • Entity-Relationship 모델(ER 모델) 데이터 모델링의 유형으로, 데이터베이스에서 사용될 데이터의 구조와 관계를 시각적으로 표현하기 위한 개념적 도구입니다.
  • ER 모델은 엔티티(Entity), 관계(Relationship), 애트리뷰트(Attribute) 가지 주요 구성 요소를 사용하여 데이터 모델을 나타냅니다.
  • 아래의 그림과 같은 것을 ER 모델이라 합니다.

  • 엔티티 타입, 엔티티 집합에 대해 알기 전에 엔티티와 애트리뷰트에 대해 간략하게 알고 가겠습니다.

2. 엔티티(Entity)와 애트리뷰트(Attribute)

 

 

  • 엔티티(Entity)는 ER 모델에서 다루는 기본 개념입니다.
  • 엔티티는 작은 세계의 구체적인 물체, 혹은 객체입니다. 즉, 엔티티는 사람, 자동차 등 존재하는 객체거나 직업, 친구와 같이 개념적으로 존재하는 객체입니다.
  • 각 엔티티에는 엔티티를 기술하는 속성인 애트리뷰트(Attribute)가 존재합니다.
  • 예를 들어 사람은 키, 나이, 성별 등의 속성을 가지고 있습니다. 이처럼 각각의 애트리뷰트는 연관된 데이터 타입을 가지고 있습니다.
  • 각 엔티티를 설명하는 애트리뷰트 값들은 데이터베이스에 저장되는 중요한 부분입니다.
  • 아래 그림은 각 엔티티와 애트리뷰트의 그림입니다.

  • e1이라는 엔티티에는 이름, 주소, 나이, 집 전화번호가 포함되어 있습니다.
  • c1이라는 엔티티에는 이름, 본부, 사장 애트리뷰트가 포함되어 있습니다.
  • 애트리뷰트는 Value Set(Domain)와 연관되어 있습니다.
  • value set은 각 엔티티에서 해당 애트리뷰트가 가질 수 있는 값들의 집합을 의미합니다.
  • 예를 들어 대학생의 나이는 16세부터 100세까지가 값들의 집합이 됩니다.

 

  • 하지만 생년월일을 안다면 굳이 나이를 저장할 필요는 없습니다. 또한 취미와 같이 딱 한 가지 값만 가지는 경우도 거의 없습니다.
  • 이를 위해 ER 모델에는 여러 가지 애트리뷰트 유형이 있습니다.

3. 애트리뷰트 유형

 

 

  • 애트리뷰트 유형에는 크게 Simple, Composite, Mutli-Valued, Stored, Derived, Complex 애트리뷰트가 있습니다.
유형 설명 예시
Simple 더 이상 나눌 수 없는 애트리뷰트 성별(/)
Composite 계층을 형성할 수 있는(나눌 수 있는애트리뷰트 이름(, 이름), 주소(,,)
Multi-Valued 여러 개의 값을 가질 수 있는 애트리뷰트 취미(수영, 배드민턴, 자전거)
Stored 저장된 애트리뷰트 태어난 년도
Derived 저장된 애트리뷰트로부터 유도된 애트리뷰트 생일로 나이를 유도
Complex Composite 애트리뷰트와 Multi-Valued 애트리뷰트의 혼합 -
  • Composite 애트리뷰트는 아래 그림처럼 계층으로 나타낼 수 있습니다.

  • 마찬가지로 Complex는 소괄호 () 안에 Composite 애트리뷰트 안의 애트리뷰트를 그룹화하고, 중괄호 {}로 Composited 애트리뷰트를 그룹화 함으로써 아래의 중첩 구조로 표현할 수 있습니다.


4. 엔티티 타입, 엔티티 집합, 키

 

 

  • 일반적으로 데이터베이스는 비슷한 엔티티들의 그룹을 포함합니다.
  • 예를 들어 수천명이 다니는 대학교는 각 대학생에 대한 유사한 정보를 저장해야 합니다. 즉, 대학생은 동일한 애트리뷰트를 공유합니다.
  • 물론 학번과 이름이 다르듯이 각 엔티티는 각 애트리뷰트에 대해 자신만의 값을 가집니다.

 

  • 엔티티 타입(Entity Type)은 동일한 애트리뷰트를 갖는 엔티티들의 집합으로 정의됩니다.
  • 위의 예시에서는 대학생이 엔티티 타입이 되겠습니다.
  • 또한 엔티티 집합(Entity Set)이란 동일한 엔티티 타입에 속해있는 엔티티의 모임을 뜻합니다.
  • 예로 들면 A(강재한, 25세, 컴퓨터학부), B(박형욱, 26세, 컴퓨터학부), C(이승택, 22세, 컴퓨터학부)가 되겠습니다.
  • 위의 세 대학생은 모두 같은 애트리뷰트인 [이름, 나이, 학부]를 공유하고 있습니다.
  • 엔티티 타입은 동일한 구조를 공유하는 엔티티 집합에 대한 스키마를 나타냅니다.

엔티티 타입과 엔티티 집합의 예시

 

  • 엔티티 타입에 존재하는 엔티티들에 대한 중요한 제약 조건은 애트리뷰트에 대한 키(Key)가 유일해야 한다는 것입니다.
  • 엔티티 타입은 엔티티 집합 내에서 각 엔티티마다 서로 다른 값을 가지는 한 개 이상의 애트리뷰트를 소유하고 있고, 이를 Key Attribute라고 합니다.
  • 이러한 키 애트리뷰트는 각 엔티티를 유일하게 식별하는데 사용됩니다. 그렇지 않으면 각 엔티티를 구별할 수 없게 됩니다.
  • 키 애트리뷰트는 여러 개의 애트리뷰트가 함께 키를 형성하는 경우도 존재합니다. 예를 들면 주민번호와 운전라이센스번호가 되겠네요.
  • 이런 특성을 가지는 애트리뷰트들의 집합을 하나의 Composite 애트리뷰트로 묶을 수 있으며, 이때는 이 Composite 애트리뷰트가 해당 엔티티 타입의 키 애트리뷰트가 됩니다.
  • 이는 어떠한 엔티티 집합에 대해서도 만족되어야 하는 제약 조건이며, 해당 엔티티 타입의 모든 엔티티 집합에 대해 유일함 성질이 적용되어야 합니다.

5. ER 모델 형식

 

 

이름 형식(ER 모델에서 표현되는 형식)
엔티티 네모
Simple 애트리뷰트 타원
Composite 애트리뷰트 애트리뷰트의 계층 형식
Key 애트리뷰트 애트리뷰트에 밑줄
Multi-Valued 애트리뷰트 이중 타원
Derived 애트리뷰트 점선 타원
  • 따라서 이 형식을 지켜서 아래의 ER 모델을 (대충이나마) 서술해 보겠습니다.

  • 엔티티 타입 DEPARTMENT는 위의 애트리뷰트를 가진다. Location은 Multi-Valued 애트리뷰트이다. Name와 Number는 각 DEPARTMENT마다 고유하기 때문에 키 애트리뷰트가 될 수 있다.

  • 엔티티 타입 EMPLOYEE는 많은 애트리뷰트를 가진다. Name은 Composited 애트리뷰트이다. Works_on은 Multi-Valued이자, Composited 애트리뷰트이다. 이는 Complex 애트리뷰트로 볼 수 있다. 또한 Ssn 애트리뷰트는 키 애트리뷰트이다.

 

참고

 

 

경북대학교 컴퓨터학부 COMP0322-004 데이타베이스 수업

DATABASE SYSTEMS 7th / Elmasri, Navathe 저 / PEARSON / 2019년


다음 글에서는 ER 모델(Relationship) 대해 알아보겠습니다.

 

2023.10.21 - [Computer Science/데이터 베이스] - [데이터베이스] ER 모델(관계, Relationship)

 

[데이터베이스] ER 모델(Relationship)

앞의 글을 읽으시면 이해에 도움이 됩니다. 2023.10.21 - [Computer Science/데이터 베이스] - [데이터베이스] ER 모델(Entity Type, Entity Sets, Attributes and Keys) [데이터베이스] ER 모델(Entity Type, Entity Sets, Attribute

hi-guten-tag.tistory.com

 

감사합니다.

지적 환영합니다.