관계란?
- 사전적정의: 상호연관서잉 있는 상태
- 엔티티 간 논리적인 연관성을 의미한다.
- 존재에 의한 관계와 행위에 의한 관계로 구분된다.
관계의 페어링
- 관계는 엔티티 안에 인스턴스가 개별적으로 관계를 가지는 것(패어링)이고 이것의 집합을 관계로 표현한다는 것이다.
- 각각의 엔티티의 인스턴스들은 자신이 관련된 인스턴스들과 관계의 어커런스(발생, 사건)로 참여하는 형태를 관계 페어링(Relationship Paring)이라 한다.
관계의 분류
존재의 의한 관계
- "소속된다" 라는 의미는 행위에 따른 이벤트에 의해 발생되는 의미가 아니고 그냥 사원이 부서에 소속되어 있기 때문에 나타나는 즉 존재의 형태에 의해 관계가 형성되어 있는 것이다.
행위에 의한 관계
- 주문 엔티티의 주문번호는 고객이 "주문한다" 라는 행위에 의해 발생되었기 때문에 두엔티티 사이의 관계는 행위에 의한 관계가 되는 것이다.
관계의 표기법
- 관계명(Membership) : 관계의 이름
- 관계 차수(Cardinality): 1대1, 1대다, 다대다
- 관계선택사양(Optionality): 필수관계, 선택관계
관계명에 따른 표기법
- 엔티티가 관계에 참여하는 형태를 지칭한다.
- 각각의 관계는 두 개의 관계명을 가질수 있다. 즉 각각의 관계명에 의해 두 가지의 관점으로 표현될 수 있다.
- 엔티티에서 관계가 시작되는편을 관계시작점이라고 부르고 받는 편을 관계끝점 이라고 부른다
- 관계 시작점과 끝점 모두 관계이름을 가져야 하며 참여자의 관점에 따라 관계이름이 능동적이거나 수동적으로 명명된다.
- 관계의 명명규칙
- 애매한 동사를 피한다. 예를 들면 "관계된다.", "관련이 있다" 등은 구체적이지 않아 어떤 행위가 있는지 또는 두 참여자간 어떤 상태가 존재하는지 파악할 수 없다.
- 현재형으로 표현한다. "~했다." "~할것이다." 라는 식으로 표현해서는 안된다. "~한다"로 표현해야한다.
과계 차수에 따른 표기법
- 두 개의 엔티티 간 관계에서 참여자의 수를 표현하는 것을 관계 차수(Cardinality)라고 한다.
- 가장 일반적인 관계 차수 표현방법은 1대1, 1대다, 다대다이다.
관계선택사양에 따른 표기법
- "반드시 지하철의 문이 닫혀야만 지하철은 출발한다."
- 지하철출발과 지하철 문 닫힘은 필수적으로 연결 관계가 있는 것이다. 이와 같은 것이 데이터 모델의 관계에서는 필수참여관계가 된다.
- 지하철의 출발을 알리는 안내방송은 출발과 상관없이 방송해도 아무런 문제가 발생하지 않는다. 즉 안내방송시스템이 고장이 나도 지하철운행에는 별로 영향을 주지 않는다.
- 지하철의 출발과 지하철방송과는 정보로서 관련은 있지만 서로가 필수적인 관계가 아닌 선택적인 관계가 되는 것이다. 이와 같은 것이 데이터 모델 관계에서는 선택참여관계가 된다.
- 관계 정의 시 체크 사항
- 두개의 엔티티 사이에 관심있는 연관 규칙이 존재하는가?
- 두 개의 엔티티 사이에 정보의 조합이 발생되는가?
- 업무 기술서, 장표에 관계연결에 대한 규칙이 서술되어 있는가?
- 업무기술서, 장표에 관계연결을 가능하게 하는 동사가 있는가?
관계 읽기
- 기준 엔티티를 한개 또는 각으로 읽는다.
- 대상엔티티의 관계 참여도 즉 개수(하나,하나이상)를 읽는다.
- 관계선택사양(필수/선택)과 관계명을 읽는다.
'Computer Science > 데이터베이스' 카테고리의 다른 글
성능 데이터 모델링 (0) | 2023.06.07 |
---|---|
식별자(Identifiers) (1) | 2023.06.07 |
속성(Attribute) (1) | 2023.06.03 |
엔티티(Entity) (0) | 2023.06.03 |
데이터 모델링 (0) | 2023.06.03 |