查询设计 某个学生选课系统数据库设计有如下表结构: 学生(学号,姓名,性别,出生日期,班级)

分布式数据库系统及其应用 B7%D6%B2%BC%CA%BD%CA%FD%BE%DD… · 分布式 数据库系统 ... 对第五至七章,除修改、补充和进一步完善外,新增加的内容包括分布式事务 ...
中国科学院研究生教学丛书
分布式数据库系统及其应用
(第二版)
邵佩英 编著
内 容 简 介
  本书在第一版的基础上做了较大的修改,增加了与分布式数据库技术密切相关
的、新的网络与数据库的接口技术,基于组件的新的软件开发方法,WWW 数据库,移动
数据库,数据仓库和数据挖掘等内容,反映了分布式数据库技术和应用开发的新的发展
趋势。本书还增加了习题和部分习题的参考答案。本书对分布式数据库系统的基本内容
提供了翔实的讲解,对一些有争议的问题进行了开放式讨论,但对深奥的理论没有采用
繁琐的证明方法,而是采用大量的图示和实例做浅显的解释,从而增加了它的知识性和
易理解性。
本书可作为计算机专业高年级本科生的选修课教材,特别适合作研究生的专业课
教材,也可作为从事计算机信息处理研究或相关应用开发人员的参考书。
 图书在版编目(CIP)数据
 分布式数据库系统及其应用/邵佩英编著.-2版.北京:科学出版社,2005 (中国科学院研究生教学丛书) ISBN 7?03?015113?5
 Ⅰ.分… Ⅱ.邵… Ⅲ.分布式数据库?数据库系统 Ⅳ.T P311.13
 中国版本图书馆 CIP 数据核字(2005)第 016526 号
责任编辑:鞠丽娜/责任校对:刘彦妮
责任印制:吕春珉/封面设计:槐寿明
北 京 东 黄 城 根 北 街 1 6 号
邮 政 编 码 : 1 0 0 7 1 7
h t t p ://w w w .sc ie n c ep .co m
科学出版社发行 各地新华书店经销
2000 年 6 月 第 一 版  开 本 :787× 1092 1/16
2005 年 3 月 第 二 版  印 张 :25 3/4
2005 年 3 月 第 五 次 印 刷     字 数 :608 000
印 数 :8 001— 12 000
定价:38.00 元
(如有印装质量问题,我社负责调换枙新欣枛)
销售部电话 010- 62136131  编辑部电话 010-62138978-8002
枟中 国 科 学 院 研 究 生 教 学 丛 书 枠 总编委会
主  任: 白春礼
副 主 任: 余翔林 师昌绪 杨 乐 汪尔康 沈允钢
黄荣辉 叶朝辉 李 佩
委  员: 朱清时 匡廷云 叶大年 王 水 冯克勤
冯玉琳 刘政凯 龚 立 侯建勤
枟中 国 科 学 院 研 究 生 教 学 丛 书 枠
技 术 学 科 编 委 会
主  编: 师昌绪
副 主 编: 冯玉琳
编  委: 刘政凯 徐至展 陈先霖 王占国 马颂德
吴承康 史忠植
枟中国科学院研究生教学丛书 枠序
在 21世纪曙光初露,中国科技、教育面临重大改革和蓬勃发展
之际,枟中国科学院研究生教学丛书枠——这套凝聚了中国科学院新
老科学家、研究生导师们多年心血的研究生教材面世了。 相信这套
丛书的出版,会在一定程度上缓解研究生教材不足的困难,对提高
研究生教育质量起着积极的推动作用。
21世纪将是科学技术日新月异,迅猛发展的新世纪,科学技术
将成为经济发展的最重要的资源和不竭的动力,成为经济和社会发
展的首要推动力量。 世界各国之间综合国力的竞争,实质上是科技
实力的竞争。而一个国家科技实力的决定因素是它所拥有的科技人
才的数量和质量。我国要想在 21世纪顺利地实施“科教兴国”和“可
持续发展”战略,实现小平同志规划的第三步战略目标——把我国
建设成中等发达国家,关键在于培养造就一支数量宏大、素质优良、
结构合理,有能力参与国际竞争与合作的科技大军,这是摆在我国
高等教育面前的一项十分繁重而光荣的战略任务。
中国科学院作为我国自然科学与高新技术的综合研究与发展
中心,在建院之初就明确了出成果出人才并举的办院宗旨,长期坚
持走科研与教育相结合的道路,发挥了高级科技专家多,科研条件
好,科研水平高的优势,结合科研工作,积极培养研究生;在出成果
的同时,为国家培养了数以万计的研究生。当前,中国科学院正在按
照江泽民同志关于中国科学院要努力建设好“三个基地”的指示,在
建设具有国际先进水平的科学研究基地和促进高新技术产业发展
基地的同时,加强研究生教育,努力建设好高级人才培养基地,在肩
负起发展我国科学技术及促进高新技术产业发展重任的同时,为国
家源源不断地培养输送大批高级科技人才。
质量是研究生教育的生命,全面提高研究生培养质量是当前我
国研究生教育的首要任务。研究生教材建设是提高研究生培养质量
的一项重要的基础性工作。 由于各种原因,目前我国研究生教材的
建设滞后于研究生教育的发展。 为了改变这种情况,中国科学院组
织了一批在科学前沿工作,同时又具有相当教学经验的科学家撰写
研究生教材,并以专项资金资助优秀的研究生教材的出版。 希望通
过数年努力,出版一套面向 21世纪科技发展,体现中国科学院特色
的高水平的研究生教学丛书。 本丛书内容力求具有科学性、系统性
和基础性,同时也兼顾前沿性,使阅读者不仅能获得相关学科的比
较系统的科学基础知识,也能被引导进入当代科学研究的前沿。 这
套研究生教学丛书,不仅适合于在校研究生学习使用,也可以作为
高校教师和专业研究人员工作和学习的参考书。
“桃李不言,下自成蹊。”我相信,通过中国科学院一批科学家的
辛勤耕耘,枟中国科学院研究生教学丛书枠将成为我国研究生教育园
地的一丛鲜花,也将似润物春雨,滋养莘莘学子的心田,把他们引向
科学的殿堂,不仅为科学院,也为全国研究生教育的发展作出重要
· ii· 分布式数据库系统及其应用
本书作为中国科学院研究生教学丛书之一已经出版四年多了。据有关部门反映,这是
一本备受欢迎的数据库系统教材。 它全面、系统地阐述了分布式数据库系统的基本理论、
概念原理、结构特点、存在问题、设计思想、技术方法;重点论述了分布式数据库的查询优
化、事务管理、并发控制、可靠性、安全性和目录管理;讨论了客户机/服务器模式的概念、
结构、工作方式以及与分布式数据库系统的关系;展望了分布式数据库系统的发展前景。
现代数据库管理技术在当前信息社会中的关键作用已经变得更加清晰,毕竟
Internet 仅仅是一个通信系统,它的真正价值是从数据库中读取或存入数据和信息。 因
此,随着 Int ernet 和无线技术的发展,特别是 WWW 建立以来,它们与分布式数据库有着
极其紧密的关系。从特定意义上说,整个 Internet 就是一个巨大的“分布式数据库”。同时,
随着时间的推移,本书中的内容,特别是后面部分的内容,已经有了相当大的变化。与分布
式数据库技术密切相关的、新的数据库与网络的接口技术、新的软件开发方法、WWW 数
据库、移动数据库的产生和应用,以及数据仓库、联机分析处理(OLA P)和数据挖掘已经
成为了数据库技术研究、开发和应用最活跃的热点之一。
考虑到上述原因,作者根据本人的教学实践和有关反馈信息,对第一版中的内容做了
如下几个方面的修改。
对第一至四章的修改主要是调整结构、补充和进一步完善有关内容。
对第五至七章,除修改、补充和进一步完善外,新增加的内容包括分布式事务管理的
可串行化调度测试,两阶段封锁协议的实现方法,基于时间戳排序的多版本技术,采用验
证锁的多版本两阶段封锁技术;关于分布式可靠性协议中的网络分割与提交协议;分布式
数据库安全中的用户账户和数据库审计,统计数据库的安全性,数据加密技术,目录管理
的重要性等内容。
对第八章的修改除调整结构、补充和进一步完善外,新增加了客户机/服务器计算模
式的远景展望,创建基于客户机/服务器模式系统的自动化设计工具,创建基于客户机/服
务器模式系统的技术和方法,基于组件的软件开发技术,异构数据源访问接口技术和方法
删除了第一版的第九章,本书新增加的第九章是:分布式数据库与 WWW 数据库和
移动数据库。这两类数据库与分布式数据库有着极其紧密的关系,研究支持它们的基本技
术,并考察它们将会如何影响分布式数据库系统。
对第十章的修改除调整结构、补充和进一步完善外,新增加了对象?关系数据库系统
的产生和发展,重点介绍 SQ L 3语言对对象?关系数据库系统的支持,讨论嵌套关系模型。
本书增加了第十一章:数据仓库与数据挖掘。本章概括地论述了数据库技术的最新应
用领域:数据仓库、联机分析处理和数据挖掘的关键概念、数据模型、功能结构、技术方法,
通过实例给出支持决策的方法,以及介绍了一些预期的研究方向。数据仓库可以看成是要
求事先进行多种活动的一种过程;数据挖掘可以认为是从现存的数据仓库中发现知识的
一个活动。
本书增加的章后练习习题涉及了概念、理论、算法、技术和方法。给出章后练习习题的
目的在于使学生们能对每一章学到的知识进行复习、回顾和系统化,有的习题还要求将所
学知识应用到一个小的、实际的,但有约束的例子中,以进一步巩固所学的知识。
本书第二版继续保持了第一版的特点。所有概念都以一种技术上完备,而又易于理解
的方式表达,并尽量减少各种符号的使用。 它没有采用繁琐的证明方法,而是采用了大量
的图示和实例描述概念和预期的结果,从而进一步增加了它的知识性和易理解性。本书内
容涵盖了分布式数据库研究领域的各个关键问题,并以真实的实例系统引入分布式数据
库的设计技术和方法。书中对分布式数据库技术的基本内容提供翔实的讲解,对深奥的理
论做了浅显的解释,对一些有争议的问题进行了开放式的讨论,并充分反映了分布式数据
库技术和应用开发的新的发展趋势。通过本书的学习,读者可以对分布式数据库系统的整
体结构、设计技术和关键问题有深入的认识和理解,同时可以熟识分布式数据库系统的理
论基础和应用方法。
作者认为应当用一年的时间来学习这门课程。但是如果仅仅有一个学期的时间,可以
选择本书的第一至七章进行系统学习,而将八至十一章作为参考资料。
本书适合作为计算机专业高年级本科生的选修课教材,特别适合作为研究生的专业
课教材,还可作为高校教师及从事计算机信息处理研究或相关应用开发人员工作和学习
的参考资料。 在学习本书之前,读者应具有数据库的基本概念和基础知识。
罗晓沛、孙淑玲、李伯民、陈伯飞仔细审阅了全书;宋纲、陈铭、王辉、祝孔强、阚劲松、
颜涯等同学为本书提供有关资料。 科学出版社的有关工作人员为本书的出版做了大量工
作,在此一并表示衷心的感谢。
2004 年 12 月
· iv· 分布式数据库系统及其应用
第一章 分布式数据库系统概述 1……………………………………………………………
1.1 分布式数据库系统的由来与发展 1………………………………………………
  1.1.1 分布式数据库系统的由来 1……………………………………………………
  1.1.2 分布式数据库系统的发展 1……………………………………………………
