本书是为全国高等院校计算机专业及相关专业开设数据库课程而精心组织和编著的一本实用教材。第二版对第一版的内容进行了一些修改和补充。
本书详细介绍了数据库基本原理、方法和应用技术。内容包括:数据库系统结构,关系运算,SQL语言,规范化设计,实体联系模型,数据库设计全过程,存储技术,数据库管理机制,客户机/服务器系统,分布式数据库,ODBC技术,对象关系数据库,面向对象数据库,PowerBuilder 8.0和SQL Server 7.0应用简介。
本书内容丰富,概念阐述细致清楚。书中具有丰富的例题和习题,便于学生学习。本书的精髓是关系代数、SQL语言、模式设计、存储结构、ER图、对象联系图和UML类图等内容。本书既可作为高等院校有关专业的数据库课程教材,也可作为从事信息领域工作的科技人员的参考书。
第1部分 基础篇
第1章 数据库发展史
1.1 数据管理技术的发展
1.1.1 人工管理阶段
1.1.2 文件系统阶段
1.1.3 文件系统的缺陷
1.1.4 倒排文件系统阶段
1.2 数据库技术的产生和发展
1.2.1 数据库技术的产生
1.2.2 数据库阶段的数据管理特点
1.2.3 数据库技术的术语
1.2.4 数据库技术的发展
小结
习题1
第2章 数据库系统结构
2.1 数据描述
2.1.1 概念设计中的数据描述
2.1.2 逻辑设计中的数据描述
2.1.3 存储介质层次及数据描述
2.1.4 数据联系的描述
2.2 数据模型
2.2.1 数据模型的定义
2.2.2 实体联系模型
2.2.3 层次模型
2.2.4 网状模型
2.2.5 关系模型
2.2.6 面向对象模型
2.3 数据库的体系结构
2.3.1 三级模式结构
2.3.2 三级结构和两级映象
2.3.3 两级数据独立性
2.3.4 用户及用户界面
2.4 数据库管理系统
2.4.1 DBMS(数据库管理系统)的工作模式
2.4.2 DBMS的主要功能
2.4.3 DBMS的模块组成
2.5 数据库系统
2.5.1 DBS的组成
2.5.2 DBS的全局结构
2.5.3 DBS结构的分类
2.5.4 DBS的效益
小结
习题2
第2部分 运算篇
第3章 关系运算
3.1 关系数据模型
3.1.1 关系数据模型的定义
3.1.2 关键码和表之间的联系
3.1.3 关系模式.关系子模式和存储模式
3.1.4 关系模型的完整性规则
3.1.5 关系模型的形式定义
3.2 关系代数
3.2.1 关系查询语言和关系运算
3.2.2 关系代数的五个基本操作
3.2.3 关系代数的组合操作
3.2.4 关系代数表达式及其应用实例
3.2.5 扩充的关系代数操作
3.3 关系演算
3.3.1 元组关系演算
3.3.2 域关系演算
3.3.3 关系运算的安全性和等价性
3.4 查询优化
3.4.1 关系代数表达式的优化问题
3.4.2 关系代数表达式的等价变换规则
3.4.3 优化的一般策略
3.4.4 优化算法
小结
习题3
第4章 结构化查询语言SQL
4.1 SQL概述
4.1.1 SQL的发展历程
4.1.2 SQL数据库的体系结构
4.1.3 SQL的组成
4.2 SQL的数据定义
4.2.1 SQL模式的创建和撤消
4.2.2 SQL提供的基本数据类型
4.2.3 基本表的创建.修改和撤消
4.2.4 视图的创建和撤消
4.2.5 索引的创建和撤消
4.3 SQL的数据查询
4.3.1 SELECT语句格式
4.3.2 单表查询
4.3.3 多表查询
4.3.4 聚合函数
4.3.5 数据分组
4.3.6 集合操作
4.4 SQL的数据更新
4.4.1 数据插入
4.4.2 数据删除
4.4.3 数据修改
4.4.4 对视图的更新操作
4.5 嵌入式SQL
4.5.1 SQL语言的运行环境
4.5.2 嵌入式SQL的使用规定
4.5.3 嵌入式SQL的使用技术
4.5.4 动态SQL语句
小结
习题4
第3部分 设计篇
第5章 规范化设计
5.1 关系模式的设计问题
5.1.1 关系模型的外延和内涵
5.1.2 泛关系模式与数据库模式
5.1.3 关系模式的冗余和异常问题
5.1.4 本章的符号规定
5.2 函数依赖
5.2.1 函数依赖的定义
5.2.2 FD的逻辑蕴涵
5.2.3 FD的推理规则
5.2.4 FD和关键码的联系
5.2.5 属性集的闭包
5.2.6 FD集的最小依赖集
5.3 关系模式的分解特性
5.3.1 模式分解问题
5.3.2 无损分解
5.3.3 无损分解的测试方法
5.3.4 保持函数依赖的分解
5.3.5 模式分解与模式等价问题
5.4 关系模式的范式
5.4.1 第一范式(1NF)
5.4.2 第二范式(2NF)
5.4.3 第三范式(3NF)
5.4.4 BCNF(Boyce-Codd NF)
5.4.5 分解成BCNF模式集的方法
5.4.6 分解成3NF模式集的方法
5.4.7 模式设计方法的原则
5.5 模式的进一步规范化
5.5.1 多值依赖的定义
5.5.2 关于FD和MVD的推理规则集
5.5.3 第四范式(4NF)
5.5.4 联接依赖
5.5.5 第五范式(5NF)
小结
习题5
第6章 实体联系模型
6.1 ER模型的基本元素
6.2 属性的分类
6.2.1 基本属性和复合属性
6.2.2 单值属性和多值属性
6.2.3 导出属性
6.2.4 空值
6.3 联系的设计
6.3.1 联系的元数
6.3.2 联系的连通词
6.3.3 联系的基数
6.4 ER模型实例分析
6.4.1 依赖联系与弱实体
6.4.2 子类和超类
6.5 ER模型实例分析
小结
习题6
第7章 数据库设计
7.1 数据库设计概述
7.1.1 软件生存期
7.1.2 数据库系统生存期
7.1.3 数据库设计的具体步骤
7.2 规划
7.3 需求分析
7.3.1 需求描述与分析
7.3.2 需求分析阶段的输入和输出
7.3.3 需求分析的步骤
7.4 概念设计
7.4.1 概念设计的必要性
7.4.2 概念模型
7.4.3 概念设计的主要步骤
7.4.4 数据抽象
7.4.5 ER模型的操作
7.4.6 采用ER方法的数据库概念设计
7.5 逻辑设计
7.5.1 逻辑设计环境
7.5.2 逻辑设计的步骤
7.5.3 ER模型向关系模型的转换
7.5.4 关系数据库的逻辑设计
7.6 物理设计
7.7 数据库的实现
7.8 数据库的运行与维护
小结
习题7
第4部分 管理篇
第8章 存储技术
8.1 文件组织
8.1.1 定长记录
8.1.2 变长记录
8.2 文件结构
8.2.1 四种文件结构
8.2.2 顺序文件
8.2.3 聚集文件
8.3 索引技术
8.3.1 索引机制
8.3.2 有序索引的分类
8.3.3 主索引
8.3.4 辅助索引
8.3.5 B+树索引文件
8.3.6 B树索引文件
8.4 散列技术
8.4.1 散列机制
8.4.2 散列索引
8.4.3 静态散列中的问题
8.4.4 可扩充散列结构
8.5 多键访问
8.5.1 单键查询的问题
8.5.2 网格文件
8.5.3 分区散列技术
小结
习题8
第9章 数据库的管理
9.1 事务的概念
9.1.1 事务的定义
9.1.2 事务的ACID性质
9.2 数据库的恢复
9.2.1 恢复的定义.原则和方法
9.2.2 故障类型和恢复方法
9.2.3 检查点机制
9.2.4 运行记录优先原则
9.2.5 SQL对事务的支持
9.3 数据库的并发控制
9.3.1 并发操作带来的三个问题
9.3.2 封锁机制
9.3.3 活锁.饿死和死锁
9.3.4 并发调度的可串行化
9.3.5 SQL中事务的存取模式和隔离级别
9.4 数据库的完整性
9.4.1 完整性子系统和完整性规则
9.4.2 SQL中的完整性约束
9.4.3 SQL3中的触发器
9.5 数据库的安全性
9.5.1 安全性级别
9.5.2 权限
9.5.3 SQL中的安全性机制
9.5.4 数据加密
9.5.5 自然环境的安全性
小结
习题9
第5部分 网络篇
第10章 客户机/服务器系统
10.1 "分布计算"概念
10.2 客户机/服务器计算模式
10.2.1 C/S结构的工作模式
10.2.2 C/S环境下应用成分的分布
10.2.3 C/S主要技术特征
10.3 C/S系统的体系结构
10.3.1 C/S模式的体系结构
10.3.2 C/S结构的演变
10.3.3 网络服务器的类型
10.4 C/S系统的管理问题
10.4.1 C/S系统的并行处理与并发控制
10.4.2 C/S系统的完整性
10.4.3 两类DBMS的出现
小结
习题10
第11章 分布式数据库系统
11.1 DDBS概述
11.1.1 集中式系统与分布式系统
11.1.2 DDBS的定义
11.1.3 DDBS的特点
11.1.4 DDBS的优缺点
11.1.5 DDBS的分类
11.2 分布式数据存储
11.2.1 数据分片
11.2.2 数据分配
11.3 DDB的模式结构
11.3.1 六层模式结构
11.3.2 六层结构的特征
11.3.3 分布透明性
11.4 DDBMS的功能及组成
11.4.1 DDBS的组成
11.4.2 DDBMS的功能
11.4.3 DDBMS的组成
11.5 分布式查询处理
11.5.1 查询代价的估算方法
11.5.2 基于半联接的优化策略
11.5.3 基于联接的优化策略
小结
习题11
第12章 ODBC技术
12.1 中间件
12.1.1 中间件的定义
12.1.2 中间件的作用
12.2 ODBC概念和作用
12.3 ODBC的结构
12.3.1 ODBC的体系结构
12.3.2 应用程序
12.3.3 驱动程序管理器
12.3.4 DBMS驱动程序
12.3.5 ODBC的数据源管理
12.4 ODBC接口
12.4.1 ODBC应用程序的基本流程
12.4.2 ODBC句柄
12.4.3 ODBC连接
12.4.4 SQL语句的执行
12.4.5 光标函数的使用
12.5 ODBC的符合性级别
12.5.1 API符合性的三个级别
12.5.2 SQL符合性的三个级别
12.6 ODBC API与SQL CLI
12.7 典型的数据库应用系统开发工具
12.7.1 PowerBuilder
12.7.2 Delphi
12.7.3 Visual Basic
12.7.4 Developer/2000
小结
习题12
第6部分 发展篇
第13章 对象关系数据库
13.1 对象联系图
13.1.1 从关系到嵌套关系.复合对象
13.1.2 引用类型
13.1.3 对象联系图的成分
13.1.4 数据的泛化/细化
13.2 面向对象的类型系统
13.3 ORDB的定义语言
13.3.1 ORDB的定义
13.3.2 数据类型的定义
13.3.3 继承性的定义
13.3.4 引用类型的定义
13.3.5 SQL3中的定义语言
13.4 ORDB的查询语言
13.4.1 SELECT语句的使用规定
13.4.2 嵌套与解除嵌套,
13.4.3 函数的定义与使用
13.4.4 复合值的创建和查询
小结
习题13
第14章 面向对象数据库
14.1 面向对象数据库系统概述
14.1.1 ODMG组织和标准
14.1.2 OODBS的概念
14.1.3 OODBS存在的问题和局限性
14.2 面向对象数据模型的基本概念
14.2.1 对象
14.2.2 类
14.2.3 继承性
14.2.4 对象标识
14.2.5 对象包含
14.3 ODMG 93和持久化C++系统
14.3.1 持久化程序设计语言
14.3.2 ODMG C++对象定义语言
14.3.3 ODMG C++对象操纵语言
14.4 ODMG 97和对象语言
14.4.1 ODMG数据模型
14.4.2 ODMG ODL
14.4.3 ODMG OQL
14.5 OODB与ORDB的比较
14.6 使用UML类图来概念对象建模
14.6.1 统一建模语言(UML)概述
14.6.2 用类图表达类和关联
14.6.3 用类图表达关联类
14.6.4 用类图表达泛化/细化
14.6.5 用类图表达聚合
小结
习题14
第7部分 应用篇
第15章 PowerBuilder 8.0数据库应用开发简介
15.1 PowerBuilder 8.0集成开发环境
15.1.1 工作空间.目标和库文件
15.1.2 PowerBuilder 8.0主窗口
15.1.3 系统树.剪贴和输出窗口
15.1.4 工具栏
15.1.5 画板(Painter)
15.2 "学生选课系统"的开发过程
15.2.1 规划
15.2.2 创建数据库
15.2.3 创建表和数据操作
15.2.4 建立工作空间
15.2.5 建立目标和应用对象
15.2.6 建立数据窗口
15.2.7 建立窗口
15.2.8 编写事件驱动程序
15.2.9 运行应用程序
15.2.10 创建另外两个窗口
15.2.11 添加菜单
15.3 PowerScript编程语言简介
15.3.1 基本语法规则
15.3.2 运算符和数据类型
15.3.3 变量及其作用域
15.3.4 实例变量(Instance)的访问权限
15.3.5 常量
15.3.6 数组
15.3.7 函数
15.3.8 代词
15.3.9 语句
第16章 SQL Server 7.0简介
16.1 SQL Server概述
16.1.1 SQL Server的发展
16.1.2 SQL Server 7.0的特点
16.1.3 安装SQL Server 7.0的软硬件需求
16.1.4 SQL Server 7.0的安装
16.1.5 SQL Server 7.0环境介绍
16.1.6 SQL Server 7.0的工具介绍
16.2 数据厍的创建.修改与删除
16.2.1 创建SQL Server数据库
16.2.2 修改数据库
16.2.3 删除数据库
16.3 表以及主键的建立
16.3.1 表的建立
16.3.2 创建主键
16.3.3 用SQL语句命令方式建表
16.4 数据的增加.修改.删除和查询
16.4.1 数据的增加
16.4.2 数据的修改
16.4.3 数据的删除
16.4.4 数据的查询
16.5 数据库的备份和恢复
16.5.1 数据库的备份
16.5.2 数据库的恢复
16.6 高级应用技术
16.6.1 存储过程
16.6.2 触发器
16.7 PB 8.0连接SQL数据库的实例
16.7.1 创建数据源
16.7.2 定义数据库描述文件
16.7.3 连接数据库
参考文献
清华大学出版社出版的《数据库实用教程》(第一版)一书自2001年9月出版以来, 在计算机界同仁和学生中受到了很大的关注. 这次再版做了一些修改和补充. 书中的Power-Builder版本由7. 0改为8. 0, 对面向对象数据库的内容进行了充实, 增加了UML类图等内容.
数据库课程是普通高校计算机专业和信息管理专业的一门专业基础课. 它的主要任务是研究如何存储. 使用和管理数据, 目的是使学生掌握数据库的基本原理. 方法和应用技术, 能有效使用现有的数据库管理系统和软件开发工具, 掌握数据库结构的设计和数据库应用系统的开发方式.
数据库技术是计算机软件领域的一个重要分支, 产生于20世纪60年代末. 30多年来, 数据库技术得到迅速发展, 并已形成较为完整的理论体系和一大批实用系统, 同时造就了C. W. Bachman. E. F. Codd和J. Gray三位图灵奖得主. 随着数据库系统的推广, 计算机应用已深入到社会各个角落. 当今的管理信息系统(MIS). 办公信息系统(OIS). 计算机辅助设计与制造(CAD/CAM). 计算机集成制造系统(CIMS). 地理信息系统(GIS)等都以数据库技术为基础. 在20世纪90年代初, 我国已在国民经济各领域装备了以数据库为基础的大型计算机系统.
在人类进入21世纪知识经济时代, 信息已变为经济发展的战略资源, 信息技术已成为社会生产力中重要的组成部分. 人们充分认识到, 数据库是信息化社会中信息资源管理与开发利用的基础. 对于一个国家, 数据库的建设规模. 使用水平已成为衡量该国信息化程度的重要标志. 因此, 数据库是计算机技术中一门重要的课程.
本书详细介绍了数据库技术的基本原理. 方法和应用技术. 全书分为7个部分:基础篇. 运算篇. 设计篇. 管理篇. 网络篇. 发展篇和应用篇. 具体内容如下:
第1章 介绍数据库技术的由来和发展过程.
第2章 介绍数据库系统的数据模型. 体系结构和全局结构等内容.
第3章 介绍关系模型的运算理论:关系代数和关系演算.
第4章 介绍关系数据库标准语言SQL的全貌.
第5章 介绍关系数据库的模式设计理论, 包括函数依赖. 分解特性和范式等内容.
第6章 介绍实体联系模型的基本要素. 设计过程, 并给出许多实例.
第7章 介绍数据库应用系统设计的全过程, 重点在概念设计和逻辑设计.
第8章 介绍数据库的存储结构, 包括文件组织. 索引和散列技术.
第9章 介绍数据库的管理机制, 包括事务的概念及恢复. 并发控制. 完整性控制和安全性控制.
第10章 介绍当今热门的客户机/服务器系统的体系结构.
第11章 介绍分布式数据库系统的概念. 数据存储. 模式结构. 查询处理.
第12章 介绍开放数据库互联(ODBC)技术的结构和接口.
第13章 介绍对象联系图. 对象关系数据库的定义语言和查询语言.
第14章 介绍面向对象数据模型的基本概念. ODMG标准和UML的类图.
第15章 介绍软件开发工具PowerBuilder 8. 0的基本概念和数据库应用开发实例.
第16章 介绍SQL Server 7. 0的基本组成.
本书每章后均配有适量的习题, 以加强对数据库基本原理. 方法的理解和掌握.
本书内容丰富, 讲授时应根据需要对内容做适当取舍. 书中画*号的节表示此节内容较深. 根据笔者多年授课的经验, 可把全书分成若干板块, 建议如下:
(1)讲授. 重点讲授第1~7章及第9章的内容. 其中对于第3章中关系演算和第5章中理论性较强的内容, 可根据情况适当压缩.
(2)介绍. 对于第10~12章网络篇的内容, 教师可有针对性地选择某些内容, 向学生传授.
(3)自学. 对于第8章存储技术及第13. 14章面向对象数据库内容, 教师可适当引导, 让学生自学, 作为课外作业, 以提高学生的能力和水平, 拓宽知识面.
(4)实习. 第15. 16章的内容可根据具体实习环境酌情采用.
本书第1. 2. 5. 10~14章由丁宝康撰写, 第3. 4. 6~9. 15. 16章由董健全撰写. 复旦大学施伯乐教授审阅了全稿, 并提出了许多宝贵的意见.
本书第一版组稿时, 我们曾和西安交通大学顾学春教授. 中国人民大学信息学院何军教授就全书的结构. 取材进行了三次探讨. 本书的出版还得到了复旦大学. 上海大学. 上海(国际)数据库研究中心的支持. 姜连生. 杨卫稼. 陈长洪. 徐美娟. 薛剑虹. 曾宇昆. 王晓雯和丁宁等老师为本书的出版做了大量工作. 在此谨向他们表示衷心感谢.
为了更方便大家使用本书作为主教材进行教与学, 我们还组织编写了辅导材料(习题解答).
限于水平, 书中欠妥之处, 敬请广大读者和专家批评指正.