민규의 흔적

[오라클 DB] ER(Entity Relationship) 모델 - 카디날리티 비율(1:1, 1:N, M:N) 본문

데이터베이스

[오라클 DB] ER(Entity Relationship) 모델 - 카디날리티 비율(1:1, 1:N, M:N)

민규링 2023. 10. 23. 00:10

ER 모델

 

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

 

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

 

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

 


카디널리티 비율

 

한 엔티티가 참여할 수 있는 관계의 수를 나타낸다.

관계 타입에 참여하는 엔티티들의 가능한 조합을 제한한다.

 

관계를 흔이 1:1, 1:N, M:N으로 구분하며 카디널리티에 관한 정보는 간선 위에 나타낸다.

 

 

1:1 관계

 

 

두 엔티티 타입 E1, E2가 있다고 가정했을 때,

E1의 각 엔티티가 정확하게 E2의 한 엔티티와 연관되고, E2의 각 엔티티가 정확하게 E1의 한 엔티티와 연관되면 이 관계를 1:1 관계라고 한다.

 

위 예시를 보자.

 

특정 회사에서 각 사원마다 개인 컴퓨터가 하나씩 배치되어 있다고 가정해보자.

이런 회사에서는 각 사원이 자신의 컴퓨터 하나만 '사용'하기 때문에 1:1 관계의 예시로 들 수 있다.

 

 

1:N 관계

 

 

두 엔티티 타입 E1, E2가 있다고 가정했을 때,

E1의 각 엔티티가 E2의 임의의 개수의 엔티티와 연관되고, E2의 각 엔티티는 정확하게 E1의 한 엔티티와 연관되면 이 관계를 1:N 관계라고 한다.

이는 실세계에서 가장 흔히 나타나는 관계이다.

 

위 예시를 보자.

 

컴퓨터공학과에는 특이한 케이스가 아닌 이상 수십명 소속되어있을 것이다.

반대로, 학생 개개인은 (융합 및 복수전공이 아닌 이상) 컴퓨터공학과라는 한 개의 학과에만 소속되어 있을 것이다.

이러한 관계를 1:N 관계라고 한다.

 

 

M:N 관계

 

 

한 엔티티 타입에 속하는 임의의 개수의 엔티티가 다른 엔티티 타입에 속하는 임의의 개수의 엔티티와 연관된 경우이다.

 

위 예시를 보자.

 

학생은 여러 개의 강좌를 수강할 수 있다.

반대로, 한 강좌에는 (1 : 1 강좌같은 특수한 경우가 아닌 이상) 여러 명의 학생들이 수강하고 있을 것이다.

이러한 관계를 M:N 관계라고 한다.

 

 

카디널리티 비율과 최소값,최대값

 

관계 타입과 엔티티 타입을 연결하는 실선 위에 (min, max) 형태로 표기할 수 있다.

 

어떤 관계 타입에 참여하는 각 엔티티 타입에 대하여 다음과 같이 정의할 수 있다.

 

min은 이 엔티티 타입 내의 각 엔티티는 적어도 min 번 관계에 참여함을 의미하며
max는 이 엔티티 타입 내의 각 엔티티는 최대한 max 번 관계에 참여함을 의미한다.

min=0은 어떤 엔티티가 반드시 관계에 참여해야 할 필요는 없음을 의미하며,
max=*는 어떤 엔티티가 관계에 임의의 수 만큼 참여할 수 있음을 의미한다.

 

 

위 예시는 다음과 같이 풀어 설명할 수 있다.

 

학생 엔티티 타입의 학생은 강좌 엔티티 타입과 수강이라는 관계를 지니고 있으며,

강좌 엔티티 타입에 최소 min1 만큼, 최대 max1 만큼 참여 가능하다.

 

강좌 엔티티 타입의 강좌는 학생 엔티티 타입과 수강이라는 관계를 지니고 있으며,

학생 엔티티 타입에 최소 min2 만큼, 최대 max2 만큼 참여 가능하다.

 

 

*는 와일드 카드로, 2 이상의 임의의 자연수가 올 수 있다는 의미이다. '다수'라는 의미로 통용될 수 있다.

 

 

 

학과 엔티티 타입의 각 학과는 학생 엔티티 타입과 소속이라는 관계를 지니고 있으며,

학생 엔티티 타입에 최소 0 만큼, 최대 N 만큼 참여 가능하다.

 

학생 엔티티 타입의 각 학생은 학과 엔티티 타입과 소속이라는 관계를 지니고 있으며,

학과 엔티티 타입에 최소 1 만큼, 최대 1 만큼 참여 가능하다.