背景:好的,所以我正在寻找我猜是对象数据库的东西。然而,我所看到的(当然很少)对象数据库是简单的持久层,而不是成熟的 DBMS。我不知道我正在寻找的东西是否甚至被认为是一个对象数据库,因此非常感谢任何帮助我指出正确方向的帮助。
我不想给你两页来描述我在寻找什么,所以我会用一个例子来说明我的观点。假设我有一个需要存储的“BlogPost”对象。像这样的东西,在伪代码中:
class BlogPost
title:String
body:String
author:User
tags:List<String>
comments:List<Comment>
(假设Comment
是它自己的类。)
现在,在关系数据库中,author
将存储为指向 a 的外键User.id
,并且使用单独的表将tags
andcomments
存储为一对多或多对多关系来存储关系。我想要的是一个执行以下操作的数据库引擎:
- 使用直接引用而不是使用外键来存储相关对象(
author
、tags
等),这需要额外的查找;换句话说,彼此之上的对象应该由数据库本机支持 - 允许我在博客文章中添加评论或标签,而无需检索整个对象、更新它,然后将其放回数据库(如面向文档的数据库——CouchDB 就是一个例子)
我想我正在寻找的是一个导航数据库,但我不知道。有什么和我想的很相似的吗?如果是这样,它叫什么?(或者更好的是,给我一个实际工作的数据库。)还是我太挑剔了?
编辑:
澄清一下,我不是在寻找 ORM或抽象层或类似的东西。我正在寻找一个在内部执行此操作的实际数据库。对不起,如果我很难,但我已经搜索过,我找不到任何东西。
编辑:
此外,JVM 的某些东西会很棒,但在这一点上,我真的不在乎它运行在什么平台上。