数据库的新技术课件

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
图9.1 3个节点的分布式数数据据库库的系新技统术
9.1 分布式数据库系统
在这个系统中,每个本地数据库(DB1,DB2,DB3)及相关计算机组成分布式数据 库的一个节点。然后通过网络又把它们连接起来。通过本地服务器1的终端可以对本节点 联机的数据库(DB1)执行某些操作,或者通过网络对另一个数据库(DB2)执行某些操 作,或者对两个及两个以上的节点数据库执行某些操作。前两种是局部应用,最后一种是 全局应用。
addr );
addr_Type
数据库的新技术
9.2.2 对象关系数据库
语法上这和传统的建表语句类似。SQL3扩展的是:允许表中的属性列是对象类 型。
(3)抽象数据类型(Abastract Data Type,ADT) SQL3允许用户创建指定的带有自身行为说明和内部结构的用户定义类型称为抽 象数据类型。定义ADT的一般形式为:
9.1 分布式数据库系统
分布式数据库系统使用计算机网络将地理上分散,而管理和控制又需要不同程度集中 的多个逻辑单位连接起来,共同组成一个数据库系统。它由分布式数据库(DDB)和分布 式数据库管理系统(DDBMS)组成。数据由数据库管理系统统一管理,是物理上分散逻 辑上独立的数据库系统。物理分散性体现在数据在网络中是跨节点物理存储的,逻辑独立 性体现在从用户角度看是一个数据库。如图9.1所示是一个涉及3个节点的分布式数据库系 统。
city
street );
VARCHAR2(50) VARCHAR2(50)
CREATE TYPE name_Type AS OBJECT (
first_name VARCHAR2(30) last_name VARCHAR2(30) );
CREATE TABLE st2 (
sno sname
NUMBER, name_Type,
图9.2 图书管理的分布式数据库
数据库的新技术
9.1 分布式数据库系统
全校的逻辑图书数据库(DB)中图书表ts是虚表,图书信息实际存放在各校区数据 库图书表ts1、ts2和ts3中。
● 在校区1查询数据库方面的书。
SELECT书号,书名,作者,价格 FROM ts1 WHERE书名="数据库"
● 在全校查询数据库方面的书。
CREATE TYPE student4_Type
UNDER student_Type AS

INTEGER,
computer INTEGER )
FINAL;
数据库的新技术
9.2.2 对象关系数据库
定义行类型student_Type的子类student4_Type, 它继承了它父类的属性,同时又定 义子类自己的属性english和computer。FINAL表示该类型是类型层次的叶节点,NOT FINAL表示该类型不是类型层次的叶节点。
CREATE TABLE <表名> OF <行类型名>
数据库的新技术
9.2.2 对象关系数据库
例如:
CREATE ROW TYPE student_Type (
sno sname addr );
NUMBER, VARCHAR2(60),
VARCHAR2(100)
CREATE TABLE st1 OF student_Tpye
数据库的新技术
9.2 对象关系数据库系统
9.2.1 面向对象数据模型
面向对象数据库系统(OODB)支持OO模型。一个OO模型是用面向对象观点来描 述现实世界实体(对象)的逻辑组织、对象间限制、联系等的模型。
1.对象(Object) 对象是由一组数据结构和对此进行操作的程序代码封装后的基本单位,对象通常与 实体对应,一个对象包括以下几个部分。 ① 属性集合:属性描述对象的状态、组成和特性。对象的某一属性可以是单值或 值的集合,也可以是一个对象,即对象可以嵌套。这种嵌套可以继承,从而组成各种复 杂对象。 ② 方法集合:方法描述了对象的行为特性。方法的定义包括两部分,一是方法的 接口,二是方法的实现。方法的接口用以说明方法的名称、参数和结果返回值的类型。 方法的实现是一段程序编码,用以实现方法的功能,即对象操作的算法。 面向对象数据库中的每个对象都有一个唯一的不变的标识称为对象标识(OID)。 对象标识具有永久持久性,即一个对象一经产生,系统就会赋予一个在全系统中唯一的 对象标识符,直到它被删除。OID是由系统统一分配的,系统全局唯一的,用户不能对 OID进行修改。
( XH
PRIMARY KEY
);
(2)列对象与对象类型
ORDBMS中列对象的概念,可以创建一个对象类型,表的属性可以是该对象类 型。语句如下:
CREATE ROW TYPE <列类型名> AS OBJECT (<属性说明>);
数据库的新技术
9.2.2 对象关系数据库
例如:
CREATE TYPE addr_Type AS OBJECT (
数据库的新技术
9.3 并行数据库系统
并行数据库系统是并行计算机技术和数据库技术相结合的产物,能支持并行处理 体系结构,获得比串行系统下高得多的性能。解决了传统数据库中诸如磁盘“I/O”瓶颈 问题,大大提高了数据库的并行执行力度、数据库的执行速度等。
并行数据库系统的体系结构包括下列几种。 1.全共享结构 全共享结构并行数据库系统如图9.3所示,图中P表示处理机,M表示存储器,圆柱 体表示磁盘。在这种并行处理结构中,每个处理机共享系统中的主存储器和磁盘资源。 所有的处理机和磁盘访问一个公共的主存储器,通常通过总线或互联网进行访问。多处 理机之间的通信和数据交换通过共享的主存储器直接进行。这种结构又称为对称多处理 机SMP结构,其优点是通信效率极高,缺点是这种结构的规模不能超过32个或64个处 理机,随着处理机数目的增加,其网络拥塞程度也相应的增加,必然使总线或通信网络 成为瓶颈。
SELECT书号,书名,作者,价格 FROM ts WHERE书名="数据库"
分布式数据库系统从结构上可分为同构分布式数据库和异构分布式数据库。前者所 有数据库的数据模型都是一致的,从用户角度看,就好像是一个单一的数据库系统一样。 节点之间互相了解并协作处理用户的需求,每个节点都按照权限的不同交出部分自治权限 以改变模式或软件。后者是至少有一个数据库是非同种类别,不同的节点可以是不同的模 式和软件系统。组成异构分布式数据库系统的不同节点间可能并不互相了解,在系统处理 事务方面可能只能提供非常有限的帮助。
4.子表和超表 SQL3支持子表和超表的概念。超表、子表、子表的子表也构成一个表层次结构。表 层次和类型层次的概念十分相似。 如果一个基表是用类型来定义的,那么它可以有子表或/和超表。这些表就构成了一 个表层次。子表可以继承父表的属性、约束条件、触发器等,子表可以定义自己的新属性。 可以使用SQL的SELECT,INSERT,DELETE,UPDATE语句对这些表进行操作。 对某个表的查询其实是对该表和它所有子表中对象集合的查询。INSERT:向子表插入一 行时一般情况下会在该子表的超表上也插入一行。DELETE:从表删除一行时一般情况下 会在该表的超表和子表上也删除相应的一行。 可以使用ONLY“关闭”对子表的检索。办法是在FROM子句中使用ONLY将检索的对 象限制为指定表中的对象,而不是该表和它的子表中的对象。
数据库的新技术
9.2.2 对象关系数据库
例如:
CREATE ROW TYPE student_Type (
sno
NUMBER,
sname VARCHAR2(60),
addr
VARCHAR2(100)
);
CREATE ROW TYPE class_Type (
name
VARCHAR2(60),
teacher VARCHAR2(60)
1.对象关系数据库系统中扩展的对象类型及其定义 为了支持OO数据模型,SQL3扩展了面向对象的类型系统。在ORDBMS中,类型 (TYPE)具有类(CLASS)的特征,可以看成类。 (1)行对象与行类型 一行类型(ROW TYPE)可以使用如下语句定义:
CREATE ROW TYPE <行类型名>
(<属性说明>); 创建行类型表,把类型实例化:
数据库的新技术
9.2.2 对象关系数据库
对象关系数据库(ORDBS)保持了关系数据库系统的非过程化数据存取方式和数 据独立性,继承了关系数据库系统已有的技术,支持原有的数据管理,又能支持OO模 型和对象管理。
SQL3是1999年发布的SQL标准,也称为SQL99。其显著的特点之一是提供了面向 对象的扩展,增加了SQL/Object Language Binding。SQL3的扩展使人们可以同时处理 关系模型中的表和对象模型中的类与对象。SQL3最重要的扩展是面向对象的数据类型, 包括行类型ROW TYPE和抽象数据类型(Abstract Data Type)。
);
CREATE TABLE student OF student_Type;
CREATE TABLE class OF class_Type;
数据库的新技术
9.2.2 对象关系数据库
Student的元组与class的元组存在相互参照关系:某学生在某班。可以使用REF类
型描述这种参照关系:
CREATE ROW TYPE sc_Type
9.2.1 面向对象数据模型
4.继承(Inheritance) 在OO模型中常用的有两种继承,单继承与多重继承。若一个子类只能继承一个超类 的属性和方法,这种继承称为单继承;若一个子类能继承多个超类的特性,这种继承称为 多重继承。 例如,在学校的“在职研究生”,他们既是教员又是学生,在职研究生继承了教职员 工和学生两个超类的所有属性和方法。
CREATE TYPE <类型名> (
所有属性名及其类型说明, [定义该类型……] 定义该类型的其他函数(方法) );
2.参照类型(Reference Type) SQL3提供了一种特殊的类型:参照类型,也称为引用类型,简称REF类型。因 为类型之间可能具有相互参照的联系,因此引入了一个REF类型的概念: REF〈类型名〉 REF类型总是和某个特定的类型相联系。它的值是OID。OID是系统生成的,不 能修改。

student REF
(student_Type),
class
REF
(class_Type);
);
CREATE TABLE sc OF sc_Type;
这样,某一元组的student属性值是某个学生的OID,class属性值是这个学生在班
上的OID,从而描述了学生和班级相互的参照关系。
3.继承性
ORDBMS应该支持继承性,一般是单继承性。例如:
例如,一个涉及3个校区的图书管理的分布式数据库系统,每个校区有一个图书数据 库DBi(i=1,2,3),每个校区图书数据库存放的是存放在该校区的图书信息,学生在校 区借还图书操作的是该校区图书数据库,这是局部应用。但是学生在全校范围内查询需要 的图书,通过查询全校的逻辑图书数据库就可实现,这是全局应用,如图9.2所示。
数据库的新技术
9.2.1 面向对象数据模型
2.封装(Encapsulation) 每个对象是其状态与行为的封装,其中状态是该对象一系列属性值的集合,而行为 是在对象状态上操作的集合,操作也称为方法。对象封装之后查询属性值必须通过调用方 法,不能像关系数据库系统那样(用SQL)进行即席的(随机的)、按内容的查询,这就 不够方便灵活,失去了关系数据库的重要优点,因此在OODB中必须在对象封装方面做必 要的修改或妥协。 3.类(Class) 共享同样属性和方法集的所有对象构成了一个对象类(简称类),一个对象是某一 类的一个实例(Instance)。例如,“汽车”就是一个类,它包含了汽车的共同特征(如 型号、发动机排量、外观尺寸、颜色等),而对于“桑塔纳3000”则是汽车这个类的一个 具体实例。日常生活中会涉及各种类,如房子、蔬菜、学校等。 类属性的定义域可以是任何类,即可以是基本类,如整数、字符串、布尔型,也可 以是包含属性和方法的一般类。特别地,一个类的某一属性的定义也可是这个类自身。 超类是子类的抽象(Generalization)或概括,子类是超类的特殊化(Specialization) 或具体化。例如,卡车属于汽车,但卡车又有其特有的特征(如载重量),可以定义一个 卡车子类,它继承汽车类,同时它增加如载重量属性。这时,汽车是卡车的超类。在超类 修改后,子类将继承任何超类所做的修改。 在一个面向对象数据库模式中,对象的某一属性可以是单值的或值的集合。进一步 地,一个对象的属性也可以是一个对象,这样对象之间产生一个嵌套层次结构。对象嵌套 概念的是面向对象数据库系统中又一个重要概念。 数据库的新技术
相关文档
最新文档