본문 바로가기
🖊️Certificate/📌SQLD

[SQLD] 과목1 - 1장) 4절. 관계

by 빛나고요 2024. 3. 5.
BIG

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) 엔터티의 관계참여도 즉 개수를 읽음
  · 관계선택사양과 관계명을 읽음

댓글