专注Java教育14年 全国咨询/投诉热线:444-1124-454
赢咖4LOGO图
始于2009,口口相传的Java黄埔军校
首页 hot资讯 面向对象数据库系统的示例

面向对象数据库系统的示例

更新时间:2021-08-25 10:34:12 来源:赢咖4 浏览749次

什么是面向对象的数据库管理系统?

简要说明

面向对象的数据库 (OOD) 是一种数据库系统,它可以处理复杂的数据对象,即反映面向对象编程语言中使用的对象的对象。

在面向对象编程中,一切都是对象,很多对象都相当复杂,具有不同的属性和方法。面向对象的数据库管理系统与面向对象的编程语言协同工作,以促进面向对象数据的存储和检索。

你可能会想,“等等,我一直在我的编程中使用对象。我使用数据库。那么,这是否意味着我使用的数据库是OOD?” 可能不会,原因与 OOD 的主要特性之一有关:对象数据持久性。

当你的程序运行时,你可能有一个对象——例如,一个task. 该对象具有类似 aname和 的属性status。它可能还有一些方法,例如update_task()或get_task_history()。在程序早期的某个地方,您初始化了该task对象,现在您可以访问它,因为它存储在内存中。

当您的程序终止执行时会发生什么?你的对象……不见了。该数据对象是瞬态的,而不是持久的。下次程序启动时,您需要重新从数据库中检索这些数据值(如name和status)以初始化新的 task对象实例。

使用 OOD,数据对象及其所有属性都存储在数据库中。当您的程序终止时,对象将继续存在,并存储在 OOD 中。当您的程序再次启动时,它可以从数据库中检索具有属性的对象。使用 OOD 存储和检索复杂数据对象的过程对数据库用户是透明的。

这与关系数据库(如 MySQL 或 SQLite)有很大不同,但与文档数据库(如 MongoDB)没有太大区别。在关系数据库中,开发人员需要从一组查询的结果中组合一个对象,而在文档数据库中,文档字段到类属性的映射应该几乎是透明的。

OOD 已经存在了几十年。MongoDB Realm是该领域最有前途的新软件之一。

什么是面向对象数据库的示例?

MongoDB 确实提供了一个名为 Realm Mobile Database 的 OOD,其中查询语言通过您使用的 SDK 构建本机对象。例如,在 javascript SDK 中,对象获取类似于:

const myTask = realm.objectForPrimaryKey("Task", 12345);

面向对象的数据库在哪里使用?

OOD 最常用于面向对象的编程语言,如 Java、Kotlin、C#、Node JS (React) 和 Swift。使用 OOD 的行业通常是那些建立在面向对象的语言上并且希望在处理复杂数据结构的同时提高生产力的行业。

OOD 的一个很好的例子是在线 IT 培训提供商 CBT Nuggets。CBT Nuggets使用 Realm 提供 5,000 多门课程,从基本的计算机技能到复杂的网络管理(请参阅此案例研究)。CBT Nuggets 致力于确保订阅者可以随时随地查看内容。为实现这一承诺,课程通过 10 到 20 分钟“金块”的流媒体视频提供。内容可在桌面和移动应用程序上使用。

借助 Realm 移动数据库和 MongoDB Realm Sync,CBT 能够使用适用于 Android 和 iOS 设备的跨平台 SDKS 进行开发,使用直接对象到业务类映射和与 MongoDB Atlas 的无缝同步。

面向对象数据模型的组件

OODM 的要素是:

对象:现实世界的实体,例如待办事项列表中的特定生活任务—— “把垃圾拿出来”。

属性和方法:对象具有状态和行为。对象具有的属性(其也可以被称为属性)等name,status和create_date。集合在一起的属性集表示它的状态。除此之外,对象还具有修改或操作其属性的行为(也称为方法、操作或函数),例如update_task()或get_task_history()。

类:具有相同属性和行为的所有对象的分组形成一个类。在上面的示例中,我们讨论了task对象。这些对象一起都属于这个Task类。

class task
{
    String name;
    String status;
    Date create_date;
    public void update_task(String status)
    {
    ...
    }
}

面向对象的设计模式:面向对象的数据建模还暗示了某些原则,如继承、多态、覆盖和关联。面向对象的数据库系统将支持这些相同的概念。

NoSQL 是面向对象的数据库吗?

流行的 NoSQL 数据库(如 MongoDB 和 AWS DynamoDB)是面向文档的数据库,而其他(如 Casadra)则是键值存储。文档数据库,如 OOD,在表、行和列方面不起作用;但是某些语言可能需要 ODM 才能更好地处理对象。

每个“记录”都被视为一个文档,它可以根据它为给定实体存储的属性缩小和增长。有时,文档之间的关系可能是首选方法。

例如,您可以认为一个BlogPost文档与多个Comment文档和Like文档有关联。在其他时候,关系可以直接嵌入到文档中。在这种情况下,您可以想象一个BlogPost文档的Comments属性是一个文本字符串和用户名数组,然后另一个Likes属性是一个用户名和时间戳数组。

文档数据库提供灵活的结构,可以很好地水平扩展。它们在存储非常复杂的文档方面非常强大,从表面上看,它们似乎与对象相同——许多现代编程语言通过将这些文档称为“对象”来进一步混淆 MongoDB。然而,这些文档并不是如上所述的面向对象编程的传统意义上的对象。

文档数据库与面向对象的数据库类似但又不一样。

以上就是赢咖4小编介绍的"面向对象数据库系统的示例",希望对大家有帮助,想了解更多可查看Java教程。赢咖4在线学习教程,针对没有任何Java基础的读者学习,让你从入门到精通,主要介绍了一些Java基础的核心知识,让同学们更好更方便的学习和了解Java编程,感兴趣的同学可以关注一下。

提交申请后,顾问老师会电话与您沟通安排学习

免费课程推荐 >>
技术文档推荐 >>