对象数据库系统-new

上传人:tian****1990 文档编号:74159342 上传时间:2019-01-27 格式:PPT 页数:76 大小:565.31KB
返回 下载 相关 举报
对象数据库系统-new_第1页
第1页 / 共76页
对象数据库系统-new_第2页
第2页 / 共76页
对象数据库系统-new_第3页
第3页 / 共76页
对象数据库系统-new_第4页
第4页 / 共76页
对象数据库系统-new_第5页
第5页 / 共76页
点击查看更多>>
资源描述

《对象数据库系统-new》由会员分享,可在线阅读,更多相关《对象数据库系统-new(76页珍藏版)》请在金锄头文库上搜索。

1、第23章 对象数据库系统,23.1 研究动机示例 23.2 ORDBMS 23.3 OODBMS 23.4 OODBMS和ORDBMS的比较,第23章 对象数据库系统,对象数据库系统两个发展方向 面向对象的数据库系统目标是针对复杂对象扮演核心角色的应用领域,这种方法受面向对象的编程语言的影响。对象数据库管理组开发了新的标准:对象数据模型(ODM)和对象查询语言(OQL)。 对象关系数据库系统扩展的关系型数据库系统。SQL:1999扩展了SQL标准以支持数据的对象关系模型。 RDBMS OODBMS ORDBMS,23.1 研究动机示例 23.1.1 新的数据类型,SQL:1999 DDL语句描

2、述的部分Dinky的ORDBMS模式,与传统关系系统的DDL有一些重要差别,它们突出了ORDBMS的新的数据建模能力。 CREAT TABLE Frames (framno integer,image jpeg-image,category integer); (2)CREAT TABLE Categories (cid integer ,name text,lease-price float,comments text); (3)CREAT TYPE theater-t AS ROW(tno integer,name text,address text,phone text) ; (4)CR

3、EAT TABLE Theaters OF theater-t (5)CREAT TABLE Nowshowing (film integer,theater ref(theater-t) with scope theaters,start date,end date); (6) CREAT TABLE Films (filmno integer,title text,stars setof(text),director text,budget float ); (7)CREAT TABLE Countries (name text, boundary polygon,population i

4、nteger,language text);,这一列值只能引用第4行定义的theaters表中的行(一个给定的REF类型必须与一个特定的表相关联),23.1.2 操纵新数据类型,例1(P574) Clog 公司想租用一个Herbet 和日出图案的图像,并组合成包装盒。 类SQL语法描述形式,一个用于查找可能需要的图像和它们的租借价格的查询。 SELECT F.frameno, thumbnail(F.image), C.lease-price FROM Frames F, Categories C WHERE F.category=C.cid AND is-sunrise(F.image) A

5、ND Is-herbert(F.image) thumbnail方法产生一个输入图像的缩略图。 Is-sunrises方法是一个分析图像的布尔函数,如果图像包含一个日出图案返回真。 Is-herbert方法图像包含Herbert的图形时返回真。 结果产生一个图形祯的代码号,图像缩略图和所有包含Herbert和日出图形的价格。,23.1.2 操纵新数据类型,例2(P575) 在Andorra方圆100公里内正在放映Herbert电影的电影院名字。 SELECT N.theatername, N.theateraddress,F.title FROM Nowshowing N, Film F, C

