对象标识
考试要求: 了解     
知识路径:  > 数据库主流应用技术  > 数据库主流应用技术  > 数据库主流应用技术  > 面向对象数据库  > 面向对象数据模型


 
       每个对象有一个唯一的、由系统生成的对象标识(Object Identifier,OID)。OID的值对外部用户来说是不可见的,但是系统会在内部用这个值唯一地标识每个对象,并用这个值创建和管理内部对象引用。
       相对于非面向对象数据模型和程序设计语言来说,对象标识给出了一种更强的标识概念,几种常用的标识形式如下:
       (1)值:用于标识的一个数据值。这种形式的标识常在关系数据库中使用。如一个元组的主码标识了这个元组。
       (2)名称:用于标识的用户提供的一个名称。在程序设计语言中,用户赋予每个变量一个名字来标识它;在文件系统中,用户给每个文件赋予一个名称来唯一地标识这个文件。
       (3)内置名:以上两种标识是由用户给出的,而内置名则是一种由系统来提供的标识。这种形式的标识在数据模型或程序设计语言中使用。
       不同的标识符其持久性程度是不同的,主要有以下几种:
       (1)过程内持久性:标识只有在单个过程的执行期间才是持久的,如过程内的局部变量。
       (2)程序内持久性:标识只有在单个程序或查询执行期间才是持久的,如程序设计语言中的全局变量、内存指针,SQL语句中的元组标识符。
       (3)程序间持久性:标识在从一个程序的执行到另一个程序的执行期间都保持不变,如指向磁盘上的文件系统数据的指针提供了程序之间的标识,SQL语句中的关系名也具有程序间持久性。
       (4)永久持久性:标识的持久性不仅仅跨越了各个程序的执行,还跨越了数据结构的重新组织。这种持久性正是面向对象系统所要求的。
       对象标识符必须具有永久持久性,也就是说,特定对象一经产生,系统就赋予一个在全系统中唯一的对象标识符,应该是固定不变的,一直到它被删除。面向对象数据库系统必须具有生成对象标识并维护其永远不变性的机制。
       标识符通常是由系统自动生成的,不需要用户来完成这项工作。然而在使用这种功能时要注意:系统生成的标识符通常是特定于这个系统的,如果要将数据转移到另一个不同的数据库系统中,则标识符必须进行转化。而且,如果一个实体在建模时已经有一个系统之外的唯一标识符,则系统生成的标识符就可能是多余的。如身份证号码可以作为个人的唯一标识符。
       早期的面向对象数据模型要求把所有的一切表示为对象,无论是一个简单的值还是一个复杂的对象,导致这样的情况出现:两个整型数值10和20,需要创建两个具有不同OID的对象。这种模型需要生成很多的对象标识符,很不实用。因此,大多数的面向对象数据库系统允许有对象和值两种表示方法,即每个对象必须有一个永远不变的OID,但是值没有OID,值只是代表它自己。
 

更多复习资料
请登录电脑版软考在线 www.rkpass.cn

京B2-20210865 | 京ICP备2020040059号-5
京公网安备 11010502032051号 | 营业执照
 Copyright ©2000-2025 All Rights Reserved
软考在线版权所有