书籍详情

数据库系统基础教程

数据库系统基础教程

作者:(美)Jeffrey D.Ullman,(美)Jennifer Widom著;岳丽华,龚育昌等译;岳丽华译

出版社:机械工业出版社

出版时间:2003-08-01

ISBN:9787111100959

定价:¥32.00

购买这本书可以去
内容简介
  本书由斯坦福大学知名计算机科学家Jeffrey D.Ullman和Jennifer Widom合作编写,作者采用一种易于理解的、面向用户的方式介绍了数据库系统,主要侧重于介绍数据库的设计与使用以及实际数据库应用的实现。它涵盖了最新数据库标准SQL—1999、SQL PSM、SQL CLI和ODL等内容,既可用于大学教科书,也可作为数据库领域专业人员的参考书。Jeffrey D.Ullman是斯坦福大学计算机科学教授。他独立或合作出版了15本著作,发表了170篇技术论文。他的研究兴趣包括数据库理论、数据库集成、数据挖掘和利用信息基础设施进行教育。他获得了Guggenheim Fellwship等多种激励,并被推选进入美国国家工程院。他还被授予1996年Sigmod贡献奖和1998年Karl V.Karstrom杰出教育奖。本书涵盖了最新数据库标准SQL-99、SQL/PSM、SQL/CLI和ODL,而且比其他大多数书籍都更多地介绍了SQL内容,从数据库设计者、用户和应用程序员的角度深入浅出地介绍了数据库。本书显著特色:◆ 通过使用人们普遍关注的、现实世界的例子提高可读性。◆ 对SQL编程的许多方面展开了广泛而全面的讨论。 ◆ 给出基于常见的E R模型的设计原则。 ◆ 介绍了使用ODL标准的面向对象设计和SQL-99标准的对象-关系设计。 ◆ 解释了SQL是如何通过JDBC(Java)和SQL CLI(ODBC)与现代宿主语言交互作用的。◆ 涵盖对于数据库设计者和使用者十分重要的若干高级论题,包括完整性约束、触发器、事务、授权、SQL—99递归,等等。 ◆ 通过主页http:www—db.stanford.edu ullman fcdb.html对本书提供更多的支持。
作者简介
  Jeffrey D.Ullman是斯坦福大学计算机科学教授。他独立或合作出版了15本著作,发表了170篇技术论文。他的研究兴趣包括数据库理论、数据库集成、数据挖掘和利用信息基础设施进行教育。他获得了Guggenheim Fellwship等多种激励,并被推选进入美国国家工程院。他还被授予1996年Sigmod贡献奖和1998年Karl V.Karstrom杰出教育奖。
