logo

그래프 데이터베이스

그래프 데이터베이스란 무엇입니까

그래프 데이터베이스(graph database)는 데이터를 노드와 간선 중심으로 저장하고 탐색하는 데이터베이스입니다. 관계형 데이터베이스가 표와 조인을 중심으로 데이터를 다룬다면, 그래프 데이터베이스는 연결 구조 자체를 직접 다룹니다.

친구 관계, 추천, 사기 탐지, 공급망, 지식 그래프처럼 관계가 분석의 핵심인 문제에 적합합니다.

그래프 데이터 모델

대표적인 데이터 모델은 두 가지입니다.

첫째, RDF 그래프는 주어, 술어, 목적어 트리플을 저장합니다. 표준 어휘, 온톨로지, 추론과 잘 맞습니다.

둘째, 라벨 속성 그래프(labeled property graph)는 노드와 간선에 라벨과 속성을 붙입니다. 응용 개발과 경로 탐색 질의에 편리합니다.

두 모델은 모두 그래프를 다루지만, 강조하는 기능이 다릅니다.

flowchart LR
    subgraph rdf["RDF 저장소"]
        triple["트리플<br/>주어-술어-목적어"]
        ontology["표준 어휘와 온톨로지"]
        sparql["SPARQL과 추론"]
        triple --> ontology --> sparql
    end

    subgraph property["라벨 속성 그래프"]
        nodes["노드와 간선"]
        labels["라벨과 속성"]
        paths["경로 탐색 질의"]
        nodes --> labels --> paths
    end
CREATE (:Person {name: "앨리스"})-[:KNOWS]->(:Person {name: "밥"})

위 예시는 두 사람 노드와 KNOWS 관계를 생성합니다.

관계형 데이터베이스와 비교

관계형 데이터베이스에서도 관계를 표현할 수 있습니다. 그러나 여러 단계의 연결을 따라가는 질의는 많은 조인을 요구할 수 있습니다. 그래프 데이터베이스는 이런 연결 탐색을 더 자연스럽게 표현합니다.

예를 들어 "앨리스의 친구의 친구"를 찾는 질의는 그래프에서는 경로 탐색으로 표현됩니다.

MATCH (:Person {name: "앨리스"})-[:KNOWS]->()-[:KNOWS]->(friend)
RETURN friend.name

이 질의는 앨리스에서 두 단계 떨어진 사람을 찾습니다.

RDF 저장소

RDF 저장소는 RDF 트리플을 저장하고 SPARQL 질의를 처리하는 데이터베이스입니다. 의미 웹 표준, 온톨로지, 추론 기능이 필요한 경우 적합합니다.

대표적인 RDF 저장소에는 GraphDB, Apache Jena Fuseki, Virtuoso, Stardog, Amazon Neptune 등이 있습니다. 어떤 시스템은 추론과 검증 기능을 함께 제공합니다.

속성 그래프 데이터베이스

속성 그래프 데이터베이스는 노드와 간선에 속성을 직접 저장합니다. Neo4j, Memgraph, TigerGraph 같은 시스템이 대표적입니다.

MATCH (c:Customer)-[:BOUGHT]->(p:Product)
WHERE p.price >= 30000
RETURN c.name, p.name

위 질의는 30000 이상인 상품을 구입한 고객과 상품을 찾습니다.

어떤 방식을 선택해야 합니까

RDF 방식은 표준 기반 데이터 교환, 온톨로지, 추론, 다기관 데이터 통합에 강합니다. 속성 그래프 방식은 응용 개발, 경로 탐색, 그래프 알고리즘, 운영 서비스에 강합니다.

선택 기준은 다음과 같습니다.

  • 표준 어휘와 의미 추론이 중요하면 RDF 저장소가 적합합니다.
  • 경로 탐색과 서비스 개발 속도가 중요하면 속성 그래프 데이터베이스가 적합합니다.
  • 데이터 교환이 핵심이면 RDF가 유리합니다.
  • 그래프 알고리즘과 실시간 탐색이 핵심이면 속성 그래프가 유리합니다.

운영에서 고려할 점

그래프 데이터베이스를 운영할 때는 다음 요소를 확인해야 합니다.

  • 데이터 규모와 질의 패턴입니다.
  • 인덱스와 경로 탐색 성능입니다.
  • 트랜잭션과 동시성 지원입니다.
  • 백업, 복구, 권한 관리입니다.
  • 기존 시스템과의 연동 방식입니다.
  • 추론이나 검증 기능의 필요성입니다.

그래프 데이터베이스는 모든 문제의 대체재가 아닙니다. 표 구조가 단순하고 집계 중심인 문제에는 관계형 데이터베이스가 더 적합할 수 있습니다.

정리

그래프 데이터베이스는 연결 구조를 중심으로 데이터를 저장하고 질의하는 시스템입니다. 지식 그래프를 구현할 때는 RDF 저장소와 속성 그래프 데이터베이스의 차이를 이해하고, 표준, 추론, 탐색, 운영 요구에 따라 선택해야 합니다.

Previous
SPARQL
Next
OWL