ER 모델의 카디날리티 표기

최소, 최대 카디날리티

어떤 관계를 ER 모델로 표기할 때, 카디날리티는 최소 카디날리티와 최대 카디날리티가 존재합니다. 그러나 앞서 배운 ER모델은 최대 카디날리티만 표현합니다. 이러한 전통적인 방식을 Chen 표기법이라고 합니다.
우리가 데이터베이스를 설계할 때는 최대 카디날리티 뿐만 아니라 최소 카디날리티에 대한 정보도 필요합니다. 이러한 정보로 개체가 전체 참여인지, 부분 참여인지를 결정할 수 있습니다. 해당 내용은 추후에 다루도록 하겠습니다.

아무튼 이러한 방식을 개선하여 사용하는 것이 (min, max)표기법 입니다. 단순히 최소값, 최대값을 묶어 튜플로 만들어 표기하는 형태이지만, 위치가 다른 것을 크게 주의해야 합니다.

최솟값에 대한 정보를 제외하면, 두 개의 표기법은 같은 관계를 나타냅니다. 이를 우리가 자연어로 처리할 때 헷갈리지 않도록 유의해야 합니다.

(min, max)의 표기

마찬가지로 (min, max) 표기법 역시 여러 관계를 표현할 수 있습니다.
우선 이진 일대일 관계에서는 다음과 같이 표현할 수 있습니다.

이를 자연어로 표현하면, 0또는 1명의 EMPLOYEE가 1개의 PC를 가질 수 있다는 의미입니다. 그러니까 PC를 가지지 못하는 EMPLOYEE도 있다는 것이겠죠.

다음으로 이진 일대다 관계에서는 다음과 같이 표현할 수 있습니다.
이를 자연어로 표현하면, 학과는 0명 이상의 학생을 가질 수 있고, 학생은 1개의 학과를 가질 수 있는 것입니다.

일진 다대다 관계에서는 다음과 같이 표현할 수 있습니다.
이를 자연어로 표현하면, 0명 이상의 학생은 1개 이상의 과목을 수강할 수 있고, 1개 이상의 과목은 0명 이상의 학생들에게 수강될 수 있습니다. 우리는 한 학기에 여러 개의 수업을 듣고(듣지 않는 학생도 있음), 수업은 하나 이상의 학생에게 수강됩니다.(수강되지 않는 과목은 폐강)

삼진 관계도 마찬가지로 표현할 수 있습니다.

어떤 판매원이 어떤 자동차를 어떤 고객에게 판매했음을 뜻하는 관계인데, 삼진 관계를 자주 사용하면 데이터베이스를 설계하는 데 있어 실수가 잦아지므로(논리가 복잡하기 때문에) 사용을 지양합니다.