앞의 글을 읽으시면 이해에 도움이 됩니다.
2023.10.20 - [Computer Science/데이터 베이스] - [데이터베이스] 스키마(Schema), 인스턴스(Instance), 상태(State)
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)
감사합니다.
지적 환영합니다.
'Computer Science > 데이터 베이스' 카테고리의 다른 글
[프로그래머스 - Oracle] 131536 - 재구매가 일어난 상품과 회원 리스트 구하기 (0) | 2023.10.21 |
---|---|
[데이터베이스] ER 모델(관계, Relationship) (0) | 2023.10.21 |
[데이터베이스] 스키마(Schema), 인스턴스(Instance), 상태(State) (0) | 2023.10.20 |
[데이터베이스] 데이터 모델 (0) | 2023.10.20 |
[데이터베이스] 데이터베이스의 장점 (0) | 2023.10.10 |