Cypher Manual
Cypher는 그래프 데이터를 위한 쿼리 언어입니다. 그 특징은 다음과 같습니다.
- 선언적(Declarative)
Cypher는 프로그램이 어떻게(how) 작업을 수행해야 하는지가 아니라 무엇을(what) 수행해야 하는지를 기술하는 선언적 언어입니다. C와 Java는 알고리즘을 명시하는 명령형 언어입니다. 이와 달리 Cypher는 목표를 명시합니다. 이러한 방식 덕분에 사용자는 원하는 쿼리를 더 쉽게 작성할 수 있습니다.
- 패턴 매칭(Pattern Matching)
Cypher에서 쿼리를 작성하는 방식은 마치 그림을 그리는 것과 같습니다. 사용자는 찾고자 하는 그래프 패턴을 ASCII처럼 괄호와 하이픈으로 표현하므로, 사용자가 작성한 쿼리는 직관적입니다.
- 표현력(Expressive)
Cypher는 풍부한 쿼리 표현을 위해 다양한 처리 방식을 차용했습니다. 예를 들어 WHERE, ORDER BY 등은 SQL에서, 패턴 매칭은 SPARQL에서, 컬렉션은 Haskell과 Python에서 가져왔습니다. 이러한 방식 덕분에 사용자는 더 편리하고 간단하게 쿼리를 작성할 수 있습니다.
Cypher의 구성 요소
Cypher의 기본 구성 요소는 정점(vertex), 간선(edge), vlabel, elabel, 속성(property), 변수(variable)입니다.
- 정점(Vertex)
정점은 그래프의 기본 구성 요소이며 엔터티를 의미합니다. 대부분의 경우 정점은 엔터티를 의미하지만, 목적에 따라 다르게 사용될 수도 있습니다.
- 간선(Edge)
간선은 각 정점 사이의 관계를 의미합니다. 즉, 간선은 연결할 수 있는 정점이 없으면 존재할 수 없습니다.
- Vlabel
Vlabel은 정점을 구분하는 기준으로서 사용자가 정의한 이름입니다.
- Elabel
Elabel은 간선의 이름입니다. 각 정점 사이의 관계를 나타냅니다.
- 속성(Property)
속성은 정점 또는 간선 각각의 속성 정보입니다.
- 변수(Variable)
변수는 정점 또는 간선의 식별자입니다. 임의로 이름이 지정됩니다.
이 가이드는 AgensGraph의 Cypher 쿼리 언어에 대한 완전한 레퍼런스를 제공합니다. 그래프 데이터를 쿼리하기 위한 구문, 절, 사용 가능한 함수를 학습하십시오.