오늘은 DB Relationships에서 개인적으로 가장 이해하기가 껄끄러웠던 Recursive Relationships에 대해 정리한다.
이전 글
https://baram1ng.tistory.com/28
Recursive Relationships(재귀적 관계)
Recursive Relationships은 엔터티가 자기 자신과 관계를 갖는 것을 의미한다. Recursive Relationships은 앞선 Relationships와 같이 1:1, 1:N, N:M 관계를 모두 가질 수 있다. 이해하기 어려울 수 있으니, 예시를 통해 살펴보자.
1:1 recursive relationship
1:1 recursive relationship의 예시로 직원과 직속 상사의 관계를 생각할 수 있다. 직원의 엔터티가 존재한다고 할 때, 각 직원은 한명의 직속 상사를 가지고 직속 상사는 한명의 직원을 가질 수 있다. 즉, 조직도 내에 직원 엔터티 간의 1:1 recursive relationship이 생겨날 수 있다.
1:N recursive relationship
아래 예시(Customer)에서도 Recursive Relationships를 확인할 수 있다 Customer가 있다고 가정하고 추천인 이벤트를 통해 할인 쿠폰을 지급하는 상황을 가정하자. 한 고객이 여러 명의 사람에게 추천인 ID를 입력하여 할인 쿠폰을 받을 수 있다고 생각하면, 추천 개념으로 한 Customer는 여러 명에게 추천을 받을 수 있다고 생각할 수 있다. 근데, 추천 하는 사람은 한 customer 밖에 매칭이 될 수가 없으니 referred by 1:N관계가 성립이 된다.
N:M recursive relationshop
N:M recursive relationship의 예시로 SNN 친구관계의 예시를 들 수 있다. SNN의 각 사용자는 여러 명의 친구가 등록가능하며, 또 여러 명의 친구에게 등록당할 수 있다. 즉, User 엔터티가 존재한다고 할 때, User A가 User B와 C를 친구로 Follew할 수 있으며, User A는 User B와 C에게 Followed 당할 수 있는 N:M recursive 관계가 생성이 될 수 있다.
'Database' 카테고리의 다른 글
[Database] 정규화(Normalization)/비정규화(Denormalization) (0) | 2024.06.12 |
---|---|
[Database] Entity Relationships (2) (0) | 2024.06.11 |
[Database] Entity Relationships (1) (2) | 2024.06.11 |
[Database] Functional Dependency(함수적 의존성) (2) | 2024.04.21 |
[Database] 데이터 무결성 (1) | 2024.04.19 |