Haekt‘s log

[Gremlin] 그렘린을 사용해보자! - 그래프 기본 구조 본문

DB/Graph DB

[Gremlin] 그렘린을 사용해보자! - 그래프 기본 구조

Haekt 2023. 7. 27. 15:18

Hello Gremrlin!

출처 : https://tinkerpop.apache.org/docs/3.6.4/tutorials/getting-started/

Gremlin은 Graph DB를 다루는 쿼리언어의 일종으로, Apache 에서 지원하는 쿼리 언어이다.
Gremlin을 통해 Graph 를 생성, 삭제, 제어를 할 수 있다.
 
이를 이용해서 아래와 같은 그래프를 생성할 수 있다. 

웹 gremlin 실행 사이트를 통한 예제 : https://gremlify.com/

 

그래프의 기본 구조

  • 기본 그래프


먼저 vertex와 edge가 무엇인지에 대해서 아는 것에 집중하자. vertex는 꼭짓점이라는 뜻으로, 노드(요소)를 의미하며, edge는 해당 노드사이의 관계를 나타낸다.

예시로 재민이 라는 name을 가진 vertex1과 희연이라는 name을 가진 vertex3가 있다고 가정하자.

이때 재민이가 희연이한테 마음이 있다는 것을 표현한다면 위와 같이  그래프로 표현할 수 있다

설명 : 위의 다이어그램은 id가 "1"인 vertex와 "3"인 vertex가 있는 그래프이다.
그리고 두 vertex를 잇는 id가 "9" edge 가 존재한다.
edge 에서는 서로의 관계를 표현하기 위해서 "1" vertex에서 "3" vertex로 들어가는 방향이 중요하다.
 
 

  • edge와 vertex의 레이블

id만 있는 요소가 있는 그래프는 데이터베이스의 일부에만 해당된다.
이 기본 구조에 어떤 의미를 부여하기 위해 vertexedge에 각각 lable을 지정하여 분류할 수 있다.
 
 

  • edge와 vertex에 임의 속성 부여 가능

추가적으로, label 과 id 는 예약된 특성이지만 위 그래프처럼
vertexedge에 “name” 또는 “age” 와 같은 임의의 속성을 추가할 수도 있다.
이 모델은 property graph(속성 그래프) 라고 하며, 데이터를 모델링 하는 유연하고 직관적인 방법을 제공한다.
 

Comments