持久化对象类型—持久化对象实例.PPT

  1. 1、本文档共51页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
持久化对象类型—持久化对象实例

第三部分 面向对象模型GOM Generic Object Model 类型系统与对象系统 GOM的结构定义 元组结构 聚集结构 对象的标识 子对象的共享 对象的持久性 Sort类型上的复合结构 7.1 类型系统与对象系统 类型系统(sort type)的发展 类型:类型名,{值域},{操作} 早期语言只提供简单类型 进一步复杂类型 -简单类型、结构类型、串、指针... Ada提出抽象数据类型ADT(abstract data type) 用户自己定义结构、操作 系统提供打包功能 以类型方式提供使用 几种简单sort类型 类型的使用、特点、局限 变量说明:指明一个变量的类型 变量赋值:类型的实例化操作 实例化结果:指定一个值 在实例的整个生命周期,值是不变的,因此类型的实例无需标识,值就是其本身的标识 变量的重新赋值是重新实例化过程,原实例已消亡。 类型系统的问题:无法描述实例的状态变化,即不同的值代表了某个实例在不同时刻的不同状态 数据库的应用是最突出的不协调 面向对象类型 对象系统强调的是对象状态的变化 对象的生命周期种的某一瞬间是一个状态(对象属性的某个值集) 但对象属性值被修改时,表明该对象由一个状态转化为另一个状态 为了能识别不同状态下的对象,必须进行标识。——唯一性约束 对象状态的转化时内部变化,因此必须进行封装——完整性约束 对象O由(id#, Type, Rep)三元组表示 7.2 GOM对象类型框架定义 对象类型名唯一,超类型名可选。 Public子句提供外部说明 Body子句描述结构主体 操作子句描述接口说明 操作名(唯一性) 参数说明 操作实现子句——描述操作体 7.3 元组结构的对象类型 结构主体由三种基本结构及其组合而成 元组结构(tupe_structure) 集合结构(set_structure) 表结构(list_structure) 元组结构定义 Type i可以是 简单sort; 组合sort; 对象类型;混合类型;集合类型;表类型;直接递归类型等 内嵌的属性值读写操作 VCO操作(Value receiving operation) 值接收操作 Declare attri:-type i; 读取当前第i个属性状态 VTO擦作(Value returning operation) 值返回操作 Declare attri:-type i; 将类型为Type i的状态写入第i个属性中 示例(一) 直接递归示例 维护person的对象实例状态的操作 Var p:person … p.age:=p.age+1 (p.age?p.age-+1) 示例(二) 立方体对象模型的正文: *定义“点”的对象类型 *定义原材料的对象类型 *定义立方体的对象类型 7.4 GOM类型的实例化 一个对象类型框架可产生一系列对象实例 内嵌的创建对象操作——“create” GOM类型的实例化过程 第一步* Var myCuboid :Cuboid;/说明对象变量 第二步*执行赋值语句: (1) myCuboid:=Cuboid$create; 或(2) myCuboid.create; 赋值语句的作用 (1)产生了一个初始化的空壳实例; (2)对该空壳实例赋予了一个对象标记OID; (3)将OID(或实例地址)赋给变量myCuboid; (4)将空壳属性值初始化为: Int:0;float:0.0;char:’\0’;bool:false;复杂对象类型:NULL; (5)当前该OID还仅是逻辑表示,不能被用户访问。 *产生了一个仅仅与OID相联系的一个空对象。 -第三步:对空对象的每个属性进行实际值的初始化工作 示例 7.5 对象标识 表示对象的三种方法: 内容标识—关键字标识符 地址标识—物理对象标识符 逻辑对象标识符 内容标识的问题(内容依赖) 概念的混淆:将两对象相等与两对象内容相等混为一谈。 一致性管理的困难。 例1:对大商场中,同一商品在不同柜组有不同售价,商品的主key为(商品号+柜组号)。 例2:若主key为(人名+地址),当搬家而修改库时,给完整性维护带来困难。 地址标识 地址标识 —用对象所分配的地址空间表示对象。 地址标识问题(地址依赖) 存储空间的重用导致引用错误且无法查找。 例如新对象占用已删除对象空间。 分布式系统中对象经常被移动位置。 DB性能调整时常常需要重构硬盘存储区。 逻辑对象标识符 OID Logical Object Identity 对于GOM,每个对象可以描述为下述三元组 O = (id#,Type,Rep) Id

文档评论(0)

zhuwo + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档