헷갈리는 ERD 읽기

ER 다이어그램을 보며 헷갈리는 부분을 정리해보았다. 특히, 참여 제약조건과 카디널리티 부분이 많이 헷갈리는데 의미가 왜곡되지 않도록 꼭 숙지해야겠다.

Chen notation

ER 다이어그램을 처음 제시한 Chen의 모델링 방법이다.

Cardinality (Chen)

chen-cardinality

위 사진에서 두 번째 관계의 Cardinality를 중심으로 봐보자.

  • Customer는 N개의 Order를 place할 수 있다.
  • Order는 1명의 Customer에 의해 placed 된다.

Chen-notation에서 특정 엔티티의 Cardinality는 상대 엔티티에 적힌 숫자를 보고 판단한다.

Participation (Chen)

Chen-notation에서는…

  • 엔티티와 관계를 2줄로 연결하여 total participation을 나타낸다.
  • 엔티티와 관계를 1줄로 연결하여 partial participation을 나타낸다.

chen-participation

위 관계의 Participation constraint를(참여 제약) 해석해보면

  • ProfessorStudent를 반드시 guide하지 않아도 된다.
  • Student는 자신을 guide 해주는 Professor를 반드시 갖는다.

Chen-notation에서 특정 엔티티의 participation constraint는 자신과 관계에 연결된 줄의 개수를 보고 판단한다.

Crow’s foot

Crow's foot은 간결한 notation으로 많이 사용되는 모델링 기법이다.
Crow's footChen notation은 읽는 방법이 살짝 다르다.

Cardinality & Participation constraint (Crow’s foot)

Chen-notation과는 다르게 여러가지 모양으로 cardinality와 participation을 한번에 표현할 수 있다!

crow-cardinality

위 그림의 두 번째 관계의 Cardinality를 중심으로 봐보자.

  • Customer는 여러개의 Order를 가질 수 있고 없을 수도 있다.
  • Order는 딱 하나의 Customer에 의해 주문되어야 한다.

Crow's foot에서는 특정 엔티티의 Cardinality와 Participation이 반대 엔티티 쪽에 모두 표시되어 있고 그래야만 한다.

정리

Chen-notation

  1. 특정 엔티티의 Cardinality는 반대 엔티티에 작성한다.
  2. 특정 엔티티의 Participation constraint는 그 엔티티 자신 쪽에 작성한다.

Crow’s foot

  1. 특정 엔티티의 Cardinality는 반대 엔티티에 작성한다.
  2. 특정 엔티티의 Participation constraint는 반대 엔티티에 작성한다.

그 외 (IDEFX1 등)

그 외 모델링 기법은 Crow’s foot을 읽는 방식과 동일한 것으로 파악된다. (확실치 않음!)

업데이트: