본문 바로가기
데이터베이스(DB)/SQLD

[SQLD 1-1-4] 데이터 모델링의 이해 - 관계

by 송기동 2024. 5. 6.
728x90

1. 관계의 개념

1) 관계의 정의

- 엔터티의 인스턴스 사이의 논리적인 연관성으로서 존재의 형태로서나 행위로서 서로에게 연관성이 부여된 상태

2) 관계의 패어링

- 패어링 : 엔터티 안에 인스턴스가 개별적으로 관계를 가지는 것

- 개별 인스턴스가 각각 다른 종류의 관계를 가지고 있다면 두 엔터티 사이에 두 개 이상의 관계가 형성될 수 있다.

- 엔터티는 인스턴스의 집합을 논리적으로 표현한 것 / 관계는 관계 패어링의 집합을 논리적으로 표현하는 것


2. 관계의 분류

- 존재에 의한 관계

- 행위에 의한 관계

- UML(Uniform Modeling Language) 에는 클래스다이어그램의 관계 중 연관관계와 의존관계가 있고 이것을 구분하여 연관관계는 실선으로 표현하고, 의존관계는 점선으로 표현한다.


3. 관계의 표기법

# 관계명 (Membership)

- 관계의 이름

- 각각의 관계는 두 개의 관계명을 가지고, 각 관계명에 의해 두 가지의 관점으로 표현될 수 있음

# 관계차수 (Cardinality)

- 두 엔터티 사이의 관계에서 참여자(인스턴스)의 수를 나타낸 것

- 1:1, 1:M, M:N 이 있음

1:1
1:M
M:N

# 관계선택사양 (Optionality)

- 필수관계 ex) 반드시 지하철의 문이 닫혀야만 지하철은 출발

- 선택관계 : 물리속성에서 FK로 연결될 경우 Null을 허용할 수 있는 항목이 됨, ERD에서 관계를 나타내는 선에서 선택참여하는 엔터티 쪽을 원으로 표시 ex) 출발을 알리는 안내방송은 지하철의 출발과 상관없음


4. 관계의 정의 및 읽기

1) 관계 체크사항

- 두 개의 엔터티 사이에 관심있는 연관규칙이 존재하는가?

- 두 개의 엔터티 사이에 정보의 조합이 발생하는가?

- 업무기술서, 장표에 관계연결에 대한 규칙이 서술되어 있는가?

- 업무기술서, 장표에 관계연결을 가능하게 하는 동사가 존재하는가?

2) 관계 읽기

- 기준(Source) 엔터티를 한 개(One) 또는 각(Each)으로 읽는다.

- 대상(Target) 엔터티의 관계참여도 즉 개수(하나, 하나 이상)를 읽는다.

- 관계선택사양과 관계명을 읽는다.

 

728x90