그래프 데이터베이스

그래프 구조 사용하여 데이터 표현, 저장하는 데이터베이스

컴퓨팅에서 그래프 데이터베이스(graph database, GDB[1])는 시맨틱 쿼리를 위해 노드, 엣지, 프로퍼티와 함께 그래프 구조를 사용하여 데이터를 표현하고 저장하는 데이터베이스이다. 이 시스템의 주 개념은 그래프(엣지 또는 관계)이며 스토어에 직접 데이터 항목들의 관계를 정한다. 이러한 관계들은 스토어 안의 데이터가 함께 직접 연결될 수 있게 해준다.

그래프 데이터베이스는 일반적인 그래프를 표현한다는 점에서 1970년대의 네트워크 모델 데이터베이스와 비슷하지만 네트워크 모델 데이터베이스는 더 낮은 수준의 추상화로써 동작하며[2] 일련의 엣지 간의 용이한 횡단이 불가능하다.[3]

개요 편집

 
그래프 데이터베이스는 노드, 엣지, 프로퍼티를 갖추고 있다.

그래프 데이터베이스는 그래프 이론에 기반을 두며 노드, 엣지(edge), 프로퍼티를 갖추고 있다.

  • 노드(node): 추적 대상이 되는 사람, 기업, 계정 등 의 실체를 대표한다. 관계형 데이터베이스의 레코드, 관계, 로우, 도큐먼트 데이터베이스의 도큐먼트와 개념이 거의 동등하다.
  • 엣지(edge): 그래프(graph)나 관계(relationship)이라고도 하며 노드를 다른 노드에 연결하는 선이며 관계를 표현한다.
  • 프로퍼티(property): 노드의 정보와 밀접한 관련이 있다. 이를테면 위키백과가 노드 중에 하나라면 위키백과의 어떠한 관점이 주어진 데이터베이스에 밀접한 관련이 있느냐에 따라 웹사이트, 참고 문헌, w로 시작하는 낱말과 같은 프로퍼티에 묶여있을 수 있다.

역사 편집

그래프 데이터베이스 이전에 1960년대 중순 IBMIMS 등의 내비게이셔널 데이터베이스는 자체적인 계층형 모델에서 트리 계열 구조를 지원하였으나 엄격한 트리 구조는 가상 레코드로 우회가 가능하였다.[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) 상용 또는 GPLv2 (평가용) 자바
Cayley 0.7.5 (November 2018) 무료, 아파치 2 Go
Dgraph 1.0.11 (December 2018) 무료, AGPLv3 (서버용), 아파치 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 커뮤니티 에디션, 상용 & AGPLv3 옵션 (엔터프라이즈, 어드밴스트 에디션의 경우) 자바, .NET, 자바스크립트, 파이썬, 루비
오픈링크 Virtuoso 8.0 (September 2017) 오픈 소스 에디션은 GPLv2. 엔터프라이즈 에디션은 사유 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, 파이썬

같이 보기 편집

각주 편집

  1. Nikolaos G. Bourbakis. 《Artificial Intelligence and Automation》. World Scientific. 381쪽. 2018년 4월 20일에 확인함. 
  2. 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 
  3. Silberschatz, Avi (2010년 1월 28일). 《Database System Concepts, Sixth Edition》 (PDF). McGraw-Hill. D-29쪽. ISBN 0-07-352332-1. 
  4. Silberschatz, Avi (2010년 1월 28일). 《Database System Concepts, Sixth Edition》 (PDF). McGraw-Hill. E-20쪽. ISBN 0-07-352332-1. 
  5. Parker, Lorraine. “IMS Notes”. 《vcu.edu》. 2016년 5월 31일에 확인함. 
  6. 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일에 확인함. 
  7. “SAP Announces New Capabilities in the Cloud with HANA” (미국 영어). 2014년 10월 22일. 2016년 7월 7일에 확인함. 
  8. www.etnews.com (2017년 1월 17일). “비트나인, 하이브리드 그래프 데이터베이스 ‘아젠스 그래프’ 출시”. 《대한민국 IT포털의 중심! 이티뉴스》. 2018년 3월 7일에 확인함. 
  9. 하대석 (2018년 3월 4일). “[SBS News] 4차 산업혁명 빅데이터 혁신기술 '그래프 데이터베이스'를 아시나요?”. 《SBS NEWS》. 2018년 3월 7일에 확인함. 
  10. “Graph DBMS 성능비교테스트 발표”. 《http://www.etnews.com/20170707000038》 (영어). 2017년 12월 5일에 원본 문서에서 보존된 문서. 2018년 1월 15일에 확인함.  |website=에 외부 링크가 있음 (도움말)
  11. “Sparksee high-performance graph database”. 《Sparsity-technologies》. 2017년 5월 9일에 확인함. 
  12. Longbottom, Clive (2016년 5월 1일). “Graph databases: What are the benefits for CIOs?”. 《컴퓨터 위클리. 2017년 5월 9일에 확인함. 
  13. “gStore Graph Database Engine”. 2017년 8월 31일에 원본 문서에서 보존된 문서. 2018년 2월 18일에 확인함. 
  14. “Release Notes: Neo4j 3.5.1”. 《Neo4j. 2019년 1월 21일에 확인함. 
  15. “Introducing TigerGraph, a Native Parallel Graph Database” (미국 영어). 2017년 9월 19일. 2017년 9월 19일에 확인함. 
  16. “What's New in SQL Server 2017”. 《Microsoft Docs》. 2017년 4월 19일. 2017년 5월 9일에 확인함.