1.2 分布式数据库系统的定义与分类 4………………………………………………
  1.2.1 分布式数据库系统的定义 4……………………………………………………
  1.2.2 分布式数据库系统的分类 6……………………………………………………
1.3 分布式数据库系统的体系结构和组成成分 8……………………………………
  1.3.1 分布式数据库系统的体系结构 8………………………………………………
  1.3.2 分布式数据库的组成成分 9……………………………………………………
  1.3.3 分布式数据库中数据的分片与分布 9……………………………………………
  1.3.4 分布式数据库的模式结构 12……………………………………………………
  1.3.5 分布式数据库管理系统的功能结构 15…………………………………………
  1.3.6 分布式数据库管理系统的一种参考模型 17……………………………………
1.4 分布式数据库系统中数据的独立性与分布透明性 25……………………………
  1.4.1 分布式数据库系统中数据的独立性与分布透明性概述 25………………………
  1.4.2 分布式数据库简单查询与分布透明性 26………………………………………
  1.4.3 分布式数据库复杂查询与分布透明性 29………………………………………
  1.4.4 分布式数据库更新应用与分布透明性 31………………………………………
1.5 分布式数据库系统的优点和存在的技术问题 34…………………………………
  1.5.1 分布式数据库系统的优点 34……………………………………………………
  1.5.2 分布式数据库系统中存在的技术问题 35………………………………………
1.6 本章小结 37…………………………………………………………………………
习题 38……………………………………………………………………………………
第二章 分布式数据库系统的设计 39………………………………………………………
2.1 分布式数据库系统设计概述 39……………………………………………………
  2.1.1 分布式数据库系统的创建方法 39………………………………………………
  2.1.2 分布式数据库系统设计的内容 41………………………………………………
  2.1.3 分布式数据库设计的目标 41……………………………………………………
  2.1.4 分布式数据库设计的方法 43……………………………………………………
2.2 自顶向下设计分布式数据库 44……………………………………………………
  2.2.1 自顶向下设计分布式数据库的步骤和内容 44……………………………………
  2.2.2 数据的分片设计 44……………………………………………………………
  2.2.3 数据库片段的位置分配设计 49…………………………………………………
2.3 DA T AID?D 方法 52………………………………………………………………
  2.3.1 DAT A ID?D 方法概述 52………………………………………………………
  2.3.2 分布要求分析阶段 53…………………………………………………………
  2.3.3 分布设计阶段 54………………………………………………………………
2.4 实例研究:飞机订票系统 55………………………………………………………
  2.4.1 实例研究概述 55………………………………………………………………
  2.4.2 飞机订票系统中的分布要求分析 57……………………………………………
  2.4.3 飞机订票系统中的分布设计 59…………………………………………………
2.5 自底向上设计分布式数据库 61……………………………………………………
  2.5.1 自底向上设计分布式数据库要解决的问题 61……………………………………
  2.5.2 构造全局模式的设计问题和解决方法 62………………………………………
  2.5.3 自底向上综合的一个例子 65……………………………………………………
2.6 本章小结 66…………………………………………………………………………
习题 67……………………………………………………………………………………
第三章 分布式数据库中的查询处理和优化 69……………………………………………
3.1 分布式查询优化概述 69……………………………………………………………
  3.1.1 分布式查询优化的目标 69……………………………………………………
  3.1.2 分布式查询优化的准则和代价估算 69…………………………………………
  3.1.3 分布式查询策略的重要性 70……………………………………………………
3.2 分布式查询优化中的基础知识 72…………………………………………………
  3.2.1 用关系代数表达式和 SQL 语句表示一个查询 72………………………………
  3.2.2 查询树 73……………………………………………………………………
  3.2.3 等价变换规则的概念和术语 74…………………………………………………
  3.2.4 等价变换规则 75………………………………………………………………
3.3 分布式查询的分类与层次结构 76…………………………………………………
  3.3.1 分布式查询的分类 76…………………………………………………………
  3.3.2 分布式查询处理的层次结构 78…………………………………………………
3.4 基于关系代数等价变换的查询优化处理 79………………………………………
  3.4.1 基于关系代数等价变换查询优化处理的基本原理和实现方法 79…………………
  3.4.2 基于关系代数等价变换的查询优化处理举例 80…………………………………
3.5 基于半连接算法的查询优化处理 83………………………………………………
  3.5.1 采用半连接方法表示连接操作 83………………………………………………
  3.5.2 采用半连接算法优化连接操作的基本原理和步骤 84……………………………
3.6 基于直接连接算法的查询优化处理 85……………………………………………
  3.6.1 利用站点依赖信息的算法 85……………………………………………………
  3.6.2 分片和复制算法 87……………………………………………………………
  3.6.3 站点依赖和数据复制结合 89……………………………………………………
· vi· 分布式数据库系统及其应用
  3.6.4 Hash 划分算法 90……………………………………………………………
  3.6.5 不同方法的比较 92……………………………………………………………
3.7 直接连接操作的常用策略 92………………………………………………………
  3.7.1 直接连接操作的一般常用策略 92………………………………………………
  3.7.2 利用并行性的直接连接操作策略 93……………………………………………
3.8 本章小结 94…………………………………………………………………………
习题 95……………………………………………………………………………………
第四章 分布式数据库中的事务管理和恢复 97……………………………………………
4.1 分布式事务概述 97…………………………………………………………………
  4.1.1 分布式事务定义和特性 97……………………………………………………
  4.1.2 分布式事务的结构和事务状态 99………………………………………………
  4.1.3 分布式事务管理的问题和目标 102……………………………………………
4.2 分布式事务的执行与恢复 104……………………………………………………
  4.2.1 分布式事务管理的抽象模型 104………………………………………………
  4.2.2 分布式事务执行的控制模型 105………………………………………………
  4.2.3 分布式数据库系统中的故障 107………………………………………………
  4.2.4 事务故障恢复的基本概念 108…………………………………………………
  4.2.5 事务故障的恢复 111…………………………………………………………
  4.2.6 分布式事务的执行与恢复举例 113……………………………………………
4.3 两阶段提交协议 114………………………………………………………………
  4.3.1 两阶段提交协议的基本思想和内容 114…………………………………………
  4.3.2 两阶段提交协议的通信结构 117………………………………………………
  4.3.3 两阶段提交协议与故障恢复 122………………………………………………
4.4 分布式数据库中的数据更新 124…………………………………………………
  4.4.1 多站点的数据更新 124…………………………………………………………
  4.4.2 主文本更新法 125……………………………………………………………
  4.4.3 快照方法 126…………………………………………………………………
