第1章 数据库系统简介 1
1.1 数据库系统概述 1
1.1.1 数据与信息 1
1.1.2 数据处理与数据管理 1
1.1.3 数据库技术的发展历程 2
1.1.4 数据库技术的基本概念 5
1.2 数据模型 5
1.2.1 数据模型的定义 5
1.2.2 实体联系数据模型 8
1.2.3 层次模型 9
1.2.4 网状模型 12
1.2.5 关系模型 14
1.2.6 面向对象模型 16
1.3 数据库管理系统 17
1.3.1 DBMS的主要功能 17
1.3.2 DBMS的模块组成 18
1.3.3 用户访问数据的过程 18
1.4 数据库系统结构 19
1.4.1 数据库系统的体系结构 19
1.4.2 三级结构和两级映像 20
1.4.3 数据库人员组成及用户界面 22
1.5 数据库技术的研究 23
1.5.1 分布式数据库 23
1.4.4 数据库系统的工作过程 23
1.5.2 面向对象数据库 24
1.5.3 对象-关系数据库 25
1.5.4 多媒体数据库 26
1.5.5 主动数据库 27
1.5.6 并行数据库 28
1.5.7 工作流数据库 28
1.5.8 Web数据库 29
1.5.9 演绎数据库 30
1.5.10 联邦数据库 30
1.5.11 数据网格 31
1.6.1 数据仓库概述 34
1.6 数据仓库 34
1.6.2 数据仓库的结构 35
1.6.3 数据集市 36
1.6.4 数据仓库的开发流程 37
1.6.5 联机分析处理 38
1.6.6 数据挖掘 39
小结 44
综合练习一 44
一、填空题 44
二、选择题 44
三、思考题 45
第2章 关系数据库简介 46
2.1 基本概念 46
2.2.1 关系模式 47
2.2 关系数据结构 47
2.2.2 子模式 49
2.2.3 存储技术 49
2.3 关系的完整性 50
2.3.1 实体完整性 50
2.3.2 参照完整性 50
2.3.3 用户定义的完整性 51
2.4 关系代数 51
2.4.1 关系查询语言和关系运算 51
2.4.2 关系代数的基本操作 51
2.4.3 关系代数的组合操作 56
2.4.4 关系代数运算实例 56
2.5.1 元组关系演算 58
2.5 关系演算 58
2.5.2 域关系演算 60
2.5.3 关系演算的安全约束和等价性 60
2.6 查询优化 60
2.6.1 关系代数表达式的优化问题 60
2.6.2 关系代数表达式的等价变换规则 62
2.6.3 优化的一般策略 64
2.6.4 优化算法 65
小结 65
综合练习二 65
一、填空题 65
三、思考题 66
二、选择题 66
第3章 关系数据库理论 68
3.1 关系数据库理论概述 68
3.2 数据依赖 69
3.2.1 函数依赖的定义 69
3.2.2 完全函数依赖和传递依赖 70
3.2.3 Armstrong公理系统 71
3.2.4 属性集团包 72
3.2.5 函数依赖的最小依赖集 73
3.3 关系的规范化 74
3.3.1 第一范式 75
3.3.2 第二范式 75
3.3.3 第三范式 76
3.3.4 BC范式 78
3.3.5 关系数据库设计的规范化与非规范化 78
3.4 模式的分解 79
3.4.1 模式分解规则 81
3.4.2 模式分解方法 81
3.4.3 分解算法 81
小结 83
综合练习三 83
一、填空题 83
二、选择题 83
三、思考题 84
4.1.2 SQL数据库的体系结构 85
4.1.1 SQL的发展 85
第4章 关系数据库语言——SQL 85
4.1 SQL概论 85
4.1.3 SQL的主要功能 86
4.1.4 SQL的特点 86
4.2 数据的定义 87
4.2.1 基本表的定义、修改和删除 88
4.2.2 建立和删除索引 90
4.3 查询 91
4.3.1 SELECT语句格式 91
4.3.2 查询实例 92
4.3.3 连接查询 94
4.3.4 嵌套查询 96
4.3.6 SELECT语句的完整语法 99
4.3.5 使用库函数进行查询 99
4.3.7 字符串的匹配与别名设定 101
4.3.8 集合的并、交、差操作 102
4.3.9 集合的比较操作 103
4.4 数据更新 105
4.4.1 插入数据 105
4.4.2 删除数据 106
4.4.3 更新数据 107
4.5 视图 108
4.5.1 视图的定义 108
4.5.2 视图的操作 109
4.6 数据控制 110
4.5.3 视图的优点 110
4.7 嵌入式SQL 112
4.7.1 SQL语句的运行环境 112
4.7.2 嵌入式SQL的语法格式 113
4.7.3 嵌入式SQL语句的使用 114
4.7.4 动态SQL语句 116
小结 118
综合练习四 118
一、填空题 118
二、选择题 118
三、思考题 118
5.1.1 软件生命周期 120
5.1 数据库设计概述 120
第5章 数据库设计 120
5.1.2 数据库系统的生存期 121
5.1.3 数据库设计的任务、特点和目标 121
5.1.4 规范化设计 122
5.2 需求分析 123
5.2.1 需求描述与分析 123
5.2.2 收集资料 124
5.2.3 分析和整理资料 124
5.2.4 数据字典 125
5.3 概念结构设计 127
5.3.1 概念设计的必要性 127
5.3.2 概念模型 127
5.3.3 概念设计的主要步骤 128
5.3.5 设计局部E-R图 129
5.3.4 数据抽象 129
5.3.6 集成E-R图 131
5.4 逻辑结构设计 134
5.4.1 逻辑设计的步骤 134
5.4.2 E-R图向关系模式的转换 135
5.4.3 规范化处理 137
5.4.4 设计外模式 138
5.5 物理设计 138
5.5.1 确定存取的方法 138
5.5.3 确定存储结构 139
5.5.4 评价物理结构 139
5.5.2 存取方法介绍 139
5.6 数据库的实施与维护 140
5.6.1 数据的装入和编码调试 140
5.6.2 数据库的维护 140
小结 140
综合练习五 141
一、填空题 141
二、选择题 141
三、思考题 141
第6章 数据库的恢复技术 142
6.1 事务的基本概念 142
6.1.1 事务及其性质 142
6.1.2 事务的状态 143
6.1.3 SQL中的事务定义 144
6.2 故障的种类 145
6.2.1 事务内部的故障 146
6.2.2 系统故障 146
6.2.3 介质故障 146
6.2.4 计算机病毒 147
6.3 恢复技术的实现 147
6.3.1 数据转储 147
6.3.2 基于日志恢复 148
6.4 具有检查点的恢复技术 152
6.4.1 检查点恢复技术 152
6.4.2 恢复策略 153
6.4.3 检查点方法的恢复算法 153
6.6.1 数据库备份所使用的结构 154
6.5 数据库镜像 154
6.6 Oracle的恢复技术 154
6.6.2 在线日志 155
6.6.3 归档日志 156
6.6.4 数据库后备 156
6.6.5 Oracle的备份特性 157
小结 157
综合练习六 158
一、填空题 158
二、选择题 158
三、思考题 158
7.1.2 并发所引起的问题 159
7.1.1 并发的目的 159
第7章 并发控制 159
7.1 并发控制概述 159
7.2 封锁 160
7.2.1 排他型封锁 160
7.2.2 共享型封锁 160
7.3 并发调度的可串行性 161
7.4 两段锁协议 161
7.5 活锁和死锁 162
7.5.1 活锁 162
7.5.2 死锁 162
7.5.3 死锁的预防 162
7.5.4 死锁的检测 163
7.6.1 封锁粒度 164
7.6 封锁粒度和意向锁 164
7.6.2 意向锁 165
7.7 Oracle的并发控制 166
7.7.1 多种一致性模型 166
7.7.2 封锁机制 166
7.7.3 手工的数据封锁 167
7.7.4 Oracle自动封锁 167
小结 168
综合练习七 168
一、填空题 168
二、选择题 168
三、思考题 168
8.2 数据库安全性控制 170
第8章 数据库的安全性 170
8.1 计算机安全性概论 170
8.2.1 用户标识与鉴别 171
8.2.2 访问控制 172
8.2.3 数据加密 176
8.3 统计数据库的安全性 176
8.4 Oracle数据库的安全性 177
8.4.1 概述 177
8.4.2 数据库安全分类 177
8.4.3 数据库的存取控制 178
8.4.4 特权和角色 180
8.4.5 审计 181
二、选择题 182
三、思考题 182
小结 182
一、填空题 182
综合练习八 182
第9章 数据库的完整性 184
9.1 完整性约束条件 184
9.1.1 静态列级约束 184
9.1.2 静态元组约束 185
9.1.3 静态关系约束 185
9.1.4 动态列级约束 185
9.1.5 动态元组约束 185
9.2.2 完整性规则的数学表示 186
9.2.1 完整性控制机制的功能与执行约束 186
9.1.6 动态关系约束 186
9.2 完整性控制 186
9.2.3 实现参照完整性要考虑的问题 187
9.2.4 在参考关系中插入元组时的问题 187
9.2.5 修改关系的主键问题 188
9.2.6 修改表时参照关系的问题 188
9.3 Oracle的完整性 188
9.3.1 Oracle中的实体完整性 188
9.3.2 Oracle中的参照完整性 189
9.3.3 Oracle中用户定义的完整性 190
三、思考题 191
二、选择题 191
一、填空题 191
综合练习九 191
小结 191
第10章 SQL Server2000数据库的基本应用 193
10.1 数据库的创建、修改和删除 193
10.1.1 数据库的创建 193
10.1.2 数据库的收缩 197
10.1.3 数据库的删除 197
10.2 数据库表的使用 198
10.2.1 表的创建、修改和删除 198
10.2.2 表的约束 204
10.2.3 表的数据处理 206
10.3.1 视图的创建、修改、删除 219
10.3 视图的使用 219
10.3.2 几种特殊的视图类型 221
10.4 索引的使用 225
10.4.1 使用非聚集索引 225
10.4.2 使用惟一索引 226
10.4.3 使用聚集索引 226
10.4.4 索引的建立 227
10.5 存储过程 234
10.5.1 存储过程的创建 235
10.5.2 存储过程的调用 236
10.6 用户定义函数 238
10.6.1 创建用户定义函数 238
10.5.3 存储过程的维护 238
10.6.2 用户定义函数的使用 239
10.6.3 修改和删除用户定义函数 241
小结 243
综合练习十 243
一、填空题 243
二、选择题 243
三、思考题 244
第11章 Transact-SQL应用基础 245
11.1 Transact-SQL语法格式约定 245
11.2 关键字 246
11.3.1 常规标识符 248
11.3 标识符 248
11.3.2 定界标识符 249
11.3.3 标识符的应用 251
11.4 数据类型 252
11.4.1 系统的数据类型 253
11.4.2 使用二进制数据 253
11.4.3 使用char和varchar数据 254
11.4.4 使用日期和时间数据 255
11.4.5 使用整型数据 258
11.4.6 使用float和real数据 260
11.4.7 使用货币数据 260
11.4.8 使用Text和Image数据 261
11.4.9 使用uniqueidentifier数据 262
11.4.10 使用特殊数据 263
11.4.11 使用Unicode数据 265
11.4.12 用户定义的数据类型 266
11.5 数据类型的转换 267
11.5.1 转换binary和varbinary数据 267
11.5.2 转换bit数据 268
11.5.3 转换字符数据 268
11.5.4 转换datetime和smalldatetime数据 269
11.5.5 转换float和real数据 269
11.5.6 转换money数据 269
11.6.2 算术运算符 270
11.6.1 位运算符 270
11.5.7 转换decimal和numeric数据 270
11.6 运算符 270
11.6.3 比较运算符 271
11.6.4 逻辑运算符 272
11.6.5 赋值运算符 273
11.6.6 字符串运算符 273
11.7 变量 274
11.7.1 变量的声明 274
11.7.2 变量的赋值 274
一、填空题 277
二、选择题 277
综合练习十一 277
小结 277
三、思考题 278
第12章 Transact-SQL的高级应用 279
12.1 使用Transact-SQL开发存储过程 279
12.1.1 存储过程的概念 279
12.1.2 创建存储过程的方法 280
12.1.3 存储过程的用途 281
12.1.4 创建存储过程的实例与技巧 282
12.2 使用Transact-SQL开发触发器 284
12.2.1 创建触发器 284
12.2.2 使用Inserted和Deleted表 286
12.3 使用Transact-SQL开发游标 287
12.3.1 游标简介 287
12.3.2 在开发过程中使用游标 289
12.3.3 使用游标的实例 291
12.4 使用Transact-SQL的其他技巧 292
12.4.1 在屏幕上显示数据 292
12.4.2 注释SQL语句 293
12.4.3 使用条件语句 293
小结 294
综合练习十二 295
一、填空题 295
二、选择题 295
三、思考题 295
13.1.1 ADO的体系结构 296
13.1 Visual Basic中使用ADO对象技术 296
第13章 SQL Server2000数据库开发实例 296
13.1.2Visual Basic中引用ADO对象的方法 297
13.1.3 Visual Basic中ADO属性的用法 300
13.2 使用ADO连接SQL Server数据库实例 302
13.2.1 ADO静态地连接SQL Server 302
13.2.2ADO动态地连接SQL Scrver 305
13.3 使用ADO操作SQL Server数据库技术 312
13.3.1 使用ADO创建和删除表 312
13.3.2 使用ADO添加、删除和修改记录 315
13.4 开发有存储过程的数据库程序 319
13.4.1 后台存储过程的编写 320
13.4.2 存储过程与前台程序的连接 321
13.4.3 程序的运行 322
13.5.1 后台数据库的设计与实现 323
13.5 开发有视图的数据库程序 323
13.5.2 后台数据库与前台程序的连接 325
13.5.3 程序的运行 326
小结 327
综合练习十三 327
一、填空题 327
二、选择题 327
三、思考题 328
第1章 329
第2章 329
参考答案 329
第3章 330
第4章 330
第5章 332
第6章 333
第7章 334
第8章 335
第9章 335
第10章 336
第11章 336
第12章 336
第13章 337
参考文献 338