数据库开发(19)基于对象的数据库

来源:互联网 发布:miui分屏多任务软件 编辑:程序博客网 时间:2024/06/08 06:23

1、建立面向对象的数据库系统,即一个以本地方式支持面向对象类型系统,而且允许面向对象编程语言使用本地语言的类型系统直接访问数据的数据库系统。

2、自动地将编程语言的本地类型表示的数据转换为关系数据库的表示形式,反之亦然。数据转换由对象-关系映射来说明。

3、基本数据项是相当小的记录,且记录的域是原子的,即它们没有本进一步机构化,并且第一范式成立。而且只有少数几种记录类型。

3、多重继承:即一个类型可以被声明为多个类型的子类型。

注意:SQL标准不支持多重继承。在SQL中,一个结构类型的值必须恰好有一个最明确类型,即每一个值在创建时必须被关联到一个确定的类型。

4、如果子表和父表中的元组在所有的继承属性上具有同样的值,则称子表中的元组与父表中的元组对应。因此,相对应的元组表示同一个实体。

子表的一致性要求:

1)父表的每个元组至多可以与它的每个直接子表的一个元组相对应。

2)SQL有一个附加约束,所有互相对应的元组必须又同一个元组派生出来(插入到一个表中)。

5、SQL支持两种集合体类型:

数组和多重集合。多重集合是一个无需集合,一个元素可能在其中出现多次。与集合的区别在于,集合只允许每个元素最多出现一次。

6、嵌套:将一个1NF关系转换为嵌套关系的反向过程。

解除嵌套:将一个嵌套关系转换成具有更少(或没有)以关系为值的属性的形式的过程。

7、子表可以在无需复制所有继承字段的情况下,以如下方式有效的存储:

1)每一个表只存储主码(可能是从父表中继承下来的)和局部定义的属性。

2)每一个表存储所有继承和局部定义的属性。

8、对象的持久化:

按类持久。按创建持久。按标志持久。按可达性持久。

持久对象的对象标识符使用“持久化指针”来实现。对象的数据部分必须要对每个对象单独进行存储。

9、在数据库中寻找对象的方法:

1)为对象命名。

2)将对象标识符或指向对象的持久化指针暴露出来,使它们可以在外部存储。

3)存储对象的集合体,并允许程序在集合体上迭代寻找所需对象。

10、C++语言的一些面向对象特性为持久化提供支持,而无需改变语言本身。通过类库来提供持久化支持具有只需对C++做极少的必要修改的优点,而且相对容易实现。

注意:

持久指针:必须定义一个新的数据类型已表示持久指针。

持久对象创建:new操作符用于通过定义一个“重载的”版本的操作符来创建持久对象。

类区间:每个类的类区间是自动创建和维护的。

联系:类之间的联系常常通过存储每个对象指向其相关对象的指针来实现。关联到给定类的多个对象的对象存储一个指针的集合。因此如果一对对象之间存在联系,那么每个对象都应该存储一个指向另一个对象的指针。

迭代器接口:由于程序需要在类成员上迭代,就需要一个接口以在类区间的成员上迭代。

事务:持久化C++系统提供对启动、提交或回滚一个事务的支持。

更新:允许透明的持久化。

查询语言:持久化C++系统定义了一个查询语言。

11、总结:

1)关系系统:简单数据模型,功能强大的查询语言,高保护性。

2)基于持久化程序设计语言的面向对象数据库:复杂的数据类型,与程序设计语言集成,高性能。

3)对象-关系系统:复杂数据类型,强大的查询语言,高保护性。

4)对象-关系映射系统:集成于程序设计语言中的复杂数据类型,设计为位于关系数据库系统之上的一层。



0 0