4.5 分布式事务增强数据库一致性 127………………………………………………
  4.5.1 业务规则的一致性 127…………………………………………………………
  4.5.2 冗余数据的一致性 128…………………………………………………………
4.6 本章小结 130………………………………………………………………………
习题 130……………………………………………………………………………………
第五章 分布式数据库中的并发控制 131……………………………………………………
5.1 并发控制的概念和理论 131………………………………………………………
  5.1.1 并发控制的概念 131…………………………………………………………
  5.1.2 事务可串行化理论的基本概念 133……………………………………………
  5.1.3 分布式事务的可串行化理论 134………………………………………………
  5.1.4 分布式事务的可串行化调度测试 136…………………………………………
目  录 · v ii·
  5.1.5 并发控制机制的常用方法及其分类 139…………………………………………
5.2 分布式数据库系统并发控制的封锁技术 141……………………………………
  5.2.1 基于封锁的并发控制方法概述 141……………………………………………
  5.2.2 两阶段封锁协议 147…………………………………………………………
  5.2.3 两阶段封锁协议的实现方法 150………………………………………………
  5.2.3 多粒度封锁与意想锁 152………………………………………………………
5.3 分布式数据库系统中的死锁处理 156……………………………………………
  5.3.1 全局死锁与等待图 156…………………………………………………………
  5.3.2 死锁的预防方法 158…………………………………………………………
  5.3.3 死锁的检测和解决方法 159……………………………………………………
5.4 分布式数据库系统并发控制的时标技术 162……………………………………
  5.4.1 基于时标的并发控制方法 162…………………………………………………
  5.4.2 基本时标法 164………………………………………………………………
  5.4.3 保守时标法 164………………………………………………………………
5.5 分布式数据库系统并发控制的多版本技术 166…………………………………
  5.5.1 基于时间戳排序的多版本技术 166……………………………………………
  5.5.2 采用验证锁的多版本两阶段封锁 167…………………………………………
5.6 分布式数据库系统并发控制的乐观方法 168……………………………………
5.7 本章小结 170………………………………………………………………………
习题 171……………………………………………………………………………………
第六章 分布式数据库中的可靠性 173………………………………………………………
6.1 分布式数据库可靠性的概念及其度量 173………………………………………
  6.1.1 分布式数据库可靠性的概念 173………………………………………………
  6.1.2 平均故障间隔时间和平均修复时间 174…………………………………………
6.2 分布式数据库系统的故障原因和容错技术 175…………………………………
  6.2.1 分布式数据库系统中系统失败的原因 175………………………………………
  6.2.2 基本的容错方法和技术 177……………………………………………………
6.3 分布式数据库的可靠性协议 179…………………………………………………
  6.3.1 分布式数据库可靠性协议的组成 179…………………………………………
  6.3.2 两阶段提交协议的演变 180……………………………………………………
  6.3.3 事务阻断与终结协议 181………………………………………………………
  6.3.4 两阶段提交协议的终结协议 182………………………………………………
  6.3.5 两阶段提交协议的恢复协议 185………………………………………………
  6.3.6 三阶段提交协议 187…………………………………………………………
6.4 网络分割与提交协议 190…………………………………………………………
  6.4.1 网络分割概述 190……………………………………………………………
  6.4.2 网络分割的提交协议 191………………………………………………………
6.5 不一致性的检测和解决方法 197…………………………………………………
· viii· 分布式数据库系统及其应用
  6.5.1 决定网络的状态 197…………………………………………………………
  6.5.2 不一致性的检测和解决方法 199………………………………………………
  6.5.3 检查点和冷启动 201…………………………………………………………
6.6 本章小结 203………………………………………………………………………
习题 204……………………………………………………………………………………
第七章 分布式数据库的安全性与目录管理 206……………………………………………
7.1 数据库安全性概述 206……………………………………………………………
  7.1.1 数据库安全性的概念 206………………………………………………………
  7.1.2 分布式数据库的不安全因素 207………………………………………………
  7.1.3 分布式数据库安全需求和安全措施分析 208……………………………………
  7.1.4 分布式数据库的用户账户和数据库审计 210……………………………………
7.2 安全数据模型与多级安全数据库 211……………………………………………
  7.2.1 数据库安全术语与基本概念 211………………………………………………
  7.2.2 基于授予/收回权限的自主访问控制 213………………………………………
  7.2.3 多级安全 BLP 模型 217………………………………………………………
  7.2.4 基于多级安全性分类级别标记的强制访问控制 219……………………………
7.3 统计数据库的安全性 222…………………………………………………………
7.4 数据加密 223………………………………………………………………………
  7.4.1 数据加密概述 223……………………………………………………………
  7.4.2 公开密钥加密算法和数据签名 224……………………………………………
7.5 计算机系统与数据库管理系统的安全评估标准 226……………………………
  7.5.1 计算机系统的安全评估标准 226………………………………………………
  7.5.2 数据库管理系统的安全评估标准 227…………………………………………
  7.5.3 当前流行的几种 RDBM S 安全机制 228…………………………………………
7.6 分布式数据库的目录结构和管理 231……………………………………………
  7.6.1 分布式数据库目录的重要性 231………………………………………………
  7.6.2 分布式数据库目录的内容及用途 232…………………………………………
  7.6.3 分布式数据库目录系统的组织方式及逻辑结构 234……………………………
  7.6.4 分布式数据库目录的分布方式 236……………………………………………
  7.6.5 具有站点自治性的对象命名和目录管理 237……………………………………
7.7 分布式数据库中权限保护和用户识别 238………………………………………
  7.7.1 分布式数据库中的权限和保护 238……………………………………………
  7.7.2 分布式数据库中权限规则的分布 239…………………………………………
  7.7.3 分布式数据库系统中的用户识别和分类 239……………………………………
7.8 本章小结 240………………………………………………………………………
习题 241……………………………………………………………………………………
第八章 分布式数据库与客户机/服务器模式 242…………………………………………
8.1 客户机/服务器计算模式 242………………………………………………………
目  录 · ix ·
  8.1.1 客户机/服务器计算模式概念 242………………………………………………
  8.1.2 客户机/服务器环境下应用成分的分布和开放性 244……………………………
  8.1.3 客户机/服务器模式的体系结构 246……………………………………………
8.2 客户机/服务器模式的定位 249……………………………………………………
  8.2.1 计算环境演变的分析 249………………………………………………………
  8.2.2 客户机/服务器模式的定位 253…………………………………………………
8.3 客户机/服务器模式的特性和优缺点 254…………………………………………
  8.3.1 客户机/服务器模式的特性 254…………………………………………………
  8.3.2 客户机/服务器模式的优点与不足 255…………………………………………
8.4 客户机/服务器模式的远景展望 256………………………………………………
8.5 分布式数据与分布式访问 259……………………………………………………
  8.5.1 从集中式到分布式数据的转移 259……………………………………………
  8.5.2 数据分布的基本形式 260………………………………………………………
  8.5.3 数据分布的技术 264…………………………………………………………
  8.5.4 分布式数据的访问 266…………………………………………………………
8.6 创建基于客户机/服务器模式的数据库系统 269…………………………………
  8.6.1 创建客户机/服务器系统的自动化设计工具 269…………………………………
  8.6.2 创建客户机/服务器系统的技术和方法 274……………………………………
  8.6.3 基于组件的软件开发技术和方法 275…………………………………………
  8.6.4 异构数据源访问接口技术和方法 278…………………………………………
8.7 本章小结 281………………………………………………………………………
习题 281……………………………………………………………………………………
第九章 分布式数据库与 WWW 数据库和移动数据库 283………………………………
9.1 WWW 数据库系统的产生及其运行环境 283……………………………………
  9.1.1 WWW 数据库系统的产生 283…………………………………………………
  9.1.2 统一资源定位器和超文本传输协议 283…………………………………………
  9.1.3 超文本标记语言和主页 285……………………………………………………
9.2 WWW 数据库系统的体系结构 287………………………………………………
  9.2.1 概述 287………………………………………………………………………
  9.2.2 WWW 浏览器 288……………………………………………………………
  9.2.3 WWW 服务器 289……………………………………………………………
9.3 WWW 数据库 290…………………………………………………………………
  9.3.1 WWW 数据库的建立和访问 290………………………………………………
  9.3.2 WWW 数据库接口 292…………………………………………………………
  9.3.3 WWW 数据库面临的问题 295…………………………………………………
9.4 移动数据库系统概述 296…………………………………………………………
  9.4.1 移动数据库的产生背景 296……………………………………………………
  9.4.2 移动计算环境的体系结构 297…………………………………………………
· x· 分布式数据库系统及其应用
  9.4.3 移动数据库系统的参考模型 299………………………………………………
9.5 移动数据库系统的数据管理问题 300……………………………………………
  9.5.1 移动应用中的数据 300…………………………………………………………
  9.5.2 移动计算环境下的数据管理问题 301…………………………………………
