우리가 사용하기 위해 네이티브 그래프 데이터베이스와 트리플 저장소 (RDF 저장소)를 연구 중입니다. 현재 트리플 스토어의 경우 Marklogic
에 초점을 맞 춥니 다. Neo4j
이고 기본 그래프 db의 경우 OrientDB
일 수 있습니다.triplestores 대 빠른 쿼리에 대한 네이티브 그래프 dbs
아래 Q의 파트 A는 상황을 설명하고 있습니다.이 두 유형의 DB 간의 주요 차이점을 조사하고 있습니다. 나는이 첫 부분에 대한 검증을 찾고 있는데, 나는이 그림에서 무엇인가를 놓쳤는가.
을 AFAIK 지금까지 :
두 번째 part-- 파트 B
, 나는 각 DB 내가파트 A 파트 A에 개설하고있어 얼마나 많은 사람들의 얼마나 많은에 대한 답을 찾고 있어요 , 주요 차이점은 트리플 스토어 관계 또는 오히려 관계 자체를 기반으로 가장자리를 저장하는 것입니다. 그래서, 그것은 가장자리의 "봉지"입니다. 각 가장자리는 그 관계의 의미를 반영하기 위해 특수하고 잘 디자인 된 속성을 가지고 있습니다. 반면에 네이티브 그래프 dbs는 노드 구조와 링크를이 노드와 링크에 정의 할 속성과 함께 저장합니다.
나는 다음 두 가지가이 두 가지에 대한 정면보기를 위해 두 극단을 설정한다고 생각합니다. 뒤에 오는 2 개는 극단이다 - 나는 거기 밖으로 dbs가이 극치의 어느 쪽이든보다는 더 많은 것을하고 있다는 것을 아주 확실하다.
1) 에지 백 (트리플 저장소) 전체에 트리플 각 과목 술어 오브젝트라고 (sourceNode, edge, destNode)
는 트리플 저장소 항목을 형성하는 하나의 레코드로서 저장된다. 트리플 스토어는이 3 개의 각 열에 대해 색인이 생성되므로 호주에 거주하는 친구가있는 사람의 목록이 필요할 때 i (또는 오히려 트리플 스토어 엔진)가 신속하게 "친구"관계를 얻습니다. 그 중 검색 노드가 사람이고 소스가 "destinations of Australia"인 소스 또는 dest 노드가있는 노드.
2.) 네이티브 그래프 : 레이블과 등록 정보가있는 노드와 그 사이의 링크. "호주에 거주하는 친구가있는 사람"을 찾기 위해 "사람"이라는 레이블이 붙은 노드를 찾은 다음 해당 노드의 관계 목록 (링크 된 목록 (?))을 검색하고 그곳에. 이것은 트리플 스토어의 관계 (트리플)에 대한 하나의 검색과는 대조적으로, 노드에서 하나, 노드에서 두 번째 검색입니다.
나는 트리플 스토어 대 네이티브 그래프 DB의 장단점에 대해 블로그에서 계속해서 보았던 한 가지 사실은 인덱싱 때문에 쿼리에 대한 triplestores 점수라는 점입니다. 관계에 빠르게 액세스 할 수 있습니다. 네이티브 그래프 db에서는 관계가 발생하는 노드를 통해 관계에 액세스합니다. (이 동일한 토큰으로 네이티브 그래프 DB는 그래프 알고리즘과 솔루션을보다 쉽게 구현하고 더 빨리 실행할 수 있도록 그래프 구조를 유지할 수 있다는 이점을 가지고 있음을 알고 있습니다.)
그러나 인덱싱의 부족은 속성 및/또는 레이블에 따라 노드 및/또는 관계의 인덱싱을 허용하는 경우 네이티브 그래프 db의 단점 일 필요는 없습니다. 그것은 그 라벨에 노드와 인덱스의 라벨을 허용하는 경우
는 개발자로 나는 전체적인 그래프의 서브 그래프를 가지고 거기에서 갈 수 있습니다. 제한된 도메인에 대한 이러한 쿼리는 훨씬 빠릅니다.
관계 레이블을 지정할 수있는 경우 위의 "호주에 거주하는 친구가있는 사람 목록"과 같이 관계를 "회전"하는 쿼리는 더 빨리 실행할 수 있습니다.쿼리가 노드의 링크를 트래버스하지 않고 노드의 속성을 조회하지만 대신 직접 링크를 조회하고 액세스하기 때문입니다. 내가 얼마나 많은 이들의
Marklogic
,Neo4j
및OrientDB
가하고있는 궁금
?
this의 제 6 장을 건너 뛰었으며 Neo4j
에 관한 책을 읽었으며 가장자리의 색인 (관계)에 대한 직접적인 검색에 대해서는 아무것도 보지 못했습니다. 내가 놓친 것이 있습니까?
Neo4j
이 가장자리에서 색인을 생성하는 경우, 네이티브 그래프 dbs보다 빠른 쿼리의 장점이 트리플 스토어에 어떻게 발생합니까?
TIA.
// ----------------------
편집 :
참고 : 나는 다른 유용한 토론 중 Graph DBs vs. Document DBs vs. Triplestores을 보았다 .
그래서 OrientDB는 관계 (?)에 대한 속성 레이블에 색인을 허용하고 있습니다.이 색인은 지속성이 있거나 실행 중 작업 메모리에만있을 수 있습니까? – user6401178