RUBY
[220530] SQLD _ 04. 관계(Relationship) 본문
관계
엔터티와 엔터티와의 관계
1) 존재 관계
존재 자체로 연관성이 있는 관계
ex) 직원 - 부서, 학생 - 학과
2) 행위 관계
특정한 행위를 함으로써 연관성이 생기는 관계
ex) 회원 - 주문, 학생 - 출석부
3) 표기법
① 관계명(Membership)
- 관계의 이름
- 엔터티와 엔터티가 어떠한 관계를 맺고 있는지 나타내주는 문장
- 모든 관계는 두 개의 관계명을 가지고 있는데, 각 엔터티의 관점에서 관계명을 하나씩 가지기 때문
- 관계명은 반드시 명확한 문장으로 표현해야 하며 현재형이어야 한다.
ex) 연관성이 있다(X), 주문한다(O), 관계가 있다(X), 소속된다(O), 출석을 했다(X), 출석을 한다(O)
② 관계차수(Cardinality)
- 각 엔터티에서 관계에 참여하는 수
(1) 1 : 1 관계(ONE TO ONE)
(2) 1 : M 관계(ONE TO MANY)
(3) M : M 관계(MANY TO MANY)
③ 관계선택사양(Optionality)
(1) 필수 관계
반드시 지하철의 문이 닫혀야만 지하철은 출발한다. 지하철 출발과 문닫힘은 필수적인 관계
(2) 선택 관계
지하철의 출발을 알리는 안내방송과 지하철의 출발은 상관 없다. 관련은 있지만 필수는 X
(3) 필수 참여
참여하는 모든 참여자가 반드시 관계를 가지는, 타 엔터티의 참여자와 연결이 되어야 하는 관계
ex) 주문서는 반드시 주문목록을 가져야 한다. 주문목록이 없는 주문서는 의미가 없다.
(4) 선택 참여
목록은 주문이 될 수도 있고, 주문이 되지 않은 목록이 있을수도 있으므로 목록과 주문목록의 관계는 선택참여
'자격증 > SQL 개발자' 카테고리의 다른 글
[220531] SQLD _ 06. 정규화(Normalization), 반정규화(De-Normalization), 트랜잭션(Transaction), NULL (0) | 2022.05.31 |
---|---|
[220530] SQLD _ 05. 식별자(Identifiers) (0) | 2022.05.30 |
[220530] SQLD _ 03. 속성(Attribute) (0) | 2022.05.30 |
[220530] SQLD _ 02. 엔터티(Entity) (0) | 2022.05.30 |
[220527] SQLD _ 01. 데이터 모델의 이해 (0) | 2022.05.27 |