9.6 移动数据库系统实现技术和应用研究 302………………………………………
  9.6.1 移动数据库数据的同步复制 302………………………………………………
  9.6.2 移动数据库数据的移动事务管理 304…………………………………………
  9.6.3 移动数据库系统的微型化 305…………………………………………………
9.7 间歇同步移动数据库 306…………………………………………………………
9.8 本章小结 306………………………………………………………………………
习题 308……………………………………………………………………………………
第十章 分布式数据库系统的发展趋势 309…………………………………………………
10.1 并行数据服务器与分布式数据库系统 309………………………………………
  10.1.1 并行数据服务器体系结构 309…………………………………………………
  10.1.2 并行数据服务器数据定位 312…………………………………………………
  10.1.3 并行操作处理的算法 315……………………………………………………
  10.1.4 并行查询处理的算法 321……………………………………………………
10.2 分布式知识库系统 322……………………………………………………………
  10.2.1 知识库 322……………………………………………………………………
  10.2.2 逻辑查询处理 325……………………………………………………………
  10.2.3 并行递归查询处理 327………………………………………………………
10.3 分布式面向对象数据库 332………………………………………………………
  10.3.1 面向对象数据库 333…………………………………………………………
  10.3.2 分布式对象管理 335…………………………………………………………
10.4 对象?关系数据库 337……………………………………………………………
  10.4.1 对象?关系数据库系统产生背景 337……………………………………………
  10.4.2 对象?关系数据库系统的特点 338……………………………………………
  10.4.3 SQL 3 标准对对象?关系系统的支持 339………………………………………
  10.4.4 扩展类型系统的实现以及相关问题 341………………………………………
  10.4.5 嵌套关系数据模型 342………………………………………………………
10.5 本章小结 344………………………………………………………………………
习题 345……………………………………………………………………………………
第十一章 数据仓库和数据挖掘 347…………………………………………………………
11.1 数据仓库 347………………………………………………………………………
  11.1.1 数据仓库的定义、特征和结构 347……………………………………………
  11.1.2 数据仓库的元数据 351………………………………………………………
  11.1.3 数据仓库的数据模型 353……………………………………………………
  11.1.4 数据仓库的设计 357…………………………………………………………
目  录 · x i·
  11.1.5 数据仓库实现中的困难和开放问题 362………………………………………
11.2 联机分析处理 363…………………………………………………………………
  11.2.1 OLAP 的数据组织 363………………………………………………………
  11.2.2 OLAP 的衡量标准和多维数据分析功能 365…………………………………
  11.2.3 OLAP 的多层结构 368………………………………………………………
11.3 知识发现和数据挖掘 370…………………………………………………………
  11.3.1 知识发现和数据挖掘的概念 370………………………………………………
  11.3.2 数据挖掘技术概述 371………………………………………………………
  11.3.3 关联规则 374…………………………………………………………………
  11.3.4 其他数据挖掘问题 377………………………………………………………
  11.3.5 数据挖掘的应用 379…………………………………………………………
  11.3.6 商业化数据挖掘工具 380……………………………………………………
11.4 本章小结 381………………………………………………………………………
习题 382……………………………………………………………………………………
习题参考答案 383………………………………………………………………………………
主要参考文献 395………………………………………………………………………………
· xii· 分布式数据库系统及其应用
第八章 分布式数据库与客户机/服务器模式
可以支持前面讨论过的所有功能类型的 DDBMS 还没有完全开发成功,然而,分布式
数据库应用正在发展成为基于客户机/服务器模式的应用。实际上,基于客户机/服务器模
式的系统可以看作是真正意义上的分布式系统的一种特殊情况。更确切地说,一个基于客
户机/服务器模式的系统是这样的一个分布式系统:
1) 某些站点是客户机站点,而另一些站点是服务器站点;
2) 所有的数据都驻留在服务器站点;
3) 所有的应用都在客户机站点运行;
4) 一般不提供完全的位置透明性,即“存在接缝”。
本章将着重讨论 DDBMS 环境中的基于客户机/服务器模式的系统。
8.1 客户机/服务器计算模式
8.1.1 客户机/服务器计算模式概念
  客户机/服务器(client/server)这一概念最早用于描述软件的体系结构,表示两个程
序间的关系,即一个是提出请求的应用程序,另一个是服务程序,它们之间的交互不需要
任何通信设施。 此时,它们可能就是在同一台机器上运行的调用和被调用程序,而且请求
/服务交互可以是不同步的。
从概念上讲,客户机/服务器模式可定义为一种特殊的协作式处理模式,客户机和服
务器两者都参与同一个应用程序的处理,其中软件成分相互协作以完成特定的应用程序
功能,而硬件资源则提供软件成分相互协作的设施。所以,可以把客户机/服务器模式的定
义扩展到不仅包括软件成分间的协作处理,而且包括硬件成分间的交互作用。 这样一来,
术语“客户机/服务器模式”就有两种含义:一种是客户机和服务器软件成分间的协作处
理,另一种是硬件“客户机”工作站和“服务器”计算机系统间的联系。 如果不考虑硬件成
分,软件成分间的协作处理有时称作请求/服务模式,而把考虑硬件作用的模式视为客户
机/服务器模式。 由此可见,客户机/服务器模式的定义强调协作处理,如图 8.1 所示。
在一个 DDBM S 环境中,客户机/服务器模式的协作式处理是一种特殊的分布式处
理。 它把一个计算机应用系统分成如下的三个基本组成部分:
1) 服务器:专门从事提供某项服务功能的计算机系统,称为服务器。数据库服务器软
件负责站点上的局部数据管理,很像集中式的 DBMS 软件。
2) 客户机:面向最终用户,完成各自业务处理及用户界面的计算机系统,称为客户
机。 客户机软件负责大部分的分布应用功能,它从 DDBM S 目录访问数据分布信息,处理
要求访问多于一个站点的请求,并且客户机软件也处理所有的用户接口。
图 8.1 客户机/服务器模式
3) 中间件:连接服务器和客户机的部分,称为中间件,也称连接件。包括通信软件,如
网络协议、开放数据库互联(ODBC)等,有时与分布式操作系统相结合。 提供通信原语,为
客户机用户在所需的服务器间传送命令和数据。
两种极端情况:
1) 哑客户机:主机处理系统。 客户机是哑终端,服务器是主机本身。
2) 哑服务器:局域网上的服务器(只负责存储文件或打印)和全部客户机。
总之,一个支持客户机/服务器模式的分布式数据库管理系统应该具有:服务器要有
数据管理、处理能力,能提供网络传输优化能力,以保证网络上负载的可调和均衡处理;客
户机不但要提供多种工具帮助用户生成应用界面,而且还应有很强的网络适应能力,以保
证应用系统在网络上的正确运行;此外,还应提供连接客户机和服务器的中间件。
大量的关系 DBM S 产品都已采用了这种方案。 它们为客户机提供了一个 SQ L 服务
器,每一个客户机必须配置合适的 SQ L 查询,并为用户提供用户接口和编程语言接口功
能。 因为 SQL 是相关的标准,不同厂商提供的多种的 SQL 服务器一般都可以接受 SQ L
命令。 客户机可以引用存放在各种 SQL 服务器中的包含数据分布信息的数据字典,还可
以访问模板,将一个全局查询分解为若干局部查询,那些局部查询可以在不同的站点上执
行。 在 SQL 查询的过程中,客户机和服务器之间的互动可能按如下步骤进行:
1) 客户机分析一个用户查询,并将其分解成为若干独立站点的子查询,每个站点的
查询被送到相应的服务器站点。
2) 每个服务器处理局部查询,并将结果数据送回到客户机站点。
3) 客户机站点合并各子查询的结果,并生成原先提交的查询的结果。
在这里,SQL 服务器也被称为事务服务器(t ransaction serv er )或数据库处理器
(database pro cessor,DP )或后端机 (back?end machine),而客户机被称为应用处理器
(applicat ion pro cessor,AP )或前端机(front?end machine)。 客户机与服务器之间的交互
可以由用户在客户机层说明,或者凭借一个专门的 DBM S 客户机模块说明,该专门的
DBM S 客户机模块是 DBM S 包的一部分。 例如,用户也许会知道每个服务器中存储的数
·342·第八章 分布式数据库与客户机/服务器模式
据,人工地将一个查询请求分解成为若干个站点上的子查询,并且向不同的站点提交相应
的单个子查询,再由客户机层的用户的进一步查询将结果表显式地合并起来。另一种方法
是使客户机模块自动地执行这些操作。
8.1.2 客户机/服务器环境下应用成分的分布和开放性
1.客户机/服务器环境下应用成分的分布
  通常,一个典型的数据库应用程序可分解为四个组成成分,如图 8.2 所示。
