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