6、ountries C WHERE N.film=F.filmno AND Overlaps(C.boundary,radius(N.theateraddress,100) AND C.name=Andorra AND HerbertF.stars (5)行 Nowshowing表中的theater属性是对另一个表中的一个对象的引用,包含属性name,address和phone.这个对象引用支持符号N.theatername和N.theateraddress.每个符号都指Nowshowing表中行N引用的theater-t对象的属性。 (6)Films表的stars属性是每个电影中明星名字的集合

7、 Radius方法返回的第一参数为圆心,第二参数为半径的圆。 overlap 测试空间重叠关系。,23.2 对象关系数据库系统,23.2.1 面向对象数据模型 23.2.2 对象-关系数据库 23.2.3 小结,23.2.1 面向对象数据模型,23.2.1.1 OO模型的核心概念 23.2.1.2 类层次(结构) 23.2.1.3 继承 23.2.1.4 对象的嵌套,23.2.1.1 OO模型的核心概念,1.对象 定义:对象是由一组数据结构和在这组数据结构上的操作的程序代码封装起来的基本单位。 组成部分 属性(Attribute)集合 属性描述对象的状态、组成和特性 方法(Method)集合

8、描述了对象的行为特性,OO模型的核心概念(续),2. 对象标识OID(Object IDentifier) 概念:面向对象数据库中的每个对象都有一个唯一的不变的标识称为对象标识(OID) 特点: 永久持久性 独立于值的、系统全局唯一的,OO模型的核心概念(续),3. 封装(Encapsulation) 每一个对象是其状态与行为的封装 封装是对象的外部界面与内部实现之间实行清晰隔离的一种抽象,DBMS不需要知道一个ADT的数据是如何存储的,也不需要知道ADT的方法是如何工作的。只需要知道能获得什么方法,以及方法的输入输出类型。这种隐藏ADT内部细节的方法称为封装。 对象封装之后查询属性值必须通过

9、调用方法,OO模型的核心概念(续),4. 类(Class) 对象类(简称类):共享同样属性和方法集的所有对象构成了一个对象类 实例:一个对象是某一类的一个实例(instance),23.2.1 面向对象数据模型,23.2.1.1 OO模型的核心概念 23.2.1.2 类层次(结构) 23.2.1.3 继承 23.2.1.4 对象的嵌套,类层次(结构)(续),教员、行政人员、工人中只有本身的特殊属性和方法 同时它们又继承教职员工类和人的所有属性和方法 逻辑上它们具有人、教职员工和本身的所有属性和方法,图15.1 学校数据库的类层次结构图,类层次(结构)(续),超类/子类之间的关系体现了“IS A

10、”的语义 超类是子类的抽象(Generalization)或概括 子类是超类的特殊化(Specialization)或具体化 类层次可以动态扩展,一个新的子类能从一个或多个已有类导出,23.2.1 面向对象数据模型,23.2.1.1 OO模型的核心概念 23.2.1.2 类层次(结构) 23.2.1.3 继承 23.2.1.4 对象的嵌套,23.2.1.3 继承,单继承:一个子类只能继承一个超类的特性(包括属性和方法) 层次结构图是一棵树 多重继承:一个子类能继承多个超类的特性 层次结构图是一个带根的有向无回路图,继承(续),多重继承,具有多继承的类层次结构图,继承(续),继承性的优点 第一,

11、建模的有力工具,提供了对现实世界简明而精确的描述 第二,提供了信息重用机制 子类与超类的冲突 子类在定义自己特殊属性和方法时可能与继承下来的超类的属性和方法发生冲突 由系统解决,23.2.1 面向对象数据模型,23.2.1.1 OO模型的核心概念 23.2.1.2 类层次(结构) 23.2.1.3 继承 23.2.1.4 对象的嵌套,23.2.1.4 对象的嵌套,对象嵌套: 一个对象的属性可以是一个对象,这样对象之间产生一个嵌套层次结构 设Obj1和Obj2是两个对象。如果Obj2是Obj1的某个属性的值,称Obj2属于Obj1,或Obj1包含Obj2。 复杂对象 Obj1 子对象 Obj2

12、嵌套层次结构,对象的嵌套(续),汽车的嵌套层次图,对象的嵌套(续),对象嵌套层次结构和类层次结构形成了对象横向和纵向的复杂结构 各种类之间具有层次结构 某一个类内部也具有嵌套层次结构,关系模型与OO模型的比较,表15.1 关系数据模型与OO模型的比较,23.2 对象关系数据库系统,23.2.1 面向对象数据模型 23.2.2 对象-关系数据库 23.2.3 小结,23.2.2 对象-关系数据库,23.2.2.1 对象关系数据库系统中扩展的关系数据类型 23.2.2.2 对象关系数据库系统中扩展的对象类型及其定义 23.2.2.引用类型(Reference Type) 23.2.2.4 继承性

13、23.2.2.5 子表和超表,对象关系数据库系统中扩展的关系数据类型,扩展的类型: LOB BOOLEAN 集合类型ARRAY 用户定义的DISTINCT类型等 面向对象的数据类型 行类型ROW TYPE 抽象数据类型(Abstract Data Type),ORDBS中扩展的关系数据类型(续),大对象LOB(Large OBject )类型 LOB可存储多达十亿字节的串。 LOB分类 二进制大对象BLOB(Binary Large OBject) BLOB用于存储音频、图像数据 字符串大对象CLOB(Character Large OBject)。 CLOB用于存储长字符串数据,ORDBS中

14、扩展的关系数据类型(续),2. BOOLEAN类型 布尔类型,支持3个真值:true、false和unknown 操作符:NOT、AND、OR、EVERY、ANY 例如 WHERE EVERY(QTY200) 或WHERE ANY(QTY200) QTY列为空值:返回unknown; QTY列为非空: 当该列的每一个值都使(QTY200)为true时,EVERY返回true,否则为false; 当该列的每一个值都使(QTY200)为false时,ANY返回false,否则为true。,ORDBS中扩展的关系数据类型(续),3.集合类型(Collection Type)ARRAY 相同类型元素的

15、有序集合称为数组ARRAY SQL3新增的集合类型 允许在数据库的一列中存储数组 SQL3的数组只能是一维的 数组中的元素不能再是数组,ORDBS中扩展的关系数据类型(续),例2 CREATE TABLE SALES ( ITEM_NO CHAR(20), /*商品号*/ QTY INTEGER ARRAY12, /*整数数组,存放销售额*/ PRIMARY KEY(ITEM_NO) );,ORDBS中扩展的关系数据类型(续),向SALES表插入一个元组: INSERT INTO SALES(ITEM_NO,QTY)VALUES (T-shirt2000,ARRAY200,150,200,100,50,70, 80,200,10,20,100,200); 查找三月份销售额大于100的商品号: SELECT ITEM_NO FROM SALES WHERE QTY3100;,ORDBS中扩展的关系数据类型(续),4. DISTINCT类型 SQL3新加了一种DISTINCT类型 定义DISTINCT数据类型语法 CREAT TYPE AS FINAL ;,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号