성장通

04. 그래프 스키마 언어 본문

그래프/그래프 데이터

04. 그래프 스키마 언어

백악기작은펭귄 2024. 1. 28. 23:52

그래프 스키마 언어

그래프를 공부하다보면 이를 이해하는 주체에 따라 다르게 해석되는 용어들이 존재한다. 이로 인해 발생하는 오해와 소통 오류를 방지하기 위해 그래프 스키마를 설명하는 공식 용어가 있는데, 이를 그래프 스키마 언어(Graph Schema Language, GSL)라고 한다. 그래프 스키마 언어는 그래프 데이터베이스 스키마를 만들기 위해 개념을 적용하는 시각적 언어로, 개념적 그래프 모델, 그래프 스키마, 그래프 데이터베이스를 설계하고 공유하며 소통을 돕기 위해 사용된다.

 

정점 레이블과 간선 레이블

정점과 간선이 그래프의 필수 요소 중 하나인만큼, 그래프 스키마 언어에서도 첫 번째로 알아야할 것을 꼽자면 정점 레이블(vertex label)간선 레이블(edge label)을 들 수 있다. 그래프 스키마 언어에서는 이를 이용해 그래프 스키마를 묘사한다.

 

  • 정점 레이블: 같은 관계와 속성을 공유하는, 의미가 같은 객체 집합
  • 간선 레이블: 데이터베이스 스키마에 있는 정점 레이블 간의 관계 유형

 

그래프 모델링에서는 각 개체에 정점 레이블을 지정하고 간선 레이블을 이용해 개체 간의 관계를 설명한다. 앞선 포스팅에서 다루었던 예제 데이터를 위 두 개념을 이용해 모델링해보도록 하자. 앞서 진행했던 그래프 표현과 비슷하지만, 용어를 사용했다는데에 의의를 두도록 하자.

 

 

기존에 개체라고 불렀던 부분을 정점 레이블이라는 용어를 사용해 표현하였고, 두 개체 사이의 관계를 간선 레이블을 이용해 표현하였다.

 

간선 방향

위 그림에서 간선 레이블 owns는 정점 레이블 Customer에서 나와 또다른 정점 레이블 Accounts로 들어가는 형태로, 한 쪽으로 진행하는 방향성을 가진다. 이처럼 간선은 방향을 가지며, 방향의 개수에 따라 다음과 같이 두 가지로 나뉜다.

 

  • 단방향(directed): 한 정점 레이블에서 다른 정점 레이블로 한 방향으로만 향하는 간선 레이블
  • 양방향(bidirectional): 두 정점 레이블 사이를 양방향으로 연결하는 간선 레이블

 

이러한 방향성 덕분에 그래프 데이터 모델에서는 데이터의 특징을 자연스러운 방식으로 묘사할 수 있다. 이와 같은 표기법은 데이터 간의 상호작용에 따라 결정되는데, 위와 그림의 경우에서는 고객이 계좌를 소유(owns)하지만 계좌가 고객을 소유할 수는 없으므로 단방향 간선 레이블을 사용했다. 만약 두 개체 간에 양방향 이동을 원한다면 다음과 같이 표기할 수 있다.

 

 

이처럼 간선 레이블의 방향은 두 정점 레이블을 각각 주어와 목적어로 하여 술어에 의해 결정되곤하는데, 이때의 '주어가 되는 정점 레이블'을 도메인(Domain), '목적어가 되는 정점 레이블'을 범위(Range)라고 한다. 술어는 당연히 간선 레이블이다.

 

  • 도메인: 간선 레이블이 시작되는 정점 레이블
  • 범위: 간선 레이블의 화살표가 도착하는 정점 레이블

 

만약 도메인과 범위가 하나의 간선 레이블을 이용하여 서로를 표현할 수 있는 경우 하나의 양방향 간선 레이블로 통일시킬수도 있다.

 

 

이 경우 보통 상호적 관계인 경우가 많은데, 위 그림에서처럼 고객 A의 가족이 고객 B라면 고객 B의 가족도 고객 A가 되므로 양방향 간선으로 나타낼 수 있는 것이다. 그래프 이론에서 양방향 간선은 무방향(undirected) 간선과 동일하게 취급되지만, 데이터에 관계에 집중하고자 양방향을 사용하여 표현하였다.

 

자기 참조 간선 레이블

간혹 도메인과 범위가 같은 정점 레이블인 경우가 있다. 즉 간선이 한 정점 레이블에서 시작해 동일 정점에서 끝나는 경우를 말하는데, 이를 자기 참조(self-reference) 간선 레이블이라 부른다. 자기 참조 간선 레이블에는 양방향도 있고 단방향도 있는데, A가 B에 포함된 경우 혹은 부모-자식과 같은 재귀적 관계를 모델링할 때는 단방향을 사용하곤 한다.

 

프로퍼티

관계형 모델은 데이터를 묘사할 때 속성(attribute)을 사용했었다. 그래프 모델링에서는 프로퍼티(property)라는 개념을 이용하는데, 이는 정점 레이블이나 간선 레이블의 이름을 포함하여 날짜, 기능 설명 등 다양한 특징을 묘사한다.

 

 

각 정점 레이블은 자신과 관련된 프로퍼티 목록을 갖는다. 이들 프로퍼티는 관계형 ERD의 속성과 동일하며 간선 레이블도 마찬가지로 프로퍼티를 갖는다.

'그래프 > 그래프 데이터' 카테고리의 다른 글

06. 관계형을 그래프로  (0) 2024.02.18
05. 그래프의 다중성  (1) 2024.02.03
03. 관계형에서 그래프 씽킹으로  (1) 2024.01.21
02. 그래프 씽킹  (0) 2023.12.21
01. 떠오르는 그래프 기술  (1) 2023.12.06