图 8.2 组成数据库应用程序的四个成分
(1) 界面表示逻辑
这是与用户交互的应用代码,界面表示逻辑完成屏幕格式化、屏幕信息读写、窗口管
理、键盘及鼠标管理等任务。 最流行的界面表示逻辑设施是各种图形用户界面(GU I)。
(2) 业务处理逻辑
这是使用输入数据来完成业务处理和规则的应用代码,这些代码通常是用第 3代语
言(3GL )或第 4代语言(4GL )编写的。
(3) 数据处理逻辑
这是应用程序中负责数据逻辑(事务逻辑),如完整性判别等的代码,在关系数据库管
理系统上的数据操作一般使用 SQ L 语言编写。 SQL 语言可以嵌入编程语言中,也可以为
编程语言提供调用级接口。
(4) 数据库管理
这是应用程序中由 DBM S 来完成实际数据存取处理的程序。 在理想的情况下,
DBM S 的数据管理相对于应用的业务处理来说是透明的。虽然 DBM S 不属于应用程序本
身,但它是分布式处理的基本组成部分。
在 client/server 环境下,通常把界面表示逻辑和业务处理逻辑驻留在 client 上,而把
数据处理逻辑和 DBM S 功能驻留在 serv er 上。图 8.3是支持和不支持 client/server 模式
的 DBM S 情形。
因此,设计建立在 client/server 模式上的一个数据库应用程序,应该在 server 端完成
·442· 分布式数据库系统及其应用
的是数据的管理、组织和处理,即提供数据服务;在网络上传输的应该是客户机的请求和
服务器返回的结果或信息;在 client 端完成的是业务处理的表示和用户交互的界面。
图 8.3 支持和不支持 C/S 结构的 DBM S 情形
2.客户机/服务器模式的开放性
客户机/服务器模式的内部结构如图 8.4所示。 它是一个开放式的模式,使得数据库
不仅要支持开放性,而且还要开放系统本身,这种开放性包括用户界面、软硬件平台和网
络协议。利用开放性在客户机一侧提供应用程序接口(A PI)及网络接口,使得用户仍然可
按照他们所熟悉的、流行的方式开发客户机应用。 在服务器一侧,通过对核心关系数据管
理系统的功能调用,使网络接口满足数据完整性、安全性及故障恢复等要求。有了开放性,
数据库服务器就能支持多种网络协议,运行不同厂家的开发工具,而对某一个应用程序,
开发工具也可以在不同的数据库服务器上运行并存取不同数据源中的数据,从而给应用
系统的开发提供了极大的灵活性。
图 8.4 客户机/服务器模式的内部结构
·542·第八章 分布式数据库与客户机/服务器模式
8.1.3 客户机/服务器模式的体系结构
在客户机/服务器环境下,客户机、服务器和中间件构成了客户机/服务器模式的基础
结构,如图 8.5所示。
图 8.5 客户机/服务器模式体系结构示意图
1.服务器
服务器最典型的任务是提供数据服务。一般而言,服务器应能提供高速大容量的存储
能力、强大的数据处理和管理能力,以及并发运行多个进程的能力。还应提供包括通信、电
子邮件和事务处理等能力。服务器按功能类型和简单与复杂程度,可以分为:文件服务器、
数据库服务器、事务服务器、文档服务器和其他服务器。
(1) 文件服务器提供文件访问
文件服务器管理着数据文件。 如图 8.6所示,客户机包含 GU I(图形用户界面)和应
用程序代码。用户操纵 GU I 同应用程序对话。应用程序对服务器发出对文件的访问请求。
服务器复制所请求的文件,并将其返回给客户机,在客户机上由应用程序进行处理。
(2) 数据库服务器提供数据库访问
数据库服务器只对客户机发送所需的数据纪录,从而降低通信费用。图 8.7 说明客户
机同数据库服务器之间的对话过程。 客户机由 GU I 和应用程序代码组成,应用程序提出
对数据库查询请求,并把这样的请求传送到服务器。 一般情况下,查询是用 SQL 提出的。
数据库服务器接收并执行来自多个客户机的 SQL 查询。 数据库服务器在执行 SQ L 请求
时,只选择满足 SQ L 查询条件的数据,然后把选出的数据传回发出请求的客户机,数据在
那里由应用程序进行处理。
数据库服务器减少了从服务器到客户机的数据传输量。 数据库服务器通常还要提供
各种辅助功能,如用户识别与认证,实施安全约束,实施业务规则,记载日志,以及自动数
·642· 分布式数据库系统及其应用
图 8.6 文件服务器
图 8.7 数据库服务器
据库备份等。
(3) 事务服务器支持事务处理
事务服务器是一种数据库服务器,它能够本地或远程执行应用程序专用代码(事务)。
图 8.8说明事务服务器由面向应用程序的事务和一个数据库服务器组成,由程序员指定
事务服务器中那些包含应用程序专用代码的事务。 客户机包含 GU I,以及构成事务调用
的那部分应用程序,这种调用被传送给服务器。 事务是在事务服务器上执行,这样就可以
保证事务的 A CID 性质。
通过对事务以及调用事务的客户机应用程序的仔细设计,程序员可以把客户机和服
务器之间的通信代价减到最小限度。 一般说来,为了设计事务和客户机应用程序,要求程
序员具备熟练的技能。
·742·第八章 分布式数据库与客户机/服务器模式
图 8.8 事务处理服务器
(4) 文档服务器支持文档访问
许多应用部门都要生成所谓“文档”的输出。 如字处理文档、电子数据表、电子绘图和
电子图表、演示图表和“电子幻灯片”、数据库查询结果,以及由不同应用程序生成的报
文档服务器为多用户管理文档。 事实上,文档服务器就是保存电子文档的电子文件
柜。客户机使用户通过指定文档的属性值就能访问文档。当用户访问文档时,客户机即自
动调用创建文档的应用程序,所以用户可以查看文档和编辑文档。某些文档服务器还具备
这样一种功能,用户只要指定文档中所包含的特定单词就能访问文档。大多数文档服务器
支持关键词搜索功能,由用户指定的特定单词来定位文档。
(5) 其他数据服务器
1) 支持访问公告牌。公告牌是一种数据库,其中保存有关一般性通告和新闻的消息。
从用户的角度来看,这种数据库就像一块公告牌,从那里可以浏览和查找张贴的各种告
示,用户也可以在其中贴出自己的告示。
2) 支持访问新闻。 有几家通讯社通过广域网将源源不断的电子新闻向全世界传播,
其中包括美联社、合众国际社和路透社的新闻服务,道· 琼斯股票交易所则播发股票行
情。一个新闻服务器要采集和存储广播信息,当用户需要时可以从中检索信息。 用户访问
新闻服务器的信息是通过他们的桌面客户机系统进行的。除采集新闻之外,新闻服务器可
以筛选新闻条目,按用户个人的要求选择特殊的新闻,这种选择以是否符合预先作出规定
的用户描述文件为准,并把选出后的新闻条目放进用户的“入选箱”。
数据服务器通常还应提供数据访问以外的支持。 多数服务器还支持或提供多任务处
理、安全保障、计量措施、实施业务规则、位置透明性、横向可伸缩性等功能。
·842· 分布式数据库系统及其应用
2.客户机
客户机/服务器应用是以客户机为中心的,客户机可以观察和体会到服务器提供的服
务。 按照客户机/服务器模式中应用功能的分布,所有的客户机主要完成界面表示和一些
业务逻辑(一部分或全部)功能。界面表示逻辑一方面反映应用程序的业务处理逻辑,另一
方面提供最终用户的使用接口,用户通过客户机接口访问各种服务器,得到相应的服务,
还包括与所有外设(终端)和其他 I/O 设备的交互。 客户机类型包括:
1) 非图形化用户接口:包括条形码、扫描器、传真机、仿真终端、测试仪、机器人等;
2) 图形化用户接口:大都基于 Window s 的软件和设备(如 PC 机、工作站等);
3) 面向对象接口(OOI):可视化、多媒体处理软件及其设备。
一般来说,客户机软件的类型包括:
1) 公共应用程序:如字处理软件、报表编制软件、图形软件及项目管理软件等;
2) 数据库前端软件:如 Sybase 的 iSQL ,Oracle 的 PL/SQ L…;
3) 应用生成和开发软件:如 Pow erBuilder, V isualC++, VisualBas ic,…。
使用界面开发工具开发最终用户使用界面(人机接口)和业务处理逻辑程序。
3.中间件
中间件(middlew are)是个飞速发展的领域,是软件技术的大杂烩,也是开发客户机/
服务器应用的关键。 中间件泛指 client 和 server 之间的软件,也称客户机/服务器的接口
中间件分为通用中间件和专用中间件。 通用中间件如各种网络操作系统(NOS)、各
种网络传输协议。 专用中间件有:
1) 数据库连接中间件:基于 SQ L 的异构数据库互联操作,如 ODBC,JDBS 等;
2) 事务处理中间件:基于 RPC 等,共享不同服务器资源;
3) 组件中间件:电子邮件及 Lo tusNo tes 等;
4) 对象中间件:允许 Client 调用驻留在远程服务器上的对象;
5) DDSM 中间件:允许管理者与代理进行对话等。
8.2 客户机/服务器模式的定位
客户机/服务器模式技术可以降低软件开发和维护成本,增强应用的可移植性,改善
网络和系统的性能,提高用户的工作效率,保护用户的投资,甚至可以减少对小型机和大
型机的需求。 我们通过对计算环境演变的分析来定位客户机/服务器模式。
8.2.1 计算环境演变的分析
1.主机处理系统
  客户机/服务器计算模式实现了一种协作式处理:客户机发出请求到达服务器,服务
