30

SPARQL vs Cypher 비교 (핵심!)

SPARQL 쿼리 언어

학습 목표

SPARQL과 Cypher의 10가지 이상 차이점을 설명할 수 있다 같은 쿼리를 두 언어로 작성할 수 있다 상황에 따른 쿼리 언어 선택 기준을 제시할 수 있다

두 그래프 쿼리 언어의 결정적 차이

학습 목표

  • SPARQL과 Cypher의 문법적/개념적 차이를 10가지 이상 비교할 수 있다
  • 상황에 따라 적절한 쿼리 언어를 선택할 수 있다
  • 같은 쿼리를 두 언어로 작성하는 능력을 기른다

핵심 철학의 차이

에디터 로딩 중...

10+ 쿼리 패턴 비교표

1. 기본 조회 — 모든 사람 찾기

에디터 로딩 중...
에디터 로딩 중...

차이: SPARQL은 각 속성이 별도 트리플 패턴, Cypher는 노드에서 직접 접근


2. 조건 필터링 — 25세 이상

에디터 로딩 중...
에디터 로딩 중...

3. 관계 탐색 — Alice의 친구

에디터 로딩 중...
에디터 로딩 중...

4. 2홉 탐색 — 친구의 친구

에디터 로딩 중...
에디터 로딩 중...

차이: Cypher는 *2로 홉 수 지정, SPARQL은 패턴 반복


5. 가변 길이 경로 — 1~5홉

에디터 로딩 중...
에디터 로딩 중...

차이: Cypher가 더 유연한 가변 길이 문법 제공


6. 선택적 매칭 — LEFT JOIN

에디터 로딩 중...
에디터 로딩 중...

7. 집계 — 도시별 사람 수

에디터 로딩 중...
에디터 로딩 중...

8. 존재 확인 — 특정 관계 존재?

에디터 로딩 중...
에디터 로딩 중...

9. 패턴 부정 — 친구 없는 사람

에디터 로딩 중...
에디터 로딩 중...

10. 최단 경로

에디터 로딩 중...
에디터 로딩 중...

차이: 최단 경로는 Cypher의 압도적 강점


11. 데이터 변환 (CONSTRUCT)

에디터 로딩 중...
에디터 로딩 중...

12. 연합 쿼리 (Federated Query)

에디터 로딩 중...
에디터 로딩 중...

종합 비교 매트릭스

기능SPARQLCypher승자
기본 조회트리플 패턴노드.속성Cypher (간결)
관계 탐색패턴 반복ASCII ArtCypher (직관적)
가변 길이 경로Property Path (+, *)*min..maxCypher (유연)
최단 경로❌ (없음)shortestPath() 내장Cypher 압승
선택적 매칭OPTIONALOPTIONAL MATCH동등
집계GROUP BY + 함수암묵적 그룹핑동등
데이터 변환CONSTRUCT❌ (없음)SPARQL 압승
연합 쿼리SERVICE (표준)❌ (없음)SPARQL 압승
추론 통합RDFS/OWL 추론제한적SPARQL (표준)
표준화W3C 확정GQL 진행 중SPARQL (성숙)
학습 곡선높음 (URI 등)낮음 (직관적)Cypher (쉬움)
상호운용성SPARQL endpoints벤더 종속SPARQL (개방)
관계 속성Reification 필요직접 저장Cypher 압승
성능 (탐색)트리플 스토어Index-free Adj.Cypher (빠름)

선택 가이드

에디터 로딩 중...

핵심 정리

Cypher = 경로 탐색의 왕 (직관적, 빠른 탐색, 관계 속성) SPARQL = 데이터 통합의 왕 (연합 쿼리, 추론, 표준, CONSTRUCT) 실무에서는 도메인에 맞게 선택하거나 둘 다 사용!

📖 심화 읽기: 이강배 외, "지식그래프", 유원북스, 2025 — 6장 그래프 쿼리 비교

핵심 포인트
  • SPARQL=트리플 패턴 매칭, Cypher=ASCII Art 경로 매칭
  • Cypher 강점: 최단 경로, 가변 길이 경로, 관계 속성, 직관성
  • SPARQL 강점: CONSTRUCT(변환), SERVICE(연합 쿼리), 추론 통합, 표준
  • 같은 쿼리도 Cypher가 더 짧고 직관적, SPARQL은 더 범용적
  • 실무: 경로 탐색 → Cypher, 데이터 통합/추론 → SPARQL, 또는 둘 다