[WAFFLE] 05-1 ER Diagram
Published:
In this post, concepts of ER Diagram will be provided.
ER Diagram

- 데이터베이스 내의 관계들을 시각적으로 표현한 것
- ER Diagram의 3 요소
- Entity Sets : 데이터베이스에 표현되는 개념. 사각형.
- Attributes : 엔티티의 하위 속성. 원.
- Relationships : 둘 이상의 엔티티 간의 관계. 다이아몬드.

- Entity는 주로 테이블의 행으로 표현
- Attribute는 주로 테이블의 열로 표현
- Releationship은 테이블과 테이블 사이의 참조 관계
ER Diagram Cheat Sheet

과제 2의 ER 다이어그램은 위와 같다. relationship은 주로 동사에 해당한다. 주문을 한다. 상점을 소유한다. 상점이 아이템을 팔고 있다. 등등. Order도 주문하다라는 동사로 해석할 수 있는데 그러면 User와 Item 사이의 관계를 Order라는 관계로 표현하면 안될까? 관계라는 것은 A라는 User와 B라는 Item 사이에는 하나의 relationship만 존재해야 함. 그런데 주문이라는 것은 그렇지 않음. 그렇기 때문에 Order를 관계가 아닌 entity로 표현해야 함.
ER Diaram example 1
고객과 주소는 일반적으로 다음과 같다. 그러나 한명의 고객이 여러 주소를 가질 수 있으므로 아래 처럼 생각할 수 있다.
그러나 쿠팡 같은 앱을 보면 배송지마다 이름이나 전화번호나 메시지를 다르게 설정할 수 있음. 따라서 이렇게 디테일하게 배송지를 표현하고 싶다면 attribute이 아닌 entity로 아래처럼 표현해야 함.

ER Diaram example 2
지도 교수의 개념을 표현한 ER 다이어그램이다. 대학원생의 경우 지도교수가 여러 명이거나 한 명의 학생이 한 명의 교수와 여러 번의 지도교수 관계를 가질 수 있음. 아까 Order 에서처럼 ‘지도’를 entity로 표현해야 하나 라는 생각이 들어 아래처럼 나타낼 수 있을 것이다.
relationship이란 결국에 foreign key로 만들어지는 것. Order와 Item 사이의 관계를 구현하기 위해서 하나의 중간 테이블을 더 만듦. 그 안에 order_id와 item_id를 가지고 있어서 한 order가 여러 item을 가질 수 있고 한 item이 여러 order를 가질 수 있도록 만듦. 그 보조 테이블을 associative table이라 함. 거기에 foreign key를 하나 더 추가하면 3개의 entity를 바라보는 relationship을 구현할 수 있게 됨.
advisor는 그대로 relationship으로 냅두되, 3개의 entity를 바라보도록 만들면, 한 명의 학생과 교수 사이에서 논문이 달라질 때마다 relationship에 해당하는 table은 계속해서 행이 늘어남. 동일한 관계를 표현함에 있어서 ER 다이어그램이든 실제 db 스키마로 표현하는 것이든 여러 가지 방식이 있을 수 있고 더 효율적인 설계를 해야함.
ER Diagram of Assignment 2


Leave a Comment