본문 바로가기

전공/데이터베이스

[데이터베이스] E-R 모델을 사용한 데이터베이스 설계 - (2)

주 키


 

- 관계 집합에서의 키

 

관계 집합에 참여하는 개체 집합의 주 키의 조합이 관계 집합의 수퍼 키를 형성한다.

 

이진 관계 집합에서 주 키 선택은 관계 집합의 대응 카디널리티를 고려해서 선택하게 된다.

 

1. 다대다 관계의 경우, 두 개체 집합의 주 키의 합집합을 주 키로 선택한다.

2. 일대다 및 다대일 관계의 경우, "다" 쪽의 주 키를 관계 집합의 주 키로 선택한다.

3. 일대일 관계의 경우, 두 개의 주 키 중 하나를 관계 집합의 주 키로 선택한다.

 

 

 

 

 

역할(Role)


 

관계에서 개체가 행하는 기능을 개체의 역할이라고 한다.

 

관계 집합에 참여하는 개체 집합은 일반적으로 서로 구별되기 때문에 역할이 따로 명시되지 않는다. 

 

예시)

Database System Concepts by Silberschatz A. & Korth H. F. & Sudarshan S.

 

course_id와 prereq_id를 역할이라 한다.

 

 

 

 

 

비이진 관계 집합(Non-Binary Relationship Set)


 

- 이진 관계 vs. 비이진 관계 

 

비이진으로 보이는 몇몇 관계는 비이진 관계보다는 이진 관계를 사용하여 더 잘 표현될 수 있다.

 

하지만 몇몇 관계는 비이진으로만 표현 가능할 수도 있다.

 

예시)

 

대학교에서 수행하는 모든 연구 과제를 포함하는 project라는 개체 집합과 instructor, student와의 관계 집합 proj_guide

 

이 관계 집합은 어떤 특정 학생이, 어떤 특정 과제에 대해서, 어떤 특정 교수에게 지도를 받고 있음을 나타낸다. 

 

여기서 한 명의 학생은, 서로 다른 과제에 대해 서로 다른 교수를 지도 교수로 가질 수 있는데, 따라서 학생과 교수 사이의 이진 관계로 표현할 수 없다.

 

Database System Concepts by Silberschatz A. & Korth H. F. & Sudarshan S.

 

 

 

- 비이진 관계를 이진 관계의 형태로 변환

 

일반적으로, 비이진 관계는 인공적인 개체 집합을 생성해서 이진 관계로 표현할 수 있다.

 

1. 개체 집합 A, B, C사이의 관계 집합 R을 세 개의 관계 집합과 개체 집합 E로 바꾼다.

    이때, 세 개의 관계 집합은 다음과 같다.

    1) Ra, E와 A의 관계 집합

    2) Rb, E와 B의 관계 집합

    3) Rc, E와 C의 관계 집합

    E는 관계 Ra, Rb, Rc에 전체 참여해야한다.

 

 

2. E에 대한 특별 식별 속성을 생성한다.

    왜냐하면 그들의 속성값을 바탕으로 개체 잡합에서 다른 개체를 구분 가능하기 때문이다.

 

 

3. E에 R의 속성을 추가한다.

 

 

4. R은 각 관계 (ai, bi, ci)에 대해서, 개체 집합 E의 새로운 개체 ei를 생성한다.

    1) Ra에 (ei, ai)를 추가한다.

    2) Rb에 (ei, bi)를 추가한다.

    3) Rc에 (ei, ci)를 추가한다.

 

 

Database System Concepts by Silberschatz A. & Korth H. F. & Sudarshan S.

 

 

 

 

 

E-R의 확장된 특성


 

 

- 구체화

 

top-down 방식의 설계 과정이다.

 

어떤 개체 집합 내에서 하위 그룹을 지정하는 과정을 구체화라고 한다.

 

 

 

- 일반화

 

bottom-up 방식의 설계 과정이다.

 

여러 개체 집합의 공통된 특성에 기초해서 상위 개체 집합으로 합성하는 과정을 일반화라 한다.

 

 

 

- 예시

Database System Concepts by Silberschatz A. & Korth H. F. & Sudarshan S.

 

이를 top-down 방식을 설계하는 것이 구체화이고, bottom-up 방식으로 설계하는 것이 일반화이다.

 

 

 

- 속성 상속

 

구체화와 일반화에 의해 만들어진 상위 및 하위 개체의 중요한 특성이다.

 

하위 개체 집합이 상위 개체 집합의 속성을 상속한다고 말한다.

 

 

 

- 구체화 / 일반화에 대한 제약 조건

 

1. 중첩의 유무

 

disjoint(중첩이 없다.)

: 개체가 하나의 하위 수준 개체 집합에만 속한다.

 

overlapping(중첩이 있다.)

: 개체가 둘 이상의 하위 수준 개체 집합에 속한다.

 

 

2. 완전성 제약 조건

 

total(전체)

: 모든 상위 개체는 어떤 하위 개체에 집합에 속한다.

 

partial(부분)

: 어떤 상위 개체는 어느 하위 개체 집합에도 속하지 않을 수 있다.

 

 

제약 조건에 따라서 네 가지 패턴이 가능하다.

-> 부분-중첩 있음, 부분-중첩 없음, 전체-중첩 있음, 전체-중첩 없음

 

 

 

 

 

E-R 다이어그램과 표기법


 

- E-R 표기법에 사용한 기호

 

Database System Concepts by Silberschatz A. & Korth H. F. & Sudarshan S.

 

 

 

- 대안적 E-R 표기법

 

Database System Concepts by Silberschatz A. & Korth H. F. & Sudarshan S.