110 lines
4.2 KiB
Markdown
110 lines
4.2 KiB
Markdown
GQL (Graph Query Language, ISO 표준 그래프 질의 언어)
|
|
|
|
📌 Brief Summary
|
|
|
|
GQL(Graph Query Language)은 2024년 4월 ISO/IEC 39075로 표준화된 그래프 데이터베이스 질의 언어다. 기존에 Neo4j의 Cypher, Oracle의 PGQL, TigerGraph의 GSQL 등 벤더별로 분열되어 있던 LPG(Labeled Property Graph) 질의 언어를 하나의 국제 표준으로 통합한다. SQL이 관계형 DB를 통합한 것처럼 GQL은 그래프 DB를 통합할 표준이다.
|
|
|
|
---
|
|
|
|
📖 Core Content
|
|
|
|
## 1. GQL 등장 배경 (표준화 필요성)
|
|
|
|
```
|
|
[2024년 이전: 벤더 종속 그래프 질의 언어]
|
|
Neo4j → Cypher
|
|
TigerGraph → GSQL
|
|
Oracle PGX → PGQL
|
|
Amazon Neptune → openCypher
|
|
|
|
문제: 벤더마다 다른 문법 → 이식성 없음
|
|
Neo4j에서 작성한 쿼리 → Amazon Neptune에서 사용 불가
|
|
|
|
[2024년 4월: ISO/IEC 39075 GQL 표준 채택]
|
|
→ SQL처럼 모든 그래프 DB에서 동일한 문법 사용 가능
|
|
SQL:1987이 관계형 DB 표준화 → GQL:2024가 그래프 DB 통합
|
|
```
|
|
|
|
---
|
|
|
|
## 2. GQL vs Cypher vs SPARQL 비교
|
|
|
|
| 구분 | GQL | Cypher (Neo4j) | SPARQL (RDF) |
|
|
|------|-----|---------------|-------------|
|
|
| **대상 모델** | LPG (ISO 표준) | LPG | RDF 트리플 |
|
|
| **표준화** | ✅ ISO/IEC 39075 | ❌ 벤더 표준 | ✅ W3C |
|
|
| **문법 스타일** | Cypher 기반 확장 | ASCII 패턴 | SQL 유사 |
|
|
| **이식성** | ✅ 전 벤더 | ❌ Neo4j 전용 | ✅ RDF 전용 |
|
|
| **도입 시기** | 2024.4 | 2011 | 2008 |
|
|
|
|
---
|
|
|
|
## 3. GQL 기본 문법 예시
|
|
|
|
```sql
|
|
-- GQL 기본 패턴 매칭
|
|
MATCH (p: Person)-[r: KNOWS]->(f: Person)
|
|
WHERE p.name = '홍길동'
|
|
RETURN f.name, r.since
|
|
|
|
-- GQL 그래프 생성
|
|
INSERT (:Person {name: '김철수', age: 30})-[:KNOWS {since: 2024}]->
|
|
(:Person {name: '이영희'})
|
|
|
|
-- GQL 경로 탐색 (다중 홉)
|
|
MATCH p = (a: Person)-[:KNOWS*1..3]->(b: Person)
|
|
WHERE a.name = '홍길동'
|
|
RETURN nodes(p), relationships(p)
|
|
|
|
-- GQL 집계
|
|
MATCH (p: Person)-[:KNOWS]->(f)
|
|
RETURN p.name, COUNT(f) AS friend_count
|
|
ORDER BY friend_count DESC LIMIT 10
|
|
```
|
|
|
|
---
|
|
|
|
## 4. SQL/PGQ와의 관계
|
|
|
|
GQL은 SQL/PGQ(SQL:2023에 추가된 그래프 확장)와 밀접:
|
|
|
|
```
|
|
[SQL:2023 - SQL/PGQ]
|
|
기존 SQL에 그래프 패턴 매칭 추가
|
|
관계형 테이블을 그래프로 질의 가능
|
|
→ SQL 사용자가 그래프 질의 점진적 도입
|
|
|
|
[ISO GQL:2024]
|
|
독립적인 완전한 그래프 DB 전용 언어
|
|
→ 전용 그래프 DB (Neo4j 등) 대상
|
|
|
|
[설계 공유] GQL ↔ SQL/PGQ: 핵심 그래프 문법 공통
|
|
```
|
|
|
|
---
|
|
|
|
## 5. 인과관계 (GQL 표준화의 생태계 영향)
|
|
|
|
```
|
|
[벤더 종속 현재 상황]
|
|
개발자: "Neo4j 배우면 다른 그래프 DB에서 못 써먹음"
|
|
기업: "그래프 DB 도입 = 특정 벤더 종속"
|
|
↓
|
|
[GQL 표준화 후 예상]
|
|
벤더 독립적 그래프 DB 기술 습득 가능
|
|
→ 그래프 DB 채택 기업 증가
|
|
→ 온톨로지·지식 그래프 기반 AI 시스템 확산 가속
|
|
→ GraphRAG·지식 그래프 기반 LLM 접근법 주류화
|
|
```
|
|
|
|
---
|
|
|
|
🔗 Knowledge Connections
|
|
|
|
- **Related Topics:** [[Cypher 질의 언어 (Neo4j)|Cypher 질의 언어 (Neo4j)]], [[SPARQL (RDF 그래프 질의 언어)|SPARQL (RDF 그래프 질의 언어)]], [[Labeled Property Graph (LPG, 속성 그래프)|Labeled Property Graph (LPG, 속성 그래프)]], [[지식 그래프 (Knowledge Graph)|지식 그래프 (Knowledge Graph)]], [[GraphRAG (그래프 기반 검색 증강 생성)|GraphRAG (그래프 기반 검색 증강 생성)]], [[Federated SPARQL (연합 질의)|Federated SPARQL (연합 질의)]]
|
|
- **Projects/Contexts:** [[온톨로지 지식 베이스|온톨로지 지식 베이스]]
|
|
- **Contradictions/Notes:**
|
|
- GQL 표준 채택(2024)은 됐지만 실제 벤더 구현은 점진적 → 완전한 GQL 지원까지 수년 소요 예상.
|
|
- GQL과 Cypher는 문법이 유사하나 완전히 동일하지 않음 → 마이그레이션 시 일부 수정 필요.
|
|
- **신규 키워드**: `SQL/PGQ (SQL 그래프 확장)`, `ISO 표준 DB`, `그래프 DB 생태계` → 탐색 큐 추가.
|