Graph Database (그래프 데이터베이스)

정의

노드(Node)와 관계(Relationship)를 기본 데이터 단위로 사용하는 데이터베이스. SQL 기반의 관계형 데이터베이스(RDBMS)와는 달리, 엔티티 간의 관계를 명시적으로 구조화한다.

핵심 구성 요소

노드 (Node)

  • 개체(Entity)를 나타냄
  • 프로퍼티(Attribute)를 가짐
  • 예: Movie, Person, User, Product

관계 (Relationship)

  • 노드 간의 연결을 나타냄
  • 방향성을 가짐 (directed)
  • 프로퍼티를 포함할 수 있음
  • 예: RATED (평가), ACTED_IN (출연), BELONGS_TO (속함)

프로퍼티 (Property)

  • 노드나 관계의 속성값
  • 키-값 쌍으로 저장
  • 예: title=“Toy Story”, rating=4.5, timestamp=2024-01-15

관계형 DB와의 차이점

특성RDBMSGraph DB
기본 단위테이블 (Table)노드 + 관계
관계 표현외래키 (FK)직접 연결 (Edge)
쿼리 복잡도JOIN 수 증가 시 성능 저하관계 깊이와 무관한 일정 성능
유연성스키마 변경 어려움유연한 스키마

Graph DB의 장점

빠른 관계 조회: JOIN 없이 직접 연결된 데이터 즉시 접근
의미론적 명확성: 관계의 의미를 명시적으로 표현
복잡한 네트워크 분석: 다중 레벨의 관계 쿼리 효율적
유연한 스키마: 새로운 관계 타입 추가 용이

실제 사용 사례

  • 소셜 네트워크: User-FOLLOWS-User, User-LIKES-Post
  • 추천 시스템: Movie-RATED-User, User-LIKES-User (협업 필터링)
  • 지식그래프: Entity-RELATED_TO-Entity (DBpedia, Wikidata)
  • 네트워크 분석: 영향력 분석, 커뮤니티 탐지
  • 온톨로지: Concept-SUBCLASS_OF-Concept

Neo4j

가장 널리 사용되는 오픈소스 그래프 데이터베이스.

특징:

  • Cypher 쿼리 언어 제공
  • ACID 준수
  • 스케일링 가능 (클러스터 지원)
  • Neo4j Sandbox (무료 클라우드 환경)

온톨로지와의 연관성

온톨로지 설계에서:

  • 클래스(Class) → 노드의 레이블
  • 프로퍼티(Property) → 노드의 프로퍼티
  • 관계(Relationship) → 그래프의 관계
  • 상속 계층 → 노드 간 IS-A 관계

관련 개념: Cypher Query Language, Vector Retriever, Embedding