당장 작성하라니 감이 안잡혀 ERD가 뭔지 어떻게 작성하는지 부터 공부했다
ERD란?
- Entity Relationship Diagram
- 데이터베이스의 구조를 한눈에 알아보기 위해서 쓰임
- 보다 많은 아이디어를 도출하고, 데이터베이스 설계의 이해를 높이기 위해 데이터 모델링을 함
- 데이터의 특징을 확인할 수 있어 요구사항을 그에 맞게 개발할 수 있음
Entity (개체)
- 관리하고자 하는 정보의 실체
- 사람, 객체 혹은 개념
- DB설계 시, 쉽게는 테이블이 Entity로 정의될 수 있음
- 모든 Entity는 하나 이상의 식별자 (UID)를 지녀야 함
- Weak Entity
- 개체가 가진 속성들로는 개체를 고유하게 정의할 수 없는 개체
- ex) 각 교육과정에 분반이 있다고 했을때, 분반이라는 개체는 자신을 정의하는 key가 없고, 각 교육과정에 의존하게 됨
- 1203 이라는 강의가 존재하고, 001, 002, 003.. 분반이 있다고 했을때, 이 분반 이름은 따로 특징이 없고 다른 강의와도 겹칠 수 있음 이를 단독으로 존재할 수 없고 다른 개체에 의존해야 하는 Weak Entity라고 함
Attribute (속성)
- Entity를 구성하고 있는 구성 요소
- 데이터 타입을 반드시 같이 명시해줘야 함
- Key Attribute (키 속성)
- 다른 객체들과 중복되지 않는 고유한 값을 가진 Attribute, 객체를 식별하는데 사용됨
- Composite Attribute (복합 속성)
- 독립적인 Attribute들이 모여서 생성된 Attribute
- ex) 00시, 00동, 00아파트 등의 독립적인 Attribute 네개가 모여서 생성된 주소 Attribute
- Multi-Valued Attribute (다중값 속성)
- 하나의 Attribute가 여러개의 값을 가지는 Attribute
- ex) 하나의 영상물에 로맨스, SF, 호러 등의 여러가지 장르가 공통적으로 존재
- Derived Attribute (파생 속성)
- 다른 Attribute가 갖고 있는 값으로부터 유도된 Attribute
- ex) 모든 상품의 총 가격을 나타내는 total이라는 속성은 상품의 가격 attribute, 상품의 개수 attribute를 곱해서 계산된 값임
Relationship (관계)
- Entity간의 관계를 의미
- 두 Entity간에 선을 긋고, 관계 명칭을 기록함
- 선택 사항을 표시
- 점선은 선택적인 사항을 의미
- ex) 사원과 부서 Entity가 있을때 부서 입장에서는 사원을 배치 받을 수도, 받지 않을 수도 있음
- 실선은 필수적인 사항을 의미
- 사원 입장에서는 부서가 필수적으로 배정받아야 함
- 점선은 선택적인 사항을 의미
- 관계 형태를 표시
- 삼지창 모양은 하나 이상을 의미
- 단선은 하나를 의미
- 부서는 여러명의 사원을 가질 수 있으나, 사원은 하나의 부서에만 배치
관계 형태 (Cardinality)
각 Entity들이 가지고 있는 관계에는 여러가지 형태가 존재함
1) 1:1 관계
- 양쪽 모두 단 하나씩 존재하는 경우
ex) 어떤 상점에서는 하나의 주소만이 존재함
2) 1:N 관계
- 일대다/다대일 관계는 하나의 원소가 두개 이상의 원소와 관계를 맺는 것을 의미함
- ex) 한 부서에는 여러명의 사원이 소속되어있음
- 이를 관계 모델로 바꿀 때 따로 relationship의 table을 만들지 않고, "Many"쪽에 있는 entity에 "one" 쪽의 primary key를 Attribute로 추가
- 쉽게는 사원의 정보에 부서 번호를 추가한다고 생각
3) N:M 관계
- 다대다 관계라고 하며, 양쪽 모두 하나 이상과 연관될 수 있음
- ex) 하나의 수없에는 여러명의 학생이 있을 수 있고, 한 명의 학생이 여러 개의 수없을 들을 수 있음
- 이러한 경우, M:N 관계를 M:1 관계로 분할함
- 관계를 맺는 두 entity의 primary key를 가져와 하나의 relation을 생성
- 즉, 수강신청이라는 테이블을 하나 더 만들어 학생은 자신이 수강신청하는 수업에만 관계를 맺고 있으면 됨
https://mslilsunshine.tistory.com/164#%--ERD%--%EC%--%A-%EA%B-%--%--%EA%B-%BC%EC%A-%--
-> 보고 공부함
실제 ERD 작성과정은 다음 게시물로~