본문 바로가기
3-2 학기/Database

[데이터베이스] Ch10 ER model

by bona.com 2024. 11. 27.

10.1 Entity and Relationship

- 개체(entity): 구별이 가능한 객체를 의미

* 개체는 ER 데이터 모델에서 사용한 용어이고, 객체는 객체지향 패러다임에서 사용한 용어이다.

위 그림은 개체 집합(entity set)을 나타낸다. 

Student 개체 집합에 속성이 동일한 다수의 Student 개체가 있고, 

Course 개체 집합에도 다수의 Course 개체가 있는 것이다.

만약 이 둘이 관계가 있다면?

위는 관계성 집합 takes의 예제이다.

Student 개체 집합에 속한 개체가 Course 개체 집합에 속한 개체와 연관이 있음을 나타낼 수 있다.

<10, Yoon> 개체가 <H-102, History>, <CS-101, Introduction to CS>, <CS-311, System Programming>과 연관이 있음을 알 . 수 있고, 여기서 의미는 "수강하다"이다.

 

관계성 집합은 속성을 가질 수 있다.

예를 들어, 위의 예제에서는 수강 학기 및 연도를 속성으로 가질 수 있는 것이다.

 

관계성 집합 차수는 관련되는 개체의 개수를 의미한다.

* 이진(binar), 3진(ternary), 4진(quaternary), 5진(quinary) 관계성 집합 등이 존재한다.

 

✅카디날리티 제약 (Cardinality Constraints)

사상 카디날리티 제약은 이진 관계성 집합에서 유용하며 아래 그림과 같이 4가지가 있다.

 

10.2 ER Diagram

사각형은 개체 집합을, 마름모형은 관계성 집합을, 밑줄은 주 키 속성을 의미한다.

속성은 사각형 안에 나열한다.

위 그림에 대해 설명해보자면, 이는 복합 속성을 가진 Employee 개체이다.

- name은 firstName, middleInitial, lastName을 가진 복합 속성이다.

- phoneNumber는 하나 이상의 값을 가진 다수값 속성이다.

- age는 유도된 속성이다.

카디날리티 제약에서 화살표는 "일(one)"을 의미한다.

만약, 화살표가 없다면 "다(many)"를 의미하는 것이다.

 

개체 집합이 관계성 집합에 참여를 할 때 반드시 한 번만 참여하지 않아도 된다.

동일 개체 집합이 두 번 이상 관계성 집합에 참여를 하는 경우에는 참여에 대한 의미를 구분하기 위하여 롤 표시를  해야 한다.

Course 개체 집합은 prerequisiteOf 관계성 집합에 2회 참여를 하는데,

한 번은 course로, 한 번은 prerequisite로 참여하고 있다.

 

추가로 알 수 있는 점은,

- course 참여에 대해서는 일(one)에 대응이다.

- 모든 참여가 부분 참여이다. 

 

약한 개체 집합(Weak Entity Set): 주 키가 없는 개체 집합을 의미한다.

 

추가로, 다대일 관계에서 나올 수 있는 예제를 하나 더 알아보겠다.

 

위의 관계는 아래 두 가지 방식 모두 가능하다.

people(pID, name, address, age)
own(pID, vehicleID, registrationDate)
car(vehicleID, make, model, year, color)
people(pID, name, address, age)
car(vehicleID, make, model, year, color, registrationDate, pID)

 

car는 own을 포함하는 관계이기 때문에 합칠 수 있는 것이다.