对象数据库系统-new.ppt
《对象数据库系统-new.ppt》由会员分享,可在线阅读,更多相关《对象数据库系统-new.ppt(76页珍藏版)》请在三一办公上搜索。
1、第23章 对象数据库系统,23.1 研究动机示例23.2 ORDBMS23.3 OODBMS23.4 OODBMS和ORDBMS的比较,第23章 对象数据库系统,对象数据库系统两个发展方向面向对象的数据库系统目标是针对复杂对象扮演核心角色的应用领域,这种方法受面向对象的编程语言的影响。对象数据库管理组开发了新的标准:对象数据模型(ODM)和对象查询语言(OQL)。对象关系数据库系统扩展的关系型数据库系统。SQL:1999扩展了SQL标准以支持数据的对象关系模型。RDBMSOODBMSORDBMS,23.1 研究动机示例23.1.1 新的数据类型,SQL:1999 DDL语句描述的部分Dinky
2、的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 ASROW(tno integer,name text,address text,phone text);(4)CREAT TABLE Theaters
3、 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 integer,language text);,这一列值只
4、能引用第4行定义的theaters表中的行(一个给定的REF类型必须与一个特定的表相关联),23.1.2 操纵新数据类型,例1(P574)Clog 公司想租用一个Herbet 和日出图案的图像,并组合成包装盒。类SQL语法描述形式,一个用于查找可能需要的图像和它们的租借价格的查询。SELECT F.frameno,thumbnail(F.image),C.lease-priceFROM Frames F,Categories CWHERE F.category=C.cid AND is-sunrise(F.image)AND Is-herbert(F.image)thumbnail方法产生一个
5、输入图像的缩略图。Is-sunrises方法是一个分析图像的布尔函数,如果图像包含一个日出图案返回真。Is-herbert方法图像包含Herbert的图形时返回真。结果产生一个图形祯的代码号,图像缩略图和所有包含Herbert和日出图形的价格。,23.1.2 操纵新数据类型,例2(P575)在Andorra方圆100公里内正在放映Herbert电影的电影院名字。SELECT N.theatername,N.theateraddress,F.titleFROM Nowshowing N,Film F,Countries CWHERE N.film=F.filmno AND Overlaps(C.
6、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属性是每个电影中明星名字的集合Radius方法返回的第一参数为圆心,第二参数为半径的圆。overlap 测试空间重叠关系。,23.2
7、 对象关系数据库系统,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)集合描述了对象的行为特性,OO模型的核心概念(续),2.对象标识OID(Object IDentifier)概念:面向对象数据库中的
8、每个对象都有一个唯一的不变的标识称为对象标识(OID)特点:永久持久性 独立于值的、系统全局唯一的,OO模型的核心概念(续),3.封装(Encapsulation)每一个对象是其状态与行为的封装 封装是对象的外部界面与内部实现之间实行清晰隔离的一种抽象,DBMS不需要知道一个ADT的数据是如何存储的,也不需要知道ADT的方法是如何工作的。只需要知道能获得什么方法,以及方法的输入输出类型。这种隐藏ADT内部细节的方法称为封装。对象封装之后查询属性值必须通过调用方法,OO模型的核心概念(续),4.类(Class)对象类(简称类):共享同样属性和方法集的所有对象构成了一个对象类实例:一个对象是某一类
9、的一个实例(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”的语义超类是子类的抽象(Generalization)或概括子类是超类的特殊化(Specialization)或具体化类层次可以动态扩展,一个新的子类能从一
10、个或多个已有类导出,23.2.1 面向对象数据模型,23.2.1.1 OO模型的核心概念23.2.1.2 类层次(结构)23.2.1.3 继承23.2.1.4 对象的嵌套,23.2.1.3 继承,单继承:一个子类只能继承一个超类的特性(包括属性和方法)层次结构图是一棵树 多重继承:一个子类能继承多个超类的特性层次结构图是一个带根的有向无回路图,继承(续),多重继承,具有多继承的类层次结构图,继承(续),继承性的优点第一,建模的有力工具,提供了对现实世界简明而精确的描述第二,提供了信息重用机制 子类与超类的冲突子类在定义自己特殊属性和方法时可能与继承下来的超类的属性和方法发生冲突由系统解决,23
11、.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嵌套层次结构,对象的嵌套(续),汽车的嵌套层次图,对象的嵌套(续),对象嵌套层次结构和类层次结构形成了对象横向和纵向的复杂结构各种类之间具有层次结构某一个类内部也具有嵌套层次结构,关系模型与OO模
12、型的比较,表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 继承性23.2.2.5 子表和超表,对象关系数据库系统中扩展的关系数据类型,扩展的类型:LOBBOOLEAN集合类型ARRAY用户定义的DISTINCT类型等面向对象的数据类型行类型ROW TYPE抽象数据类型(Ab
13、stract Data Type),ORDBS中扩展的关系数据类型(续),大对象LOB(Large OBject)类型LOB可存储多达十亿字节的串。LOB分类二进制大对象BLOB(Binary Large OBject)BLOB用于存储音频、图像数据字符串大对象CLOB(Character Large OBject)。CLOB用于存储长字符串数据,ORDBS中扩展的关系数据类型(续),2.BOOLEAN类型 布尔类型,支持3个真值:true、false和unknown操作符:NOT、AND、OR、EVERY、ANY 例如 WHERE EVERY(QTY200)或WHERE ANY(QTY200
14、)QTY列为空值:返回unknown;QTY列为非空:当该列的每一个值都使(QTY200)为true时,EVERY返回true,否则为false;当该列的每一个值都使(QTY200)为false时,ANY返回false,否则为true。,ORDBS中扩展的关系数据类型(续),3.集合类型(Collection Type)ARRAY 相同类型元素的有序集合称为数组ARRAYSQL3新增的集合类型允许在数据库的一列中存储数组SQL3的数组只能是一维的数组中的元素不能再是数组,ORDBS中扩展的关系数据类型(续),例2CREATE TABLE SALES(ITEM_NO CHAR(20),/*商品号
15、*/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类型
16、定义DISTINCT数据类型语法 CREAT TYPE AS FINAL;,ORDBS中扩展的关系数据类型(续),没有使用DISTINCT类型例如,职工的智商字段(IQ)和鞋号字段(SHOE_SIZE)定义成INTEGER类型WHERE SHOE_SIZE IQ,ORDBS中扩展的关系数据类型(续),使用DISTINCT类型重新定义这两字段类型CREAT TYPE SHOE_SIZE_TYPE AS INTEGER FINAL;CREAT TYPE IQ_TYPE AS INTEGER FINAL;SHOE_SIZE_TYPE和IQ _TYPE成为两种不同的数据类型 表达式:WHERE SHO
17、E_SIZE IQ 是非法的如果在定义类型时设置了选项,下面用法也是合法的:WHERE MY_SHOE_SIZE CAST(MY_IQ AS SHOE_SIZE),23.2.2 对象-关系数据库,23.2.2.1 对象关系数据库系统中扩展的关系数据类型23.2.2.2 对象关系数据库系统中扩展的对象类型及其定义 23.2.2.3 参照类型(Reference Type)23.2.2.4 继承性23.2.2.5 子表和超表,ORDBS中扩展的对象类型及其定义,在ORDBMS中,类型(TYPE)具有类(CLASS)的特征,可以看成类1.行对象与行类型定义行类型(ROW TYPE):CREATE R
18、OW TYPE();,ORDBS中扩展的对象类型及其定义(续),创建行类型例3 CREATE ROW TYPE Person_type(pnoNUMBER,nameVARCHAR2(100),addressVARCHAR2(100);,ORDBS中扩展的对象类型及其定义(续),创建基于行类型的表 CREATE TABLE OF;例4 CREATE TABLE person_extent OF Person_type(pno PRIMARY KEY);,ORDBS中扩展的对象类型及其定义(续),2.列对象与对象类型 可以创建一个对象类型,表的属性可以是该对象类型。创建列对象语句如下:CREATE
19、 TYPE AS OBJECT();,ORDBS中扩展的对象类型及其定义(续),例5 CREATE TYPE address_objtyp AS OBJECT(streetVARCHAR2(50),cityVARCHAR2(50);CREATE TYPE name_objtyp AS OBJECT(first_nameVARCHAR2(30),last_nameVARCHAR2(30);,ORDBS中扩展的对象类型及其定义(续),创建表,定义其中的属性是对象类型例6 CREATE TABLE people_reltab(Id NUMBER(10),name_obj name_objtyp,ad
20、dress_obj address_objtyp);,ORDBS中扩展的对象类型及其定义(续),3.抽象数据类型(Abastract Data Type,ADT)概念:SQL3允许用户创建指定的带有自身行为说明和内部结构的用户定义类型称为抽象数据类型 定义ADT的一般形式为 CREATE TYPE(所有属性名及其类型说明,定义该类型函数(方法);,ADT的特点,(1)ADT的属性定义和行类型的属性定义类同。(2)在创建ADT的语句中,通过用户定义的函数比较对象的值。(3)ADT的行为通过方法(methods)、函数(functions)实现。(4)SQL3要求抽象数据类型是封装的,而行类型则不
21、要求封装。(5)ADT可以参与类型继承,23.2.2 对象-关系数据库,23.2.2.1 对象关系数据库系统中扩展的关系数据类型23.2.2.2 对象关系数据库系统中扩展的对象类型及其定义 23.2.2.3 参照类型(Reference Type)23.2.2.4 继承性23.2.2.5 子表和超表,23.2.2.3 参照类型(Reference Type),REF类型(参照类型、引用类型)引入的原因:类型之间可能具有相互参照的联系形式 REF 特点:REF类型总是和某个特定的类型相联系。它的值是OID,参照类型(续),创建两个表:Employee和Company,两表之间存在相互参照关系,即
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 对象 数据库 系统 new
![提示](https://www.31ppt.com/images/bang_tan.gif)
链接地址:https://www.31ppt.com/p-6274300.html