솜은 코튼

[DB] E-R 다이어그램 (개체-관계 모델) 본문

DB

[DB] E-R 다이어그램 (개체-관계 모델)

솜.코 2023. 5. 28. 10:36

 

데이터 모델링

 

 

1. 엔티티

.

 

 

 

단순 애트리뷰트   더 이상 다른 애트리뷰트로 나눌 수 없는 애트리뷰트   'Juminno', 'Name', 'Age',
  'Empno', 'Hobby'
복합 애트리뷰트   두 개 이상의 애트리뷰트로 이루어진 애트리뷰트   'Address'
단일 값 애트리뷰트   각 엔티티마다 정확하게 하나의 값을 갖는 애트리뷰트   'Juminno', 'Name', 'Age',
  'Empno', 'Address'
다치 애트리뷰트   각 엔티티마다 여러 개의 값을 가질 수 있는 애트리뷰트
  (ex.사원은 여러 개의 취미 가능)
  'Hobby'
저장된 애트리뷰트   다른 애트리뷰트와 독립적으로 존재하는 애트리뷰트   'Juminno', 'Name', 'Empno',
  'Address', 'Hobby'
유도된 애트리뷰트   다른 애트리뷰트의 값으로부터 얻어진 애트리뷰트
  (ex. 합, 평균 등)
  'Age'('Juminno'로부터 유도)

 

 

1.1 약한 엔티티 타입

.

 

 

예로 회사에서 사원들의 부양가족들에게 의료보험 혜택을 제공한다고 하자

부양가족 이름은 다른 사원의 부양가족의 이름과 같을 수 있다.

 

해결 방안은 사원들의 모든 부양가족에 대해서 고유 번호를 부여하는 것이다.

또는 부양가족이 속한 사원의 번호를 부양가족의 이름과 결합하여 부양가족의 키로 정하는 것이다.

 

부양가족의 이름처럼 한 사원에 속한 부양가족 내에서는 서로 다르지만

회사의 모든 사원들의 부양가족들 전체에서는 같은 경우가 생길 수 있는 애트리뷰트를 '부분 키'라고 한다.

 

이처럼 자체적으로 키를 보유하지 못한 엔티티를 '약한 엔티티 타입'이라고 한다.

 

부분 키는 '점선 밑줄'로 표현하고, 약한 엔티티 타입은 '이중선 직사각형'으로 표기한다.

 

'EMPLOYEE' 엔티티 타입은 'DEPENDENT' 엔티티 타입의 '소유 엔티티 타입' 또는 '식별 엔티티 타입'이라 한다.

 

 

2. 관계 타입

.

 

 

위의 다이어그램은 'WORKS_FOR' 관계는 사원 엔티티 타입과 부서 엔티티 타입 사이의 연관을 나타낸다.

 

 

 

Quantity(수량) 애트리뷰트는 어떤 공급자가 어떤 부품을 얼마나 공급하는가를 나타내기 때문에

SUPPLIES 관계 타입은 Quantity라는 애트리뷰트를 갖는다.

 

각 부품은 여러 공급자들로부터 서로 다른 개수로 공급될 수 있으므로

공급자나 부품 엔티티에 붙일 수 없다.

 

주의할 점은 관계 타입은 키 애트리뷰트를 갖지 않는다!

 

 

2.1 관계 타입의 유형

.

 

 

함수 관계는 일 대 일(1:1), 일 대 다(1:N), 다 대 일(N:1), 다 대 다(M:N)가 가능하다.

 

 

예로 각 사원에 대해 최대한 한 대의 PC가 있고 각 PC는 여러 명의 사원들이 있으므로 1:N 관계이다.

 

 

 

 

관계 타입과 엔티티 타입을 연결하는 실선 위에 (min, max) 형태로 표기한다.

적어도 min번 관계에 참여하고, 최대한 max번 관계에 참여함을 의미한다.

 

max=*는 관계에 임의의 수만큼 참여할 수 있음을 뜻한다.

 

 

2.2 전체 참여와 부분 참여

.

 

 

모든 부서 엔티티들은 'MANAGES' 관계를 통해 사원의 어떤 엔티티와 반드시 연결되어야 한다.

즉, 모든 부서 엔티티에 대해 각 부서마다 반드시 1명의 관리자가 있어야 한다.

 

 

2.3 다중 관계

.

 

아래와 같이 두 엔티티 타입 사이에 두 개 이상의 관계 타입이 존재할 수 있다.

 

 

 

 

2.4 순환적 관계

.

 

순환적 관계는 하나의 엔티티 타입이 동일한 관계 타입에 두 번 이상 참여하는 것이다.

 

CONTAINS(포함)는 부품 엔티티 타입을 부품 엔티티 타입과 연결하는 관계 타입이다.

즉, 어떤 부품은 다른 부품들이 한 개 이상 모여서 구성될 수 있다.

 

 

 

 

3. ER 모델 표기법

 

3.1 ER 표기법 (Chen)

.

 

 

 

3.2 새발 표기법

.

 

 

 

 

 

 

 

 

 

 

* 해당 글은 '데이터베이스 배움터' 책을 참고하여 작성하였습니다. 출처: ORACLE을 기반으로 하는 데이터베이스 배움터 (홍의경)