Object Database(对象数据库,OODB) 的核心思想是:以“对象”为最小存储单位,而不是行、列或文档。它直接持久化编程语言中的对象,保留对象的状态(数据)和行为(方法),并支持对象之间的复杂关系。
下面从 存储模型、存储结构、关键机制、典型示例 四个层面说明它是如何存储的。
在对象数据库中,存储的基本单元是:
对象(Object) = 数据 + 方法 + 唯一标识(OID)
一个被存储的对象通常包含:
对象数据库底层通常基于:
简化结构如下:
[ Page ]
├─ Object Header (OID, Type, Size)
├─ Attribute Data
├─ Reference Pointers (OID)
└─ Method Reference
Student
├─ name
├─ age
└─ school → OID( School )
school_id = 123常见方式:
db.store(student);
odb.makePersistent(obj);
Animal
├─ Dog
├─ Cat
| 对比点 | 关系数据库 | 对象数据库 |
|---|---|---|
| 存储单位 | 行(Row) | 对象(Object) |
| 关系表示 | 外键 + Join | OID 引用 |
| 继承 | 不支持 | 原生支持 |
| 映射 | ORM 转换 | 无映射 |
| 查询 | SQL | OQL / API |
ObjectContainer db = Db4o.openFile("data.yap");
db.store(new Person("Tom", 20));
对象数据库通过 OID 直接存储对象本身,用对象引用代替外键,天然支持继承、关系和复杂结构,避免对象—关系映射。
如果你愿意,我也可以:
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。