目录
出版者的话
专家指导委员会名单
译者序
前言
第1章   数据库系统世界 1
1.1   数据库系统的发展 1
1.1.1   早期的数据库管理系统 1
1.1.2   关系数据库系统 2
1.1.3   越来越小的系统 3
1.1.4   越来越大的系统 4
1.1.5   客户-服务器和多层体系结构 4
1.1.6   多媒体数据 5
1.1.7   信息集成 5
1.2   数据库管理系统概述 6
1.2.1   数据定义语言命令 6
1.2.2   查询处理概述 6
1.2.3   存储器和缓冲区管理器 8
1.2.4   事务处理 8
1.2.5   查询处理器 9
1.3   数据库系统研究概述 9
1.3.1   数据库设计 10
1.3.2   数据库程序设计 10
1.4   小结 11
1.5   参考文献 11
第2章   实体-联系数据模型 13
2.1   E/R模型的要素 13
2.1.1   实体集 13
2.1.2   属性 14
2.1.3   联系 14
2.1.4   实体-联系图 14
2.1.5   E/R图实例 15
2.1.6   二元E/R联系的多样性 15
2.1.7   多路联系 16
2.1.8   联系中的角色 16
2.1.9   联系的属性 17
2.1.10   多路联系到二元联系的转换 18
2.1.11   E/R模型中的子类 19
2.1.12   习题 20
2.2   设计原则 22
2.2.1   忠实性   22
2.2.2   避免冗余 22
2.2.3   简单性考虑 23
2.2.4   选择正确的联系 23
2.2.5   选择正确的元素种类 24
2.2.6   习题 25
2.3   约束的建模 26
2.3.1   约束的分类 27
2.3.2   E/R模型中的键 27
2.3.3   E/R模型中键的表示 28
2.3.4   单值约束 29
2.3.5   引用完整性 29
2.3.6   E/R图中的引用完整性 29
2.3.7  其他类型的约束 30
2.3.8   习题 30
2.4   弱实体集 31
2.4.1   弱实体集的来源 31
2.4.2   弱实体集的要求 32
2.4.3   弱实体集的符号 33
2.4.4   习题 33
2.5   小结 33
2.6   参考文献 34
第3章   关系数据模型 35
3.1   关系模型的基础 35
3.1.1   属性 35
3.1.2   模式 35
3.1.3   元组 36
3.1.4   域 36
3.1.5   关系的等价描述 36
3.1.6   关系实例 36
3.1.7   习题 37
3.2   从E/R图到关系设计 37
3.2.1   实体集到关系的转化 38
3.2.2   E/R联系到关系的转化 39
3.2.3   组合关系 40
3.2.4   处理弱实体集 41
3.2.5   习题 43
3.3   子类结构到关系的转化 44
3.3.1   E/R方式转化 44
3.3.2   面向对象的方法 45
3.3.3   使用空值组合关系 46
3.3.4   各种方法的比较 46
3.3.5   习题 46
3.4   函数依赖 47
3.4.1   函数依赖的定义 48
3.4.2   关系的键 48
3.4.3   超键 50
3.4.4   找出关系中的键 50
3.4.5   习题 51
3.5   函数依赖的规则 52
3.5.1   分解/结合规则 52
3.5.2   平凡函数依赖 53
3.5.3   计算属性的闭包 53
3.5.4   为什么能用闭包算法 55
3.5.5   传递规则 56
3.5.6   函数依赖的闭包集合 57
3.5.7   投影函数依赖 57
3.5.8   习题 58
3.6   关系数据库模式设计 59
3.6.1   异常 60
3.6.2   分解关系 60
3.6.3   Boyce-Codd范式 61
3.6.4   分解为 BCNF 63
3.6.5   从分解中恢复信息 66
3.6.6   第三范式 67
3.6.7   习题 69
3.7   多值依赖 69
3.7.1   属性独立及伴随其产生的冗余 69
3.7.2   多值依赖的定义 70
3.7.3   多值依赖的推论 71
3.7.4   第四范式 72
3.7.5   分解到第四范式 73
3.7.6   范式间的联系 74
3.7.7   习题 74
3.8   小结 75
3.9   参考文献 76
第4章   其他数据模型 79
4.1   面向对象概念的复习 79
4.1.1   类型系统 80
4.1.2   类和对象 80
4.1.3   对象标识 80
4.1.4   方法 80
4.1.5   类的层次 81
4.2   ODL简介 81
4.2.1   面向对象设计 81
4.2.2   类声明 82
4.2.3   ODL中的属性 82
4.2.4   ODL中的联系 83
4.2.5   反向联系 84
4.2.6   联系的多重性 85
4.2.7   ODL中的方法 86
4.2.8   ODL中的类型 87
4.2.9   习题 88
4.3   ODL中的其他概念 89
4.3.1   ODL的多路联系 90
4.3.2   ODL中的子类 90
4.3.3   ODL中的多继承 91
4.3.4   范围 92
4.3.5   ODL中键声明 92
4.3.6   习题 94
4.4   从ODL设计到关系设计 94
4.4.1   从ODL属性到关系属性 95
4.4.2   类中的非原子类型属性 95
4.4.3   集合类型属性的表示 96
4.4.4   其他类型构建器的表示 97
4.4.5   ODL中联系的表示 98
4.4.6   如果没有键会怎样? 100
4.4.7   习题 100
4.5   对象关系模型 101
4.5.1   从关系到对象关系 102
4.5.2   嵌套关系 102
4.5.3   引用 103
4.5.4   面向对象与对象关系的比较 104
4.5.5   ODL设计到对象关系设计的转化 105
4.5.6   习题 105
4.6   半结构化数据 105
4.6.1   为何需要半结构化数据模型 106
4.6.2   半结构化数据表示 106
4.6.3   信息集成与半结构化数据 107
4.6.4   习题 108
4.7   XML及其数据模型 108
4.7.1   语义标签 109
4.7.2  格式规范的XML 109
4.7.3  文档类型定义(DTD) 110
4.7.4  使用DTD 111
4.7.5  属性列表 112
4.7.6  习题 113
4.8   小结 114
4.9   参考文献 114
第5章   关系代数 117
5.1   一个数据库模式的例子 117
5.2   关系代数操作 118
5.2.1   关系代数基础 119
5.2.2   关系中的集合操作 119
5.2.3   投影 120
5.2.4   选择 121
5.2.5   笛卡儿积 122
5.2.6   自然连接 122
5.2.7   q连接 123
5.2.8   使用组合操作生成查询 124
5.2.9   重命名 125
5.2.10   依赖的和非依赖的操作 126
5.2.11   关系代数表达式中的线性符号 127
5.2.12   习题 127
5.3   包上的关系操作 132
5.3.1   为什么采用包 132
5.3.2   包的并. 交. 差 133
5.3.3   包的投影操作 134
5.3.4   包的选择 135
5.3.5   包的笛卡儿积 135
5.3.6   包的连接 135
5.3.7   习题 136
5.4   关系代数的扩展操作 137
5.4.1   消除重复 137
5.4.2   聚集操作符 138
5.4.3   分组 138
5.4.4   分组操作符 139
5.4.5   扩展的投影操作符 140
5.4.6   排序操作符 141
5.4.7   外连接 141
5.4.8   习题 142
5.5   关系的约束 143
5.5.1   作为约束语言的关系代数 143
5.5.2   引用完整性约束 144
5.5.3   其他的约束举例 145
5.5.4   习题 146
5.6   小结 147
5.7   参考文献 147
第6章   数据库语言SQL 149
6.1   SQL中的简单查询 149
6.1.1   SQL中的投影 150
6.1.2   SQL中的选择 152
6.1.3   字符串比较 153
6.1.4   日期和时间 154
6.1.5   空值和涉及空值的比较 155
6.1.6   布尔值UNKNOWN 156
6.1.7   输出排序 157
6.1.8   习题 157
6.2   多个关系上的查询 158
6.2.1   SQL中的积和连接 159
6.2.2   避免属性歧义 159
6.2.3   元组变量 160
6.2.4   多关系查询的解释 161
6.2.5   查询的并. 交. 差 163
6.2.6   习题 164
6.3   子查询 165
6.3.1   产生标量值的子查询 165
6.3.2   含有关系的条件表达式 166
6.3.3   含有元组的条件表达式 167
6.3.4   关联子查询 168
6.3.5   FROM子句中的子查询 169
6.3.6   SQL 的连接表达式 169
6.3.7   自然连接 170
6.3.8   外连接 171
6.3.9   习题 172
6.4   全关系操作 174
6.4.1   消除重复 174
6.4.2   交. 并. 差中的重复 174
6.4.3   SQL 中的分组和聚集 175
6.4.4   聚集操作符 175
6.4.5   分组 176
6.4.6   HAVING子句 177
6.4.7   习题 178
6.5   数据库更新 179
6.5.1   插入 179
6.5.2   删除 181
6.5.3   更新 181
6.5.4   习题 182
6.6   SQL中的关系模式定义 183
6.6.1   数据类型 183
6.6.2   简单表定义 184
6.6.3   修改关系模式 184
6.6.4   默认值 185
6.6.5   索引 185
6.6.6   索引选择简介 186
6.6.7   习题 188
6.7   视图定义 189
6.7.1   视图声明 189
6.7.2   视图查询 190
6.7.3   重命名属性 191
6.7.4   视图更新 191
6.7.5   涉及视图的查询解释 193
6.7.6   习题 195
6.8   小结 195
6.9   参考文献 196
第7章   约束和触发器 199
7.1   键和外键 199
7.1.1   主键声明 199
7.1.2   用UNIQUE声明键 200
7.1.3   强制键约束 201
7.1.4   外键约束声明 201
7.1.5   维护引用完整性 202
7.1.6   延迟约束检查 203
7.1.7   习题 205
7.2   属性和元组上的约束 206
7.2.1   非空值约束 206
7.2.2   基于属性的CHECK约束 207
7.2.3   基于元组的CHECK约束 208
7.2.4   习题 209
7.3   修改约束 210
7.3.1   给约束命名 210
7.3.2   修改表上约束 210
7.3.3   习题 211
7.4   模式层的约束和触发器 211
7.4.1   断言 212
7.4.2   事件-条件-动作规则 214
7.4.3   SQL中的触发器 214
7.4.4   替换触发器(Instead of Triggers) 217
7.4.5   习题 217
7.5   小结 219
7.6   参考文献 219
第8章   SQL 的系统特征 221
8.1   编程环境下的SQL  221
8.1.1   阻抗不匹配问题 222
8.1.2   SQL/宿主语言接口 222
8.1.3   DECLARE节 223
8.1.4   使用共享变量 223
8.1.5   单元组选择语句 224
8.1.6   游标 224
8.1.7   游标修改 227
8.1.8   防止并发更新 227
8.1.9   卷型游标 228
8.1.10   动态SQL 229
8.1.11   习题 230
8.2   模式中的存储过程 231
8.2.1   创建PSM函数和过程 231
8.2.2   PSM中的简单语句格式 232
8.2.3   分支语句 233
8.2.4   PSM中的查询 234
8.2.5   PSM中的循环 234
8.2.6   For 循环 236
8.2.7   PSM的异常处理 236
8.2.8   使用PSM函数和过程 238
8.2.9   习题 238
8.3   SQL 环境 240
8.3.1   环境 240
8.3.2   模式 240
8.3.3   目录 241
8.3.4   SQL 环境中的客户和服务器 242
8.3.5   连接 242
8.3.6   会话 243
8.3.7   模块 243
8.4   使用调用层接口 243
8.4.1   SQL/CLI简介 244
8.4.2   处理语句 245
8.4.3   从查询结果中取数据 246
8.4.4   向查询传递参数 248
8.4.5   习题 248
8.5   Java数据库连接 248
8.5.1   JDBC 简介 248
8.5.2   JDBC 中的创建语句 249
8.5.3   JDBC 中的游标操作 250
8.5.4   参数传递 250
8.5.5   习题 251
8.6   SQL 中的事务 251
8.6.1   可串行性 251
8.6.2   原子性 253
8.6.3   事务 254
8.6.4   只读事务 255
8.6.5   读脏数据 256
8.6.6   其他隔离级别 257
8.6.7   习题 258
8.7   SQL 中的安全机制和用户认证 259
8.7.1   权限 259
8.7.2   创建权限 260
8.7.3   检查权限的处理 261
8.7.4   授权 262
8.7.5   授权图 263
8.7.6   销权 264
8.7.7   习题 266
8.8   小结 267
8.9   参考文献 268
第9章   面向对象查询语言 269
9.1   OQL简介 269
9.1.1   一个面向对象的电影例子 269
9.1.2   路径表达式 269
9.1.3   OQL 中 Select-From-Where 表
达式 271
9.1.4   修改结果的类型 271
9.1.5   复杂输出类型 272
9.1.6   子查询 273
9.1.7   习题 274
9.2   OQL 表达式的其他格式 276
9.2.1   量词表达式 276
9.2.2   聚集表达式 277
9.2.3   分组表达式 277
9.2.4   HAVING 子句 279
9.2.5   并. 交和差操作 279
9.2.6   习题 280
9.3   OQL 中对象的赋值与创建 281
9.3.1   宿主语言变量的赋值 281
9.3.2   集合元素的提取 281
9.3.3   获取集的每一个成员 281
9.3.4   OQL 中的常量 282
9.3.5   创建新对象 283
9.3.6   习题 284
9.4   SQL 中的用户定义类型 284
9.4.1   在SQL 中定义类型 284
9.4.2   用户定义类型中的方法 285
9.4.3   用UDT声明关系 286
9.4.4   引用 286
9.4.5   习题 288
9.5   对象关系数据上的操作 288
9.5.1   引用的跟随 288
9.5.2   访问UDT类型元组的属性 289
9.5.3   生成器和转换器函数 290
9.5.4   UDT类型联系的排序 291
9.5.5   习题 292
9.6   小结 293
9.7   参考文献 293
第10章   逻辑查询语言 295
10.1   一种关系逻辑 295
10.1.1   谓词和原子 295
10.1.2   算术原子 295
10.1.3   Datalog 规则和查询 296
10.1.4   Datalog 规则的意义 297
10.1.5   扩展谓词和内涵谓词 298
10.1.6   Datalog规则应用于包 299
10.1.7   习题 300
10.2   从关系代数到Datalog 300
10.2.1   交 300
10.2.2   并 300
10.2.3   差 301
10.2.4   投影 301
10.2.5   选择 301
10.2.6   积 303
10.2.7   连接 303
10.2.8   用 Datalog 模拟多重操作 304
10.2.9   习题 305
10.3   Datalog 的递归编程 306
10.3.1   递归规则 307
10.3.2   计算递归Datalog 规则 307
10.3.3   递归规则中的非 311
10.3.4   习题 313
10.4   SQL 中的递归 314
10.4.1   在SQL 中定义IDB关系 314
10.4.2   分层非 316
10.4.3   有问题的递归SQL表达式 317
10.4.4   习题 319
10.5   小结 320
10.6   参考文献 320                  

猜您喜欢

读书导航