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을 포함하는 관계이기 때문에 합칠 수 있는 것이다.
'3-2 학기 > Database' 카테고리의 다른 글
[데이터베이스] Ch11 RDB design (0) | 2024.11.27 |
---|---|
[데이터베이스] Ch6 RDB functionalities (0) | 2024.11.27 |
[데이터베이스] Ch5 SQL II (0) | 2024.10.15 |
[데이터베이스] Ch3 SQL I (1) | 2024.10.12 |
[데이터베이스] Ch2 Relational Data Model (2) (1) | 2024.10.09 |