그래프 데이터베이스

컴퓨팅에서 **그래프 데이터베이스**(graph database, GDBpage=381)는 시맨틱 쿼리를 위해 노드, 엣지, 프로퍼티와 함께 그래프 구조를 사용하여 데이터를 표현하고 저장하는 데이터베이스이다. 이 시스템의 주 개념은 그래프(엣지 또는 관계)이며 스토어에 직접 데이터 항목들의 관계를 정한다. 이러한 관계들은 스토어 안의 데이터가 함께 직접 연결될 수 있게 해준다. 그래프 데이터베이스는 일반적인 그래프를 표현한다는 점에서 1970년대의 네트워크 모델 데이터베이스와 비슷하지만 네트워크 모델 데이터베이스는 더 낮은 수준의 추상화로써 동작하며url-status= dead 일련의 엣지 간의 용이한 횡단이 불가능하다.isbn= 0-07-352332-1
# 개요
그래프 데이터베이스는 노드, 엣지, 프로퍼티를 갖추고 있다. 그래프 데이터베이스는 그래프 이론에 기반을 두며 노드, 엣지(edge), 프로퍼티를 갖추고 있다. * 노드(node): 추적 대상이 되는 사람, 기업, 계정 등 의 실체를 대표한다. 관계형 데이터베이스의 레코드, 관계, 로우, 도큐먼트 데이터베이스의 도큐먼트와 개념이 거의 동등하다. * 엣지(edge): 그래프(graph)나 관계(relationship)이라고도 하며 노드를 다른 노드에 연결하는 선이며 관계를 표현한다. * 프로퍼티(property): 노드의 정보와 밀접한 관련이 있다. 이를테면 위키백과가 노드 중에 하나라면 위키백과의 어떠한 관점이 주어진 데이터베이스에 밀접한 관련이 있느냐에 따라 웹사이트, 참고 문헌, w로 시작하는 낱말과 같은 프로퍼티에 묶여있을 수 있다.
# 역사
그래프 데이터베이스 이전에 1960년대 중순 IBM의 IMS 등의 내비게이셔널 데이터베이스는 자체적인 계층형 모델에서 트리 계열 구조를 지원하였으나 엄격한 트리 구조는 가상 레코드로 우회가 가능하였다.isbn=0-07-352332-1access-date=31 May 2016 그래프 구조는 1960년대 말에 네트워크 모델 데이터베이스에서 표현할 수 있었다. 1959년에 코볼을 정의했던 CODASYL은 1969년 네트워크 데이터 언어(Network Database Language)를 정의했다. 레이블이 붙은 그래프들은 1980년대 중순부터 논리 데이터 모델(Logical Data Model) 등 그래프 데이터베이스에서 표현할 수 있었다.url-status=dead 1990년대 초에 그래프 데이터베이스의 여러 개선점들이 모습을 드러냈으며 1990년대 말에는 웹 페이지를 색인화하는 노력과 더불어 가속화되었다. 2000년대 중순에서 말 즈음에 Neo4j, 오라클 스페셜 앤드 그래프와 같은 상용 ACID 그래프 데이터베이스들의 이용이 가능하게 되었다. 2010년대에 수직 스케일링이 가능한 상용 ACID 그래프 데이터베이스의 이용이 가능하게 되었다. 더 나아가, SAP HANA는 그래프 데이터베이스에 인메모리와 컬럼화 기술을 도입하였다.access-date=2016-07-07 또, 2010년대에 그래프 모델을 지원했던 멀티 모델 데이터베이스들(및 관계형 데이터베이스나 도큐먼트 지향 데이터베이스 등의 기타 모델)이 등장하였으며 이를테면 OrientDB, ArangoDB, 마크로직(7.0 버전부터) 등이 있다. 한국의 그래프 데이터베이스 연구 개발 전문 기업으로는 비트나인이 있으며, 2017년 1월 AgensGraph v.1.0을 출시하였다.확인날짜=2018-03-07
# 그래프 데이터베이스 목록
저명한 그래프 데이터베이스 목록은 다음과 같다: {| class="wikitable sortable" |- ! 이름 !! 버전 !! 라이선스 !! 언어 |- |AgensGraph확인날짜=2018-03-07url-status=dead |2.5 (October 2021) |커뮤니티 에디션은 아파치 2 / 엔터프라이즈 에디션은 상용 |C, 자바, Javascript, 파이썬 |- | AllegroGraph || 6.4.5 (November 2018) || 사유, 클라이언트: 이클립스 공용 허가서 v1 || C#, C, 커먼 리스프, 자바, 파이썬 |- | ArangoDB || 3.3.11 (June 2018) || free, 아파치 2 || C++, 자바스크립트 |- | Blazegraph || 2.1 (April 2016) || 상용 또는 GPLv2 (평가용) || 자바 |- | Cayley || 0.7.5 (November 2018) || free, 아파치 2 || Go |- | Dgraph || 1.0.11 (December 2018) || free, AGPLv3 (서버용), 아파치 2 (클라이언트용) || Go |- | DataStax Enterprise Graph || v6.0.1 (June 2018) || 사유 || 자바 |- | Sparkseeaccess-date=May 9, 2017 || 5.2.0 (2015) || 사유, 상용, 프리웨어 (평가, 연구, 개발용) || C++ |- | GraphBaseaccess-date=May 9, 2017 || 1.0.03b || 사유, 상용 || 자바 |- | gStoreurl-status=dead || 0.4.1 (March 2017) || BSD 허가서 || C++ |- | InfiniteGraph || 3.0 (January 2013) || 사유, 상용 || 자바 |- | JanusGraph || 0.6.1 (January 2022) || free, 아파치 2 || 자바 |- | 마크로직 || 8.0.4 (2015) || 사유, 프리웨어 개발자 버전 || 자바 |- | Neo4j || 3.5.1 (December 2018)access-date=January 21, 2019|| 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 |- | TigerGraphaccess-date=2017-09-19 || 2.1.3 (July 2018) || 사유 || C++ |- | 마이크로소프트 SQL 서버 2017access-date=May 9, 2017 || RC1 || 사유 || SQL/T-SQL, R, 파이썬 |}