Files
2nd/01_Archive/2026-04-20/Labeled Property Graph (LPG, 속성 그래프).md
T

4.3 KiB

Labeled Property Graph (LPG, 속성 그래프)

📌 Brief Summary

LPG(Labeled Property Graph)는 노드와 엣지에 라벨(Label)과 Key-Value 형태의 속성(Property)을 직접 저장할 수 있는 그래프 데이터 모델이다. RDF의 트리플 분해 방식과 달리, 엣지 자체에 속성 부여가 가능하여 덜 장황하고 실시간 경로 탐색에 최적화되어 있다.


📖 Core Content

1. RDF 트리플 vs LPG 구조 비교

구분 RDF 트리플 LPG (속성 그래프)
데이터 모델 의미론 중심 (주어-서술어-목적어) 인스턴스(데이터) 중심
식별 방식 글로벌 IRI (URI) 로컬 ID + 라벨
엣지 속성 부여 중간 노드 추가 생성 필요 (장황) 엣지에 Key-Value 직접 부여
상호운용성 높음 (표준화, Linked Data) 낮음 (시스템 종속성 있음)
쿼리 성능 대규모 추론에 강점 실시간 경로 탐색·패턴 매칭에 강점

2. Key-Value 속성 직접 부여 메커니즘

[RDF 방식] "홍길동--나이-->35" 표현 시:
  <홍길동> <나이> "35"^^xsd:integer  ← 트리플 3개 필요

[LPG 방식] 노드·엣지에 직접:
  (홍길동 {나이: 35, 직업: "의사"})
       --[:치료했다 {날짜: "2026-04-15", 성공여부: true}]-->
  (김환자 {나이: 50})

설계 의도: 화이트보드에 그린 논리적 구조 = 물리적 저장 구조 (Isomorphic). 중간 노드 생성 없이 자연스러운 데이터 모델링 가능.


3. Neo4j 구현 방식 핵심

  • 네이티브 속성 그래프: 논리적 모델 = 물리적 스토리지 모델 (1:1 대응).
  • 인덱스 없는 인접성 (Index-free Adjacency): 각 노드가 인접 노드의 직접 포인터를 보유 → 전체 DB 스캔 없이 연결 노드로 즉시 이동.
  • 쿼리 비용: 전체 데이터 크기가 아닌 실제 탐색하는 하위 그래프 크기에만 비례 → 대규모 데이터에서도 실시간 응답.

4. Cypher 질의 언어 기초

-- 보안 위협 탐색 예제
MATCH (t:Threat)-[:EXPLOITS]->(v:Vulnerability)
WHERE v.severity = "Critical"
RETURN t.label, v.cveID, v.severity
ORDER BY v.severity DESC
LIMIT 10
  • 특징: ASCII 아트 스타일 패턴 매칭 → 직관적이고 시각적.
  • 중점: 논리적 추론보다 그래프 패턴 탐색(Pattern Matching)에 특화.
  • SQL 비교: SPARQL보다 경로 탐색 표현이 더 자연스러움.

5. 실제 성능 벤치마크 수치

환경 그래프 규모 홉(Hop) 수 응답 시간
Neo4j 네이티브 그래프 수십억 개 엣지 6-hop 복잡 순회 질의 3초 이내

6. 인과관계 연쇄

LPG 엣지 속성 직접 부여 설계
        ↓
중간 노드 생성 불필요 → 데이터 모델 간결화
        ↓
+ Index-free Adjacency 아키텍처
        ↓
Join 연산 성능 병목 원천 제거
        ↓
탐색 비용 = 전체 DB 크기 독립 → 하위 그래프 크기에만 비례
        ↓
수십억 엣지, 6-hop 쿼리도 3초 이내 실시간 응답

🔗 Knowledge Connections