序Ⅰ前言Ⅲ
第1章数据库系统概述1
1.1数据管理技术的发展1
1.1.1人工管理阶段1
1.1.2文件系统阶段2
1.1.3数据库系统阶段2
1.2有关数据库的基本术语5
1.2.1数据5
1.2.2数据模型5
1.2.3数据库5
1.2.4数据库管理系统5
1.2.5数据库系统6
1.3关系数据库系统6
1.3.1什么是关系6
1.3.2关系模型7
1.3.3关系数据库系统7
1.4数据库系统的体系结构7
1.4.1三层模式结构8
1.4.2两层映象功能9
1.5DBMS的体系结构10
1.5.1DBMS的组成概述10
1.5.2查询处理程序10
1.5.3存储管理程序11
1.5.4事务管理程序11
1.5.5客户程序/服务程序体系结构12
1.6数据库系统运行过程13
1.7本书导读14
1.7.1设计14
1.7.2编程15
1.7.3实现15
小结15
习题16第2章数据库建模17
2.1对象定义语言ODL18
2.1.1面向对象的设计18
2.1.2类的说明18
2.1.3ODL中的属性18
2.1.4ODL中的联系和反向联系20
2.1.5联系的三种类型21
2.2实体联系模型(E/R图)23
2.2.1E/R图中联系的三种类型24
2.2.2联系中的角色25
2.2.3联系的多向性25
2.3设计原则26
2.3.1真实性26
2.3.2避免冗余26
2.3.3简单性27
2.3.4合理选择元素类型27
2.4子类28
2.4.1ODL中的子类28
2.4.2ODL中的多重继承29
2.4.3E/R图中的子类30
2.4.4E/R图中的继承30
2.5对约束的建模31
2.5.1键码32
2.5.2单值约束34
2.5.3引用完整性34
2.5.4其他类型的约束35
小结36
习题37
第3章关系模型和关系运算38
3.1关系模型的基本概念38
3.1.1属性39
3.1.2模式39
3.1.3元组39
3.1.4域40
3.1.5关系的等价表示法40
3.1.6关系的实例40
3.2从ODL设计到关系设计41
3.2.1从ODL属性到关系属性41
3.2.2非原子属性的表示41
3.2.3单值联系的表示43
3.2.4多值联系的表示44
3.2.5联系与反向联系的表示44
3.2.6ODL子类的表示45
3.3从E/R图到关系设计45
3.3.1实体集到关系的转换45
3.3.2E/R联系到关系的转换46
3.3.3“属于”联系到关系的转换47
3.4关系代数47
3.4.1关系的集合运算48
3.4.2投影49
3.4.3选择50
3.4.4笛卡儿积50
3.4.5自然连接51
3.4.6θ连接52
3.4.7改名52
3.4.8复合运算53
3.4.9基本运算和导出运算54
3.5关系演算55
3.5.1元组关系演算55
3.5.2域关系演算59
3.6关系逻辑60
3.6.1谓词和原子60
3.6.2规则和查询61
3.6.3从关系代数到数据逻辑62
小结65
习题67
第4章数据库语言SQL69
4.1SQL的特点69
4.2简单查询70
4.2.1选择条件的构成72
4.2.2字符串的比较73
4.2.3日期和时间的比较74
4.2.4输出的排序74
4.2.5聚合运算符75
4.2.6分组75
4.3连接查询76
4.3.1查询的并、交、差76
4.3.2连接与笛卡儿积77
4.3.3元组变量78
4.4嵌套查询78
4.4.1产生单值的子查询79
4.4.2涉及到关系的选择条件80
4.4.3涉及到元组的选择条件81
4.4.4相关子查询82
4.5数据库更新85
4.5.1插入85
4.5.2删除86
4.5.3修改87
4.6定义关系模式88
4.6.1属性的数据类型88
4.6.2定义表89
4.6.3撤销表89
4.6.4更改关系模式90
4.6.5建立和撤销索引91
4.7视图的定义和查询93
4.7.1定义视图93
4.7.2查询视图94
4.7.3更新视图95
4.7.4撤销视图97
小结97
习题99
第5章查询优化与并发控制101
5.1查询优化的一般策略101
5.2关系代数的等价变换103
5.2.1变换规则103
5.2.2应用举例105
5.3查询优化步骤107
5.4并发调度109
5.4.1事务109
5.4.2数据不一致性110
5.4.3可串行化调度110
5.5封锁管理112
5.5.1封锁机制中的主要概念112
5.5.2封锁协议112
小结114
习题116
第6章关系数据库设计理论117
6.1函数依赖117
6.1.1函数依赖的定义117
6.1.2关系的键码119
6.1.3超键码119
6.1.4函数依赖规则119
6.1.5计算属性的封闭集121
6.2模式设计122
6.2.1问题的提出123
6.2.2问题的根源123
6.2.3解决的途径125
6.2.4分解的原则129
6.2.5分解的方法132
6.2.6关系模式规范化小结135
6.3多值依赖135
6.3.1属性独立性带来的冗余135
6.3.2多值依赖的定义136
6.3.3第四范式137
6.3.4分解成第四范式137
小结138
习题140
第7章数据库设计141
7.1概述141
7.1.1数据库设计的任务141
7.1.2数据库设计的特点143
7.1.3数据库设计的步骤143
7.2需求分析145
7.2.1应用领域的调查146
7.2.2定义信息与应用147
7.2.3定义操作任务148
7.2.4定义数据项148
7.2.5预测未来的改变150
7.3概念设计151
7.3.1概念设计的基本方法151
7.3.2视图设计的基本策略152
7.3.3视图综合设计方法152
7.4逻辑设计154
7.4.1E/R图到关系模式的转换154
7.4.2逻辑模式的规范化和优化158
7.5物理设计160
7.5.1影响物理设计的因素160
7.5.2选择存取方法161
7.5.3设计存储结构162
7.6数据库的实施、运行和维护163
7.6.1数据库的实施163
7.6.2数据库的运行和维护164
小结165
习题165
第8章SQL系统环境167
8.1嵌入式SQL167
8.1.1什么是嵌入式SQL167
8.1.2如何实现嵌入式SQL167
8.1.3使用游标的SQL编程170
8.1.4嵌入式SQL的处理过程171
8.2有关事务的嵌入式SQL172
8.3SQL环境175
8.3.1数据库元素的层次结构175
8.3.2客户程序和服务程序系统177
8.3.3Client/Server体系结构179
8.4数据库的完整性180
8.4.1说明键码约束181
8.4.2说明外键码约束182
8.4.3说明检验约束183
8.4.4更新约束184
8.4.5触发与触发程序185
8.5SQL中的安全和用户权限188
8.5.1数据库的安全188
8.5.2数据库的访问控制189
8.5.3权限190
8.5.4用户的标识与鉴别193
小结194
习题194
第9章面向对象查询语言197
9.1对象查询语言OQL概述197
9.1.1ODL中的方法与范围197
9.1.2OQL中的类型200
9.1.3一个OQL的实例200
9.2OQL表达式201
9.2.1路径表达式202
9.2.2基本表达式202
9.2.3表达式的附加格式205
9.3OQL及其宿主语言编程209
9.3.1给宿主语言变量赋值209
9.3.2从聚集中提取元素209
9.3.3访问聚集中的每个元素210
9.4SQL3中的元组对象211
9.4.1行类型及其说明211
9.4.2引用及其使用212
9.4.3作为值的对象标识215
9.5SQL3中的抽象数据类型216
9.5.1ADT的定义216
9.5.2ADT方法的定义217
9.6ODL/OQL和SQL3的比较219
小结220
习题221
第10章数据库技术发展动态223
10.1分布式数据库223
10.1.1分布式数据库系统简介223
10.1.2分布式数据库系统举例224
10.2并行数据库225
10.2.1并行数据库简介225
10.2.2并行数据库系统结构226
10.3多媒体数据库228
10.3.1多媒体数据及其特点228
10.3.2多媒体数据库简介230
10.4主动数据库230
10.5数据仓库231
10.5.1数据仓库简介231
10.5.2数据仓库的结构232
小结233
习题234
附录A数据库系统概论课教学实验235
A.1综合实验235
A.1.1实验一零件交易中心管理系统235
A.1.2实验二图书管理系统235
A.1.3实验三民航订票管理系统236
A.2零件交易中心管理系统实验报告(参考答案)236
附录BMS SQL Server介绍248
B.1SQL Server简介248
B.2SQL Server管理工具和实用程序248
附录CMS SQL SERVER 6.5/7.0——Transact\|SQL语法251
C.1简单说明251
C.1.1语法约定251
C.1.2表达式251
C.1.3搜索条件251
C.2建立、更改和撤销基本表252
C.2.1建表252
C.2.2更改表255
C.2.3撤销表256
C.3更新数据256
C.3.1插入数据256
C.3.2删除数据257
C.3.3修改数据257
C.4查询258参考文献260