컴퓨팅 에서 그래프 데이터베이스 (graph database, GDB[ 1] )는 시맨틱 쿼리 를 위해 노드, 엣지 , 프로퍼티와 함께 그래프 구조 를 사용하여 데이터를 표현하고 저장하는 데이터베이스 이다. 이 시스템의 주 개념은 그래프(엣지 또는 관계)이며 스토어에 직접 데이터 항목들의 관계를 정한다. 이러한 관계들은 스토어 안의 데이터가 함께 직접 연결될 수 있게 해준다.
그래프 데이터베이스는 일반적인 그래프를 표현한다는 점에서 1970년대의 네트워크 모델 데이터베이스와 비슷하지만 네트워크 모델 데이터베이스는 더 낮은 수준의 추상화로써 동작하며[ 2] 일련의 엣지 간의 용이한 횡단이 불가능하다.[ 3]
개요
그래프 데이터베이스는 노드, 엣지, 프로퍼티를 갖추고 있다.
그래프 데이터베이스는 그래프 이론 에 기반을 두며 노드, 엣지(edge), 프로퍼티를 갖추고 있다.
노드(node): 추적 대상이 되는 사람, 기업, 계정 등 의 실체를 대표한다. 관계형 데이터베이스의 레코드, 관계, 로우, 도큐먼트 데이터베이스의 도큐먼트와 개념이 거의 동등하다.
엣지(edge): 그래프(graph)나 관계(relationship)이라고도 하며 노드를 다른 노드에 연결하는 선이며 관계를 표현한다.
프로퍼티(property): 노드의 정보와 밀접한 관련이 있다. 이를테면 위키백과가 노드 중에 하나라면 위키백과의 어떠한 관점이 주어진 데이터베이스에 밀접한 관련이 있느냐에 따라 웹사이트, 참고 문헌, w로 시작하는 낱말과 같은 프로퍼티에 묶여있을 수 있다.
역사
그래프 데이터베이스 이전에 1960년대 중순 IBM 의 IMS 등의 내비게이셔널 데이터베이스 는 자체적인 계층형 모델 에서 트리 계열 구조를 지원하였으나 엄격한 트리 구조는 가상 레코드로 우회가 가능하였다.[ 4] [ 5]
그래프 구조는 1960년대 말에 네트워크 모델 데이터베이스에서 표현할 수 있었다. 1959년에 코볼 을 정의했던 CODASYL 은 1969년 네트워크 데이터 언어(Network Database Language)를 정의했다.
레이블이 붙은 그래프들은 1980년대 중순부터 논리 데이터 모델(Logical Data Model) 등 그래프 데이터베이스에서 표현할 수 있었다.[ 2] [ 6]
1990년대 초에 그래프 데이터베이스의 여러 개선점들이 모습을 드러냈으며 1990년대 말에는 웹 페이지를 색인화하는 노력과 더불어 가속화되었다.
2000년대 중순에서 말 즈음에 Neo4j , 오라클 스페셜 앤드 그래프 와 같은 상용 ACID 그래프 데이터베이스들의 이용이 가능하게 되었다.
2010년대에 수직 스케일링이 가능한 상용 ACID 그래프 데이터베이스의 이용이 가능하게 되었다. 더 나아가, SAP HANA 는 그래프 데이터베이스에 인메모리 와 컬럼화 기술을 도입하였다.[ 7] 또, 2010년대에 그래프 모델을 지원했던 멀티 모델 데이터베이스 들(및 관계형 데이터베이스나 도큐먼트 지향 데이터베이스 등의 기타 모델)이 등장하였으며 이를테면 OrientDB , ArangoDB , 마크로직 (7.0 버전부터) 등이 있다.
한국의 그래프 데이터베이스 연구 개발 전문 기업으로는 비트나인 이 있으며, 2017년 1월 AgensGraph v.1.0 을 출시하였다.[ 8]
그래프 데이터베이스 목록
저명한 그래프 데이터베이스 목록은 다음과 같다:
이름
버전
라이선스
언어
AgensGraph [ 9] [ 10]
2.5 (October 2021)
커뮤니티 에디션은 아파치 2 / 엔터프라이즈 에디션은 상용
C , 자바 , Javascript , 파이썬
AllegroGraph
6.4.5 (November 2018)
사유 , 클라이언트: 이클립스 공용 허가서 v1
C# , C , 커먼 리스프 , 자바 , 파이썬
ArangoDB
3.3.11 (June 2018)
무료, 아파치 2
C++ , 자바스크립트
Blazegraph
2.1 (April 2016)
상용 또는 GPLv 2 (평가용)
자바
Cayley
0.7.5 (November 2018)
무료, 아파치 2
Go
Dgraph
1.0.11 (December 2018)
무료, AGPLv 3 (서버용), 아파치 2 (클라이언트용)
Go
DataStax Enterprise Graph
v6.0.1 (June 2018)
사유
자바
Sparksee [ 11]
5.2.0 (2015)
사유, 상용 , 프리웨어 (평가, 연구, 개발용)
C++
GraphBase[ 12]
1.0.03b
사유, 상용
자바
gStore[ 13]
0.4.1 (March 2017)
BSD 허가서
C++
InfiniteGraph
3.0 (January 2013)
사유, 상용
자바
JanusGraph
0.6.1 (January 2022)
무료, 아파치 2
자바
마크로직
8.0.4 (2015)
사유, 프리웨어 개발자 버전
자바
Neo4j
3.5.1 (December 2018)[ 14]
GPLv3 커뮤니티 에디션, 상용 & AGPLv 3 옵션 (엔터프라이즈, 어드밴스트 에디션의 경우)
자바 , .NET , 자바스크립트 , 파이썬 , 루비
오픈링크 Virtuoso
8.0 (September 2017)
오픈 소스 에디션은 GPLv 2. 엔터프라이즈 에디션은 사유
C , C++
Oracle Spatial and Graph - 오라클 데이터베이스 의 일부
12.1.0.2 (2014)
사유
자바 , PL/SQL
OrientDB
3.0.13 (January 2019)
커뮤니티 에디션은 아파치 2 . 엔터프라이즈 에디션은 상용
자바
SAP HANA
SPS12 Revision 120
사유
C , C++ , 자바 , 자바스크립트 & SQL 계열 언어
Sqrrl Enterprise
2.0 (February 2015)
사유
자바
Teradata Aster
7 (2016)
사유
자바 , SQL , 파이썬 , C++ , R
TigerGraph[ 15]
2.1.3 (July 2018)
사유
C++
마이크로소프트 SQL 서버 2017[ 16]
RC1
사유
SQL /T-SQL, R , 파이썬
같이 보기
각주
↑ Nikolaos G. Bourbakis. 《Artificial Intelligence and Automation》 . World Scientific. 381쪽. 2018년 4월 20일에 확인함 .
↑ 가 나 Angles, Renzo; Gutierrez, Claudio (2008년 2월 1일). “Survey of graph database models” (PDF) . 《ACM Computing Surveys》 (Association for Computing Machinery ) 40 (1). doi :10.1145/1322432.1322433 . 2017년 8월 15일에 원본 문서 (PDF) 에서 보존된 문서. 2016년 5월 28일에 확인함 . network models [...] lack a good abstraction level: it is difficult to separate the db-model from the actual implementation
↑ Silberschatz, Avi (2010년 1월 28일). 《Database System Concepts, Sixth Edition》 (PDF) . McGraw-Hill. D-29쪽. ISBN 0-07-352332-1 .
↑ Silberschatz, Avi (2010년 1월 28일). 《Database System Concepts, Sixth Edition》 (PDF) . McGraw-Hill. E-20쪽. ISBN 0-07-352332-1 .
↑ Parker, Lorraine. “IMS Notes” . 《vcu.edu》. 2016년 5월 31일에 확인함 .
↑ Kuper, Gabriel M (1985). 《The Logical Data Model: A New Approach to Database Logic》 (PDF) (Ph.D.). Docket STAN-CS-85-1069. 2016년 6월 30일에 원본 문서 (PDF) 에서 보존된 문서. 2016년 5월 31일에 확인함 .
↑ “SAP Announces New Capabilities in the Cloud with HANA” (미국 영어). 2014년 10월 22일. 2016년 7월 7일에 확인함 .
↑ www.etnews.com (2017년 1월 17일). “비트나인, 하이브리드 그래프 데이터베이스 ‘아젠스 그래프’ 출시” . 《대한민국 IT포털의 중심! 이티뉴스》. 2018년 3월 7일에 확인함 .
↑ 하대석 (2018년 3월 4일). “[SBS News] 4차 산업혁명 빅데이터 혁신기술 '그래프 데이터베이스'를 아시나요?” . 《SBS NEWS》. 2018년 3월 7일에 확인함 .
↑ “Graph DBMS 성능비교테스트 발표” . 《http://www.etnews.com/20170707000038》 (영어). 2017년 12월 5일에 원본 문서 에서 보존된 문서. 2018년 1월 15일에 확인함 .
↑ “Sparksee high-performance graph database” . 《Sparsity-technologies》. 2017년 5월 9일에 확인함 .
↑ Longbottom, Clive (2016년 5월 1일). “Graph databases: What are the benefits for CIOs?” . 《컴퓨터 위클리 》. 2017년 5월 9일에 확인함 .
↑ “gStore Graph Database Engine” . 2017년 8월 31일에 원본 문서 에서 보존된 문서. 2018년 2월 18일에 확인함 .
↑ “Release Notes: Neo4j 3.5.1” . 《Neo4j 》. 2019년 1월 21일에 확인함 .
↑ “Introducing TigerGraph, a Native Parallel Graph Database” (미국 영어). 2017년 9월 19일. 2017년 9월 19일에 확인함 .
↑ “What's New in SQL Server 2017” . 《Microsoft Docs》. 2017년 4월 19일. 2017년 5월 9일에 확인함 .