반응형
/*
-- Title : 그래프 데이터베이스(GDB, Graph Database) 소개
-- Tag : 그래프 데이터베이스 graph database GDB
*/
■ 그래프란?
일반적으로 사람들이 사용하는 그래프란 차트를 의미하는데 이것은 그래프가 아니라 그래픽이다. 그래프 데이터베이스에서 의미하는 그래프는 다르다.
■ 그래프 정의
그래프 데이터베이스에서 그래프란 연결되어 있거나 서로 관련이 있는 2개 이상의 실체를 추상화하여 수학적으로 표현한 것을 의미한다.
최초의 그래프는 레온하르트 오일러를 통해서 처음 발명되었다.
- 7개의 다리는 도시의 4개의 서로 다른 지역과 연결되어 있다.
- 도시 곳곳을 둘러보고 모든 다리를 두 번 건너지 않고 모든 다리를 건너야 한다.
그래프는 다음과 같은 구성 요소를 가지고 있다.
- 노드(Node) => 갈색 원
- 그래프 데이터베이스에서는 객체, 정점을 노드라고 함
- 링크(Link) => 회색 선
- 노드(객체)들 사이의 관계
- 레이블(Label) => 갈색 원과 회색 선을 제외한 기타 색깔 원
- 유사한 속성을 가진 그룹을 표현하는 단어, 노드를 공통의 정의할 수 있는 그룹의 이름
- 속성(Property)
- 키와 값으로 이루어져 있으며 데이터에 대한 정보를 확인할 수 있다
■ 그래프 데이터베이스란?
NoSQL의 한 종류로 노드(Node)라고 불리는 데이터들을 링크(Link)를 이용해서 상관관계를 표시하여 탐색할 수 있는 그래프 구조를 사용한 데이터베이스의 일종이다.
■ 그래프 데이터베이스(GDB, Graph Database) 활용
ㅁ 복잡한 질의
- 관계형 데이터베이스
- 질의에 필요한 테이블 및 테이블 간에 매칭되는 컬럼을 파악해야함
- 연결해야 하는 테이블의 수가 늘어날수록 시스템 자원의 소비가 늘어남
- 그래프 데이터베이스
- 조인 작업을 수행할 필요 없이 인덱스 탐색을 이용하여 시작 노드를 확인
- 색인 없는 인접성 특성을 사용하여 연결 관계를 통해 다음 노드로 이동
- 이러한 유형을 패턴 매칭 쿼리 (pattern matching query) 라고 부름
- 그래프 데이터베이스 패턴 매칭 쿼리 순서
- 시작 노드 주위를 회전하면서 연결된 패턴이 일치하는지를 판단
- 일치하지 않는 패턴 무시
- 시작 노드에 연결되지 않은 패턴은 고려하지 않음
ㅁ 실시간 데이터에 대한 클릭 스트림 쿼리
- 관계형 데이터베이스
- 실시간 데이터 조회 시 조인되는 데이터에 따라 낮은 성능을 보여줌
- 그래프 데이터베이스
- 그래프 데이터베이스의 특징인 '조인이 필요하지 않음', '패턴 매칭 쿼리' 를 통해 관계형 데이터베이스보다 빠른 성능을 보여줌
ㅁ 경로 탐색 질의
- 관계형 데이터베이스
- 서로 다른 데이터가 서로 어떻게 관련돼 있는지 확인하기 위해서는 각 테이블의 구조와 경로를 알고 있어야 함
- 즉, 데이터베이스에게 하나의 테이블에서 다른 테이블로 이동하는 방법을 열려줘야 함
- 그래프 데이터베이스
- 시작 노드와 끝 노드에 그래프 알고리즘을 적용시키면 됨
ㅁ 데이터 확장
- 관계형 데이터베이스
- 데이터 추가 시 정규화를 진행하여 데이터의 중복 및 모순을 방지
- 그래프 데이터베이스
- 데이터에 대한 노드를 생성 후 관계에 따른 링크와 방향을 생성하면 됨
■ 그래프 데이터베이스가 적용된 분야
ㅁ 사회연구
- 사람 간의 상호 작용을 그래프로 모델링하는 것은 세계의 인구 통계, 정치적인 이동 및 어떤 특정 그룹에 의해 어떤 특정 제품이 상업적으로 채택되는지 등을 잘 이해하는데 매우 중요
ㅁ 생물학 연구
- 단백질, 분자, 유전자 등과 같은 생물학적 구성 요소와 그 상호 작용을 그래프 구조를 통해 정확하게 모델링하고 기술할 수 있음
ㅁ 컴퓨터 과학
- 칩 설계, 네트워크 관리, 추천 시스템에서부터 알고리즘 생성과 종속성 분석 등에 이르기까지 다양한 분야에서 사용 가능
ㅁ 경로 문제
- 네트워크 간 두 노드 사이에서 최적의 경로를 계산하기 위해 그래프의 용량과 그래프 알고리즘을 활용하고 있음
- 간단한 예시로 물류 영역에서 찾아볼 수 있는데, 한 도시에서 다른 도시로 물건을 옮기는 가장 좋은 방법을 선택하기 위해서 그래프 알고리즘을 적용해 확인 가능
ㅁ 웹 검색
- 그래프 알고리즘 중 가장 강력하고 널리 사용되는 것 중 하나는 페이지 랭크
- 구글은 키워드에만 집중하지 않고 다른 웹 페이지 간의 하이퍼링크에 대한 링크 분석을 통해 검색 결과 상위에 보일 중요한 웹 페이지는 덜 중요한 페이지보다 다른 페이지로부터 들어오는 링크를 더 많이 갖고 있다고 가정하고, 웹 페이지에 대한 링크의 그래프를 분석해 각 페이지에 점수를 매겨 검색 시스템 개선
※ 참고자료
• neo4j.com
• d2.naver.com
• https://wikidocs.net/50716
• db-hyunjin.tistory.com
반응형