본문 바로가기
GDB & Cypher/간단한 사용법

[Cypher] 그래프 생성&삭제하기(CREATE/DROP GRAPH)

by 열정주니어 2023. 1. 5.
반응형

GDB와 Cypher에대해 간단하게 알아보았으니 이제 Cypher를 사용하여 GDB를 다루는 법을 알아보자.

 

GDB와 Cypher가 무엇인지 모르는분들은 이전 포스팅을 참고하길 바란다.

GDB란?

 

GDB란?

GDB란? Cypher 사용하는 방법을 설명하기에 앞서 GDB에 대해 간단히 알아보도록 하자. GDB는 Graph Database의 약자로 위키피디아에서 "데이터를 표현하고 저장하기 위해 노드, 에지 및 속성이 있는 시맨

jobdahan-tech.tistory.com

 

 

Cypher란?

 

Cypher란?

Cypher는 그래프 데이터를 대상으로 질의를 수행하는 그래프 질의 언어이다. 쉽게 말하면 RDB에서의 질의 언어 Oracle, PostgreSQL 등과 같이 GDB를 대상으로 하는 질의 언어가 Cypher라고 생각하면 된다. G

jobdahan-tech.tistory.com

GDB는 노드와 엣지로 표현한 그래프의 형태로 데이터를 저장하고 관리한다. 따라서, GDB를 사용하기 위해서는 그래프를 생성하고, 레이블을 생성한 후, 노드&엣지를 생성해야 한다. 또한, 생성이 가능하면 당연히 삭제도 가능해야 할 것이다.

 

이번 시간에는 그래프를 생성하고 삭제하는 방법을 알아본다.

 

그래프 생성하기(CREATE GRAPH)

본격적으로 그래프를 생성하기에 앞서 GDB는 국내 유일 GDB 기업 비트나인의 AgensGraph를 사용하고, 결과를 보기위한 클라이언트 어플리케이션은 PostgreSQL의 Pgadmin을 사용하도록 한다.

 

아젠스그래프는 단일 DB 내에 여러 그래프들을 저장할 수 있다. 따라서, 그래프를 생성하고 사용할 그래프를 선택하여 path를 지정해야 cypher를 이용한 그래프 질의가 가능하다.

 

그래프를 생성하고 path를 지정하는 쿼리는 다음과 같다.

CREATE GRAPH graph_name;
SET graph_path = graph_name;

CREATE GRAPH는 그래프를 생성하는 명령이며  해당 명령과 함께 생성할 그래프의 이름(graph_name)을 함께 명시하여 사용한다. 또한, graph_path는 현재 다룰 그래프를 의미하는 변수로 다루고자 하는 그래프의 이름을 SET을 사용하여 설정한다.

 

그래프 삭제하기(DROP GRAPH)

그래프를 만들었으니 이제 삭제하는 방법에 대해 알아본다.

 

그래프를 삭제하는 쿼리는 다음과 같다.

DROP GRAPH graph_name CASCADE;

DROP GRAPH는 그래프를 삭제하는 명령이다. 아젠스 그래프는 그래프 생성시 노드와 엣지의 초기 레이블이 생성되므로 뒤에 CASCADE를 반드시 사용해야 한다.

 

여기서 CASCADE를 간단하게 설명하자면 관련된 모든 값을 업데이트하거나 삭제할 수 있게 한다. 이는 추후에 다시 다뤄보도록 하며 다음으로 예시를 살펴보자.

 

예시

이해를 돕기 위해 GDB를 설명했던 포스팅의 예시를 가져와 설명을 하도록 한다.

GDB란?

 

GDB란?

GDB란? Cypher 사용하는 방법을 설명하기에 앞서 GDB에 대해 간단히 알아보도록 하자. GDB는 Graph Database의 약자로 위키피디아에서 "데이터를 표현하고 저장하기 위해 노드, 에지 및 속성이 있는 시맨

jobdahan-tech.tistory.com

예시 그래프

위의 그래프는 sns사용자의 팔로우 관계를 나타내는 그래프이므로 이름을 sns_network라고 정의한다.

CREATE GRAPH sns_network;
SET graph_path = sns_network;

위와 같이 sns_network라는 그래프를 생성하고, path를 지정하는 쿼리를 작성해 실행하면 결과는 다음과 같다.

작성한 쿼리를 선택한 후 1번의 실행 버튼을 누르면 밑에 쿼리가 성공적으로 실행됨을 알려준다. (쿼리를 실행하는 방법으로는 1번 버튼을 누르는 것 외에도 f5버튼을 누르는 방법이 있다.)

 

다음으로 DB를 새로고침하면 sns_network라는 이름의 그래프가 생성된 것을 확인할 수 있다.

지금까지 sns_network라는 그래프를 DB에 만들었다.

 

이제 DROP GRAPH를 이용하여 삭제해주도록 한다.

DROP GRAPH sns_network cascade;

마찬가지로 위와 같이 sns_network그래프를 삭제하는 쿼리를 작성한 후 실행한다.

작성한 쿼리를 선택하여 1번 버튼으로 실행하면 아래의 메세지를 통해 그래프가 삭제 된 것을 알 수 있고, 2번을 통해 DB를 새로고침하면 다음과 같이 sns_network 그래프가 목록에서 사라진 것을 알 수 있다.

이것으로 이번 포스팅에서는 Cypher를 이용하여 GDB에 그래프를 생성하고 삭제하는 방법을 알아보았다.

 

다음 포스팅에서는 레이블을 생성하고 삭제하는 방법에 대해 알아보도록 한다.

 

참고

https://bitnine.net/ko/documentation/ (아젠스그래프 개발자 메뉴얼 가이드)

 

문서 ⋆ Bitnine Global Inc.

문서 ⋆ Bitnine Global Inc.

bitnine.net

 

반응형