高级数据库技术之对象关系数据库.ppt
《高级数据库技术之对象关系数据库.ppt》由会员分享,可在线阅读,更多相关《高级数据库技术之对象关系数据库.ppt(36页珍藏版)》请在三一办公上搜索。
1、Chapter 9:对象-关系数据库,Chapter 9:对象-关系数据库,复杂数据类型与面向对象SQL中的结构数据类型与继承表继承SQL中的Array与Multiset类型 SQL中的对象标识及引用类型实现O-R特性持久化程序设计语言O-O与O-R数据库的比较,对象-关系数据模型,扩展关系数据模型:引入面向对象及处理新增数据类型的构造.允许元组属性具有复杂类型,包括非原子值(如嵌套关系).保持关系基础,尤其是对数据的描述性存取,同时扩展建模能力.与现有关系语言向上兼容.,复杂数据类型,动机:允许非原子域(原子 不可分)非原子域的例子:整数集合,元组集合可对具有复杂数据的应用进行更直观的建模直
2、观定义:所有允许使用原子(标量)值的地方可以使用关系 关系内的关系保持关系模型的数学基础违反第一范式,嵌套关系例,例如:图书馆信息系统每本书具有书名 作者集合出版商关键词集合非1NF关系 books,嵌套关系的1NF版本flat-books,flat-books,嵌套关系的4NF分解,假设flat-books 上有下列多值依赖:title authortitle keywordtitle pub-name,pub-branch将flat-books分解到4NF模式:(title,author)(title,keyword)(title,pub-name,pub-branch),flatbook
3、s的4NF分解,4NF 模式的问题,4NF设计要求用户在查询中包含连接.通过连接4NF关系而定义的1NF视图 flat-books:使用户不必执行连接,但丢失了元组与文档的一一对应.具有大量冗余嵌套关系表示法更自然.,复杂类型与SQL:1999/SQL:2003,为支持复杂类型而对SQL进行的扩充包括:集合体与大对象类型嵌套关系是集合体类型的例子结构类型类似符合属性的嵌套记录结构继承面向对象包含对象标识符和引用我们主要基于SQL:1999和SQL:2003标准进行描述在任何当前的数据库系统中都没有完全实现但某些特性在每个主要商业数据库系统中都存在请参阅你的数据库系统的手册,SQL中结构类型与继
4、承,SQL中可声明并使用结构类型 create type Name as(firstname varchar(20),lastname varchar(20)finalcreate type Address as(street varchar(20),city varchar(20),zipcode varchar(20)not final注:final 和 not final 指示是否可以创建子类型结构类型可用来创建具有复合属性的表 create table customer(nameName,addressAddress,dateOfBirth date)使用点表示法来引用成员:name.
5、firstname,结构类型(续),用户定义的行类型create type CustomerType as(name Name,address Address,dateOfBirth date)not final然后可以创建表,该表的行具有用户定义类型create table customer of CustomerType,方法,可以为结构类型增加方法声明method ageOnDate(onDate date)returns interval year方法体单独定义create instance method ageOnDate(onDate date)returns interval y
6、earfor CustomerTypebeginreturn onDate-self.dateOfBirth;end现在可以求出每个客户的年龄:select name.lastname,ageOnDate(current_date)from customer,继承,假设有下列关于人的类型定义:create type Person(name varchar(20),address varchar(20)利用继承定义学生和教师类型 create type Student under Person(degree varchar(20),department varchar(20)create typ
7、e Teacher under Person(salary integer,department varchar(20)子类型可以在方法声明中通过用overriding method代替method来重定义方法,多重继承,SQL:1999和SQL:2003 不支持多重继承如果类型系统支持多值继承,可以如下定义助教类型:create type Teaching Assistant under Student,Teacher为避免两个department 之间的名字冲突,可以重命名 create type Teaching Assistant under Student with(departme
8、nt as student-dept),Teacher with(department as teacher-dept),表继承,表继承通过允许一个实体同时存在于多个表中,使得对象可具有多个类型.例如 people 表:create table people of Person可定义people 的子表students 和 teacherscreate table students of Student under peoplecreate table teachers of Teacher under people子表的类型必须是父表类型的子类型.因此people中的每个属性也存在于子表中.
9、子表中的每个元组隐含地存在于其父表中.因此查询people不仅查到直接插入其中的元组,还能查到插入其子表students 和 teachers中的元组(仅返回people中存在的属性).只查询people中独有的元组:使用only peopleonly还可用于delete和update语句,这时子表中的元组不受更新操作影响.在概念上,多重继承对于表也是可能的.但SQL不支持.create table teaching-assistants of Teaching Assistant under students,teachers,对子表的一致性要求,子表元组s对应父表元组t:s在所有继承属性上
10、与t具有相同的值.s和t表示的是同一实体对子表的一致性要求超表中的每条元组在每个直接子表中最多只能与一条元组对应.例如:students 中不能有两条元组对应于同一个people元组SQL还有一条限制:相互对应的所有元组必须是由(插入到某个表中的)同一条元组派生的.问:people中的元组p能同时对应于students中的s和teachers中的t吗?除非p、s和t都是因为向teaching-assistants 表插入了一条元组而隐含派生的.但SQL并不支持多重继承,因此上述限制实际上给出了否定答案.但可以不通过继承来表示TA,而是通过创建单独的表:people,students和 teac
11、hers,后两个表包含Person的键及自身的特殊属性.添加引用完整性约束来确保数据一致性:即students和teachers的元组必须出现在people中.,SQL中的Array与Multiset类型,SQL支持两种集合体类型:array和multisetSQL:1999开始加入了array,SQL:2003开始加入了multisetset是multiset的特例支持E-R中的多值属性的建模array与multiset声明的例子:create type Publisher as(name varchar(20),branch varchar(20)create type Book as(t
12、itle varchar(20),author_array varchar(20)array 10,pub_date date,publisher Publisher,keyword_set varchar(20)multiset)create table books of Book类似于嵌套关系books,但用了作者array 而不是集合,创建及访问集合体类型的值,Array array Silberschatz,Korth,SudarshanMultisets multiset computer,database,SQL创建books关系所定义的类型的元组:(Compilers,array
13、Smith,Jones,new Publisher(McGraw-Hill,New York),multiset parsing,analysis)注意:构造子函数Publisher()需要显式创建插入该元组到关系books insert into booksvalues(Compilers,arraySmith,Jones,new Publisher(McGraw-Hill,New York),multiset parsing,analysis),查询具有集合体值的属性,求所有具有关键词“database”的书select titlefrom bookswhere database in(u
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 高级 数据库技术 对象 关系 数据库
![提示](https://www.31ppt.com/images/bang_tan.gif)
链接地址:https://www.31ppt.com/p-6069785.html