Cardinality Constraint
-
Relationship type이 존재하는 두 entity type 사이에 한 entity type에서 몇개의 entity type과 대응되는지 나타내는 제약조건
-
어떤 Realationship Type에 붙이는 것
-
어느 쪽이 1이고, 어느 쪽이 M인지 주의해야한다. 각각의 어떤 것은 이런 식으로 해석해야한다.
종류
- One-to-One relationship
- ex) faculty(1) - has - (1)office
- 각각의 faculty는 한 개의 office를 가지고 있고, 각각의 office는 한 명의 faculty에 의해서만 사용된다.
- One-to-Many relationship
- ex) TEAM(1) - has - (M)Player
- 반대쪽에서 시작하고 각각의 예는 이렇게 시작하면 쉽다.
- 각각의 팀은 여러 명의 플레이어를 가질 수 있고, 각각의 플레이어는 한 개의 팀만 가질 수 있다.
- Many-to-Many
- ex) Student(M) - has (M)Project
- 각각의 프로젝트는 여러 명의 학생이 수행될 수 있고, 각각의 학생은 여러 개의 프로젝트를 수행할 수 있다.
Participation Constraint
한 쪽 엔터티 타입의 엔터티 존재여부가 다른 쪽 엔터티 타입의 엔터티 사이의 관계에 의존하고 있는지의 여부에 대한 제약조건
- total participation
- A쪽의 엔터티들은 이 Relationship type을 통해서 B의 엔터티들과 무조건 관계를 맺어야한다
- 두 줄로 표현
- partial participation
- 한 줄로 표현
- B쪽에 있는 모든 엔터티들은 이 관계 타입을 통해서 A에 있는 모든 엔터티들과 모두 관계를 맺을 필요는 없다
Example
- Department - works for = Employee
- 모든 employee들은 부서에 속해야 하고, 직원이 없는 부서도 있다.
- Department - works for = Employee
- 모든 부서는 employee들이 있어야 하고, employee 중에는 부서배치가 안된 사람도 있다.
Weak entity type
key attribute를 가지고 있지 않는 entity type. 대신 partial key를 가지고 있다.
- partial key는 점선으로 표현
- ex) Orderline
- Orderline entity type은 자기만의 key attribute가 없기 때문
- 두 줄의 직사각형으로 표현
Identifying Owner
weak entity type이 다른 entity type과 연결되어서 식별되어 질 때
Identifying Relationship type
weak entity type이 다른 entity type과 관계되어짐으로 식별되어질 때의 relationship type
User Requirements 정리
- weak entity types를 포함하는 identify entity type 파악
- identifying relationship types을 포함하는 각각의 entity types 사이의 relationship types를 파악
- (weak) entity types와 (identifying)relationship types 사이의 attribute를 파악
- partial key를 포함하는 identifier attirbute 파악
- cardinality constraints, participation constraints 파악