반응형

/*
-- Title : 그래프 데이터베이스(GDB, Graph Database) 소개
-- Tag : 그래프 데이터베이스 graph database GDB
*/


■ 그래프란?

일반적으로 사람들이 사용하는 그래프란 차트를 의미하는데 이것은 그래프가 아니라 그래픽이다그래프 데이터베이스에서 의미하는 그래프는 다르다.


■ 그래프 정의

그래프 데이터베이스에서 그래프란 연결되어 있거나 서로 관련이 있는 2개 이상의 실체를 추상화하여 수학적으로 표현한 것을 의미한다.

쾨니히스베르크 다리 건너기

최초의 그래프는 레온하르트 오일러를 통해서 처음 발명되었다.

  1. 7개의 다리는 도시의 4개의 서로 다른 지역과 연결되어 있다.
  2. 도시 곳곳을 둘러보고 모든 다리를 두 번 건너지 않고 모든 다리를 건너야 한다.

 

그래프는 다음과 같은 구성 요소를 가지고 있다.

  1. 노드(Node) => 갈색 원
    • 그래프 데이터베이스에서는 객체, 정점을 노드라고 함
  2. 링크(Link) => 회색 선
    • 노드(객체)들 사이의 관계
  3.  레이블(Label) => 갈색 원과 회색 선을 제외한 기타 색깔 원
    • 유사한 속성을 가진 그룹을 표현하는 단어, 노드를 공통의 정의할 수 있는 그룹의 이름
  1. 속성(Property)
    • 키와 값으로 이루어져 있으며 데이터에 대한 정보를 확인할 수 있다

https://neo4j.com/developer/get-started

 

■ 그래프 데이터베이스란?

NoSQL의 한 종류로 노드(Node)라고 불리는 데이터들을 링크(Link)를 이용해서 상관관계를 표시하여 탐색할 수 있는 그래프 구조를 사용한 데이터베이스의 일종이다.


■ 그래프 데이터베이스(GDB, Graph Database) 활용

ㅁ 복잡한 질의

  • 관계형 데이터베이스
    • 질의에 필요한 테이블 및 테이블 간에 매칭되는 컬럼을 파악해야함
    • 연결해야 하는 테이블의 수가 늘어날수록 시스템 자원의 소비가 늘어남
  • 그래프 데이터베이스
    • 조인 작업을 수행할 필요 없이 인덱스 탐색을 이용하여 시작 노드를 확인
    • 색인 없는 인접성 특성을 사용하여 연결 관계를 통해 다음 노드로 이동
    • 이러한 유형을 패턴 매칭 쿼리 (pattern matching query) 라고 부름
    • 그래프 데이터베이스 패턴 매칭 쿼리 순서
      • 시작 노드 주위를 회전하면서 연결된 패턴이 일치하는지를 판단
      • 일치하지 않는 패턴 무시
      • 시작 노드에 연결되지 않은 패턴은 고려하지 않음

https://www.ganister.eu/blog/cypher-versus-sql?lang=en

ㅁ 실시간 데이터에 대한 클릭 스트림 쿼리

  • 관계형 데이터베이스
    • 실시간 데이터 조회 시 조인되는 데이터에 따라 낮은 성능을 보여줌
  • 그래프 데이터베이스
    • 그래프 데이터베이스의 특징인 '조인이 필요하지 않음', '패턴 매칭 쿼리' 를 통해 관계형 데이터베이스보다 빠른 성능을 보여줌

ㅁ 경로 탐색 질의

  • 관계형 데이터베이스
    • 서로 다른 데이터가 서로 어떻게 관련돼 있는지 확인하기 위해서는 각 테이블의 구조와 경로를 알고 있어야 함
    • 즉, 데이터베이스에게 하나의 테이블에서 다른 테이블로 이동하는 방법을 열려줘야 함
  • 그래프 데이터베이스
    • 시작 노드와 끝 노드에 그래프 알고리즘을 적용시키면 됨

ㅁ 데이터 확장

  • 관계형 데이터베이스
    • 데이터 추가 시 정규화를 진행하여 데이터의 중복 및 모순을 방지
  • 그래프 데이터베이스
    • 데이터에 대한 노드를 생성 후 관계에 따른 링크와 방향을 생성하면 됨

https://d2.naver.com/helloworld/8446520

 

■ 그래프 데이터베이스가 적용된 분야

ㅁ 사회연구

  • 사람 간의 상호 작용을 그래프로 모델링하는 것은 세계의 인구 통계, 정치적인 이동 및 어떤 특정 그룹에 의해 어떤 특정 제품이 상업적으로 채택되는지 등을 잘 이해하는데 매우 중요

ㅁ 생물학 연구

  • 단백질, 분자, 유전자 등과 같은 생물학적 구성 요소와 그 상호 작용을 그래프 구조를 통해 정확하게 모델링하고 기술할 수 있음

ㅁ 컴퓨터 과학

  • 칩 설계, 네트워크 관리, 추천 시스템에서부터 알고리즘 생성과 종속성 분석 등에 이르기까지 다양한 분야에서 사용 가능

ㅁ 경로 문제

  • 네트워크 간 두 노드 사이에서 최적의 경로를 계산하기 위해 그래프의 용량과 그래프 알고리즘을 활용하고 있음
  • 간단한 예시로 물류 영역에서 찾아볼 수 있는데, 한 도시에서 다른 도시로 물건을 옮기는 가장 좋은 방법을 선택하기 위해서 그래프 알고리즘을 적용해 확인 가능

ㅁ 웹 검색

  • 그래프 알고리즘 중 가장 강력하고 널리 사용되는 것 중 하나는 페이지 랭크
  • 구글은 키워드에만 집중하지 않고 다른 웹 페이지 간의 하이퍼링크에 대한 링크 분석을 통해 검색 결과 상위에 보일 중요한 웹 페이지는 덜 중요한 페이지보다 다른 페이지로부터 들어오는 링크를 더 많이 갖고 있다고 가정하고, 웹 페이지에 대한 링크의 그래프를 분석해 각 페이지에 점수를 매겨 검색 시스템 개선

 


※ 참고자료
neo4j.com
d2.naver.com
https://wikidocs.net/50716
db-hyunjin.tistory.com

 

반응형

+ Recent posts