관계(Relationship)
관계(Relationship)란?!
- 엔터티의 인스턴스 사이의 논리적인 연관성으로서 존재의 형태로서나 행위로서 서로에게 연관성이부여된 상태.
- 엔터티와 엔터티 간 연관성을 표현하기 때문에 엔터티의 정의에 따라 영향을 받기도 하고, 속성 정의 및 관계 정의에 따라서도 다양하게 변할 수 있다.
- 엔터티 안에 인스턴스가 개별적으로 관계를 가지는 것.
관계의 페어링
- 각각의 엔터티의 인스턴스들은 자신이 관련된 인스턴스들과 관계의 어커런스로 참여하는 형태를 말함 (인스턴스 각각은 자신의 연관성을 가지고 있을 수 있다.)
ex)
관계의 분류
* 존재에 의한 관계
- 예로는 부서에 사원이 소속되는 것.(부서아래에 부서에 소속된 사원이 있는것이므로 존재.)
* 행위에 의한 관계
- 위의 관계의 패어링의 그림이 행위에 의한 관계이다.(행동을 하는것.)
* 연관관계
- 항상 이용하는 관곌 존재적 관계에 해당.
- 실선 사용(->)
* 의존관계
- 상대방 클래스의 행위에 의해 관계가 형성될 때 구분하여 표현
- 점선사용(---->)
관계명
- 엔터티가 관계에 참여하는 형태를 지칭한다. 각각의 관계는 두개의 관계명을 가지고 있다.
위 그림에서 포면 '포함 된다' 와 '소속된다' 2가지 관계명이 나오는 것을 확인할 수 있다.
포함한다는 '관계의 시작점' 이며 소속된다는 '관계의 끝점' 이된다.
관계명 작성시 유의사항
- 애매한 동사를 피한다. 예를 들면 '관계된다', '관련있다', '이다', '한다' 등은 구체적이지 않으므로 어떤 행위가 있는지 모르게 됨으로써 피해줘야함.
- 현재형으로 표현한다. 예를 들면 '수강 신청한다', '강의를 한다' 로 표현해야함
관계차수
- 두 개의 엔터티 간 관계에서 참여자의 수를 표현
* 1:1
* 1:M
* M:M
- 관계에 참여하는 각각의 엔터티는 관계를 맺는 다른 엔터티의 엔터티에 대해 하나나 그 이상의 수와 관계를 가지고 있다.
- 반대의 방향도 동일하게 관계에 참여하는 각각의 엔터티는 관계를 맺는 다른 엔터티의 엔터티에 대해 하나 또는 그 이상의 수와 관계를 가지고 있다.
관계읽기
- 연관규칙이 존재하는가?, 정보의 조합이 발생되는가?, 관계연결에 대한 규칙이 서술되있는가?
- 관계연결을 가능하게 하는 동사가 있는지 확인 해봐야한다.
- 기준 엔터티를 한 개(One) 또는 각(Each)으로 읽는다.
- 대상 엔터티의 관계참여도 즉 개수(하나, 하나 이상)를 읽는다.
- 관계선택사양과 관계명을 읽는다.
'IT > SQLD(SQL개발자)' 카테고리의 다른 글
[SQLD] 데이터 모델링관점과 분류 (0) | 2019.06.13 |
---|---|
[SQLD] 식별 (0) | 2019.06.11 |
[SQLD] 속성(Attribute) (0) | 2019.06.09 |
[SQLD] 엔터티(Enterty) (0) | 2019.06.08 |
[SQLD] 데이터 모델링의 이해 (0) | 2019.06.07 |