2012-02-06 44 views
35

Tôi đã tự hỏi lợi thế của việc sử dụng các cửa hàng ba trên một cơ sở dữ liệu quan hệ là gì?Ba cửa hàng và Cơ sở dữ liệu quan hệ

+1

Chúng là những thứ khá khác nhau; Bạn có thể cụ thể hơn không? –

+0

Đó là loại giống như hỏi về những lợi thế của việc sử dụng một tuốc nơ vít trên một quả táo. Cả hai thứ hữu ích, nhưng khó có thể hoán đổi cho nhau. –

+0

@ MikeSherrill'CatRecall 'Sau đó giải thích _why_ đó là trường hợp là việc tạo ra một câu trả lời tuyệt vời? Tôi cho một, chắc chắn không biết. Và chào đón các mối quan hệ ba bên quan hệ. – Benjohn

Trả lời

43

Quan điểm của CTO của một công ty rộng rãi sử dụng RDF Triplestores thương mại:

Schema linh hoạt - nó có thể làm tương đương với một sự thay đổi schema để một cửa hàng RDF sống, và không có bất kỳ thời gian chết, hoặc thiết kế lại - nó không phải là một bữa ăn trưa miễn phí, bạn cần phải cẩn thận với cách phần mềm của bạn hoạt động, nhưng đó là một điều khá dễ dàng để làm.

Hiện đại hơn - Các cửa hàng RDF thường được truy vấn qua HTTP rất dễ dàng để phù hợp với chúng trong Kiến trúc dịch vụ mà không có các giải pháp nối tiếp hoặc các hình phạt hiệu suất. Ngoài ra, họ xử lý nội dung được quốc tế hoá tốt hơn so với cơ sở dữ liệu SQL điển hình - ví dụ: bạn có thể có nhiều giá trị bằng các ngôn ngữ khác nhau.

Chuẩn hóa - mức tiêu chuẩn hóa các triển khai sử dụng RDF và SPARQL cao hơn nhiều so với SQL. Có thể hoán đổi một triplestore cho một triplestore khác, mặc dù bạn phải cẩn thận bạn không bước ra ngoài các tiêu chuẩn. Di chuyển dữ liệu giữa các cửa hàng thật dễ dàng, vì tất cả đều nói cùng một ngôn ngữ.

Expressivity - dễ dàng hơn để mô hình dữ liệu phức tạp trong RDF hơn trong SQL và ngôn ngữ truy vấn giúp dễ dàng thực hiện những việc như LEFT JOINs (gọi là OPTIONAL trong SPARQL). Ngược lại, nếu dữ liệu của bạn rất bảng, thì SQL dễ dàng hơn nhiều.

Chứng minh - SPARQL cho phép bạn theo dõi từng thông tin đến từ đâu và bạn có thể lưu trữ siêu dữ liệu về nó, cho phép bạn dễ dàng thực hiện các truy vấn phức tạp, chỉ tính đến dữ liệu tài khoản từ một số nguồn nhất định hoặc với mức độ tin cậy nhất định từ một số phạm vi ngày, v.v.

Có một số nhược điểm. Cơ sở dữ liệu SQL thường trưởng thành hơn nhiều, và có nhiều tính năng hơn so với cơ sở dữ liệu RDF điển hình. Những thứ như giao dịch thường thô sơ hơn nhiều, hoặc không tồn tại. Ngoài ra, chi phí cho mỗi đơn vị thông tin được lưu trữ trong SQL của RDF v là đáng chú ý cao hơn. Thật khó để khái quát hóa, nhưng nó có thể là quan trọng nếu bạn có rất nhiều dữ liệu - mặc dù ít nhất trong trường hợp của chúng tôi đó là một lợi ích tổng thể về tài chính cho sự linh hoạt và quyền lực.

+2

+1 cho tất cả các điểm của Steve để lợi dụng việc sử dụng một cửa hàng ba (và những nhược điểm). Tôi muốn bao gồm lý luận như một lợi thế, mặc dù đó không phải là một tính năng phổ biến, vì vậy có lẽ đó là một nửa lợi thế =) – Michael

7

Cả hai người nhận xét đều chính xác, đặc biệt là từ Semantic Web không phải là cơ sở dữ liệu, nó tổng quát hơn một chút. Tuy nhiên, tôi đoán bạn có thể có nghĩa là cửa hàng ba, thay vì Web ngữ nghĩa nói chung, như kho lưu trữ ba v. Cơ sở dữ liệu quan hệ là một so sánh có ý nghĩa hơn một chút. Tôi sẽ bắt đầu phần còn lại của câu trả lời của tôi bằng cách lưu ý rằng tôi không phải là một chuyên gia trong các hệ thống cơ sở dữ liệu quan hệ, nhưng tôi có một chút kiến ​​thức về các cửa hàng ba.

