본문으로 건너뛰기

GraphDatabase

1. Graph Database

  • 그래프 기반 데이터베이스는 복잡한 데이터 관계를 저장하고 관리하는데 최적화 된 데이터베이스 입니다.
  • 그래프 데이터베이스는 연결된 엔터티 및 관계의 네트워크로 데이터를 모델화합니다.
  • 가장 일반적으로 사용되는 그래프 데이터베이스 형식은 레이블이 지정된 속성 그래프 모델을 구현합니다.
  • 엔터티(노드) 및 관계(에지)에는 레이블과 속성(키-값 쌍)이 있을 수 있습니다.
  • 이 유연한 모델을 사용하면 스키마 선택적 디자인과 스키마 기반 디자인을 모두 사용할 수 있으며 풍부한 의미 체계를 표현할 수 있습니다. - - 연결은 명시적으로 에지로 저장되므로 쿼리는 쿼리 시간에 비용이 많이 드는 조인을 계산하는 대신 에지를 따라 관계를 트래버스합니다.

2. 핵심 개념

2.1 그래프 구조

  • 데이터는 노드와 에지 구성된 그래프로 형태로 저장됩니다.

2.2 노드

  • 노드는 사람, 제품 또는 장소와 같은 항목을 나타냅니다. 노드에는 특성을 설명하는 레이블과 속성이 있을 수 있습니다.

2.3 에지

  • 에지는 FRIENDS_WITH, PURCHASED 또는 LOCATED_IN 같이 이러한 항목이 연결된 방식을 나타냅니다.
  • 에지는 관계 메타데이터를 인코딩하기 위해 속성 및 레이블을 전달할 수도 있습니다.

2.4 레이블

  • 노드와 에지에 레이블을 추가하면 특정 카테고리나 유형으로 분류할 수 있습니다.
  • 예를 들면 사람 노드에는 person이라는 레이블을, 우정을 나타내는 에지에는 friends라는 레이블을 가질 수 있습니다.

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

  • 그래프 데이터베이스와 관계형 데이터베이스는 모두 관계가 있는 데이터를 저장하지만, 관계를 표현하는 방식이 매우 다릅니다.
항목관계형 데이터베이스그래프 데이터베이스
데이터 저장행과 열이 있는 표 형식 (테이블)엔터티와 관계의 네트워크
관계 표현외래 키(참조)로 표현관계 데이터를 명시적으로 저장
관계 해결런타임 시 JOIN 문으로 해결수학적 그래프 이론 활용

3.1 관계형 데이터베이스의 한계

  • 특정 규모에서는 JOIN 연산을 효율적으로 수행할 수 있습니다.
  • 그러나 대량 또는 알 수 없는 수의 참조를 처리해야 하는 경우 비효율적입니다.
    • 예: 소셜 네트워크에서 두 사람이 어떤 관계를 맺고 있는지 파악하는 것

3.2 그래프 데이터베이스의 장점

  • 엔터티 간의 관계가 명시적으로 저장됩니다.
  • 복잡한 데이터 상호 연결이 있는 사용 사례에서 쿼리 및 메모리 관리가 더 효율적입니다.
  • 결과적으로 애플리케이션 성능이 크게 향상될 수 있습니다.

4. 사용 사례

  • 그래프 데이터베이스는 데이터를 동적으로 변경하고 조정할 수 있는 유연한 스키마를 제공합니다.
  • 데이터 관계에 초점을 맞추므로, 분석, 시맨틱 검색 또는 추천 엔진에 유용합니다.
  • 다음과 같은 시나리오에서는 그래프 데이터베이스를 선택하는 것이 좋습니다.
    • 소셜 네트워크, 사기 탐지, 지식 그래프, 보안 그래프, 맞춤형 추천 엔진 등 복잡한 관계가 있는 데이터로 작업하는 경우
    • 데이터베이스 구조의 나머지 부분에 영향을 미치지 않고 엣지, 노드 및 속성을 수정할 수 있는 진화형 스키마가 필요한 경우
    • 상호 연결된 데이터로 작업하는 경우 관계 간에 여러 번 또는 알 수 없는 횟수의 홉을 수행해야 합니다(친구의 친구 유형 쿼리).
  • 그래프 데이터베이스는 유연하고 확장 가능하고 동적이며 데이터 간의 관계를 보여주는 데 탁월합니다.

참고