版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、面向对象数据库,主要内容,面向对象的基本概念,1.对象 对象是由一组数据结构以及其上的一组方法封装起来的基本单位,由属性集合、方法集合和消息集合加上对象标识组成。 属性集合:对象通常具有若干特征,每个特征称为对象的一个属性(attribute)。属性反映对象的状态与特性,描述对象固有静态性质。 方法集合:方法(method)是对象行为特性的描述,它定义了允许作用于该对象之上的某种操作,因此,方法也称为操作或行为。方法反映对象固有动态性质,它可以审视并且改变对象的内部状态。,面向对象的基本概念,消息集合:消息是对象与对象之间的联系信息。消息中仅仅包含发送者的要求,它告诉接收者要完成哪些处理,但并
2、不指示接收者如何完成,消息完全由接收者解释,并选择所需操作。 对象标识:在面向对象数据模型中,每个对象都有在系统内有一个唯一且不变的标识符,不允许两个不同的对象具有相同的对象标识符,这种标识符就称为对象标识(OID)。,面向对象的基本概念,对象具有封装性、隐蔽性与稳定性等重要特性: 封装性:封装使得用户只能看到对象外在的界面信息,而看不到对象内部的信息(如方法实现细节),对象内部的信息对用户是屏蔽的。 隐蔽性:对象封装屏蔽了外界对内部细节的了解,这种屏蔽就称为隐蔽。 稳定性:对象内部的对象行为建立在对象属性之上(或行为依赖于属性),这就在对象内部建立起以属性为核心并以行为为附庸的稳定实体特性,
3、称为对象的稳定性。,面向对象的基本概念,2.面向对象方法 “面向对象”(object oriented)一词中的“对象”(object)可以解释为客观世界中的客体。“面向对象方法”(OO方法)则可以理解为以客观世界中的客体为观察目标的方法。,面向对象的基本概念,3.类 类(Class)是对具有共同属性和方法的对象全体的抽象和概括地描述,它相当于关系模型中的关系模式。类给出了属于该类全部对象属性与行为的抽象定义,而此时类中的对象仅是这种类定义中的一个实体,人们称其为该类的实例。类的出现简化了人们对客观世界的了解,众多复杂对象因为有了类而变得相当简单,人们可以对属于类的全体对象进行统一研究而不必对
4、每个对象做个别的复杂的研究。,面向对象的基本概念,类之间的基本关系可以分为三种:类的继承关系、类的组合关系和类的通信关系(消息)。 继承关系和组合关系是类之间的两个基本关系,反映的是类与类之间静态联系。类之间还可以具有如同对象之间“消息”那样的通信关系,消息反映的类与类之间的动态联系,这里的“消息”和对象与对象之间的消息本质上相同 。,面向对象的基本概念,类的继承 类与类之间的层次结构重要特点之一就是继承。继承反映一个类能够自动继承其他某些类所具有的属性和方法,这是面向对象数据模型中避免重复定义的一个重要机制。 在超类与子类概念中,子类除了继承超类中的属性和方法外,还可以用增加和取代的途径定义
5、子类所具有的特殊属性和方法。 抽象类将有关的类组织在一起,抽象出一个公共的超类,其他子类都从这个超类派生出来。,面向对象的基本概念,类继承的特性 类继承通常具有下面的四个基本性质。 传递性单向性 可重用性 包含性 继承的多态性 在类的继承过程中,超类属性与方法在子类中允许有不同的实现形式、方法与语义,这种情形就称为多态性。多态性,即一个名字可以具有多种语义。例如,人和动物同样吃食物,但是人可以用文明的工具进餐,但是动物只是原始的进食。,面向对象数据模型,面向对象数据模型是依据面向对象方法所建立的数据模型,其中包括数据模式、数据操作和数据约束。 1.数据模型概念 数据模式 由对象结构以及类之间继
6、承和组合关系建立起来的数据间的组织结构关系。 数据操作 由对象与类中方法建构对象数据模式上的数据操作,数据操作分为两个部分:一部分封装在类之中,称为方法,另一部分是类之间相互沟通的操作,称为消息。 数据约束 数据约束也是一种方法,面向对象数据一般使用方法或消息表示完整性约束条件。,面向对象数据模型,2.数据类型 基本类型 基本类型包括通常的整型、字符串和布尔型等,“类”类型也可以将其作为一个整体看成一个基础的类型。 构造类型 基础型和“类”型是基本型,通过它们,可以使用下述构造器形成各种复杂型(构造型)。 ARRAY。 如果T是一个型,i是一个正整数,则ARRAY就是一个型,其对象为T的i个对
7、象的一个数组,例如,ARRAY就是长度为10的字符串。 LIST 。如果T是任意型,则LIST也是一种型,其对象是T的零个或多个对象的一个。,面向对象数据模型, BAG 。如果T是任意型,则BAG也是一种型,其对象是型T的对象的一个“可重复”集合即一个元素可重用的集合,称为一个“袋”或“包”。包与集合的区别就是其中的元素可以重复。例如1,4,1,6是一个包而不是一个集合。 SET 。如果T是任意型,则SET也是一种型,其对象是T的对象的一个有限集合。 RECORD 。设Ti和Fi(i=1,2,n)分别为任意的一个型和该型的一个域的名字,则 RECORD(F1:T1;F2:T2,Fn:Tn)也为
8、一种型,其对象为分别具有名字Fi和型Ti(i=1,2,n)的域所组成的记录。,面向对象数据模型,3.与传统数据模型比较 面向对象数据模型(OODM)是一种层次式的结构模型,以类为基本单元,以继承和组合作为结构方式; OODM是将数据与操作封装于一体的结构方式,使得OODM中的类是具有独立运作能力的实体,扩大了传统数据模型中实体集仅仅是单一数据集的不足; OODM具有构造多种复杂抽象数据类型的能力; OODM具有不断更新结构的能力。,中的数据操作,ODMG工业标准对C+的扩展主要包括C+对象定义语言(ODL)和C+对象操作语言(OML),其中,OML可分为对象查询语言(OQL)和对象控制语言(O
9、CL)。 1.数据定义 接口和类的创建 例2-3 下面语句创建了ODMG中的接口和类。 Interface Employee; Interface Professor:Employee; Interface Associate_Professor:professor;,中的数据操作,Class Salaried_Employee:Employee; Class Hourly_Employee:Employee; Class Person attribute string name; attribute date birthday; Class Employeeperson extends Pe
10、rson:Employee attribute Date hireDate; Attribute Currency payRate; Relationship Manager boss inverse Manager:subordinates; Class ManagerPerson extends EmployeePerson:Manager Relationship setsubordinates inverse Employee:boss;,中的数据操作,对象的创建 对象创建则类似于关系模式中的数据创建。在中,对象可以分为聚集对象和原子对象,原子对象就是“用户自定义对象”,聚集对象相对比
11、较整齐,通常是使用为不同聚集了类型定义的一种特殊接口类型工厂对象来创建聚集对象,也就是说通过“工厂对象”接口定义中的生成函数来创建聚集对象。,中的数据操作,.数据查询 对象查询语言OQL是以面向对象模型为基础的类查询语言,允许使用传统SELECT查询语句来书写表达式。OQL没有提供显式删除和修改操作,这些基本数据操作由类型定义中的操作完成。 例2-5在大学数据库中,用OQL的SELECT语句可以得到如下查询操作。 查询大学中授课门数超过2门的教师,要求显示学校名称和教师姓名,显示时属性名为university_uname和faculty_name:,中的数据操作,SELECT universi
12、ty_name:F.works_for.uname,faculty_name:F.name FROM faculties F WHERE F.num_teach()2; 说明:通常SELECT语句中查询结果为集合或包,但加上ORDER BY后,输出结构就为列表。,中的数据操作,例2-10 如下查询返回式列表而不是集合或包。 SELECT F.fno,F.name FROM faulties F ORDER BY F.age DESC0:4; 说明:表达式0:4表示抽取年龄最大的5名教师。,面向对象数据库系统,以面向对象方法为指导并对数据库模型做语义解释,就可构造面向对象数据模型(OODM)。
13、以OODM为基础所构造的数据库系统就是面向对象数据库(OODB)。 以OODB为核心构造的数据库管理系统就是面向对象数据库管理系统(OODBMS)。 以OODBMS为核心构造的数据库系统就是面向对象数据库系统(OODBS)。,面向对象数据库系统,1.面向对象的数据库管理系统 数据库管理系统是任何一个数据库的中枢系统,面向对象的数据库管理系统常需要支持面向对象的数据模型,提供面向对象的数据库语言,提供面向对象数据库管理机制,同时具有传统数据库的管理能力。 面向对象数据库管理系统由类管理、对象管理和对象控制3个部分组成。,面向对象数据库系统,类管理 类管理用于对类定义和类操作进行管理,利用类来描述复杂的对象。 对象管理 对象管理又称为实例管理,主要完成对类中对象的操作管理,利用类中的封装方法来模拟对象
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026文案撰写面试题及答案
- 2026五举煤矿面试题及答案
- 2026县区国企面试题目及答案
- 消毒技能竞赛个人竞赛试题(附答案)
- 海上货物运输合同纠纷案(范本)
- 购砂合同1(范本)
- 2026年可降解材料在工业废水处理中的应用进展
- 上半年银行实习报告
- 2026年6G网络流量预测与拥塞控制优化
- 药品验收员培训试题及答案
- 2026重庆科技馆管理有限公司招聘9人笔试备考试题及答案详解
- 《NOSQL数据库技术》课件全套完整版
- 2026年高考真题-化学(上海卷) 含解析
- 2026年5年级诗词赛题库及答案
- 六安市舒城县2025-2026学年第二学期五年级语文期末考试卷(部编版含答案)
- 中外艺术歌曲关于“春天”的作品分析和演唱技巧研究-以《春你几时归》和《暮春》为例
- 2026年农药经营许可证56学时培训模拟题
- 机电设备安装验收报告
- 过敏性休克的应急预案演练脚本
- 高考英语考试大纲核心单词(985个)
- 绿化迁移专项施工方案
评论
0/150
提交评论