dbms分类矩阵(编辑修改稿)内容摘要:

ee isa person { date startdate。 int salary。 }。 class officer isa employee { int officernumber。 string expenseaccountnumber。 }。 面向对象基本概念  多重继承 person customer employee officer secretary teller fulltimeteller parttimeteller parttimesecretary fulltimesecretary 有何弊端。 面向对象基本概念 person customer employee officer secretary teller fulltimeteller parttimeteller parttimesecretary fulltimesecretary parttime fulltime DAG 面向对象基本概念  语义模糊  当同一个变量或方法可以从多个父类中继承时 , 由于无法确定该变量或方法是从哪个父类继承的 , 就会产生语义模糊。  例如类 secretary, teller, fulltime, parttime中都定义了变量 pay, 来代替 employee中的 salary。 在 fulltime中 , pay( 0~10 000) 表示年薪 , 而在 parttime中 ,pay( 0~20) 表示每小时付的薪酬。 面向对象基本概念  解决方案 以 parttimeteller为例 , 它的父类是 teller与 parttime。 方案一 : parttimeteller中同时包含两个变量 , 分别命名为。 方案二 :根据类 teller与 parttime的创建时间选择其一。 方案三 :强制用户在类 parttimeteller的定义中显式地作出选择。 方案四 :将出现语义模糊的情况作为异常错误来处理。  可以使用多重继承来对 “ 角色 ” 来建模  学校数据库中 , 有 person的多个子类 , 如 student, teacher, footballPlayer等 , 每个对象可以同时属于这些类中的多个 , 每个这样的类别被称为一个角色 , 如。 面向对象基本概念  对象标识符 ( OID)  每个对象是类的一个实例 , 对象标识符唯一标识了一个对象。  OID在对象生成时产生 , 在撤消对象时被注销。 类似于人的身份证 , DBTG系统中的 DBK。  OID不随对象值的改变而改变。  两个具有相同值的对象其 OID是不一样的。  OID可以作为对象的一个字段存储 , 也可以在一个对象中引用其它对象的 OID。 如 person的 spouse字段就是另一个 person的 OID。 面向对象基本概念  OID生成  值:用码来标识对象 , 是一种面向值的方法 , 使对象标识具有值依赖性 ( 关系数据库系统 )。  名称:用用户提供的名称作为标识 ( 文件系统 )。  内置:对象标识符可以由系统内部自动产生 ( 依赖于特定系统 ) , 也可以来自外部 ( 如人的身份证 ) ( 面向对象数据库系统 )。  地址: C++通过对象在内存空间中地址来区分对象 , 但不具有持久性。 也不能使用二级存储器地址来作为对象标识符 , 否则会引起应用对数据的物理依赖性。 面向对象基本概念  OID示例 Person(name, age, children) 无 OID时: (Susan, 50, {(John, 25, {}}) (Peter, 52, {(John, 25, {}}) 无法判断 Susan与 Peter的孩子是否是同一个人。 更新复杂 , 如 John又有孩子时 , 需要更新多处。 有 OID时: OID1((Susan, 50, {OID3}}) OID2((Peter, 52, {OID3}}) OID3((John, 25, {}}) 面向对象基本概念  对象包含 车轮 车闸 齿轮 车架 辐条 轮框 轮胎 闸盒 传杆 闸线  一个构件可以包含其它构件。  包含其它对象的对象称为复合对象或复杂对象。 面向对象基本概念 对象继承 Vs 对象包含 A B C A B C isa ispartof 类 B中的一个对象也是类 A中的 一个对象 , 它继承了类 A的所 有属性 , 同时具有自己的特殊 属性 , 以及对所继承的方法提 供自己的实现途径。 类 A中的一个对象包含类 B中的 一个对象。 A与 B的属性不必类 似 , 也不必相互继承对方的属 性。 类 A中的一个对象只能通过 类 B的方法来访问 B中的变量。 面向对象的语言 如何将面向对象概念与数据库系统结合起来。  两条途径  将面向对象概念作为概念设计阶段工具 [ 示例 ]  将面向对象概念结合到数据库操纵语言中  扩展 SQL 在 SQL中增加复杂类型和面向对象特征。  持久化程序设计语言 对某种现行的面向对象程序设计语言进行扩展。  3WWho Will Win。 面向对象的语言  市场前景 SQL3 ODL 持久化程序设计语言  嵌入式 SQL  宿主语言与数据操纵语言之间的类型系统有所不同 , 由程序员负责两者之间的类型转换。  程序员负责编码实现数据从数据库到内存的装入或写回。  持久化程序设计语言  对象在数据库中的创建和存储不必经过任何外在的类型转换。  允许在内存中操纵对象 , 不必显式地从数据库装入或写回。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。