민규의 흔적

[오라클 DB] ER(Entity Relationship) 모델 - 참여와 부분 참여 본문

데이터베이스

[오라클 DB] ER(Entity Relationship) 모델 - 참여와 부분 참여

민규링 2023. 10. 23. 11:07

ER 모델

 

데이터베이스 설계를 용이하게 하기 위해 Peter Chen이 1976년에 제안하였다.

 

개체와 개체 간의 관계를 이용해 현실 세계를 개념적 구조로 표현한 모델이다.

 

기본적인 구문으로는 엔티티, 관계, 애트리뷰트가 있고, 기타 구문으로는 카디날리티 비율, 참여 제약조건 등이 있다.

 


 

전체 참여

 

 

어떤 관계에 엔티티 타입 E1의 모든 엔티티들이 관계 타입 R에 의해서 어떤 엔티티 타입 E2의 어떤 엔테테와 연관되는 것을 의미한다.

 

약한 엔티티 타입은 항상 관계에 전체 참여이다.(소유 엔티티 타입의 키를 빌려오기 때문에 전체 참여일 수 밖에 없다.)

 

전체 참여는 ER 다이어그램에서 이중 실선으로 표기한다.

 

 

부분 참여

 

어떤 관계에 엔티티 타입 E1의 일부 엔티티만 참여하는 것을 의미한다.

 

 

전체 참여와 부분 참여는 관계에 대한 중요한 제약조건이며, 이는 카디널리티 비율과 함께 관계에 대한 참여 제약조건을 기술할 수 있는 개념이다.

 

 

위 ER 다이어그램을 보고 다음과 같이 유추할 수 있다.

 

학생 엔티티 타입은 강좌 엔티티 타입의 각 엔티티와 수강 관계를 가지고 있으며, 학생 엔티티 타입의 각 엔티티는 해당 관계에 부분 참여(최소 0) 관계를 지닌다.

강좌 엔티티 타입은 학생 엔티티 타입의 각 엔티티와 수강 관계를 가지고 있으며, 강좌 엔티티 타입의 각 엔티티는 해당 관계에 전체 참여(최소 1) 관계를 지닌다.

 

 

카디널리티 비율과 부분/전체 참여를 요약 정리하자면 다음과 같다.

 

전체 참여와 부분 참여는 최솟값을 결정한다.
관계에 대해 전체 참여라면 최솟값은 1이며, 부분 참여라면 최솟값은 0이다.

카디널리티 비율은 최댓값을 결정한다.
엔티티 타입 E1, E2가 특정 관계에 대해 카디널리티 비율이 1:N 관계라면, E1은 관계에 최대 N만큼 참여, E2는 관계에 최대 1만큼 참여한다는 의미이다.