Triplestore 数据库的优点和缺点是什么?

发布于 2024-07-24 12:43:50 字数 311 浏览 6 评论 0 原文

triplestore 数据库(例如 Mulgara? 在哪些情况下其性能会与传统关系数据库有显着差异?

我特别考虑的是您拥有 namespace:predicate=value 形式的数据的情况。 Triplestores 似乎会保持数据的“自然”形式,但我想知道除此之外是否还有其他具体优势。

What are the strengths and weaknesses of a triplestore database, such as Mulgara? In which situations would its performance be significantly different from that of a traditional relational database?

I'm thinking in particular about situations where you have data in the form namespace:predicate=value. Triplestores would seem to keep the data in its "natural" form, but I would like to know if there are specific advantages beyond that.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

沉溺在你眼里的海 2024-07-31 12:43:51

我是 Redland 的创建者,其中包括 C 语言的本机三重存储,而且我使用了一些Java 系统,如 Jena 和 Sesame。

在不知道您的问题是什么的情况下很难说更多,但一般来说,如果您的问题空间/查询模式更“图形”而不是“客观”,则本机三重存储会工作得更好。 对象性意味着您倾向于总是进行操作 - 每次设置/获取相同的数据模式 - 在这种情况下,您不妨使用 ORM 或其他对象关系映射和固定模式。 如果您的问题和模式更加动态 - “Graphy” - 您可能会从三重存储方法中受益,在这种方法中,与通常在 RDBMS 世界(又名联接)中相比,更容易在数据之间进行跳跃。

当然,还有文档方法,例如 CouchDB,但这很难从您提供的信息中得知。

I'm the creator of Redland which includes native triple stores in C plus I've used some of the Java systems like Jena and Sesame.

It's hard to say more without knowing what your problem is but in general native triple stores work better if your problem space/query pattern is more 'graphy', rather than 'objecty'. Objecty means you tend to always manipulate - set/get the same pattern of data each time - in that case you might as well use ORM or other object-relational mappping and a fixed schema. If your problem and schema is more dynamic - 'Graphy' - you may benefit from the triple store approach where it's easier to hop across the data than it is typically in a RDBMS world (aka joins).

Of course there is also the document-approach too such as CouchDB but that's hard to know from the info you've given.

只为守护你 2024-07-31 12:43:51

我假设您正在询问三元组的持久性(可能还有通过四元组的图形),其中存储是“本机”三元组存储(例如,TDB)或具有三重存储覆盖的关系数据库(例如 SDB)。

如果您详细说明您的要求,我相信 Stack Overflow 成员可以提供更直接的答案,但只是我的想法:

  • 当数据集的大小变得非常大时,本机三元组存储通常具有更好的性能。 请参阅W3C 的一些数字
  • 本机三元组存储可以提供存储内推理/推断(类似于 Oracle 的语义工具包,尽管它不完全支持 SPARQL)。
  • RDBMS 中的三元组可以“轻松”集成到传统报告工具(如 Jasper Reports)中,因为您可以使用 SQL 查询它们。

I assume you're asking about persistence of triples (and possibly graphs via quads) where the storage is either a "native" triple store (for example, TDB) or a relational database with a triple store overlay (like SDB).

If you an elaborate on your requirements, I'm sure Stack Overflow members can offer a more directed answer, but just off the top of my head:

  • Native triple stores typically have better performance when the size of the dataset gets very large. See some numbers from the W3C.
  • Native triple stores can offer in-store reasoning/inferencing (like Oracle's semantic toolkit, although it doesn't fully support SPARQL).
  • Triples in an RDBMS can be "easily" integrated into traditional reporting tools (like Jasper Reports) since you can query them with SQL.
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文