Cửa hàng ba (hoặc bốn) cơ bản là cơ sở dữ liệu cho dữ liệu trên web ngữ nghĩa, đặc biệt là RDF. Đó là loại tương tự giữa các bộ ba lưu trữ & cơ sở dữ liệu quan hệ kết thúc. Cả hai dữ liệu lưu trữ, cả hai đều có ngôn ngữ truy vấn, cả hai đều có thể được sử dụng để xây dựng các ứng dụng trên đầu trang; vì vậy tôi đoán nếu bạn nheo mắt, chúng khá giống nhau. Nhưng loại dữ liệu mà mỗi cửa hàng là hoàn toàn khác nhau, do đó, hai công nghệ tối ưu hóa cho các trường hợp sử dụng và cấu trúc dữ liệu khác nhau, vì vậy chúng không thực sự có thể hoán đổi cho nhau. Có rất nhiều người đã làm việc trong việc che phủ tầm nhìn ba lần của thế giới trên cơ sở dữ liệu quan hệ, và nó có thể hoạt động, và cũng sẽ chậm hơn một hệ thống dành riêng để lưu trữ và truy xuất ba. Một phần của vấn đề là SPARQL, ngôn ngữ truy vấn chuẩn được sử dụng bởi các cửa hàng ba, có thể đòi hỏi rất nhiều sự tự tham gia, một số cơ sở dữ liệu quan hệ không được tối ưu hóa. Nếu bạn xem xét điểm chuẩn, chẳng hạn như SP2B, bạn có thể thấy rằng Oracle chỉ hỗ trợ SPARQL trên hệ thống quan hệ của nó, chạy ở giữa hoặc ở mặt sau của gói khi so sánh với các hệ thống hỗ trợ RDF nguyên bản hơn.

Tất nhiên, các hệ thống RDF có lẽ sẽ bị Oracle nghiền nát nếu họ thực hiện truy vấn SQL trên dữ liệu quan hệ. Nhưng đó là vấn đề, bạn chọn công cụ phù hợp với ứng dụng bạn muốn xây dựng. Vì vậy, nếu bạn đang suy nghĩ về việc xây dựng một ứng dụng web ngữ nghĩa, hoặc chỉ cố gắng để làm quen với một số khu vực, tôi khuyên bạn nên đi cùng với một cửa hàng ba chuyên dụng.

Tôi sẽ không tìm hiểu lý do và cách phát trong câu trả lời truy vấn trong cửa hàng ba, vì đó là một cuộc thảo luận khác, nhưng đó là một sự khác biệt quan trọng giữa hệ thống quan hệ và cửa hàng ba làm lý luận.

7

Một số triplestores (Virtuoso, Jena SDB) được dựa trên cơ sở dữ liệu quan hệ và chỉ đơn giản là cung cấp một giao diện RDF/SPARQL. Vì vậy, để rephrase câu hỏi nhẹ nhàng, là triplestores được xây dựng từ mặt đất lên như một triplestore performant hơn so với những người không phải là - @ steve-harris chắc chắn biết câu trả lời cho điều đó;) nhưng tôi đặt cược có.

Thứ hai, các tính năng nào có ba điểm mà RDBMS không làm. Câu trả lời đơn giản là hỗ trợ cho SPARQL, RDF, OWL, vv (nghĩa là ngăn xếp công nghệ Web ngữ nghĩa) và làm cho nó trở thành một cuộc chiến công bằng, tốt hơn để xác định giá trị của SPARQL dựa trên SPARQL 1.1 (nó có nhiều tính năng hơn 1.0) . Điều này cung cấp hỗ trợ cho liên bang (vì vậy rất mát mẻ), biểu thức đường dẫn tài sản và các chế độ entailment cùng với một bộ tiêu chuẩn của giao thức cập nhật, giao thức quản lý đồ thị (SPARQL 1.0 không có và thiếu). Ngoài ra @ steve-harris chỉ ra rằng giao dịch không phải là một phần của tiêu chuẩn (có thể sâu) mặc dù nhiều nhà cung cấp cung cấp cơ chế không chuẩn hóa cho giao dịch (Virtuoso hỗ trợ JDBC và Hibernate compliant connection pooling và management cùng với tất cả các tính năng giao dịch của Hibernate)

Hạn chế lớn nhất trong tâm trí của tôi là không có nhiều triplestores hỗ trợ tất cả SPARQL 1.1 (vì nó vẫn không được đề xuất) và đây là nơi mà lợi ích thực sự nói dối. Có nói rằng, tôi và luôn luôn là một người ủng hộ việc thay thế RDBMS bằng triplestores và nền tảng mà tôi cung cấp chạy hoàn toàn khỏi các bộ ba (Volkswagen trong vai trò cuối cùng của tôi là một ví dụ về điều này), không còn cần đến RDBMS nữa. Một lợi thế nữa là Object đối với ánh xạ RDF linh hoạt hơn và cung cấp nhiều tùy chọn và tính linh hoạt hơn ORM truyền thống (còn được gọi là đặt một chốt vuông trong một lỗ tròn).

+1

SPARQL 1.1 đang được giới thiệu ngay bây giờ, AFAIK. –

0

Ngoài ra, bạn vẫn có thể sử dụng cơ sở dữ liệu nhưng sử dụng RDF làm định dạng trao đổi dữ liệu rất linh hoạt.

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