本书是为了满足新世纪高等学校数据库教学的需要而编写的教材。本书较全面地介绍了数据库系统的基本原理、设计和应用技术。内容包括数据库基础知识、关系数据模型、关系数据库语言SQL、数据库管理系统、关系数据库设计理论基础、非关系数据模型、关系数据库设计、数据库的完整性与安全性、网络数据库系统、分布式数据库系统、面向对象数据库系统和数据仓库。\r\n\r\n 本书以奠定数据库理论基础、培养数据库开发能力为目标,既讲原理又讲设计与应用,重视学习数据库的基本原理,更重视学习当前的数据库实用技术。所介绍的技术以实用为本,学以致用,并且反映数据库技术的最新进展。本书叙述严谨,循序渐进,并且备有适量的例题和习题。\r\n\r\n 本书可作为高等院校计算机类专业、信息管理类专业本科高年级学生及研究生的教材,也可供与计算机相关专业的技术人员使用。\r\n
\r\n
第1章 基础知识 1 \r\n\r\n 1.1 数据库系统 2 \r\n\r\n 1.1.1 信息世界 2 \r\n\r\n 1.1.2 数据管理 3 \r\n\r\n 1.1.3 数据库系统的组成 5 \r\n\r\n 1.1.4 数据库系统的作用与优越性 6 \r\n\r\n 1.2 数据模型 7 \r\n\r\n 1.2.1 信息的3个世界 7 \r\n\r\n 1.2.2 数据模型的特性及分类 8 \r\n\r\n 1.2.3 层次模型 10 \r\n\r\n 1.2.4 网状模型 11 \r\n\r\n 1.2.5 关系模型 12 \r\n\r\n 1.2.6 数据模型的相互转换和比较 13 \r\n\r\n 1.3 数据库系统的构造 14 \r\n\r\n 1.3.1 数据库系统结构 14 \r\n\r\n 1.3.2 数据库概念模式 15 \r\n\r\n 1.3.3 数据库外模式 16 \r\n\r\n 1.3.4 数据库内模式 17 \r\n\r\n 1.3.5 数据库管理员 17 \r\n\r\n 1.3.6 数据库系统的体系结构 18 \r\n\r\n 1.4 数据库管理系统 19 \r\n\r\n 1.4.1 什么是数据库管理系统 19 \r\n\r\n 1.4.2 数据描述语言 20 \r\n\r\n 1.4.3 数据操作语言 21 \r\n\r\n 1.4.4 数据库管理例行程序 22 \r\n\r\n 1.4.5 数据库管理系统的工作过程 23 \r\n\r\n 小结 25 \r\n\r\n 习题 25 \r\n\r\n 第2章 关系数据模型 26 \r\n\r\n 2.1 关系数据模型的基本概念与术语 26 \r\n\r\n 2.1.1 关系. 元组. 属性和域 27 \r\n\r\n 2.1.2 关键字 28 \r\n\r\n 2.1.3 关系模型的数据操作 29 \r\n\r\n 2.1.4 数据操作语言 29 \r\n\r\n 2.1.5 完整性约束 29 \r\n\r\n 2.2 关系代数 30 \r\n\r\n 2.2.1 一般的集合运算 31 \r\n\r\n 2.2.2 专门的关系运算 33 \r\n\r\n 2.2.3 5种基本操作的实现 35 \r\n\r\n 2.3 关系演算 36 \r\n\r\n 2.3.1 元组关系演算 36 \r\n\r\n 2.3.2 域关系演算 38 \r\n\r\n 2.4 关系运算的安全限制 38 \r\n\r\n 2.5 关系代数表达式的优化 41 \r\n\r\n 2.5.1 优化的一般策略 41 \r\n\r\n 2.5.2 关系代数表达式的等价代换规则 42 \r\n\r\n 2.5.3 关系代数表达式的优化算法 43 \r\n\r\n 小结 46 \r\n\r\n 习题 47 \r\n\r\n 第3章 关系数据库语言SQL 49 \r\n\r\n 3.1 SQL语言组成 50 \r\n\r\n 3.1.1 关系与表 50 \r\n\r\n 3.1.2 SQL的数据类型 51 \r\n\r\n 3.1.3 SQL的语句类型 53 \r\n\r\n 3.2 SQL的数据定义 54 \r\n\r\n 3.2.1 表的建立和删除 54 \r\n\r\n 3.2.2 表的扩充与修改 56 \r\n\r\n 3.2.3 视图(View) 58 \r\n\r\n 3.2.4 索引 59 \r\n\r\n 3.2.5 数据库模式的创建与删除 59 \r\n\r\n 3.3 SQL的数据查询 60 \r\n\r\n 3.3.1 单表查询 61 \r\n\r\n 3.3.2 多表查询 63 \r\n\r\n 3.3.3 表达式与函数的使用 66 \r\n\r\n 3.3.4 相关子查询 71 \r\n\r\n 3.3.5 关系代数运算 73 \r\n\r\n 3.4 SQL的数据操纵 76 \r\n\r\n 3.4.1 插入数据 76 \r\n\r\n 3.4.2 修改数据 77 \r\n\r\n 3.4.3 删除数据 78 \r\n\r\n 3.5 SQL的数据控制 78 \r\n\r\n 3.6 嵌入式 SQL 79 \r\n\r\n 3.6.1 概述 79 \r\n\r\n 3.6.2 内嵌SQL语句的C 程序组成 80 \r\n\r\n 3.6.3 无游标的操作 82 \r\n\r\n 3.6.4 带游标的查询操作 83 \r\n\r\n 3.7 构造数据类型. 域定义与动态SQL 86 \r\n\r\n 3.7.1 构造数据类型 86 \r\n\r\n 3.7.2 域定义 87 \r\n\r\n 3.7.3 动态SQL 89 \r\n\r\n 小结 90 \r\n\r\n 习题 91 \r\n\r\n 第4章 数据库管理系统 93 \r\n\r\n 4.1 数据库管理系统和操作系统的相互关系 93 \r\n\r\n 4.1.1 三种可能的配置方案 93 \r\n\r\n 4.1.2 DBMS对操作系统的要求 94 \r\n\r\n 4.2 数据库管理系统的层次结构 95 \r\n\r\n 4.3 数据的物理存储与管理 99 \r\n\r\n 4.3.1 外存上的页面编址 99 \r\n\r\n 4.3.2 系统缓冲区作为存储接口 101 \r\n\r\n 4.3.3 页面替换策略 102 \r\n\r\n 4.4 数据存取管理 102 \r\n\r\n 4.4.1 记录在数据页面上的存储 102 \r\n\r\n 4.4.2 记录编址 103 \r\n\r\n 4.4.3 数据库文件结构 105 \r\n\r\n 4.4.4 主关键字的存取路径结构 108 \r\n\r\n 4.4.5 数据记录集合的存取路径结构 110 \r\n\r\n 4.5 事务处理 114 \r\n\r\n 4.5.1 事务 114 \r\n\r\n 4.5.2 事务的状态 115 \r\n\r\n 4.5.3 更新事务的执行与恢复 116 \r\n\r\n 4.6 并发控制 117 \r\n\r\n 4.6.1 并发控制的概念 117 \r\n\r\n 4.6.2 可串行化的判断 120 \r\n\r\n 4.6.3 封锁机制与两段式调度协议 122 \r\n\r\n 4.7 关系运算的实现算法 127 \r\n\r\n 4.8 关系数据库管理系统SQL Server 130 \r\n\r\n 小结 134 \r\n\r\n 习题 135 \r\n\r\n 第5章 关系数据库设计理论基础 137 \r\n\r\n 5.1 关系模式及其评价 137 \r\n\r\n 5.1.1 关系模式 137 \r\n\r\n 5.1.2 关系模式的评价 138 \r\n\r\n 5.2 函数依赖 139 \r\n\r\n 5.2.1 函数依赖的定义 139 \r\n\r\n 5.2.2 函数依赖的逻辑蕴涵 141 \r\n\r\n 5.2.3 关键字 141 \r\n\r\n 5.3 函数依赖公理体系 142 \r\n\r\n 5.3.1 Armstrong公理 142 \r\n\r\n 5.3.2 Armstrong公理的完备性 143 \r\n\r\n 5.3.3 闭包计算 145 \r\n\r\n 5.3.4 函数依赖集的等价和最小集 146 \r\n\r\n 5.4 关系模式的分解 147 \r\n\r\n 5.4.1 分解的无损连接性 148 \r\n\r\n 5.4.2 分解的函数依赖保持性 152 \r\n\r\n 5.5 关系模式的规范化 153 \r\n\r\n 5.5.1 第一范式(1NF) 153 \r\n\r\n 5.5.2 第二范式(2NF) 153 \r\n\r\n 5.5.3 第三范式(3NF) 154 \r\n\r\n 5.5.4 BCNF 155 \r\n\r\n 5.5.5 分解算法 157 \r\n\r\n 5.6 多值依赖和第四范式 159 \r\n\r\n \r\n\r\n \r\n\r\n 5.6.1 多值依赖的定义 160 \r\n\r\n 5.6.2 多值依赖公理 161 \r\n\r\n 5.6.3 第四范式(4NF) 162 \r\n\r\n 5.7 连接依赖和第五范式 164 \r\n\r\n 5.7.1 连接依赖 164 \r\n\r\n 5.7.2 第五范式(5NF) 165 \r\n\r\n 小结 166 \r\n\r\n 习题 166 \r\n\r\n 第6章 非关系数据模型 169 \r\n\r\n 6.1 实体-联系模型 170 \r\n\r\n 6.1.1 基本概念 170 \r\n\r\n 6.1.2 ER图 171 \r\n\r\n 6.1.3 实体间的依赖 175 \r\n\r\n 6.1.4 组合关键字 177 \r\n\r\n 6.1.5 扩充ER模型 178 \r\n\r\n 6.2 实体-联系模型转换为关系模式 179 \r\n\r\n 6.3 面向对象数据模型 182 \r\n\r\n 6.3.1 对象 182 \r\n\r\n 6.3.2 类 183 \r\n\r\n 6.3.3 继承 184 \r\n\r\n 6.3.4 对象标识 185 \r\n\r\n 6.4 基于逻辑的数据模型 185 \r\n\r\n 6.4.1 基于一阶谓词的数据模型 185 \r\n\r\n 6.4.2 逻辑数据库 186 \r\n\r\n 小结 188 \r\n\r\n 习题 188 \r\n\r\n 第7章 关系数据库设计 190 \r\n\r\n 7.1 信息系统及其与数据库的关系 190 \r\n\r\n 7.2 数据库设计与数据库生命周期 191 \r\n\r\n 7.2.1 数据库设计的含义 191 \r\n\r\n 7.2.2 数据库设计的目标 192 \r\n\r\n 7.2.3 数据库设计的一般过程 193 \r\n\r\n 7.3 数据库设计方法 194 \r\n\r\n 7.3.1 数据库设计方法概述 194 \r\n\r\n 7.3.2 基于3NF的数据库设计方法 195 \r\n\r\n 7.3.3 LRA方法 196 \r\n\r\n 7.3.4 DBMS的选择和全关系DBMS的评价准则 199 \r\n\r\n 7.4 关系数据库的设计方法 202 \r\n\r\n 7.4.1 数据需求分析 202 \r\n\r\n 7.4.2 概念模型设计 205 \r\n\r\n 7.4.3 逻辑设计 212 \r\n\r\n 7.4.4 物理设计 215 \r\n\r\n 7.5 数据库设计评价 219 \r\n\r\n 7.5.1 数据库设计评价准则 219 \r\n\r\n 7.5.2 一个通用的分析方法 220 \r\n\r\n 7.5.3 设计策略 221 \r\n\r\n 7.6 用UML设计关系数据库模式 223 \r\n\r\n 小结 224 \r\n\r\n 习题 225 \r\n\r\n 第8章 数据库的完整性与安全性 226 \r\n\r\n 8.1 概述 226 \r\n\r\n 8.2 数据的完整性约束 227 \r\n\r\n 8.2.1 完整性的语义约束和检查 228 \r\n\r\n 8.2.2 SQL中的完整性约束 229 \r\n\r\n 8.3 数据库的安全性 232 \r\n\r\n 8.3.1 DBMS安全模型 232 \r\n\r\n 8.3.2 视图与安全性 233 \r\n\r\n 8.3.3 访问控制 234 \r\n\r\n 8.3.4 数据密码 236 \r\n\r\n 8.3.5 跟踪审计 237 \r\n\r\n 8.3.6 统计数据库的安全性 238 \r\n\r\n 8.4 数据库的故障与恢复 239 \r\n\r\n 8.4.1 数据库的故障类型 239 \r\n\r\n 8.4.2 恢复机制 240 \r\n\r\n 8.4.3 事务级故障的恢复 243 \r\n\r\n 8.4.4 系统与介质故障的恢复 244 \r\n\r\n 8.4.5 SQL对恢复操作的支持 245 \r\n\r\n 小结 247 \r\n\r\n 习题 247 \r\n\r\n 第9章 网络数据库系统 249 \r\n\r\n 9.1 基于客户机/服务器模式的数据库系统 250 \r\n\r\n 9.1.1 客户机/服务器系统的组成 250 \r\n\r\n 9.1.2 三层结构的客户机/服务器系统 251 \r\n\r\n 9.2 服务器数据库的建立 253 \r\n\r\n 9.2.1 数据库的建立 253 \r\n\r\n 9.2.2 用户注册与授权 257 \r\n\r\n 9.2.3 数据源的建立 261 \r\n\r\n 9.2.4 数据库设计 261 \r\n\r\n 9.3 服务器数据操纵 262 \r\n\r\n 9.3.1 流程控制语言 262 \r\n\r\n 9.3.2 触发器 265 \r\n\r\n 9.3.3 存储过程 267 \r\n\r\n 9.4 数据库访问接口 269 \r\n\r\n 9.4.1 固有调用 269 \r\n\r\n 9.4.2 ODBC 269 \r\n\r\n 9.4.3 JDBC 271 \r\n\r\n 9.5 SQL会话期与调用级接口CLI 273 \r\n\r\n 9.5.1 SQL的会话期 273 \r\n\r\n 9.5.2 调用级接口SQL/CLI 273 \r\n\r\n 9.6 客户端应用系统 274 \r\n\r\n 9.7 基于浏览器/服务器模式的数据库系统 275 \r\n\r\n 9.7.1 浏览器/服务器模式 275 \r\n\r\n 9.7.2 浏览器/服务器的工作原理和过程 276 \r\n\r\n 9.7.3 浏览器/服务器系统的工作方式 277 \r\n\r\n 9.7.4 浏览器/服务器系统的实施方案 278 \r\n\r\n 9.8 ASP的数据库访问技术 279 \r\n\r\n 9.8.1 ASP文件 280 \r\n\r\n 9.8.2 服务器组件 281 \r\n\r\n 9.8.3 访问服务器数据库 282 \r\n\r\n 9.9 JSP的数据库访问技术 284 \r\n\r\n 9.10 Internet/Intranet信息系统多层体系结构 286 \r\n\r\n 9.10.1 多层应用软件的体系结构 286 \r\n\r\n 9.10.2 多层应用软件体系的实现技术 287 \r\n\r\n 小结 289 \r\n\r\n 习题 289 \r\n\r\n 第10章 分布式数据库系统 291 \r\n\r\n 10.1 概述 291 \r\n\r\n 10.1.1 什么是分布式数据库系统 291 \r\n\r\n 10.1.2 分布式数据库系统的目标与优点 293 \r\n\r\n 10.2 分布式数据库的模式结构 294 \r\n\r\n 10.2.1 数据分布 294 \r\n\r\n 10.2.2 分布式数据库的模式结构 295 \r\n\r\n 10.3 分布式数据库管理系统 298 \r\n\r\n 10.3.1 分布式数据库管理系统的功能与组成 298 \r\n\r\n 10.3.2 分布式数据库管理系统的主要技术问题 299 \r\n\r\n 10.4 分布式查询处理 300 \r\n\r\n 10.4.1 分布式查询的处理过程与特点 300 \r\n\r\n 10.4.2 基于半连接的分布式查询处理 301 \r\n\r\n 10.5 分布式事务模型 302 \r\n\r\n 10.6 并发控制 303 \r\n\r\n 小结 304 \r\n\r\n 习题 305 \r\n\r\n 第11章 面向对象数据库系统 306 \r\n\r\n 11.1 概述 306 \r\n\r\n 11.1.1 面向对象数据库系统的功能要求 307 \r\n\r\n 11.1.2 面向对象数据库系统的实现途径 307 \r\n\r\n 11.2 面向对象数据模型 308 \r\n\r\n 11.2.1 对象结构 308 \r\n\r\n 11.2.2 对象间的联系 309 \r\n\r\n 11.2.3 对象标识 310 \r\n\r\n 11.2.4 对象参照完整性约束 310 \r\n\r\n 11.3 面向对象数据库语言 310 \r\n\r\n 11.3.1 对象的持久性 311 \r\n\r\n 11.3.2 ODMG-93 312 \r\n\r\n 11.4 面向对象数据库管理系统 315 \r\n\r\n 11.4.1 面向对象数据库管理系统的基本构造 315 \r\n\r\n 11.4.2 存储结构 315 \r\n\r\n 11.4.3 方法的实现 316 \r\n\r\n 11.4.4 长事务 316 \r\n\r\n 11.4.5 版本管理 317 \r\n\r\n 11.5 对象-关系数据库系统 318 \r\n\r\n 11.5.1 对象-关系数据库系统的特征 318 \r\n\r\n 11.5.2 SQL 3 320 \r\n\r\n 小结 324 \r\n\r\n 习题 324 \r\n\r\n 第12章 数据仓库 325 \r\n\r\n 12.1 概述 325 \r\n\r\n 12.1.1 数据仓库的产生 325 \r\n\r\n 12.1.2 数据仓库定义 327 \r\n\r\n 12.1.3 数据仓库系统的主要特征 327 \r\n\r\n 12.2 数据仓库构造 327 \r\n\r\n 12.2.1 数据仓库系统结构 327 \r\n\r\n 12.2.2 数据仓库模型 329 \r\n\r\n 12.2.3 元数据 331 \r\n\r\n 12.3 联机分析处理OLAP 332 \r\n\r\n 12.3.1 OLAP数据模型 332 \r\n\r\n 12.3.2 OLAP基本操作 334 \r\n\r\n 12.3.3 OLAP实现技术 334 \r\n\r\n 12.4 数据仓库的开发 337 \r\n\r\n 12.4.1 数据仓库开发的流程 337 \r\n\r\n 12.4.2 构造数据仓库的过程 338 \r\n\r\n 12.4.3 执行信息系统 339 \r\n\r\n 12.5 数据挖掘 340 \r\n\r\n 12.5.1 什么是数据挖掘 340 \r\n\r\n 12.5.2 数据挖掘的主要目标与特点 340 \r\n\r\n 12.5.3 数据挖掘模型 341 \r\n\r\n 小结 343 \r\n\r\n 参考文献 344 \r\n
\r\n
新世纪伊始, 以知识经济为主体的信息时代向人们揭示:成为时代宠儿的信息技术人才异常匾缺, 正被世界各国相互争夺. 据资料介绍, 目前全球还缺少软件技术人才40余万人, 美国每年需要增加9. 5万名新的电脑专家. 在我国, 信息技术人才更是奇缺, 每年约需补充20万名软件技术人才. 国家在35所重点高校设置示范性软件学院, 正体现了我国奋起直追的战略决策.
为了推动我国计算机教育事业的发展, 在美国ACM/IEEE-CS于 2001年12月15日发布“CC2001教程”之后, 我国全国高等学校计算机教育研究会和中国计算机学会即将公布中国的“CCC2002计划”之际, 全国高等学校计算机教育研究会和全国计算机继续教育研究会, 与人民邮电出版社友好协商, 本着相互尊重, 平等合作, 各自发挥自身优势, 共同发展的原则, 组织出版了这套《新世纪高等学校计算机系列教材》.
这套教材是根据我国高等学校计算机专业(或非计算机专业)当前的课程设置. 教学大纲的要求. 学时安排及计算机技术的发展趋势而编写的. 遴选的作者都是长期在教学第一线上执教的教师, 他们既有丰富的教学经验, 又有出色的科研成果, 能够把握教材的深度和实用性, 还有较好的前瞻性.
这套教材虽然立足于当前教学的实际情况, 但编委会要求作者尽可能参考美国“CC2001教程”和我国“CCC2002计划”提出的新思想, 融入科技成果上反映的新技术, 充分体现出教材的先进性. 科学性和实用性, 反映出自己的特色, 使之成为内容新颖的精品, 能和国际教材接轨.
为了保证这套教材的出版质量, 全国高等学校计算机教育研究会. 全国计算机继续教育研究会以及参加编审的同志们付出了辛勤的劳动, 人民邮电出版社的有关领导及编辑们对这套教材的出版给予了有力的支持和鼓励, 特对他们致以衷心的感谢.
希望这套教材的问世能为推动我国计算机教育事业的飞速发展, 为培养我国面向21世纪的科技精英发挥应有的作用.
全国高等学校计算机教育研究会理事长袁开榜
全国计算机继续教育研究会理事长张凤祥
2002年6月5日
数据库技术是计算机科学技术中发展最快的领域之一. 数据库系统已在当代的社会生活中获得了广泛的应用, 渗透到了工农业生产. 商业. 行政管理. 科学研究. 教育. 工程技术和国防军事等各行各业, 而且已围绕数据库技术形成了一个巨大的软件产业, 即数据库管理系统和各类工具软件的开发与经营.
本书以当前流行的关系数据库技术为中心, 以数据库语言SQL为重点, 着重介绍基于关系数据模型的集中式数据库和网络数据库的原理. 设计和应用, 同时适当介绍分布式数据库系统. 面向对象数据库系统. 对象—关系数据库系统和数据仓库的基本概念与技术.
在计算机网络环境下使用数据库系统已经是当前的数据库应用的主流方式, 为此本书专列一章(第9章)讨论网络数据库系统, 包括客户机/服务器系统和浏览器/服务器系统.
本书介绍的SQL的内容以最新的国际标准SQL3为准, 着重介绍SQL3的核心部分和重要的扩充内容, 尤其是对面向对象概念的支持. 这些新扩充内容目前尚未被DBMS产品所完全支持.
本书的内容编排向未来的2002计算机教学大纲靠拢, 以奠定数据库理论基础. 培养数据库开发能力为目标, 强调理论与实践紧密结合, 数据库原理与设计应用并重, 既有数据库基本原理的严谨叙述, 又详细说明数据库设计的方法和过程.
本书的参考学时数为54—74学时. 在材科的组织上本书逻辑隐含三大部分:
第一部分由第1章~第4章构成, 介绍数据库系统的基础知识与应用,
第二部分由第5章—第9章构成, 介绍数据库系统的设计与网络应用,
第三部分由第10章—第12章构成, 介绍分布式数据库系统. 面向对象数据库系统和数据仓库.
第一部分和第二部分可作为必修内容(其中个别内容也可作选修), 第三部分为选修内容, 在实际教学中可以根据具体情况选用.
本书由张龙祥. 黄正瑞. 龙军合作完成. 黄正端编写了第4章. 第5章. 第7章, 龙军编写了第9章. 第12章, 张龙样制定了编写大纲, 编写了其余各章, 并最后统编全书稿.
在本书的编写过程中得到了全国高等学校计算机教育研究会和全国计算机继续教育研究会的指导与支持, 特在此表示衷心的感谢.
数据库技术的发展十分迅速, 作者的水平有限, 书中难免存在缺点和错误, 殷切希望同行专家和读者批评指正.