1과목. 데이터 모델링의 이해
1장. 데이터 모델링의 이해
4절. 관계
# 관계의 개념
- 관계의 정의
· 엔터티의 인스턴스 사이의 논리적인 연관성
· 데이터 모델에서의 정의: “엔터티의 인스턴스 사이의 노리적인 연관성으로서 존재의 형태로서나 행위로서 서로에게 연관성이 부여된 상태”
· 관계를 맺는다는 의미는 부모의 식별자를 자식에 상속하고, 상속된 속성을 매핑키(조인키)로 활용 ➪ 부모, 자식을 연결함
- 관계의 페어링
· 페어링(Paring): 엔터티 안에 인스턴스가 개별적으로 관계를 가지는 것
· 개별 인스턴스가 다른 종류의 관계를 맺고 있다면 두 엔터티 사이에 두 개 이상의 관계가 형성될 수 있음
· 엔터티는 인스턴스의 집합을 논리적으로 표현/ 관계는 관계 페어링의 집합을 논리적으로 표현
# 관계의 분류
- 존재적 관계
· 엔터티 간의 상태를 의미
ex) 사원 엔터티는 부서 엔터티에 소속함
- 행위적 관계
· 엔터티 간의 어떤 행위가 있는 것을 의미
ex) 고객이 주문함으로서 주문번호 생성
* UML(Unified Modeling Language)
· 연관관계(Association)
➢ 항상 이용하는 관계
➢ 존재적 관계
➢ 실선으로 표현
➢ 소스코드에 멤버변수로 선언
· 의존관계(Dependency)
➢ 상대방 클래스의 행위에 의해 관계가 형성
➢ 점선으로 표현
➢ 행위를 나타내는 코드
- 관계명(Membership)
· 관계의 이름, 엔터티가 관계에 참여하는 형태를 지칭
· 각각의 관계는 두 개의 관계명을 가지고, 각 관계명에 의해 두 가지의 관점으로 표현될 수 있음
· 명명 규칙
➢ 모호한 동사 자제
➢ 현재형 동사
- 관계차수(Cardinality)
· 정의: 두 엔터티 사이의 관계에서 참여자(인스턴스)의 수를 나타낸 것
· 1:1, 1:M, M:N이 있음(M:N의 경우, 1:M와 N:1로 엔터티를 나눠야 함)
· Crow’s Foot 모델
➢ 한 개 참여 ➪ 실선
➢ 다수 참여 ➪ 까마귀발 형태
- 관계선택사양(Optionality)
· 필수적 관계: 두 엔티티의 관계가 서로 필수적일 때 하나의 트랜젝션을 형성함
ex) 반드시 지하철의 문이 닫혀야만 지하철이 출발함
· 선택적 관계: 두 엔터티가 서로 독립적 수행이 가능하다면 선택적 관계로 표현
ex) 출발을 알리는 안내방송은 지하철의 출발과 상관없음
➢ 물리속성에서 Foreign Key로 연결될 경우 Null을 허용할 수 있는 항목이 됨
➢ ERD에서 관계를 나타내는 선에서 선택참여하는 엔터티 쪽을 원으로 표시
➢ 양쪽 엔터티에 모두 선택참여 표시 ➪ 즉 0:0의 관계라면 그 관계는 잘못될 확률이 높음
# 관계의 표기법
- IE 표기법
· 원을 사용하여 필수적 관계와 선택적 관계를 구분
· 필수적 관계에는 원을 그리지 않음
· 선택적 관계에는 관계선 끝에 원을 그림
- 바커 표기법
· 실선과 점선으로 구분
· 필수적 관계는 관계선을 실선으로 표기
· 선택적 관계는 관계선을 점선으로 표기
# 관계의 정의 및 읽기
- 관계 체크사항
· 두 개의 엔터티 사이에 관심있는 연관규칙이 존재하는가
· 두 개의 엔터티 사이에 정보의 조합이 발생하는가
· 업무기술서나 장표에 관계연결에 대한 규칙이 서술되는가
· 업무기술서나 장표에 관계연결을 가능하게 하는 동사가 존재하는가
- 관계 읽기
· 기준(Source) 엔터티를 한 개 또는 각(Each)으로 읽음
· 대상(Target) 엔터티의 관계참여도 즉 개수를 읽음
· 관계선택사양과 관계명을 읽음
'🖊️Certificate > 📌SQLD' 카테고리의 다른 글
[SQLD] 1과목 - 2장) 1절. 정규화 (0) | 2024.03.05 |
---|---|
[SQLD] 1과목 - 1장) 5절. 식별자 (0) | 2024.03.05 |
[SQLD] 1과목 - 1장) 3절. 속성 (2) | 2024.03.05 |
[SQLD] 1과목 - 1장) 2절. 엔터티 (4) | 2024.03.05 |
[SQLD] 1과목 - 1장) 1절. 데이터 모델의 이해 (2) | 2024.03.05 |
댓글