[Database] - 데이터베이스 ER모델 (1) - 엔티티, 엔티티 타입, 애트리뷰트
목차
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) - 엔티티, 엔티티 타입, 애트리뷰트
'CS > Database' 카테고리의 다른 글
[DB] 데이터베이스 정규화란, 함수적 종속성, 이행적 종속성 - 제1정규화, 제2정규화, 제3정규화, BCNF (0) | 2022.10.09 |
---|---|
[DB] 데이터베이스 논리적 설계 - ER - 관계모델의 릴레이션으로 사상 (0) | 2022.09.28 |
[DB] 데이터베이스 ER모델 (1) - 엔티티, 엔티티 타입, 애트리뷰트 (0) | 2022.09.27 |
[DB] 데이터베이스 설계 - 요구사항 수집과 분석, 개념적 설계, 논리적 설계, 물리적 설계 (0) | 2022.09.26 |
[DB] 데이터 베이스 무결성 제약조건 유지 - 삽입, 삭제, 수정 (0) | 2022.09.11 |