本书包括6部分内容和4个附录。第一部分介绍数据库设计技术两极(概念建模原理和物理文件存储技术)的基本概念。第二到第五部分对数据库系统基本原理最重要的方面进行了深入的讨论。第二部分描述关系数据模型和关系数据库管理系统,第三部分全面介绍对象数据库和对象—关系系统,第四部分包括与数据库设计相关的若干主题,第五部分讨论用于实现数据库管理系统的技术。第六部分介绍有影响的新数据库模型以及新兴的技术和应用。附录A给出许多可选用的显示ER或EER模式的图形记号,附录B给出磁盘的一些重要物理参数,附录C和D介绍基于网状数据库模型和层次数据库模型的传统数据库系统。\r\n\r\n 本书可以作为一个学期的课程,第5、6、16、17、26和27章可指定为阅读材料。本书也可以用于两个学期的课程:第一个学期的课程,“数据库设计/系统导论”,在大学二、三或四年级讲授,可包括第1章到第15章的大部分内容;第二个学期的课程,“数据库设计和实现技术”,在四年级或研究生一年级讲授,可包括书中第四部分到第六部分。对于高级的数据库课程,第六部分也可和其他指定的阅读材料一起,用作导论性的材料。\r\n\r\n 本书也是从事数据库技术研究和应用开发人员难得的一本系统而全面的参考书。\r\n
\r\n
第一部分 基本概念 \r\n\r\n 第1章 数据库与数据库用户 3 \r\n\r\n 1.1 引言 3 \r\n\r\n 1.2 一个例子 5 \r\n\r\n 1.3 数据库方法的特征 7 \r\n\r\n 1.3.1 数据库系统自描述特性 7 \r\n\r\n 1.3.2 程序与数据分离以及数据抽象 7 \r\n\r\n 1.3.3 支持数据的多视图 9 \r\n\r\n 1.3.4 数据共享和多用户事务处理 9 \r\n\r\n 1.4 数据库舞台上的角色 9 \r\n\r\n 1.4.1 数据库管理员 10 \r\n\r\n 1.4.2 数据库设计者 10 \r\n\r\n 1.4.3 最终用户 10 \r\n\r\n 1.4.4 系统分析员和应用程序员(软件工程师) 11 \r\n\r\n 1.5 幕后人员 11 \r\n\r\n 1.6 使用数据库的优势 11 \r\n\r\n 1.6.1 控制冗余 12 \r\n\r\n 1.6.2 限制未授权的访问 13 \r\n\r\n 1.6.3 为程序对象和数据结构提供持久性存储 13 \r\n\r\n 1.6.4 允许推理和使用规则的动作 13 \r\n\r\n 1.6.5 提供多用户接口 14 \r\n\r\n 1.6.6 表示数据间复杂联系 14 \r\n\r\n 1.6.7 执行完整性约束 14 \r\n\r\n 1.6.8 提供备份和恢复功能 14 \r\n\r\n 1.7 数据库方法的潜在意义 15 \r\n\r\n 1.8 什么时候不应该使用DBMS 15 \r\n\r\n 1.9 本章小结 16 \r\n\r\n 第2章 数据库系统的概念和体系结构 18 \r\n\r\n 2.1 数据模型. 模式和实例 18 \r\n\r\n 2.1.1 数据模型的分类 19 \r\n\r\n 2.1.2 模式. 实例和数据库状态 19 \r\n\r\n 2.2 DBMS体系结构和数据独立性 21 \r\n\r\n 2.2.1 三层模式体系结构 21 \r\n\r\n 2.2.2 数据独立性 22 \r\n\r\n 2.3 数据库语言和接口 23 \r\n\r\n 2.3.1 DBMS的语言 23 \r\n\r\n 2.3.2 DBMS接口 24 \r\n\r\n 2.4 数据库系统的环境 24 \r\n\r\n 2.4.1 DBMS的组成模块 25 \r\n\r\n 2.4.2 数据库系统工具 26 \r\n\r\n 2.4.3 工具. 应用环境和通讯软件 26 \r\n\r\n 2.5 数据库管理系统的分类 27 \r\n\r\n 2.6 本章小结 28 \r\n\r\n 第3章 使用实体-联系模型的数据建模 31 \r\n\r\n 3.1 使用高级概念模型进行数据库设计 31 \r\n\r\n 3.2 一个数据库应用实例 33 \r\n\r\n 3.3 实体类型. 实体集. 属性和码 34 \r\n\r\n 3.3.1 实体和属性 34 \r\n\r\n 3.3.2 实体类型. 实体集. 码和值集 36 \r\n\r\n 3.3.3 COMPANY数据库的初步概念设计 38 \r\n\r\n 3.4 联系. 联系类型. 角色和结构约束 39 \r\n\r\n 3.4.1 联系类型. 联系集和联系实例 39 \r\n\r\n 3.4.2 联系度. 角色名称和递归联系 40 \r\n\r\n 3.4.3 联系类型的约束 42 \r\n\r\n 3.4.4 联系类型的属性 43 \r\n\r\n 3.5 弱实体类型 44 \r\n\r\n 3.6 COMPANY数据库E-R设计的改进 45 \r\n\r\n 3.7 ER图. 命名规则及设计问题 46 \r\n\r\n 3.7.1 ER图表示法的小结 46 \r\n\r\n 3.7.2 模式结构的正确命名 46 \r\n\r\n 3.7.3 E-R概念设计的设计选择 47 \r\n\r\n 3.7.4 ER图的其他表示法 48 \r\n\r\n 3.8 本章小结 49 \r\n\r\n 第4章 增强的实体-联系和对象建模 54 \r\n\r\n 4.1 子类. 超类和继承 55 \r\n\r\n 4.2 特化和泛化 56 \r\n\r\n 4.3 特化和泛化的约束和特性 59 \r\n\r\n 4.4 采用范畴的UNION类型建模 63 \r\n\r\n 4.5 实例UNIVERSITY的EER模式和EER模型的规范定义 66 \r\n\r\n 4.6 采用UML类图的概念对象建模 68 \r\n\r\n 4.7 高于2度的联系类型 70 \r\n\r\n 4.8 数据抽象和知识表示的概念 73 \r\n\r\n 4.8.1 分类和实例化 74 \r\n\r\n 4.8.2 标识 74 \r\n\r\n 4.8.3 特化和泛化 75 \r\n\r\n 4.8.4 聚合和关联 75 \r\n\r\n 4.9 本章小结 76 \r\n\r\n 第5章 记录存储和主文件组织 82 \r\n\r\n 5.1 概述 82 \r\n\r\n 5.1.1 存储层次和存储设备 83 \r\n\r\n 5.1.2 数据库的存储 84 \r\n\r\n 5.2 二级存储设备 84 \r\n\r\n 5.2.1 磁盘设备的硬件性质 85 \r\n\r\n 5.2.2 磁带存储设备 88 \r\n\r\n 5.3 使用RAID技术的并行磁盘访问 89 \r\n\r\n 5.3.1 用RAID增强可靠性 90 \r\n\r\n 5.3.2 用RAID改善性能 91 \r\n\r\n 5.3.3 RAID组织体系和级别 91 \r\n\r\n 5.4 块缓冲 92 \r\n\r\n 5.5 把文件记录保存在磁盘上 94 \r\n\r\n 5.5.1 记录和记录类型 94 \r\n\r\n 5.5.2 文件. 定长记录和变长记录 94 \r\n\r\n 5.5.3 块. 跨块记录与非跨块记录 96 \r\n\r\n 5.5.4 在磁盘上分配文件块 97 \r\n\r\n 5.5.5 文件头部 97 \r\n\r\n 5.6 文件操作 97 \r\n\r\n 5.7 无序记录文件(堆文件) 99 \r\n\r\n 5.8 有序记录文件(排序文件) 100 \r\n\r\n 5.9 散列技术 102 \r\n\r\n 5.9.1 内部散列 102 \r\n\r\n 5.9.2 磁盘文件的外部散列法 104 \r\n\r\n 5.9.3 允许文件动态扩展的散列技术 106 \r\n\r\n 5.10 其他主文件组织 108 \r\n\r\n 5.10.1 混合记录文件 108 \r\n\r\n 5.10.2 B-树和其他数据结构 109 \r\n\r\n 5.11 本章小结 109 \r\n\r\n 第6章 文件索引结构 114 \r\n\r\n 6.1 单级有序索引的类型 114 \r\n\r\n 6.1.1 主索引 115 \r\n\r\n 6.1.2 聚簇索引 117 \r\n\r\n 6.1.3 辅助索引 117 \r\n\r\n 6.1.4 小结 122 \r\n\r\n 6.2 多级索引 122 \r\n\r\n 6.3 使用B-树与B+-树的动态多级索引 125 \r\n\r\n 6.3.1 搜索树和B-树 125 \r\n\r\n 6.3.2 B+-树 129 \r\n\r\n 6.4 多码上的索引 136 \r\n\r\n 6.4.1 多属性上的有序索引 136 \r\n\r\n 6.4.2 分区散列法 136 \r\n\r\n 6.4.3 网格文件 137 \r\n\r\n 6.5 其他类型的索引 137 \r\n\r\n 6.5.1 使用散列和其他数据结构作为索引 137 \r\n\r\n 6.5.2 逻辑索引与物理索引 138 \r\n\r\n 6.5.3 讨论 138 \r\n\r\n 6.6 本章小结 139 \r\n\r\n 第二部分 关系模型. 语言及系统 \r\n\r\n 第7章 关系数据模型. 关系约束和关系代数 145 \r\n\r\n 7.1 关系模型概念 145 \r\n\r\n 7.1.1 域. 属性. 元组和关系 146 \r\n\r\n 7.1.2 关系的特性 147 \r\n\r\n 7.1.3 关系模型的符号 149 \r\n\r\n 7.2 关系约束和关系数据库模式 149 \r\n\r\n 7.2.1 域约束 150 \r\n\r\n 7.2.2 码约束和空值约束 150 \r\n\r\n 7.2.3 关系数据库和关系数据库模式 151 \r\n\r\n 7.2.4 实体完整性. 参照完整性和外码 153 \r\n\r\n 7.3 更新操作和处理约束破坏 154 \r\n\r\n 7.3.1 插入操作 155 \r\n\r\n 7.3.2 删除操作 155 \r\n\r\n 7.3.3 更新操作 156 \r\n\r\n 7.4 基本关系代数操作 156 \r\n\r\n 7.4.1 选择操作 157 \r\n\r\n 7.4.2 投影操作 158 \r\n\r\n 7.4.3 操作序列和更名操作 159 \r\n\r\n 7.4.4 集合操作 160 \r\n\r\n 7.4.5 连接操作 163 \r\n\r\n 7.4.6 关系代数操作的完备集 165 \r\n\r\n 7.4.7 除操作 165 \r\n\r\n 7.5 附加关系操作 167 \r\n\r\n 7.5.1 聚集函数和分组 167 \r\n\r\n 7.5.2 递归闭包操作 168 \r\n\r\n 7.5.3 外连接和外并操作 169 \r\n\r\n 7.6 关系代数查询举例 170 \r\n\r\n 7.7 本章小结 172 \r\n\r\n 第8章 SQL-关系数据库的标准 179 \r\n\r\n 8.1 SQL2中的数据定义. 约束和模式变更 180 \r\n\r\n 8.1.1 SQL2中模式和目录的概念 180 \r\n\r\n 8.1.2 CREATE TABLE命令. SQL2的数据类型和约束条件 180 \r\n\r\n 8.1.3 DROP SCHEMA和DROP TABLE命令 184 \r\n\r\n 8.1.4 ALTER TABLE 命令 184 \r\n\r\n 8.2 SQL中的基本查询 185 \r\n\r\n 8.2.1 SQL查询的SELECT-FROM-WHERE结构 185 \r\n\r\n 8.2.2 处理多义属性名和更名(别名) 187 \r\n\r\n 8.2.3 未指定WHERE子句的查询语句和星号(*)的用法 188 \r\n\r\n 8.2.4 SQL中作为集合的表 189 \r\n\r\n 8.2.5 子串比较. 算术操作符和排序 190 \r\n\r\n 8.3 更复杂的SQL查询 192 \r\n\r\n 8.3.1 嵌套查询和集合比较 192 \r\n\r\n 8.3.2 SQL中的EXISTS和UNIQUE函数 194 \r\n\r\n 8.3.3 SQL中的显式集合和NULL 196 \r\n\r\n 8.3.4 重新命名属性和连接表 197 \r\n\r\n 8.3.5 聚集函数和分组 198 \r\n\r\n 8.3.6 SQL查询的讨论和小结 202 \r\n\r\n 8.4 SQL中的插入. 删除和更新语句 203 \r\n\r\n 8.4.1 INSERT命令 203 \r\n\r\n 8.4.2 DELETE命令 204 \r\n\r\n 8.4.3 UPDATE命令 205 \r\n\r\n 8.5 SQL中的视图(虚表) 205 \r\n\r\n 8.5.1 SQL中视图的概念 205 \r\n\r\n 8.5.2 SQL中的视图说明 206 \r\n\r\n 8.5.3 视图的实现和视图的更新 207 \r\n\r\n 8.6 指定一般约束作为断言 208 \r\n\r\n 8.7 SQL的其他特性 209 \r\n\r\n 8.8 本章小结 210 \r\n\r\n 第9章 ER模型和EER模型到关系模型的映射以及其他关系语言 214 \r\n\r\n 9.1 使用ER模型到关系模型的映射进行关系数据库设计 214 \r\n\r\n 9.1.1 ER模式映射到关系模式的算法 215 \r\n\r\n 9.1.2 ER模型和关系模型之间的对应关系 218 \r\n\r\n 9.2 将EER模型的概念映射为关系 218 \r\n\r\n 9.2.1 超类/子类联系和特化(或泛化) 218 \r\n\r\n 9.2.2 共享子类的映射 220 \r\n\r\n 9.2.3 范畴的映射 220 \r\n\r\n 9.3 元组关系演算 221 \r\n\r\n 9.3.1 元组变量和值域关系 222 \r\n\r\n 9.3.2 元组关系演算中的表达式和公式 223 \r\n\r\n 9.3.3 存在量词和全称量词 223 \r\n\r\n 9.3.4 使用存在量词的查询实例 224 \r\n\r\n 9.3.5 全称量词和存在量词的转换 225 \r\n\r\n 9.3.6 全称量词的使用 225 \r\n\r\n 9.3.7 安全表达式 227 \r\n\r\n 9.3.8 SQL中的量词 227 \r\n\r\n 9.4 域关系演算 227 \r\n\r\n 9.5 QBE语言概述 229 \r\n\r\n 9.5.1 QBE中的基本查询 230 \r\n\r\n 9.5.2 QBE中的分组. 聚集和数据库修改 233 \r\n\r\n 9.6 本章小结 234 \r\n\r\n 第10章 关系数据库管理系统实例:Oracle和Microsoft Access 238 \r\n\r\n 10.1 关系数据库管理系统的发展历史 238 \r\n\r\n 10.2 Oracle系统的基本结构 239 \r\n\r\n 10.2.1 Oracle数据库结构 239 \r\n\r\n 10.2.2 Oracle进程 241 \r\n\r\n 10.2.3 Oracle的启动和关闭 242 \r\n\r\n 10.3 Oracle数据库结构和操作 242 \r\n\r\n 10.3.1 模式对象 242 \r\n\r\n 10.3.2 Oracle数据字典 243 \r\n\r\n 10.3.3 Oracle中的SQL 244 \r\n\r\n 10.3.4 Oracle 8中的方法 245 \r\n\r\n 10.3.5 触发器 245 \r\n\r\n 10.4 Oracle中的存储组织 245 \r\n\r\n 10.4.1 数据块 246 \r\n\r\n 10.4.2 盘区 247 \r\n\r\n 10.4.3 段 247 \r\n\r\n 10.5 Oracle应用程序设计 248 \r\n\r\n 10.5.1 PL/SQL程序设计 248 \r\n\r\n 10.5.2 PL/SQL中的游标 250 \r\n\r\n 10.5.3 PRO*C举例 252 \r\n\r\n 10.6 Oracle工具 254 \r\n\r\n 10.7 Microsoft Access概述 254 \r\n\r\n 10.7.1 Access的结构 255 \r\n\r\n 10.7.2 Access数据库的数据定义 255 \r\n\r\n 10.7.3 定义联系和参照完整性约束 256 \r\n\r\n 10.7.4 Access中的数据操纵 258 \r\n\r\n 10.8 Access的特征和功能 259 \r\n\r\n 10.8.1 窗体 259 \r\n\r\n 10.8.2 报表 260 \r\n\r\n 10.8.3 宏和Access Basic 261 \r\n\r\n 10.8.4 附加的特征 262 \r\n\r\n 10.9 本章小结 262 \r\n\r\n 第三部分 面向对象与扩展关系数据库技术 \r\n\r\n 第11章 面向对象数据库的概念 267 \r\n\r\n 11.1 面向对象的概念 268 \r\n\r\n 11.2 对象标识. 对象结构和类型构造器 270 \r\n\r\n 11.2.1 对象标识 270 \r\n\r\n 11.2.2 对象结构 271 \r\n\r\n 11.2.3 类型构造器 272 \r\n\r\n 11.3 操作. 方法和持久性封装 274 \r\n\r\n 11.3.1 通过类操作指定对象行为 274 \r\n\r\n 11.3.2 通过命名和可达性定义对象的持久性 276 \r\n\r\n 11.4 类型层次和类型继承 277 \r\n\r\n 11.4.1 类型层次和类型继承 277 \r\n\r\n 11.4.2 与类型层次对应的类外延约束 279 \r\n\r\n 11.5 复杂对象 280 \r\n\r\n 11.5.1 非结构化复杂对象和类型可扩展性 280 \r\n\r\n 11.5.2 结构化复杂对象 281 \r\n\r\n 11.6 其他面向对象的概念 281 \r\n\r\n 11.6.1 多态性(操作符重载) 281 \r\n\r\n 11.6.2 多重继承和选择性继承 282 \r\n\r\n 11.6.3 版本和配置 283 \r\n\r\n 11.7 本章小结 283 \r\n\r\n 第12章 对象数据库标准. 语言和设计 286 \r\n\r\n 12.1 ODMG对象模型概述 287 \r\n\r\n 12.1.1 对象和文字 287 \r\n\r\n 12.1.2 汇集对象的内建接口 291 \r\n\r\n 12.1.3 原子(用户定义的)对象 293 \r\n\r\n 12.1.4 接口. 类和继承 294 \r\n\r\n 12.1.5 类外延. 码以及工厂对象 295 \r\n\r\n 12.2 对象定义语言 296 \r\n\r\n 12.3 对象查询语言 301 \r\n\r\n 12.3.1 简单OQL查询. 数据库入口点以及迭代变量 301 \r\n\r\n 12.3.2 查询结果和路径表达式 302 \r\n\r\n 12.3.3 OQL的其他特征 304 \r\n\r\n 12.4 C++语言绑定概述 307 \r\n\r\n 12.5 对象数据库概念设计 308 \r\n\r\n 12.5.1 ODB与RDB概念设计之间的区别 308 \r\n\r\n 12.5.2 EER模式到ODB模式的映射 308 \r\n\r\n 12.6 ODBMS的例子 310 \r\n\r\n 12.6.1 O2系统概述 310 \r\n\r\n 12.6.2 ObjectStore系统概述 313 \r\n\r\n 12.7 关于分布式对象的CORBA标准概述 318 \r\n\r\n 12.8 本章小结 320 \r\n\r\n 第13章 对象关系和扩展关系数据库系统 322 \r\n\r\n 13.1 数据库技术的演变和当前趋势 322 \r\n\r\n 13.1.1 数据库系统技术的演变 322 \r\n\r\n 13.1.2 当前数据库系统技术的动力 323 \r\n\r\n 13.2 Informix Universal Server 323 \r\n\r\n 13.2.1 可扩展的数据类型 324 \r\n\r\n 13.2.2 对用户定义例程的支持 326 \r\n\r\n 13.2.3 对继承的支持 326 \r\n\r\n 13.2.4 对索引扩展的支持 328 \r\n\r\n 13.2.5 对外部数据源的支持 328 \r\n\r\n 13.2.6 对数据刀片应用编程接口的支持 328 \r\n\r\n 13.3 Oracle 8的对象-关系特征 331 \r\n\r\n 13.3.1 Oracle对象关系特征的例子 331 \r\n\r\n 13.3.2 大对象的管理以及其他存储特征 333 \r\n\r\n 13.4 SQL3概述 333 \r\n\r\n 13.4.1 SQL3标准及其组成 333 \r\n\r\n 13.4.2 SQL3中一些新的操作和特征 334 \r\n\r\n 13.4.3 SQL3中的对象关系支持 335 \r\n\r\n 13.5 扩展类型系统的实现以及相关问题 338 \r\n\r\n 13.6 嵌套关系数据模型 339 \r\n\r\n 13.7 本章小结 341 \r\n\r\n 第四部分 数据库设计理论及方法 \r\n\r\n 第14章 函数依赖和关系数据库的规范化 345 \r\n\r\n 14.1 关系模式的非形式化设计准则 346 \r\n\r\n 14.1.1 关系属性的语义 346 \r\n\r\n 14.1.2 元组中的冗余信息和更新异常 349 \r\n\r\n 14.1.3 元组中的空值 350 \r\n\r\n 14.1.4 寄生元组的生成 351 \r\n\r\n 14.1.5 设计准则的总结和讨论 353 \r\n\r\n 14.2 函数依赖 353 \r\n\r\n 14.2.1 函数依赖的定义 353 \r\n\r\n 14.2.2 函数依赖的推理规则 354 \r\n\r\n 14.2.3 函数依赖集的等价 357 \r\n\r\n 14.2.4 最小函数依赖集 357 \r\n\r\n 14.3 基于主码的范式 358 \r\n\r\n 14.3.1 规范化介绍 358 \r\n\r\n 14.3.2 第一范式 359 \r\n\r\n 14.3.3 第二范式 362 \r\n\r\n 14.3.4 第三范式 363 \r\n\r\n 14.4 第二范式和第三范式的通用定义 364 \r\n\r\n 14.4.1 第二范式的通用定义 364 \r\n\r\n 14.4.2 第三范式的通用定义 366 \r\n\r\n 14.4.3 解释3NF的通用定义 366 \r\n\r\n 14.5 Boyce-Codd范式 366 \r\n\r\n 14.6 本章小结 368 \r\n\r\n 第15章 关系数据库设计算法和其他依赖 372 \r\n\r\n 15.1 关系数据库模式设计算法 372 \r\n\r\n 15.1.1 关系分解和范式的不足 373 \r\n\r\n 15.1.2 分解和依赖保持 373 \r\n\r\n 15.1.3 分解和无损(非加性)连接 374 \r\n\r\n 15.1.4 空值问题和悬挂元组问题 379 \r\n\r\n 15.1.5 规范化算法的讨论 381 \r\n\r\n 15.2 多值依赖和第四范式 381 \r\n\r\n 15.2.1 多值依赖的形式化定义 381 \r\n\r\n 15.2.2 函数依赖和多值依赖的推理规则 383 \r\n\r\n 15.2.3 第四范式 384 \r\n\r\n 15.2.4 无损连接分解为第四范式的关系 385 \r\n\r\n 15.3 连接依赖和第五范式 385 \r\n\r\n 15.4 包含依赖 386 \r\n\r\n 15.5 其他的依赖和范式 387 \r\n\r\n 15.5.1 模板依赖 387 \r\n\r\n 15.5.2 域-码范式(DKNF) 388 \r\n\r\n 15.6 本章小结 388 \r\n\r\n 第16章 实际数据库设计和调整 391 \r\n\r\n 16.1 组织中信息系统的角色 392 \r\n\r\n 16.1.1 使用数据库系统的组织环境 392 \r\n\r\n 16.1.2 信息系统的生命周期 393 \r\n\r\n 16.1.3 数据库应用系统的生命周期 394 \r\n\r\n 16.2 数据库设计过程 394 \r\n\r\n 16.2.1 第一阶段:需求收集和分析 396 \r\n\r\n 16.2.2 第二阶段:概念数据库设计 397 \r\n\r\n 16.2.3 第三阶段:DBMS的选择 404 \r\n\r\n 16.2.4 第四阶段:数据模型映射(逻辑数据库设计) 406 \r\n\r\n 16.2.5 第五阶段:物理数据库设计 406 \r\n\r\n 16.2.6 第六阶段:数据库系统的实现和调整 407 \r\n\r\n 16.3 关系数据库的物理设计 407 \r\n\r\n 16.3.1 影响物理数据库设计的因素 408 \r\n\r\n 16.3.2 物理数据库的设计策略 409 \r\n\r\n 16.4 概述关系系统中的数据库调整 410 \r\n\r\n 16.4.1 索引的调整 411 \r\n\r\n 16.4.2 数据库设计的调整 411 \r\n\r\n 16.4.3 查询的调整 412 \r\n\r\n 16.4.4 其他的查询调整原则 413 \r\n\r\n 16.5 自动化设计工具 414 \r\n\r\n 16.6 本章小结 416 \r\n\r\n 第五部分 系统实现技术 \r\n\r\n 第17章 数据库系统体系结构和系统目录 421 \r\n\r\n 17.1 DBMS的系统体系结构 421 \r\n\r\n 17.1.1 集中式DBMS体系结构 421 \r\n\r\n 17.1.2 客户机/服务器体系结构 422 \r\n\r\n 17.1.3 DBMS的客户机/服务器体系结构 423 \r\n\r\n 17.2 关系型DBMS的目录 424 \r\n\r\n 17.3 ORACLE的系统目录信息 427 \r\n\r\n 17.4 由DBMS软件模块存取的其他目录信息 430 \r\n\r\n 17.5 数据字典和数据知识库系统 431 \r\n\r\n 17.6 本章小结 431 \r\n\r\n 第18章 查询处理和查询优化 433 \r\n\r\n 18.1 把SQL查询转换成关系代数 435 \r\n\r\n 18.2 执行查询操作的基本算法 435 \r\n\r\n 18.2.1 外排序 436 \r\n\r\n 18.2.2 SELECT操作的实现 437 \r\n\r\n 18.2.3 JOIN操作的实现 439 \r\n\r\n 18.2.4 PROJECT和集合操作的实现 444 \r\n\r\n 18.2.5 聚集操作的实现 445 \r\n\r\n 18.2.6 外连接的实现 446 \r\n\r\n 18.2.7 用流水线组合操作 446 \r\n\r\n 18.3 在查询优化中使用启发式 447 \r\n\r\n 18.3.1 查询树和查询图的符号表示法 447 \r\n\r\n 18.3.2 查询树的启发式优化 449 \r\n\r\n 18.3.3 把查询树转换成查询执行计划 454 \r\n\r\n 18.4 利用选择性和代价估计进行查询优化 454 \r\n\r\n 18.4.1 查询执行的代价因素 455 \r\n\r\n 18.4.2 在代价函数中使用目录信息 455 \r\n\r\n 18.4.3 选择操作的代价函数示例 456 \r\n\r\n 18.4.4 JOIN操作的代价函数示例 457 \r\n\r\n 18.4.5 多关系查询和连接顺序 459 \r\n\r\n 18.4.6 说明基于代价的查询优化的例子 460 \r\n\r\n 18.5 ORACLE的查询优化 461 \r\n\r\n 18.6 语义查询优化 462 \r\n\r\n 18.7 本章小结 462 \r\n\r\n 第19章 事务处理概念 465 \r\n\r\n 19.1 事务处理简介 465 \r\n\r\n 19.1.1 单用户系统与多用户系统 465 \r\n\r\n 19.1.2 事务. 读写操作和DBMS缓冲区 466 \r\n\r\n 19.1.3 并发控制的必要性 467 \r\n\r\n 19.1.4 恢复的必要性 469 \r\n\r\n 19.2 事务和系统概念 470 \r\n\r\n 19.2.1 事务状态及其他操作 470 \r\n\r\n 19.2.2 系统日志 471 \r\n\r\n 19.2.3 事务的提交点 472 \r\n\r\n 19.3 事务的ACID特性 472 \r\n\r\n 19.4 调度和可恢复性 473 \r\n\r\n 19.4.1 事务的调度(历史) 473 \r\n\r\n 19.4.2 基于可恢复性的特征化调度 474 \r\n\r\n 19.5 调度的可串行性 475 \r\n\r\n 19.5.1 串行. 非串行和冲突-可串行化调度 475 \r\n\r\n 19.5.2 调度的冲突可串行性测试 478 \r\n\r\n 19.5.3 可串行性的用途 481 \r\n\r\n 19.5.4 视图等价和视图可串行性 481 \r\n\r\n 19.5.5 其他调度等价类型 482 \r\n\r\n 19.6 SQL中的事务支持 483 \r\n\r\n 19.7 本章小结 484 \r\n\r\n 第20章 并发控制技术 487 \r\n\r\n 20.1 并发控制的封锁技术 487 \r\n\r\n 20.1.1 锁的类型和系统锁表 487 \r\n\r\n 20.1.2 通过两阶段封锁来保证可串行性 491 \r\n\r\n 20.1.3 死锁和饥饿的处理 492 \r\n\r\n 20.2 基于时间戳顺序的并发控制 494 \r\n\r\n 20.2.1 时间戳 495 \r\n\r\n 20.2.2 时间戳的排序算法 495 \r\n\r\n 20.3 多版本并发控制技术 496 \r\n\r\n 20.3.1 基于时间戳排序的多版本技术 497 \r\n\r\n 20.3.2 采用验证锁的多版本两阶段封锁 497 \r\n\r\n 20.4 确认(乐观的)并发控制技术 498 \r\n\r\n 20.5 数据项的粒度和多粒度封锁 499 \r\n\r\n 20.5.1 关于封锁的粒度级别 499 \r\n\r\n 20.5.2 多粒度级别封锁 500 \r\n\r\n 20.6 索引中使用锁的并发控制 502 \r\n\r\n 20.7 并发控制的其他问题 503 \r\n\r\n 20.7.1 插入. 删除以及幻象记录 503 \r\n\r\n 20.7.2 交互事务 504 \r\n\r\n 20.7.3 锁存器 504 \r\n\r\n 20.8 本章小结 504 \r\n\r\n 第21章 数据库的恢复技术 507 \r\n\r\n 21.1 恢复的概念 507 \r\n\r\n 21.1.1 恢复概述和恢复算法的分类 507 \r\n\r\n 21.1.2 磁盘块缓存 508 \r\n\r\n 21.1.3 先写日志. 潜入/非-潜入和强制/非-强制 508 \r\n\r\n 21.1.4 检查点和模糊检查点 509 \r\n\r\n 21.1.5 事务的回滚 510 \r\n\r\n 21.2 基于延迟更新的恢复技术 511 \r\n\r\n 21.2.1 单用户环境下基于延迟更新的恢复 512 \r\n\r\n 21.2.2 多用户环境下并发执行的延迟更新 512 \r\n\r\n 21.2.3 不影响数据库的事务动作 514 \r\n\r\n 21.3 基于立即更新的恢复技术 515 \r\n\r\n 21.3.1 单用户环境下基于立即更新的UNDO/REDO恢复 515 \r\n\r\n 21.3.2 多用户环境下基于立即更新的UNDO/REDO恢复 515 \r\n\r\n 21.4 影子分页 516 \r\n\r\n 21.5 ARIES恢复算法 517 \r\n\r\n 21.6 多数据库系统中的恢复 519 \r\n\r\n 21.7 灾难性故障的数据库备份和恢复 520 \r\n\r\n 21.8 本章小结 520 \r\n\r\n 第22章 数据库的安全性和授权机制 525 \r\n\r\n 22.1 数据库安全性问题介绍 525 \r\n\r\n 22.1.1 安全性问题的类型 525 \r\n\r\n 22.1.2 数据库的安全性和DBA 526 \r\n\r\n 22.1.3 存取保护. 用户帐户和数据库审计 526 \r\n\r\n 22.2 基于授予/ 撤销特权的自主存取控制 527 \r\n\r\n 22.2.1 自主型特权的类型 527 \r\n\r\n 22.2.2 使用视图指定特权 528 \r\n\r\n 22.2.3 撤销特权 528 \r\n\r\n 22.2.4 使用GRANT OPTION选项传播特权 529 \r\n\r\n 22.2.5 一个例子 529 \r\n\r\n 22.2.6 指定特权传播的范围 530 \r\n\r\n 22.3 具有多级安全性特征的强制存取控制 531 \r\n\r\n 22.4 统计数据库的安全性 533 \r\n\r\n 22.5 本章小结 534 \r\n\r\n 第六部分 高级数据库概念 \r\n\r\n 第23章 高级应用的增强数据模型 539 \r\n\r\n 23.1 主动数据库 540 \r\n\r\n 23.1.1 主动数据库和Oracle触发器的一般模型 540 \r\n\r\n 23.1.2 主动数据库的设计和实现 543 \r\n\r\n 23.1.3 STARBURST系统中使用语句级主动规则的例子 545 \r\n\r\n 23.1.4 主动数据库的应用 547 \r\n\r\n 23.2 时态数据库概念 547 \r\n\r\n 23.2.1 时间表示法. 历法和时间维度 548 \r\n\r\n 23.2.2 使用元组版本化在关系数据库中加入时间 549 \r\n\r\n 23.2.3 使用属性版本化在面向对象数据库中加入时间 553 \r\n\r\n 23.2.4 时态查询构造与TSQL2语言 555 \r\n\r\n 23.2.5 时间序列数据 556 \r\n\r\n 23.3 空间和多媒体数据库 557 \r\n\r\n 23.3.1 空间数据库概念介绍 557 \r\n\r\n 23.3.2 多媒体数据库概念介绍 558 \r\n\r\n 23.4 本章小结 559 \r\n\r\n 第24章 分布式数据库和客户机/服务器体系结构 562 \r\n\r\n 24.1 分布式数据库概念 562 \r\n\r\n 24.1.1 并行及分布技术 563 \r\n\r\n 24.1.2 分布式数据库的优势 564 \r\n\r\n 24.1.3 分布式数据库的附加功能 565 \r\n\r\n 24.2 分布式数据库设计的数据分片. 复制和分配技术 566 \r\n\r\n 24.2.1 数据分片 566 \r\n\r\n 24.2.2 数据复制和分配 568 \r\n\r\n 24.2.3 分段. 分配和复制的实例 569 \r\n\r\n 24.3 分布式数据库系统的类型 571 \r\n\r\n 24.4 分布式数据库中的查询处理 573 \r\n\r\n 24.4.1 分布式查询处理的数据传送代价 573 \r\n\r\n 24.4.2 采用半连接的分布式查询处理 575 \r\n\r\n 24.4.3 查询和更新分解 575 \r\n\r\n 24.5 分布式数据库中并发控制和恢复的概述 577 \r\n\r\n 24.5.1 基于数据项识别拷贝的分布式并发控制 577 \r\n\r\n 24.5.2 基于投票方法的分布式并发控制 578 \r\n\r\n 24.5.3 分布式恢复 579 \r\n\r\n 24.6 客户机/服务器体系结构的概述和它与分布式数据库的关系 579 \r\n\r\n 24.7 Oracle的分布式数据库 580 \r\n\r\n 24.8 客户机/服务器技术的远景展望 582 \r\n\r\n 24.9 本章小结 583 \r\n\r\n 第25章 演绎数据库 587 \r\n\r\n 25.1 演绎数据库简介 587 \r\n\r\n 25.2 Prolog/Datalog符号 588 \r\n\r\n 25.2.1 一个例子 588 \r\n\r\n 25.2.2 Datalog符号 590 \r\n\r\n 25.2.3 子句形式和Horn子句 590 \r\n\r\n 25.3 规则的解释 591 \r\n\r\n 25.4 逻辑程序的基本推理机制 593 \r\n\r\n 25.4.1 自底向上推理机制(正向链接) 593 \r\n\r\n 25.4.2 自顶向下推理机制(反向链接) 594 \r\n\r\n 25.5 Datalog程序和计算 595 \r\n\r\n 25.5.1 程序的安全性 596 \r\n\r\n 25.5.2 使用关系操作 597 \r\n\r\n 25.5.3 非递归Datalog查询的计算 598 \r\n\r\n 25.5.4 Datalog中递归查询处理的概念 600 \r\n\r\n 25.5.5 分层否定 604 \r\n\r\n 25.6 演绎数据库系统 605 \r\n\r\n 25.6.1 LDL系统 605 \r\n\r\n 25.6.2 NAIL! 607 \r\n\r\n 25.6.3 CORAL系统 608 \r\n\r\n 25.7 面向对象的演绎数据库 609 \r\n\r\n 25.7.1 DOOD简介 609 \r\n\r\n 25.7.2 VALIDITY 609 \r\n\r\n 25.8 商业演绎数据库系统的应用 610 \r\n\r\n 25.8.1 LDL应用 610 \r\n\r\n 25.8.2 VALIDITY的应用 611 \r\n\r\n 25.9 本章小结 611 \r\n\r\n 第26章 数据仓库和数据挖掘 615 \r\n\r\n 26.1 数据仓库 615 \r\n\r\n 26.1.1 术语和定义 615 \r\n\r\n 26.1.2 数据仓库的特性 616 \r\n\r\n 26.1.3 数据仓库的数据模型 617 \r\n\r\n 26.1.4 构建数据仓库 621 \r\n\r\n 26.1.5 数据仓库的典型功能 623 \r\n\r\n 26.1.6 数据仓库实现中的困难 624 \r\n\r\n 26.1.7 数据仓库的开放问题 624 \r\n\r\n 26.2 数据挖掘 625 \r\n\r\n 26.2.1 数据挖掘技术概述 625 \r\n\r\n 26.2.2 关联规则 627 \r\n\r\n 26.2.3 其他数据挖掘问题 631 \r\n\r\n 26.2.4 数据挖掘的应用 633 \r\n\r\n 26.2.5 商业化数据挖掘工具的发展水平 633 \r\n\r\n 26.3 本章小结 635 \r\n\r\n 第27章 数据库的新技术及新应用 637 \r\n\r\n 27.1 WWW数据库 637 \r\n\r\n 27.1.1 Web上数据库的存取 638 \r\n\r\n 27.1.2 INFORMIX的Web Integration Option方案 639 \r\n\r\n 27.1.3 ORACLE Web服务器 640 \r\n\r\n 27.1.4 Web数据库面临的问题 640 \r\n\r\n 27.1.5 关于万维网数据库的参考资料 641 \r\n\r\n 27.2 多媒体数据库 642 \r\n\r\n 27.2.1 多媒体数据及其应用 642 \r\n\r\n 27.2.2 数据管理问题 643 \r\n\r\n 27.2.3 新的研究课题 643 \r\n\r\n 27.2.4 多媒体数据库的应用 644 \r\n\r\n 27.2.5 关于多媒体数据库的参考资料 645 \r\n\r\n 27.3 移动数据库 645 \r\n\r\n 27.3.1 移动计算结构 646 \r\n\r\n 27.3.2 移动应用中的数据 647 \r\n\r\n 27.3.3 数据管理问题 647 \r\n\r\n 27.3.4 间歇同步移动数据 648 \r\n\r\n 27.3.5 关于移动数据库的参考资料 649 \r\n\r\n 27.4 地理信息系统 649 \r\n\r\n 27.4.1 GIS应用 649 \r\n\r\n 27.4.2 GIS的数据管理 650 \r\n\r\n 27.4.3 GIS专有的数据操作 651 \r\n\r\n 27.4.4 GIS实例:ARC-INFO 651 \r\n\r\n 27.4.5 GIS的现状及前景 652 \r\n\r\n 27.4.6 关于GIS的参考资料 652 \r\n\r\n 27.5 基因组数据管理 653 \r\n\r\n 27.5.1 生物科学和遗传学 653 \r\n\r\n 27.5.2 生物数据的特性 653 \r\n\r\n 27.5.3 人类基因组项目和现有的生物数据库 654 \r\n\r\n 27.5.4 关于基因组数据库的参考资料 657 \r\n\r\n 27.6 数字图书馆 657 \r\n\r\n 27.6.1 数字图书馆项目 658 \r\n\r\n 27.6.2 关于数字图书馆的参考资料 658 \r\n\r\n 附录A 可选择的图形符号 659 \r\n\r\n 附录B 磁盘参数 661 \r\n\r\n 附录C 网状数据模型概述 663 \r\n\r\n C.1 网状数据模型概念 663 \r\n\r\n C.1.1 记录. 记录类型和数据项 663 \r\n\r\n C.1.2 系类型及其基本特征 664 \r\n\r\n C.1.3 特殊的系类型 666 \r\n\r\n C.1.4 系实例存储的表示法 666 \r\n\r\n C.1.5 使用系表示M:N联系 667 \r\n\r\n C.2 网状模型中的约束 670 \r\n\r\n C.2.1 系的插入选项 (约束) 670 \r\n\r\n C.2.2 系的保留选项 (约束) 670 \r\n\r\n C.2.3 系排序选项 672 \r\n\r\n C.2.4 系选择选项 672 \r\n\r\n C.2.5 网状模型中的数据定义 672 \r\n\r\n C.3 网状数据库的数据操纵 673 \r\n\r\n C.3.1 网状数据库操纵的基本概念 673 \r\n\r\n C.4 网状数据操纵语言 674 \r\n\r\n C.4.1 DML中的检索和导航命令 677 \r\n\r\n C.4.2 系处理的DML命令 678 \r\n\r\n C.4.3 用于更新数据库的 DML 命令 679 \r\n\r\n C.4.4 更新系实例的命令 680 \r\n\r\n 附录D 层次数据模型概述 682 \r\n\r\n D.1 层次数据库结构 682 \r\n\r\n D.1.1 父-子联系和层次模式 682 \r\n\r\n D.1.2 层次模式的性质 683 \r\n\r\n D.1.3 层次具体值树 684 \r\n\r\n D.1.4 层次具体值树的线性形式 685 \r\n\r\n D.1.5 虚拟父-子联系 686 \r\n\r\n D.2 层次模型中完整性约束和数据定义 687 \r\n\r\n D.2.1 层次模型中完整性约束 687 \r\n\r\n D.2.2 层次模型的数据定义 688 \r\n\r\n D.3 层次模型的数据操纵语言 690 \r\n\r\n D.3.1 GET命令 690 \r\n\r\n D.3.2 检索命令GET PATH 和 GET NEXT WITHIN PARENT 691 \r\n\r\n D.3.3 HDML的更新命令 692 \r\n\r\n D.3.4 IMS--层次DBMS 692 \r\n
\r\n
信息化时代的来临, 使以计算机技术为基础的信息科学与技术在经济和社会生活各个领域得到了极为广泛的应用. 数据库技术已经成为现代信息技术的重要组成部分, 是现代计算机信息系统的基础和核心. 因此, 数据库的建设规模和使用程度是衡量一个国家信息化程度的重要标志之一.
数据库系统是对数据进行存储. 管理. 处理和维护的计算机软件系统. 数据库技术是应数据管理应用的需要而产生, 数据库的发展与应用密切相关. 数据库从20世纪60年代中期产生至今仅仅30多年的历史, 就已经经历了三代的演变, 目前已经发展成为一个庞大的数据库家族. 传统的层次和网状数据库仍在使用, 关系数据库已经取得巨大的成功, 面向对象数据库更加直接和灵活, Internet和Web技术的迅速发展迫切需要用数据库来管理网络上的巨大信息资源.
近几年来, 许多出版社都影印和翻译了数据库方向的教材, 为什么我们还要花费大量精力来翻译本书呢?这是因为本书内容系统. 全面, 安排合理, 深入浅出, 技术含量和学术价值高, 既包括数据库系统基本概念. 体系结构. 数据模型. 设计方法. 实现技术, 又反映数据库技术的最新发展和数据库应用的最新进展. 全书概念原理叙述得正确清楚, 技术方法实例恰当可信, 全书贯穿两个例子:COMPANY和UNIVERSITY, 使得读者能够使 用同一个应用来比较不同的方法. 本书是一本数据库系统课程的好教材. 好资料.
同时, 本书在特定的数据库领域内具有一定的权威性. 本书作者Ranez Elmasri是美国Arlington的Texas大学计算机科学与工程系的教授. 他曾是《Journal of Parallel and Distributed Databases》的编辑, 并且是“International Conference on Conceptual Modeling”的指导委员会成员. 在过去的20年中, 他从事的研究包括数据库系统领域以及系统和软件集成领域. Elmasri教授曾获得Arlington 的Texas大学工程学院的Robert Q. Lee教学奖. 本书的另一位作者Shamkant B. Navathe是Georgia理工学院计算机学院的数据库研究组的负责人. Navathe教授以前工作于IBM和西门子公司的研究部门, 同时是包括DEC公司. HP公司和Equifax 公司在内的许多公司的顾问. 当前是《Information Systems》(Pergamon Press)和《Distributed and Parallel Databases》(Kluwer Academic Publishers)的编委.
本书的翻译和审校由中国科学院研究生院信息学院邵佩英教授和中国人民大学信息学院张坤龙老师共同组织完成. 参加翻译的还有(按姓氏笔画)中国人民大学信息学院王艺超. 史大治. 肖英治. 李娜. 罗毅. 袁媛. 全书由邵佩英教授负责统一定稿.
由于水平有限, 翻译难免有不当之处, 恳请读者批评指正.
本书在翻译过程中曾得到中国人民大学王珊教授和中国科学院高能物理所李伯民研究员的关心和指导, 并得到中国科学院研究生院王辉. 祝孔强. 阚劲松. 李红和的帮助, 在此向他们表示衷心的感谢.
译者
中国人民大学信息学院
中国科学院研究生院信息学院
2002年5月
Ramez A. Elmasri是阿灵顿Texas大学计算机科学与工程系的教授.
Elmasri教授以前在Honeywell公司和Houston大学工作过.
他曾是《Journal of Parallel and Distributed Databases》的编辑, 并且是概念模型国际会议的指导委员会成员.
.
他是1993年实体联系方法国际会议的程序主席.
在过去的20年中, 他从事的研究由NSF.
NASA.
ARRI.
Texas Instruments.
Honeywell公司.
本书介绍设计. 使用和实现数据库系统及其应用所需要掌握的基本概念. 本书着重于介绍数据库建模和设计的基本原理. 数据库管理系统所提供的语言和工具以及系统实现技术. 本书可以作为大学三. 四年级和研究生阶段一到两个学期的数据库系统课程的教材或参考书. 本书假定读者已经熟悉基本的程序设计和数据结构概念, 并且已经接触过一些基本的计算机结构.
第一部分是本书的开始, 介绍数据库设计技术(概念建模原理和物理文件存储技术)的基本概念. 本书以第六部分结束, 介绍有影响的新的数据库模型(如主动模型. 时态模型和演绎模型)以及新兴的技术和应用(如数据挖掘. 数据仓库和Web数据库). 从第二部分到第五部分, 对数据库系统基本原理的最重要的方面进行了深入的讨论.
在第三版中包含以下主要特征:
● 整本书具有自成系统的. 灵活的组织方式, 可根据个人的需要进行剪裁.
● 第二部分对于关系模型提供了完整的和最新的内容, 还包括Oracle和Microsoft Access的新内容作为关系系统的例子.
● 第三部分对对象数据库和对象关系系统作了全面的介绍, 包括ODMG对象模型和OQL查询语言, 以及SQL3. INFORMIX和ORACLE 8中对象一关系特征的概述.
● EER概念建模的最新内容移到第4章, 以便紧接第3章的基本ER建模, 并且包含了新的一节介绍UML类图的表示法.
● 整本书贯穿两个例子:COMPANY 和UNIVERSITY, 以使读者能够以同一个应用来比较不同的方法.
● 更新了数据库设计方面的内容, 包括概念设计. 规范化技术. 物理设计和数据库调整.
有关数据库系统实现概念的各章, 包括目录. 查询处理. 并发控制. 恢复和安全, 现在都包含了这些概念如何在实际数据库中实现的小节.
● 新增加客户机/服务器体系结构. 主动数据库. 时态数据库和空间数据库例子的小节.
● 包含数据库决策支持应用的最新进展, 包括数据仓库/OLAP和数据挖掘的概述.
● 包含数据库技术的最新发展情况, 包括Web数据库. 移动数据库和多媒体数据库.
● 关注世纪之交数据库重要的新应用领域:地理数据库. 基因数据库和数字图书馆.
无封面