第1章 数据库基础知识 1
1.1 数据库技术的产生与发展 1
1.1.1 人工管理阶段 1
1.1.2 文件系统阶段 1
1.1.3 数据库阶段 2
1.1.4 高级数据库阶段 3
1.2 数据库的基本概念 4
1.2.1 信息与数据 4
1.2.2 数据库 5
1.2.3 数据库系统 5
1.3 数据模型 6
1.4 数据库体系结构 6
1.4.1 数据独立性 7
1.4.2 数据库三级模式结构和二级功能映射 7
1.5 数据库的重要性及发展趋势 8
1.5.1 数据库的重要性 8
1.5.2 数据库的发展趋势 9
小结 11
综合练习一 11
第2章 数据模型 13
2.1 数据模型概述 13
2.1.1 数据模型的定义 13
2.1.2 数据模型中的一些基本概念 14
2.2 E-R模型 15
2.3 层次数据模型 16
2.4 网状数据模型 17
2.5 关系数据模型 18
2.6 数据模型与数据模式 19
小结 20
综合练习二 20
第3章 关系数据模型 22
3.1 关系模型的数据结构 22
3.1.1 关系 22
3.1.2 关系模式 25
3.1.3 关系数据库 25
3.2 关系数据操作 25
3.2.1 关系操作的分类 25
3.2.2 空值处理 27
3.2.3 关系代数和关系演算 27
3.2.4 关系数据语言 28
3.3 关系的完整性约束 29
3.3.1 实体完整性 29
3.3.2 参照完整性 29
3.3.3 用户定义的完整性 30
3.3.4 完整性约束的作用 30
3.4 关系代数 30
3.4.1 传统的集合运算 32
3.4.2 专门的关系运算 33
3.5 关系演算 38
3.5.1 元组关系演算 39
3.5.2 域关系演算 41
3.5.3 关系代数、元组演算、域演算的等价性 42
小结 43
综合练习三 43
第4章 关系数据库的查询优化 46
4.1 查询优化概述 46
4.2 查询优化的必要性 47
4.3 关系代数表达式的等价变换 49
4.4 查询优化的一般准则 51
4.5 关系代数表达式的优化算法 52
4.5.1 语法树 52
4.5.2 优化算法 52
小结 56
综合练习四 56
第5章 关系数据库标准语言——SQL 58
5.1 SQL概述 58
5.2 数据定义 60
5.2.1 SQL的基本数据类型 61
5.2.2 基本表的创建、修改和撤销 61
5.2.3 索引的创建和撤销 64
5.3 数据查询 66
5.3.1 SQL的查询语句 66
5.3.2 单表查询 67
5.3.3 连接查询 73
5.3.4 嵌套查询 75
5.3.5 集合查询 79
5.4 数据更新 80
5.4.1 插入数据 80
5.4.2 修改数据 81
5.4.3 删除数据 82
5.5 视图管理 82
5.5.1 视图的创建与删除 83
5.5.2 视图操作 85
5.5.3 视图的优点 87
5.6 数据控制 88
5.6.1 授予权限 88
5.6.2 收回权限 89
5.7 嵌入式SQL 90
5.7.1 嵌入式SQL的说明部分 90
5.7.2 嵌入式SQL的可执行语句 92
5.7.3 动态SQL简介 94
小结 95
综合练习五 95
第6章 关系数据库规范化理论 98
6.1 问题的提出、分析与解决 98
6.1.1 问题的提出 98
6.1.2 问题的分析 99
6.1.3 问题的解决方案 99
6.2 规范化 99
6.2.1 函数依赖 99
6.2.2 范式 101
6.2.3 第一范式(1NF) 101
6.2.4 第二范式(2NF) 102
6.2.5 第三范式(3NF) 103
6.2.6 BC范式(BCNF) 105
6.2.7 多值依赖 106
6.2.8 第四范式(4NF) 108
6.2.9 规范化小结 109
6.3 数据依赖的公理系统 109
6.3.1 函数依赖的推理规则 110
6.3.2 函数依赖的闭包F+及属性的闭包X? 111
6.3.3 最小函数依赖集 112
6.4 模式分解 114
6.4.1 模式分解的定义 114
6.4.2 分解的无损连接性的判别 115
6.4.3 保持函数依赖的模式分解 115
小结 118
综合练习六 119
第7章 数据库的安全性和完整性 122
7.1 数据库的安全性 122
7.1.1 数据库安全性问题的提出 122
7.1.2 数据库安全性保护范围 123
7.1.3 数据库管理系统中的安全性保护 124
7.1.4 SQL中的安全性机制 128
7.1.5 数据库的安全标准 130
7.2 数据库的完整性 131
7.2.1 数据库完整性问题的提出 131
7.2.2 完整性基本概念 132
7.2.3 完整性约束条件 132
7.2.4 完整性规则和完整性控制 133
7.2.5 参照完整性控制 136
7.2.6 SQL中的完整性约束机制 138
7.2.7 修改约束 139
7.2.8 触发器 139
小结 142
综合练习七 142
第8章 数据库事务管理 144
8.1 事务的基本概念 144
8.1.1 事务 144
8.1.2 事务基本操作与活动状态 145
8.1.3 事务处理SQL语句 146
8.2 数据库恢复技术 147
8.2.1 数据库故障分类 148
8.2.2 数据库恢复的主要技术 150
8.2.3 数据库恢复策略 152
8.2.4 数据库的复制与镜像 153
8.3 并发控制 154
8.3.1 并发的概念 154
8.3.2 并发操作引发的问题 155
8.3.3 事务的并发控制 157
8.3.4 封锁 158
8.3.5 封锁粒度 160
8.3.6 封锁协议 160
8.3.7 活锁与死锁 164
小结 165
综合练习八 165
第9章 数据库设计 167
9.1 数据库设计概述 167
9.1.1 数据库设计的任务、内容和特点 167
9.1.2 数据库系统的生命周期 168
9.2 需求分析 169
9.2.1 需求分析的任务 169
9.2.2 需求分析的主要内容 170
9.2.3 需求分析的步骤 171
9.2.4 需求分析说明书 171
9.3 概念设计 172
9.3.1 概念结构设计概述 172
9.3.2 数据抽象与局部概念设计 173
9.3.3 全局概念设计 175
9.4 逻辑设计 178
9.4.1 E-R图向关系模型的转换 178
9.4.2 关系模型向RDBMS支持的数据模型转换 181
9.4.3 数据模型的优化 181
9.4.4 设计用户子模式 182
9.5 数据库的物理设计 182
9.5.1 集簇设计 183
9.5.2 索引设计 183
9.5.3 分区设计 184
9.5.4 评价物理设计 184
9.6 数据库的实施 185
9.7 数据库的维护 186
小结 187
综合练习九 188
第10章 数据库设计工具 190
10.1 ERwin概述 190
10.2 ERwin的工作空间 191
10.3 基本概念 193
10.4 建立ERwin数据模型 194
10.5 正向工程 199
10.6 逆向工程 200
小结 202
综合练习十 202
第11章 Java数据库连接 203
11.1 JDBC概述 203
11.2 JDBC结构 204
11.3 JDBC驱动程序 205
11.4 JDBC访问数据库 206
11.5 常用的JDBC接口类和对象 207
11.6 ODBC数据源 211
11.7 Java连接数据库编程实例 213
小结 216
综合练习十一 216
第12章 数据仓库 218
12.1 数据仓库的概念 218
12.1.1 数据仓库的特征 219
12.1.2 操作数据库系统与数据仓库的区别 220
12.1.3 数据仓库的类型 221
12.2 数据仓库组织与体系结构 221
12.2.1 数据仓库体系结构 222
12.2.2 数据仓库的数据组织 222
12.2.3 粒度与分割 223
12.2.4 数据仓库的元数据 224
12.3 如何建立数据仓库 224
12.3.1 数据仓库的开发流程 225
12.3.2 数据仓库设计 225
12.3.3 数据抽取模块 227
12.3.4 数据维护模块 227
12.4 数据仓库应用 227
12.5 数据挖掘 229
12.5.1 数据挖掘的定义 229
12.5.2 数据挖掘技术分类 229
12.5.3 数据挖掘的基本过程 230
小结 231
综合练习十二 231
附录A 实验 232
预备知识:SQL Server简介 232
实验1 创建数据库与表 242
实验2 SQL Server 2000查询分析器 248
实验3 数据查询 253
实验4 数据完整性 253
实验5 SQL Server的安全管理 254
实验6 数据库备份和恢复 256
实验7 视图、存储过程和触发器的使用 257
实验8 Java连接数据库实验 258
附录B 课程设计——网上购物系统数据库设计 260
附录C 参考答案 279
参考文献 311