코딩스토리

ER Model 그리기 본문

데이터베이스

ER Model 그리기

kimtaehyun98 2021. 11. 30. 23:57

ER Model은 예시를 보면 쉽게 이해가 가능하다.

(예시를 위한 ER Model을 만들다 보니 약간? 의 억지가 있을 수 있으나 양해 바랍니다..)

 

Student ER Model

 

위의 예시로 먼저 기본적인 ER Model을 파헤쳐보자.

 

Entity

먼저 Student란 Entity가 존재한다.

Entity는 사각형으로 표시한다.

 

Key

 

Student Entity는 두 개의 키를 가지고 있다. 

키에는 일반적인 Attribute들과 다르게 밑줄을 쳐서 구분한다.

 

이때 Registration을 보면 또다시 두 개의 Attr을 가지고 있다.

이는 우리가 앞서 공부했던 Composite key, 즉 복합 키를 의미한다.

 

Set Value

다음으로 두 개의 동그라미로 표현되고 있는 Attr을 찾아볼 수 있다.

이는 Set Value를 표현한 것이다.

즉 복수전공처럼 다전공자들이 있을 수 있기 때문에 Set Value를 가지게 되고, 위처럼 표현하게 된 것이다.

 

 

이제 만약 Subject란 Entity가 있다고 가정해보자. (예시를 위해 최대한 간단하게 만들었다.)

이때 Student와 Subject 두 Entity는 Sign in(참여)이라는 관계(Relation)를 가진다.

 

Relation

이때 궁금증이 들 수 있다.

학생은 여러 과목에 참여할 수 있지 않은가?

또한 한 과목은 여러 학생을 포함할 수 있지 않은가?

 

맞다. 이렇게 관계(Relation)에 참여할 수 있는 개체의 수를 설명해주는 것을 Cardinality Ratios라고 한다.

 

Cardinality Ratio

Cardinality Ratio는 1 : N , N : N, N : 1로 표현할 수 있으며 

해석할 때에는 상대방 숫자를 읽어서 해석한다!

즉 만약 A <-> B가 1 : N 관계를 가지고 있다면 A는 N개의 B를 가질 수 있으며 B는 1개의 A를 가질 수 있다는 것이다.

 

이제 다음으로 Participation Constraints(참여 제약조건)에 대해 알아보자.

만약 학생이 반드시 한 과목 이상을 들어야 한다면? (실제로도 등록하려면 그래야 되는 걸로 알고 있는데 맞겠지요?)

Participation Constraints

위와 같이 두 줄로 표현한다.

즉 관계에 반드시 참여해야 한다면 TOTAL Matching이라 하고 두 줄로 표현하고,

참여해도 되고 그렇지 않아도 된다면 PARTIAL Matching이라 하고 한 줄로 표현한다.

이때 해석은 자신을 기준으로 한다.

즉 Subject는 Sign in 관계에 참여하거나 안 해도 되고, Student는 반드시 참여해야 한다는 것이다.

 

다음으로 Weak Entity에 대해 알아보자.

해당 Entity에 key가 없다면 Weak Entity라고 하며 아래와 같이 두 줄로 나타낸다.

Weak Entity

즉 Weak Entity와 관계를 모두 두 줄로 표현한다.

이때의 Entity 2는 Entity1, 즉 Weak Entitiy를 식별할 수 있게 만들어 주기 때문에 Owner Entity, Identifying Entity라고도 한다.

또한 Weak Entity는 Key가 없기 때문에 반드시 관계에 참여해야 하므로 TOTAL Mathcing으로 두 줄로 참여한다.

 

 

이렇게 기본적인 ER Model 그리는 방법에 대해 알아보았다. 🎶

 

Comments