Entity-Relationship Model 02

2020. 2. 5. 17:30스터디/Database

RELATIONSHIPS AND RELATIONSHIP SETS

 

관계는 두개 또는 그 이상의 엔티티들간의 관계를 말한다. 

 

Works_In 의 관계 집합

관계가 가진 관계 집합을 설명할 수 있는 속성을 설명 속성 (descriptive attributes) 라고 한다. 설명 속성은 관계에 대한 정보 뿐만 아니라 참가(Participating, 개체 집합의 연관성 ex. 개체집합인 Employees 와 Departments는 관계집합인 Works_In에 참가한다) 엔티티도 기록한다. 관계는 반드시 설명 속성을 참조하는 참가 엔티티에 의해 식별되어야 한다. 관계집합 Works_In 을 예로 들어보자면, 각각의 집합은 반드시 Employees의 ssn, Departments의 did 두 합성키에 의해 식별되어져야한다. 그래서 Employees와 Departments 때문에 Works_In의 since 속성으로 관계집합 Works_In을 식별할 수 있다. 

 

관계 집합 사례(instance of a relationship set)는 관계들의 집합을 말한다. 직관적으로 사례는 어떤 한 순간의 시간속에서 설정된 관계의 스냅샷(snapshot)이라고 생각할 수 있다. /* 스냅샷: 과거의 한 때 존재하고 유지시킨 컴퓨터 속 디렉토리들의 모임*/

위 그림의 관계 집합에서는 각각의 Employees 집합은 ssn으로 간단하게 표시(simlicity)되고, Departments 집합에서는 did로 표시되어진다.  since 값은 "다 대 다, 전체 참여" )

Works_In 관계 집합의 사례(instance)

ED 다이어그램의 또 다른 예제로는, 각각의 department가 office를 몇군데 가지고 각각의 employee들이 일하는 장소를 저장하고 싶다고 가정해보았을 경우를 들어보자. 이 관계는 employee과 department 그리고 location 이렇게 3항 (tenary) 사이에서의 관계이다. 

3항 관계 집합
Reports_To 관계 집합

관계에 참여하는 엔티티 집합은 반드시 구분되어져야할 필요가 없다. 때로는 같은 엔티티 집합에 있는 2가지 엔티티를 관계가 한 관계에 속해 있을 수도 있다. Employees 안에 emp1과 emp2라는 엔티티가 존재할 때, 이 둘은 각각 다른 employees에게 보고할 수 있을 것이다. 하지만 이 둘의 역할은 다른데, 한 개는 supervisor, 그리고 다른 하나는 subordinate 가 된다. 만약 엔티티가 한가지 이상의 역할을 수행해야한다면, role indicator는 관계 집합에 있는 각각의 속성들을 위해 유니크한 이름들을 주는 엔티티 집합으로부터 얻는 속성의 이름을 사슬처럼 묶는 역할을 하게 된다. 예를 들어 Reports_To 관계 집합이 supervisor의 ssn, subordinate의 ssn과 연동하기 위한 속성을 갖는데, 이 supervisor_ssn 과 subordiate_ssn 이 둘은이 속성들의 이름이 된다.

'스터디 > Database' 카테고리의 다른 글

데이터베이스 정규화  (0) 2020.02.09
Entity-Relationship Model 03  (0) 2020.02.05
Entitiy-Relationship Model  (0) 2020.02.05