第1章 概述 1
1.1 数据库技术的产生与发展 1
1.1.1 数据处理和数据管理 1
1.1.2 数据管理技术的发展 2
1.1.3 数据库技术的特点和展望 5
1.2 数据库系统的组成 6
1.2.1 数据库 7
1.2.2 数据库管理系统等软件 7
1.2.3 数据库管理员 8
1.3 数据库的体系结构 8
1.3.1 模式的概念 8
1.3.2 三级模式结构 9
1.3.3 二级映像和二级独立性 11
习题1 12
第2章 关系数据库 14
2.1 数据模型 14
2.1.1 数据模型的定义和基本要求 14
2.1.2 数据模型的三个层次 14
2.1.3 数据模型的三个组成要素 15
2.2 概念模型概述 16
2.2.1 信息世界中的基本概念 16
2.2.2 实体间的联系 16
2.2.3 概念模型的表示方法——E-R图 17
2.3 逻辑数据模型概述 18
2.3.1 层次模型 19
2.3.2 网状模型 19
2.3.3 关系模型 20
2.4 关系模型 20
2.4.1 关系数据结构 21
2.4.2 关系的完整性 24
2.4.3 关系操作的特点与分类 26
2.5 关系代数 26
2.5.1 传统的集合运算 27
2.5.2 专门的关系运算 28
2.5.3 扩展的关系代数运算 32
2.5.4 关系代数运算的应用实例 35
习题2 37
第3章 结构化查询语言SQL 41
3.1 SQL语言概述 41
3.1.1 SQL的产生与发展 41
3.1.2 SQL的功能与特点 42
3.2 数据定义 43
3.2.1 数据库的创建、修改与删除 43
3.2.2 SQL中的数据类型 48
3.2.3 基本表的创建、修改与删除 52
3.3 完整性约束的实现 53
3.3.1 数据库完整性的概念 53
3.3.2 各类完整性约束的实现 54
3.3.3 表中完整性约束的增加与删除 57
3.4 数据查询 58
3.4.1 单表查询 58
3.4.2 连接查询 64
3.4.3 嵌套查询 66
3.4.4 集合查询 72
3.5 数据更新 73
3.5.1 插入数据 73
3.5.2 修改数据 74
3.5.3 删除数据 76
习题3 76
第4章 索引与视图 81
4.1 索引 81
4.1.1 索引的概念 81
4.1.2 创建索引的基本原则 85
4.1.3 索引的创建与删除 86
4.1.4 SQL Server 2005中的索引 87
4.2 视图 90
4.2.1 视图的定义与删除 90
4.2.2 查询视图 92
4.2.3 更新视图 93
4.2.4 视图的作用 95
4.2.5 SQLServer 2005中的索引视图 95
习题4 96
第5章 数据库安全技术 99
5.1 安全性控制技术概述 99
5.1.1 计算机系统的三类安全性问题 99
5.1.2 安全标准简介 99
5.1.3 数据库安全性控制概述 101
5.2 用户管理和角色管理 103
5.2.1 用户管理 103
5.2.2 角色管理 105
5.3 权限管理 106
5.3.1 授予权限 106
5.3.2 收回权限 107
5.4 SQLServer的安全机制 109
5.4.1 SQLServer 2005的身份验证模式 109
5.4.2 SQLServer 2005的固定角色 110
5.4.3 拒绝权限 111
习题5 112
第6章 函数、游标、存储过程和触发器 114
6.1 脚本、批和注释符 114
6.1.1 脚本 114
6.1.2 批 114
6.1.3 注释符 115
6.2 常量、变量和运算符 115
6.2.1 常量 115
6.2.2 变量 115
6.2.3 运算符 117
6.3 流程控制语句 117
6.3.1 块语句 117
6.3.2 分支语句 118
6.3.3 循环语句 119
6.3.4 其他控制语句 120
6.4 函数 121
6.4.1 系统函数 121
6.4.2 用户自定义函数 123
6.5 游标 127
6.5.1 定义游标 127
6.5.2 打开游标 129
6.5.3 通过游标读取数据 130
6.5.4 通过游标修改和删除数据 130
6.5.5 关闭游标和释放游标 131
6.6 存储过程 132
6.6.1 系统存储过程 133
6.6.2 用户自定义存储过程 133
6.6.3 使用存储过程实现封装业务逻辑 136
6.7 触发器 137
6.7.1 触发器概述 137
6.7.2 触发器的创建和管理 138
6.7.3 使用触发器实现强制业务规则 141
习题6 143
第7章 事务管理 146
7.1 事务 146
7.1.1 事务的定义 146
7.1.2 事务的ACID性质 146
7.1.3 事务的状态 147
7.1.4 SQL Server 2005中的事务 148
7.2 并发控制 149
7.2.1 并发操作与数据的不一致性 150
7.2.2 可串行性 151
7.2.3 封锁及封锁协议 153
7.2.4 两段锁协议 156
7.2.5 锁的粒度 158
7.2.6 事务的隔离级别 160
7.2.7 SQL Server2005中的并发控制 161
7.3 数据库恢复技术 165
7.3.1 恢复的实现技术 165
7.3.2 数据库备份和登记日志方法 166
7.3.3 故障类型及恢复策略 167
7.3.4 具有检查点的恢复技术 169
7.3.5 SQLServer2005中的数据库备份与恢复 169
习题7 176
第8章 关系数据库设计理论 180
8.1 关系模式规范化设计的必要性 180
8.2 函数依赖与码 181
8.2.1 函数依赖的定义及分类 182
8.2.2 函数依赖的公理系统和推理规则 183
8.2.3 属性集X关于函数依赖集F的闭包 184
8.2.4 码 185
8.2.5 候选码的快速求解方法 185
8.3 关系模式的规范化 186
8.3.1 第一范式 187
8.3.2 第二范式 187
8.3.3 第三范式 188
8.3.4 BC范式 189
8.3.5 规范化小结 190
8.4 关系模式的分解 192
8.4.1 模式分解的概念 192
8.4.2 分解的无损连接性和函数依赖保持性 193
8.4.3 模式分解的算法 196
习题8 198
第9章 数据库设计 201
9.1 数据库设计概述 201
9.1.1 数据库设计在软件开发中的地位和作用 201
9.1.2 数据库设计的基本步骤 201
9.2 基于E-R图的概念结构设计 203
9.2.1 实体与用户需求 203
9.2.2 属性及其分类 204
9.2.3 联系及其分类 205
9.2.4 弱实体类型 207
9.2.5 扩展的E-R特性 208
9.2.6 E-R图实例 208
9.2.7 概念结构设计的方法和步骤 209
9.3 逻辑结构设计 210
9.3.1 强实体的表示 210
9.3.2 联系的表示 211
9.3.3 弱实体的表示 212
9.3.4 聚集的表示 212
9.3.5 逻辑结构设计的步骤 213
9.4 E-R模型设计问题 213
9.5 物理结构设计 215
9.6 数据库设计实例——学校管理信息系统 217
9.6.1 系统概述 217
9.6.2 学籍管理子系统的需求与概念设计 217
9.6.3 行政管理子系统的需求与概念设计 218
9.6.4 课表制定子系统的需求与概念设计 219
9.6.5 子系统视图的集成 222
9.6.6 逻辑结构设计 224
习题9 228
附录A 实验指导 230
实验1 创建和管理数据库和数据表 231
实验2 实现数据完整性 232
实验3 查询数据 233
实验4 视图的定义与使用 237
实验5 数据库安全技术 238
实验6 存储过程与触发器 239
实验7 并发控制 240
实验8 数据库恢复技术 243
实验9 索引与查询优化 244
实验10 导入导出及数据库的分离与附加 247
参考文献 249