2013-08-28 41 views
22

Có ba bộ đệm (cơ sở dữ liệu ngữ nghĩa) và có cơ sở dữ liệu đồ thị đa năng.Sự khác nhau giữa các cơ sở dữ liệu triplestores và đồ thị là gì?

Cả hai đều dựa trên các khái niệm tương tự về liên kết một "mục" với một mục "" thông qua một mối quan hệ. Triplestores hỗ trợ RDF và được truy vấn bởi SPARQL, nhưng những add-on như vậy có thể được (và) thực hiện ontop của các cơ sở dữ liệu đồ thị có mục đích chung.

Sự khác biệt cơ bản sẽ làm cho bạn thích một db ngữ nghĩa/triplestore thành một cơ sở dữ liệu đồ thị mục đích chung như neo4j là gì?

Trả lời

6

2 xu của tôi.

Neo4j thuộc danh mục Biểu đồ thuộc tính. Chúng hỗ trợ các quan hệ trực tiếp và mỗi quan hệ chỉ có hai nút; nút bắt đầu và nút kết thúc. Các nút và mối quan hệ có thể lưu trữ dữ liệu tùy ý dưới dạng các cặp khóa-giá trị. Tuy nhiên họ không thể hỗ trợ quan hệ 3-ary. tức là Bạn không thể có một cạnh kết nối nhiều hơn hai nút, nghĩa là a kind of hyperdege. Tuy nhiên, bạn có thể mô phỏng mối quan hệ 3-ary trong biểu đồ thuộc tính bằng cách tạo các nút nối. You can see how to implement this in neo4j here.

Triplestores có ngôn ngữ truy vấn được chuẩn hóa theo dạng SPARQL nhưng chưa có tiêu chuẩn nào để truy vấn cơ sở dữ liệu biểu đồ khác. RDF là tiêu chuẩn để nhập/xuất từ ​​triplestores.

11

Cửa hàng ba mặt cơ sở dữ liệu biểu đồ. RDF biểu đồ. Cấp, ba cửa hàng có xu hướng không lưu trữ thông tin nội bộ dưới dạng biểu đồ; đó là phụ tối ưu cho trả lời truy vấn, nhưng chúng vẫn là cơ sở dữ liệu đồ thị.

Bạn muốn chúng giống như neo4j nếu bạn quan tâm đến một hệ sinh thái dựa trên các tiêu chuẩn W3C. Làm cho interop với các hệ thống dựa trên RDF khác tầm thường, và nó làm cho chọn lên tất cả mọi thứ và di chuyển đến một cửa hàng ba khác nhau khá đau.

10

Để bắt đầu, tất cả các cấu trúc dữ liệu có thể được chiếu nhiều hơn hoặc ít hơn vào bất kỳ công cụ lưu trữ cơ bản nào (hoặc thậm chí tệp hệ thống và tệp văn bản của bạn). Lý do để lựa chọn một mô hình dữ liệu và lưu trữ backend nhất định là IMHO:

  • phát triển và mô hình của bạn thích
  • hiệu suất của bạn dự kiến ​​thời gian chạy cho chèn, lưu trữ và truy vấn của mô hình của bạn.

Như đã đề cập trước đó, cả hai RDBMSes và TripleStores có xu hướng có ích khi chạy trong "cạn" đi qua của JOIN hoặc traversals SPARQL, và làm nhiều công việc trong bộ nhớ đệm hoặc chuẩn bị quan điểm, vv Graph Cơ sở dữ liệu (duy nhất Neo4j) đặt cấu trúc đồ thị thực sự xuống tầng lưu trữ và thực hiện theo dõi con trỏ (với một số tối ưu hóa) ở cấp độ bản ghi nút. Do đó, khi duyệt qua biểu đồ, bạn không cần phải chạm nhiều hơn đồ thị hiện tại của bạn xuống lớp lưu trữ, do đó có thể đi qua các phần của dữ liệu mà không cần chạm vào toàn bộ biểu đồ, dẫn đến hiệu suất không đổi cho một số trường hợp thú vị .

Các vấn đề liên quan