SQLD 1과목 데이터 모델링의 이해
<목차>
|
4. 관계
A. 관계의 개념
- 엔터티간 논리적인 연관성 의미
- 엔터티의 정의에 따라 영향받을 수 있음
- 속성 정의 및 관계 정의에 따라서 다양하게 변화
B. 관계의 분류
존재에 의한 관계 / 행위에 의한 관계
- 관계는 존재에 의한 관계와 행위에 의한 관계로 구분될 수 있으나 ERD에서는 관계를 연결할 때, 존재와 행위를 구분하지 않고 단일화된 표기법을 사용
> ERD: 관계 구분하지 않고 표현 / 클래스다이어그램: 관계 구분하여 표현 (연관 - 실선 / 의존 - 점선)
- UML(Unified Modeling Language) 에는 클래스다이어그램의 관계 중 연관관계(Association)와 의존관계 (Dependency)가 있고 이것은 실선과 점선의 표기법으로 다르게 표현됨.
- 연관관계: 항상 이용하는 관계 / 의존관계: 상대방 클래스의 행위에 의해 관계 형성
- 존재적 관계의 사례: 부서와 사원 엔터티 간의 '소속' 관계
- 행위에 의한 관계의 사례: 주문과 배송 엔터티 간의 '배송 근거' 관계
C. 관계의 표기법
(1) 관계명: 관계의 이름
- 관계에 엔터티가 참여하는 형태 정의
- 관계의 기수성 표현 (참여자의 수 표현)
- 각 두 개의 관계명을 가짐
- 관계명은 능동적 또는 수동적으로 명명
- 애매한 동사를 피하고 현재형으로 표현
(2) 관계차수: 관계있는 엔터티 간에 참여하는 수 의미
1:1, 1:M, M:M(N)
1:1 관계의 예
- 주민번호는 한 사람당 1개만 가질 수 있음
1:M 관계의 예
- 게시글과 댓글: 게시글은 1개씩만 존재해야 하고, 댓글은 0~N 개가 존재할 수 있음
M:N 관계의 예
- 한 명의 학생은 N개의 강의를 들을 수 있고, 한 개의 강의는 N명의 학생을 가짐.
(3) 관계선택사양: 필수 관계, 선택 관계
엔터티가 관계에 있어 항상 참여하는지, > 부서 - 사원 (모든 사원이 각 부서에 소속)
선택적 참여를 하는지 표기 > 고객 - 주문 (고객이 주문하지 않는 경우도 있음)
* 두 개의 엔터티 사이에 정의한 관계를 체크하는 사항
a) 두 개의 엔터티 사이에 관심 있는 연관규칙이 존재하는가?
b) 두 개의 엔터티 사이에 정보의 조합이 발생되는가?
c) 업무기술서, 장표에 관계연결을 가능하게 하는 동사가 있는가?
d) 업무기술서, 장표에 관계연결에 대한 규칙이 서술되어 있는가?
* 관계 읽기
- 기준(Source) 엔터티를 한 개 (One) 또는 각(Each)으로 읽는다.
- 대상 (Target) 엔터티의 관계참여도 즉, 개수(하나, 하나이상)를 읽는다.
- 관계선택사양과 관계명을 읽는다.
이전글
다음글
'자격증 > SQLD' 카테고리의 다른 글
데이터 모델과 SQL - 정규화 (2) | 2023.12.30 |
---|---|
데이터 모델링의 이해 - 식별자 (1) | 2023.12.27 |
데이터 모델링의 이해 - 속성 (0) | 2023.12.27 |
데이터 모델링의 이해 - 엔터티 (1) | 2023.12.26 |
SQLD 1과목 데이터 모델링의 이해 (2) | 2023.12.26 |