·942·第八章 分布式数据库与客户机/服务器模式
器处理请求并将结果返回到客户机。客户机/服务器这种协作式处理其实就是一种特殊的
分布式处理,资源分布于两个或更多的分离的计算机系统上。分布式系统的驱动力之一来
源于主机处理系统,这种驱动力业界称之为“向下优化(dow n sizing)”。
在主机系统中,如图 8.9所示,所有程序都在一个主机上运行,包括 DBM S、应用程
序,以及负责向终端发送和接收数据的通信设施。 所有数据都存储在主机上,用户通过本
地或远程终端来访问主机,终端仅由屏幕、键盘以及和主机通信的设施组成,通常是“哑”
的,本身没有或仅有一点处理能力。使用智能终端,构成所谓的主从方式,也只不过完成一
些屏幕显示和用户输入管理方面的简单任务。 还有一种情况,把大型机/小型机系统作为
大型数据库平台,把 PC 系统通过软硬件技术实现与主机系统的通信,这种混用方法可能
胜过单纯的哑终端主机方式。当然,一台独立的 PC 机,也可视作主机系统,一种单用户主
图 8.9 主机处理环境
主机处理系统的主要优点是集中式、安全性和海量数据存储设备的管理能力。 此外,
主机系统支持大量的并发用户。一台 IBM 大型机(如 IBM ES/9000)上的数据库能同时支
持超过 1 000个用户的访问。主要缺点是系统的采购和维护费用过大,大型系统需要特殊
的支持设施,如对计算中心机房的要求苛刻,专业人员的培训也需要付出代价。最近几年,
企业对部门级小型机的需求日益旺盛,它们的成本和维护费用相对较低,适合中小型企业
或大型企业的部门信息处理,而且能与大型机联网。
2.文件处理系统
客户机/服务器计算模式的另一种驱动力来自 PC 及 LAN ,业界称之为“向上优化
(ups izing)”,意思是指将独立的 PC 机以部门或工作组为单位用网络连接起来,PC 机一
般情况下不再孤立工作。 最初,PC 机是为了共享文件以及昂贵的外设如激光打印机、磁
带机等而连接到 LAN 上,构成文件处理系统。
在文件处理系统中,如图 8.10所示,所有应用处理包括数据处理都发生在 PC 工作
站一端,文件服务器仅负责从硬盘查询所需要的文件,并通过网络把它发送给用户的 PC
机。数据处理通过 PC 上的 DBM S 进行,处理完的结果以整个文件的形式再送回文件服务
·052· 分布式数据库系统及其应用
器,由服务器再把文件存储在硬盘上。
图 8.10 文件共享处理环境
文件处理系统的缺点是,用户所获得的计算能力局限于本地的 PC 工作站,而不管文
件服务器的速度有多快,安全性有多高,能力有多强。 尤其是当多用户同时访问一个共享
的数据文件时,同一个文件不得不发送到每个 PC 上,这不仅导致网络开销增加,并发控
制也相当困难。 因此,文件处理系统的性能往往存在问题,通常只能满足小规模的工作组
应用需求。
文件处理系统的另一个问题是,PC 上的 DBM S 大多数实际上是一个文件管理系统,
如 Xbase 系列,Fox 系列均是 DOS 环境下的文本(.TXT )文件, IN FORM IX- SE 是
U NIX/XEN IX 环境下的 C- ISAM 文件。 因此,在数据完整性、系统安全性等方面不可要
3.客户机/服务器处理系统
业界把 client/server 模式称为“恰到好处的规模(r ig ht sizing)”,意指 client/serv er 将
应用资源在 client 和 server 之间进行恰到好处地分配。 client 通过网络请求服务,serv er
提供服务。 在这个开放环境里,一个 client 可以是一台 PC 机或图形工作站;一个 serv er
可以是一台高档 PC 工作站,也可以是一个主机系统,不同厂商提供的服务器可以很好
client/server 模式最典型的应用是数据库技术,如图 8.11所示。 在一个基于 clien t/
serv er 的数据库系统中,应用被分成两个部分,数据库应用程序运行在 PC 机上(称作前
端系统),负责用户界面和 I/O 处理;DBM S 部分(负责数据处理和硬盘存取)运行在
serv er 上(称作后端系统)。
client/server 系统通过将应用资源在前端和后端系统间的分离,降低了网络上的开
销。 因为在 client/serv er 系统中,网络上传送的一般是请求(如 SQL 语句)和结果(如记
录),而不是整个文件。
集中式 client/serv er 技术已广泛使用,几个流行的数据库厂商,如 Sybase,Oracle 以
及 Inform ix 等均提供解决方案,它们适合于中小型企业以及大型企业的部门级应用。
·152·第八章 分布式数据库与客户机/服务器模式
图 8.11 客户机/服务器处理环境
4.多服务器处理系统
client/server 本身就是一种分布式处理技术,这里的“多服务器处理系统”为了和前
述 client/server 处理系统相区别,专指存在两个或两个以上 server 的 client/serv er 系统,
如图 8.12所示,这种系统伸缩性更强,实现及管理也更复杂。
图 8.12 多服务器处理环境
集中式 client/server 系统在一个 WAN 环境下显然存在问题:一个部门的用户可能
需要共享地理上遥远的其他部门或总部主机上的部分信息,而且希望“信息随手可得”,将
数据在不同的主机或地点进行分布不可避免,这就导致多服务器 client/serv er 系统的
在多服务器系统中,用户从本地 server 请求数据;如果本地 server 发现本地没有需
要的数据,就通过 LA N 或 WAN 向其他 server 发出请求,通过“server 对 serv er 的对话”
处理数据,最后将数据返回给用户。整个过程中,除了响应有一点延迟感觉,用户并不知道
·252· 分布式数据库系统及其应用
数据来自其他系统,全部 server 对 serv er 间的数据处理细节对 client 系统透明。
多服务器系统的设计和实现还是一个新领域,市场上的很多产品还不完善,可互操作
多服务器处理系统被定位于企业级的大型应用平台。
5.对等处理系统
对等系统被认为 client/server 系统的最终归宿,是分布式处理的极限。 client/serv er
系统的两个不同的部分,即请求服务的 client 和处理请求的 serv er ,发展到对等服务阶
段,将脱离主从结构,实现完全等同,如图 8.13 所示,即在网络上每个站点既是 client 又
是 serv er 。 在对等系统中每个站点都是平等的,进一步说,每个站点的计算机都要负责对
自己资源的管理和访问,并有对任何其他站点计算机上的资源的同等访问权。
图 8.13 对等处理环境
8.2.2 客户机/服务器模式的定位
从上述对计算环境演变的分析和客户机/服务器模式各类处理系统的讨论可见,采用
客户机/服务器模式的系统是介于集中式与分布式数据库系统之间。 集中式 client/serv er
处理环境中,数据是集中的而处理是分布的,一个应用是通过客户机请求和服务器响应的
协作方式来完成的;多服务器 client/server 处理环境中,处理和数据都是分布的,一个应
用可以涉及多个服务器上的数据,一个服务器上的数据也可以被多个客户机访问,但是完
成一个应用同样必须通过客户机请求和服务器响应的协作方式来完成;对等 clien t/
serv er 处理环境中,处理和数据都是分布的,由于实现完全等同,所以每个站点不但可以
访问其他站点上的数据,完成全局应用,而且还可以访问本站点上数据,以完成本地应用。
考虑 client/serv er 处理环境中若包括多个数据库服务器的情形,将引出许多与分布
式数据库系统相同的问题。首先面临的问题是站点自治性和透明性,不同的站点间应相互
独立,用户或应用可以不知道甚至不必关心数据在物理上存储于何处,不管数据是在本地
·352·第八章 分布式数据库与客户机/服务器模式
还是在远程。 其次是数据完整性问题,目前的实现技术是两阶段提交协议,还有强制实施
跨站点的业务规则等问题。 这也是为什么我们把客户机/服务器模式也放在本教程中的
如果每个站点是一个单数据库服务器的 client/serv er 结构,服务器之间通过网络连
接,每台数据库服务器有自己的若干客户机。用户可以通过客户机对本地数据库服务器执
行某些应用(局部应用),也可以提高客户机对多个站点上的数据库服务器执行某些应用
(全局应用),这样的系统也是分布式数据库系统,如图 8.14所示。 目前,许多分布式数据
库系统采用这样的结构,当前流行的几种 RDBM S 支持这样结构的分布式数据库系统。
图 8.14 每个站点是一个单数据库服务器的 C/S 结构的 DDBS
8.3 客户机/服务器模式的特性和优缺点
8.3.1 客户机/服务器模式的特性
  采用客户机/服务器模式结构的系统大都具有如下特性。
