[Database] - 데이터베이스 ER모델 (1) - 엔티티, 엔티티 타입, 애트리뷰트
[DB] 데이터베이스 ER모델 (1) - 엔티티, 엔티티 타입, 애트리뷰트
[Database] 데이터베이스 설계 - 요구사항 수집과 분석, 개념적 설계, 논리적 목차 1. ER 모델이란 2. 엔티티 (Entity) 3. 애트리뷰트 (Attribute) (1) ER 모델 P.P.Chen이 ER 모델을 제안했으며, 의미적으로 풍부.
kylo8.tistory.com
목차
1. 관계와 관계 타입
2. 관계의 애트리뷰트
3. 카디날리티 비율 ( 1:1, 1:N, M:N )
4. 전체 참여와 부분 참여
5. 다중 관계와 순환적 관계
(1) 관계와 관계 타입
그림으로 관계와 관계 타입을 보면 보다 쉽게 이해할 수 있습니다.
EMPLOYEE 엔티티와 DEPRATMENT 엔티티는 한 관계를 가지는 것을 볼 수 있습니다. (WORKS_FOR : 사원들은 부서에서 근무한다.)
여기서 WORKS_FOR는 관계 타입을 의미하며, 관계는 각 엔티티들 사이에 존재하는 연관이나 연결로서 두 개 이상의 엔티티 타입들 사이의 연관을 나타냅니다. ( ex, e1 -> r1 -> d1 : 이것이 하나의 관계를 의미합니다.)
관계 집합이란 말 그대로 관계들이 모인 것을 의미하며 [r1,r2,r3,r4...) 전체를 관계 집합이라고 합니다.
요구사항 명세에서 흔히 동사는 ER 다이어그램에서 관계로 표현됩니다.
관계는 엔티티들 사이에 존재하는 연관이나 연결로서 두 개 이상의 엔티티 타입들 사이의 연관을 나타냅니다.
( 엔티티와 마찬가지로 주어진 문제 영역과 연관된 엔티티들 간의 관계들을 수집하는 것도 중요합니다.)
(2) 관계의 애트리뷰트
애트리뷰트 즉 속성은 엔티티를 설명하기 위한 것이라고만 생각할 수 있습니다.
하지만, 때에 따라서 관계의 특징을 기술하기 위해 관계에서도 애트리뷰트를 가질 수 있습니다.
( 관계 타입은 키 애트리뷰트를 갖지는 않는다.)
한 공급자가 여러 부품들을 서로 다른 개수로 공급할 수 있다. 또한, 각 부품은 여러 공급자들로부터 서로 다른 개수로 공급될 수 있다. 그러므로 Quantity 속성은 공급자, 부품 엔티티에 붙일 수 없게 된다.
Quantity 속성은 SUPPLIES 관계 타입의 애트리뷰트로서 관계를 설명하는 역할을 한다.
(3) 카디날리티 비율 (1:1, 1:N, M:N )
한 엔티티 타입(A, B)의 각 엔티티가 다른 엔티티 타입(B, A)의 몇 개의 엔티티와 연관이 있는지를 나타낸다.
(3-2) 1:1 관계
A의 각 엔티티가 정확하게 B의 하나의 엔티티와 연관이 되고, B의 각 엔티티도 A의 하나의 엔티티와 연관된 것을 의미합니다.
하나의 사원증은 한 명의 직원을 가리키고
한 명의 직원은 하나의 사원증을 가질 수 있다.
(3-3) 1:N 관계
A의 각 엔티티가 B의 임의의 개수(0~n개)의 엔티티와 연관되고, B의 각 엔티티는 정확하게 A의 하나의 엔티티와 연관되는 것을 의미합니다.
하나의 부서에는 여러 명의 직원이 있을 수 있다.
한 직원은 하나의 부서에서만 일 할 수 있다.
(3-4) M:N 관계
한 엔티티 타입에 속하는 임의의 개수의 엔티티가 다른 엔티티 타입에 속하는 임의의 개수의 엔티티와 연관된다.
각 직원들은 여러 개의 자격증을 가질 수 있다.
각 자격증은 통과한 여러 직원을 가질 수 있다.
(4) 전체 참여와 부분 참여
전체 참여란
: 어떤 관계에 엔티티 타입 A의 모든 엔티티들이 관계 타입 R에 의해서 어떤 엔티티 타입 B의 어떤 엔티티와 연관되는 것을 의미합니다. ( 여기서 A는 R에 관계에 전체 참여한다.)
부분 참여란
: 어떤 관계에 엔티티 타입 A의 일부 엔티티만 참여하는 것을 의미합니다. ( A는 R에 관계에 부분 참여한다.)
직원들 중 몇 명은 하나의 부서를 관리한다. ( 부분 참여 / 모든 직원이 부서를 관리하는 것이 아님)
각 부서에 관리자는 반드시 있어야 하며(전체 참여), 각 부서의 한 명의 관리자는 여러 명의 직원을 관리한다.
(5) 다중 관계와 순환적 관계
다중 관계란
: 두 엔티티 타입 사이에 두 개 이상의 관계 타입이 존재할 수 있습니다.
1). WORKS_FOR
각 사원은 어떤 프로젝트에서 일한다.
2). MANAGES
: 일부 사원은 어떤 프로젝트의 관리자이기도 하다.
즉, 프로젝트에서 일하는 것과 프로젝트의 관리자로 관리하는 일 경우를 하나로 표현할 수 없는 경우 여러 개의 관계 타입으로 표현한다. 이를 다중 관계라 한다.
순환적 관계란
: 하나의 엔티티 타입이 동일한 관계 타입에 두 번 이상 참여하는 것을 의미합니다.
< Madeup_of 구성 되는 것을 의미하고, Consist_of는 구성하다를 의미합니다.>
어떤 부품(자동차)은 다른 부품(엔진, 바퀴, 핸들)들이 한 개 이상 모여서 구성될 수 있다.
한 부품(바퀴)은 여러 부품(고무, 나사, 철)으로 구성될 수 있다.
[Database] - 데이터베이스 ER모델 (1) - 엔티티, 엔티티 타입, 애트리뷰트
[DB] 데이터베이스 ER모델 (1) - 엔티티, 엔티티 타입, 애트리뷰트
[Database] 데이터베이스 설계 - 요구사항 수집과 분석, 개념적 설계, 논리적 목차 1. ER 모델이란 2. 엔티티 (Entity) 3. 애트리뷰트 (Attribute) (1) ER 모델 P.P.Chen이 ER 모델을 제안했으며, 의미적으로 풍부.
kylo8.tistory.com
'CS > Database' 카테고리의 다른 글
[DB] 데이터베이스 정규화란, 함수적 종속성, 이행적 종속성 - 제1정규화, 제2정규화, 제3정규화, BCNF (0) | 2022.10.09 |
---|---|
[DB] 데이터베이스 논리적 설계 - ER - 관계모델의 릴레이션으로 사상 (0) | 2022.09.28 |
데이터베이스 ER 모델 기초 - 엔티티, 엔티티 타입, 애트리뷰트 이해 (0) | 2022.09.27 |
[DB] 데이터베이스 설계 - 요구사항 수집과 분석, 개념적 설계, 논리적 설계, 물리적 설계 (0) | 2022.09.26 |
[DB] 데이터 베이스 무결성 제약조건 유지 - 삽입, 삭제, 수정 (0) | 2022.09.11 |