(1) 按功能划分
client/serv er 首先是在两个不同机器上运行的进程间的一种关系。 serv er 进程是服
务的提供者,clien t 进程是服务的消费者。实质上,client/server 根据服务的观点对功能进
行了明确划分。
(2) 共享资源
一个 server 可以在同一时刻对许多 client 进行服务,并且协调它们对于共享资源的
·452· 分布式数据库系统及其应用
(3) 不对称协议
在 client 与 serv er 之间存在一种多对一的主从关系。一般来说,客户通过请求与服务
器主动对话,而服务器则是被动地等待客户请求。
(4) 定位透明性
serv er 是一个进程,它可以与 client 位于同一台机器上,也可以位于网络上的另一台
机器上。 client/server 软件通常都要在 client 方屏蔽掉服务器的地址信息,这是通过重新
定向服务调用来实现的。 一个应用程序可以是 client 或 server 或两者兼之。
(5) 混合与匹配
理想的 client/server 软件应该独立于硬件或操作系统软件平台,应该能够混合与匹
配 client 和 server 平台。
(6) 基于消息的交换
client 和 server 是一对耦合的系统,它们通过消息传递机制互相协作。 消息是服务请
求与响应的媒介。
(7) 服务封装
一个消息告诉 serv er 所请求的服务,由 serv er 来决定如何完成这项作业。 只要发布
的消息接口没有变化,server 的版本升级对 client 没有任何影响。
(8) 可扩展性
client/serv er 系统可以水平地或垂直地扩展。 水平扩展是指添加或移去客户工作站
对性能影响很小。 垂直扩展是指移植到更大的或者更快的 serv er 机器或多 server。
(9) 完整性
对集中式 client/server 处理环境,serv er 代码和 serv er 数据是集中维护的,它带来了
较低的维护开销,并保持了数据的完整性和独立性。
这里所描述的 client/serv er 特性也是与其他模式结构软件的区别,这些特性还为设
计基于网络且松散组合的应用程序提供了一种框架。
8.3.2 客户机/服务器模式的优点与不足
1.客户机/服务器模式的优点
  实现对等服务是 client/server 模式的理想,但目前市场上还没有产品声称支持全功
能的对等服务,还有一大堆技术问题需要解决。 虽然如此,client/serv er 计算模式在构造
多服务器应用系统时成为很好的方式,可以为今天的企业解决方案带来很好的效益。
1) client/serv er 模式提高了投资效率,用户不但能够从自己桌面上的 PC,访问和操
纵大型计算机上数据库中的数据。同时,使用 PC 和工作站可以提供过去大型机才具有的
计算能力,而且只有大型机价格的几分之一。
2) client/serv er 模式使得处理和被处理的数据更加接近。所以,网络开销和响应时间
极大降低,从而减少对网络带宽和成本的需求。
3) client/server 模式改变了由“哑”终端提供的单调的单色屏幕用户界面,而代之以
支持具艺术性的图形用户界面的 PC。 GU I 具有丰富的可视化界面表示技术,易学易用,
而且具有很好的一致性。用户在培训和教育方面的投资得以充分利用,最终用户对新产品
·552·第八章 分布式数据库与客户机/服务器模式
的抵触情绪可得到缓解。
4) client/serv er 模式支持和倡导标准化和开放系统。 client 和 serv er 都可以在不同
的硬件和软件平台上运行,使用户从专有的体系结构中解放出来。 价格低廉,易于组合的
体系结构,解决了可根据应用需要而进行系统伸缩的问题。
5) client/serv er 模式能使多个用户共享硬件资源,如打印机、扫描仪、传真机等。显而
易见,共享贵重的硬件比为每个用户购买相同硬件设备省钱。
2.客户机/服务器模式的不足
当然,clien t/serv er 计算模式并不是十全十美的,其不足之处在于:
1) 在集中式 clien t/serv er 环境下(传统的方式),如果应用逻辑的主要部分移到
serv er 上,serv er 就会像传统主从结构的主机一样成为瓶颈,随着用户数的增加,资源有
限的 serv er 可能不堪负荷。
2) 多服务器应用系统的设计和实现,比集中式系统复杂得多。无论应用开发,运行环
境维护,还是管理这些多服务器环境的工具,都是如此。
还有一些对 client/serv er 模式的认识也有待纠正。例如,有人认为 client/server 模式
要求非专业的用户成为专业的软件开发者,另外一些人认为 client/server 最终将把大型
和小型机赶出历史舞台等,都言过其实。
总之,client/server 模式有助于减少软件的维护费用,提高软件的可移植性和可伸缩
性,提高网络性能,甚至有助于提高软件开发人员的生产力和缩短开发周期。但是,clien t/
serv er 模式仍然存在某些问题和缺陷,需要进一步研究和解决。
8.4 客户机/服务器模式的远景展望
技术的进步正迅速影响着客户机/服务器计算模式。 根据几年前可用的技术,很难预
示当前客户机/服务器计算处于何种状态,同样也难以预测今后几年技术发展的趋势。 在
确定客户机或服务器或两者的功能时,起主要作用的因素有:硬件和软件的发展,网络协
议,LAN/WAN 技术和通信管道。降低这些因素的代价会使得“每一美元的投资得到更多
的计算能力”继续成为可能。 这些激励因素激励着有关公司不断升级它们的计算环境。
当 前,在业界 中最传统的 客户机/服务器模 式结构被称 作两层结 构 (t w o?t ier
architect ure),我们描述的 DDBM S 方式符合这种结构。 服务器(或服务器群)存储数据,
客户机群存取数据,这种体系结构中,服务器扮演着支配的角色。 这种两层结构系统的优
点在于它的简单性,以及与现存传统系统的无缝兼容。 但在这种结构中,所有的表示逻辑
和应用逻辑等重头戏均在客户机上完成,所有客户机都必须安装应用软件和工具,因而使
得客户机变得很“肥”,俗称“肥客户机”。 而服务器仅负责响应用户请求,全局数据的访问
和管理,因而使得服务器相对较“瘦”,俗称“瘦服务器”,这使得应用系统的性能较差。
“瘦”且具有强大计算功能的计算机的出现,改变了客户机和服务器的角色,因此,两层结
构系统渐渐移向三层或多层结构系统。
目前,正在涌现的客户机/服务器模式结构是三层结构(th ree?tier arch itectu re)。在这
·652· 分布式数据库系统及其应用
种模式中,主机、服务器和客户机表示了逻辑上相互独立的三个“层”,即数据层、功能层和
表示层。 数据层就是 DBM S,驻留在主机上,负责数据库数据的管理和存取操作。 功能层
由服务器实现,它是应用逻辑处理的核心,实现具体的业务,所以也称应用服务器。它扮演
着媒介物的角色,存储着商业规则(过程或约束),这些商业规则用于从主机存取数据。 表
示层由客户机实现,客户机是应用的用户接口,包含 GU I 接口和一些附加的具体应用商
业规则。因此,服务器的作用如同管道,从主机到客户机传递(部分地)已处理的数据,客户
机对数据进行进一步的处理/筛选,并以 GU I 格式呈现给用户。所以,用户接口、规划和数
据存取也是三层。 客户机通常通过 LAN 与服务器相连,服务器通过 WAN 与主机相连,
远程客户机也可以通过WAN 与服务器相连。这种系统很适合大型公司,那里的集中式数
据库被存储在公司的主机上,采用最新的技术可以管理和优化为该组织机构中的每一个
部门构建 LAN 和 WAN 的费用。
在定义作为客户机的机器时,操作系统的发展扮演着重要的角色。 例如,几年前,
W indow s3?x 为 桌面 计 算 机引 入 了 一 种新 的 计 算方 法,接 下 来 是 W indow s95 和
W indow s98。 虽然 Window sN T 是为服务器设计的,但在网络商业环境中,高端的客户机
采用 Window sN T 的越来越多。 W indow sNT 包括网络管理和容错的特性,因此提高了系
统的稳定性。这些,再结合硬件计算能力的改进,使得今天的桌面 PC 成为强大的客户机。
GU I 已成为客户机事实上的接口。 现在,智能接口是业界的标准,它利用技术和工具
的优势,使用户能更好更快地完成他们的工作。 Web 门户工具就是一个例子,它允许经理
们把他们所关注的信息的视图定义成 Web 门户,他们可以从这里登录,执行基于 DDBS
的细节操作。 此外,计算机内存和磁盘存储空间成本的减少,增进了用户拥有的计算能力
和快速处理能力,从而改变了客户机的角色。 这些将使用户有能力规划数据请求,局部地
存储和分析查询结果,显示、报告信息。
多媒体在应用开发中也扮演着主要的角色。使用视频、图形、音频作为数据,要求更大
量的存储空间,更高带宽的数据传输。 通信技术的进步和光纤网络的发展,为服务器上的
带宽瓶颈提供了解决方案,城域网(metropolitan area net w orks,M AN )和异步传输模式
(asynchronous t ransfer mode,AT M )就是两个例子。存储量的增加和处理速度的加快,也
使得关键的多媒体数据能够局部地存储在客户机上,从而通过降低查找频率的方式来减
少网络上的通信量。
图 8.15是用于 Internet 环境的数据库应用系统的三层结构,在这里,主机是数据库
服务器,服务器是 Web 服务器,客户机是浏览器。 每一层可以运行在不同的操作系统上,
例如,数据库服务器运行在 UN IX 上,Web 服务器运行在 W indow s 2000或 W indow s N T
上,浏览器则可分别运行在 Window s 98, UN IX, M acinto sh, Window s 2000 上。同样,数
据库服务器可以运行从 A ccess 到 IBM DB2的各种数据库管理系统,常用的 Web 服务器
有微软的 In ternet 信息服务器 IIS,N etscape服务器和 A pache,常用的浏览器有 Netscape
N avig at or 和微软的 Internet Explo rer。
对于日益发展的某些应用,三层客户机/服务器模式结构在 Web 服务器上负担会过
重。 因为,这些 Web 服务器不仅要作为 HT T P 服务器响应可能是成千上万的请求,而且
需要建立和管理与数据库服务器的连接,产生和传送 SQL 请求,收集 SQL 结果,执行业
·752·第八章 分布式数据库与客户机/服务器模式
图 8.15 三层客户机/服务器模式结构及各层的功能
务逻辑并维护业务规则,还要格式化响应返回给客户端。 这样,Web 服务器很可能成为系
统性能的瓶颈。 解决这个问题的一种方法是把 Web 服务器只用于处理 HT T P 请求和响
应,而把其他工作交给其他服务器去做,如图 8.16所示那样。显然,还有更多的方法,随着
应用的发展,会积累更多的经验,可能出现其他的多层客户机/服务器模式结构。
图 8.16 多层客户机/服务器模式结构
随着新技术的出现,服务器不断地变得更加强大。现在,服务器可以是一部台式机,然
而它有能力做甚至超过几年前中型机所做的工作,例如并行处理、多任务和多线程的特性
·852· 分布式数据库系统及其应用
使得服务器变得更快和更有效。 另外,处理器和磁盘存储成本的下降,使得服务器具有双
处理器和冗余磁盘变得更容易,这也使得服务器更加可靠和健壮。
加密和解密技术的进步,使得从服务器到客户机传输加密的敏感数据更加的安全,数
据将在客户机端被解密,这可以通过硬件或改进的软件来做。这一技术提高了数据的安全
性层次,但网络安全性问题仍然是主要的焦点。 多种数据压缩技术有助于大量数据的传
送,这些数据通过有线和无线的网络从服务器传到客户机。
未来有着高带宽网络的客户机/服务器系统的应用将包括视频会议、远程医疗以及远
程学习。 我们将在以后各章中讨论一些新出现的技术和数据库应用,在那些应用中基于
DDBS 的客户机/服务器将是一个集成部件。
8.5 分布式数据与分布式访问
在一个分布式数据库系统中,无论是传统意义上的分布式系统,还是基于多客户机/
服务器模式的协作式分布式数据库系统,其数据总是物理地分布于不同的站点。数据的分
布势必使数据管理逻辑也必须随数据一起分布,形成数据的分布式访问。
8.5.1 从集中式到分布式数据的转移
以往,大多数用户在大型中央主机上开发和运行应用程序,这些程序以及它们所访问
的数据都存储在主机上的共享设备中。随着应用的发展,使用这种大型中央主机作集中式
应用处理的成本越来越高,尤其与 PC 机的高性能价格比相比。 今天,用户的兴趣已经转
移到分布式数据和分布式访问上,主要原因在于:
1) 希望通过降低操作成本和分散操作过程,提高竞争能力和对客户应用的响应
2) 客户机/服务器计算模式的迅速发展;
3) 网络及分布式数据库技术和产品的成熟,尤其是 DDBM S 的新进展。
分布式数据库管理系统的主要优点是数据物理分布在网络的多个站点中,且这种分
布对最终用户具有位置透明性。同时,分布式数据库管理系统保证大部分数据位于实际使
用数据的本地。 一个理想的分布式数据库应允许每个站点都配置管理驻留于该站点的大
量数据、复杂的用户应用程序以及处理多个用户的能力。 随着应用程序和用户数的增加,
相应的数据需求也增长。 而升级一个分布式环境看来要比升级一个相应的集中式系统容
易且便宜,而且在实现上可以对最终用户透明。 显然,在多个站点上分布数据还带来以下
1) 通过将关键数据的多个拷贝置于不同的站点,提高数据的可用性,避免“单点失
败”现象,提高系统的可靠性和可用性;
2) 增加并行度,高效的只读数据访问,改进数据管理性能;
3) 很容易增加应用程序、用户数目和扩大规模;
4) 把数据存放在最接近产生数据或使用数据最频繁的站点,以减少传输,提高效率。
·952·第八章 分布式数据库与客户机/服务器模式
8.5.2 数据分布的基本形式
分布式数据存在着六种不同的基本形式:
1) 复制数据(replicat ed data);
2) 子集数据(subset data);
3) 重新组织的数据(reorg anized dat a);
4) 分区数据(partit ioned dat a);
5) 独立模式数据(separate- schema dat a);
6) 不相容数据(incompatible data)。
1.复制数据
复制数据是指相同数据在不同的站点存储的几个相同的副本,如图 8.17 所示。 这样
做的主要原因是通过重复的存储的数据,避免了系统之间的数据传输,减少查询数据的代
价,并且还可以提高并行度,提高系统的可靠性和可用性。 只有当查询数据的频率大大高
于更新数据的频率时,这样组织才有意义。大量复制的数据一般是不变数据或很少变化的
数据,因为更新数据会增加开销。
图 8.17 复制的数据
由于小容量的存储设备的价格要比远程通信的价格下降快得多,因此,采用复制数据
的方法越来越有经济上的吸引力。
2.子集数据
存储在地区计算机中的数据常常是存储在一个大型中央计算机中数据的子集。 这样
做有两个基本的原因,其一是这些数据是在那个地区建立的,其二是各地区频繁地使用本
地数据。 子集数据是复制数据的一种形式,区分它是因为它通常是整体数据的一部分,如
图 8.18所示。
·062· 分布式数据库系统及其应用
图 8.18 子集数据
一般情况下,对以层次方式组织的机构来说,数据的全集(该机构的整体数据)是保存
在较高层机器中。 当在较低层机器改变数据时,这种改变必须向上传送到较高层机器中,
有时是立即传送,有时是等到下一个更新周期再传送。
较低层的机器中可以存放一些较高层机器中的数据,也可以存放一些从来不向较高
层机器传送的它们自己的数据。 例如,较低层机器就保存有关顾客的地址和一般信息,这
些庞大的数据是较高层系统所不需要的,然而,较高层系统可以存储顾客的编码、姓名、有
关顾客信用等方面的信息和订贷的细节。较低层机器也存储这些数据,但对它们的任何修
改都必须向上传送到较高层机器中,以保证数据库的一致性和完整性。
3.重新组织的数据
一个信息系统或是一个决策支持系统通常包含一些如日常业务处理系统中的相同数
据,对这些数据可以使用倒排表、辅助索引,或用多层次关键字进行信息检索的结构形式
组织起来的。也就是说,这些数据是由另外一些数据生成或导出的,称为重新组织的数据,
如图 8.19所示。
在某些系统中的数据,都可以从其他机器(甚至是同一机器)的数据库(或文件)中选
取,对数据可以进行摘录、编辑等。为了能够令人满意地做好这件工作,必须注意两者的数
据库模式必须相同,即应有相同的数据域表示形式,它们应是从同一数据模型和字典表示
中导出的。
4.分区数据
分区数据也称分片数据,是指同一模式在两个或多个站点的机器中使用,每台机器存
储不同的记录,但是它们的构造形式是完全相同的(水平分片)。
数据的分区形式是一种普通而又有价值的形式。 系统在地区 A 保持 A 的数据,在地
区 B 保持 B 的数据,如此等等,如图 8.20所示。 在一个组织机构中,每一个分支机构,每
·162·第八章 分布式数据库与客户机/服务器模式
一个零售店,每一个仓库或是其他业务场所,都可以有独立的计算机,它们都使用相同的
程序,大多数交易在这里产生并被处理,这些交易所用的数据也在这里处理。 这些交易也
许需要少量别处的数据,这些数据不是传送到数据存储区就是传送给它们。
图 8.19 重新组织的数据
图 8.20 分区数据
5.独立模式数据
使用独立模式数据,不同的计算机含有不同模式的数据和不同的程序,并且它们是由
不同的业务小组安装的。例如,一个系统可以处理生产数据,另一个系统处理营销数据,再
另一个系统处理财务数据等,如图 8.21 所示。
虽然它们的模式不同,但是这些独立的数据系统应该是一个公共的、自顶向下规划
的一部分,否则,就会产生有害的冗余和数据不一致。 一个站点的计算机常常需要发送一
些事务到另一个站点的计算机,或者向另一台计算机请求数据。例如在一个工厂范围内的
生产系统,提出购物的申请,并把这些申请传送给采购系统,而采购系统和生产系统所产
·2}

我要回帖

更多关于 数据库学生选课系统 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信