您好,欢迎来到聚文网。 登录 免费注册
数据库系统概念 (本科教学版·原书第7版)

数据库系统概念 (本科教学版·原书第7版)

  • 出版社: 机械工业
  • 作者: [美]亚伯拉罕·西尔伯沙茨(Abraham Silberschatz),[美]亨利·F. 科思(Henry F. Korth),[印]S. 苏达尔尚(S. Sudarshan)|译者:杨冬青 李红燕 张金波 等
  • 商品条码: 9787111692225
  • 版次: 1
  • 开本: 16开
  • 页数: 484
  • 出版年份: 2021
  • 印次: 1
定价:¥89 销售价:登录后查看价格  ¥{{selectedSku?.salePrice}} 
库存: {{selectedSku?.stock}} 库存充足
{{item.title}}:
{{its.name}}
精选
内容简介
《数据库系统概念》是数据库系统方面的经典教材之一,其内容由浅入深,既包含数据库系统基本概念,又反映数据库技术新进展。本书基于该书第7版进行改编,保留其中的基本内容,压缩或删除了一些高级内容,更加适合作为国内高校计算机及相关专业本科生数据库课程教材。
作者简介
亚伯拉罕·西尔伯沙茨
(Abraham Silberschatz)
于纽约州立大学石溪分校获得博士学位,现为耶鲁大学计算机科学系Sidney J. Weinberg教授,曾任贝尔实验室信息科学研究中心副主任。他是ACM会士、IEEE 会士以及康涅狄格科学与工程学会的成员,获得了48项专利和24项授权。他还是教科书《操作系统概念》的作者。
亨利·F. 科思
(Henry F. Korth)
于普林斯顿大学获得博士学位,现为理海大学计算机科学与工程系教授和计算机科学与商业项目联合主任,曾任贝尔实验室数据库原理研究中心主任、松下科技副总裁、得克萨斯大学奥斯汀分校副教授以及IBM研究中心研究人员。他是ACM会士、IEEE会士以及VLDB会议10年贡献奖的获得者。他的研究涉及数据库系统的方方面面,最近,他的研究致力于解决区块链在企业数据库中的应用问题。
S. 苏达尔尚
(S. Sudarshan)
于威斯康星大学获得博士学位,现为印度理工学院孟买校区Subrao M. Nilekani讲席教授,曾为贝尔实验室技术人员。他是ACM会士,发表了100余篇论文并获得15项专利。他目前的研究领域包括SQL查询的测试和分级、通过重写命令式代码来优化数据库应用程序,以及并行数据库的查询优化。
目录
改编者序
译者简介
前言
作者简介
第1章 引言1
1.1 数据库系统应用1
1.2 数据库系统的目标3
1.3 数据视图6
1.3.1 数据模型6
1.3.2 关系数据模型6
1.3.3 数据抽象7
1.3.4 实例和模式8
1.4 数据库语言9
1.4.1 数据定义语言9
1.4.2 SQL数据定义语言10
1.4.3 数据操纵语言10
1.4.4 SQL数据操纵语言11
1.4.5 从应用程序访问数据库11
1.5 数据库设计12
1.6 数据库引擎12
1.6.1 存储管理器13
1.6.2 查询处理器14
1.6.3 事务管理14
1.7 数据库和应用体系结构15
1.8 数据库用户和管理员16
1.8.1 数据库用户和用户界面16
1.8.2 数据库管理员17
1.9 数据库系统的历史17
1.10 总结20
术语回顾21
实践习题22
习题22
工具22
延伸阅读23
参考文献23
第一部分 关系语言
第2章 关系模型介绍26
2.1 关系数据库的结构26
2.2 数据库模式28
2.3 码29
2.4 模式图32
2.5 关系查询语言32
2.6 总结33
术语回顾33
实践习题34
习题34
延伸阅读35
参考文献35
第3章 SQL介绍36
3.1 SQL查询语言概览36
3.2 SQL数据定义37
3.2.1 基本类型37
3.2.2 基本模式定义38
3.3 SQL查询的基本结构40
3.3.1 单关系查询40
3.3.2 多关系查询42
3.4 附加的基本运算46
3.4.1 更名运算46
3.4.2 字符串运算47
3.4.3 select子句中的属性说明48
3.4.4 排列元组的显示次序48
3.4.5 where子句谓词49
3.5 集合运算49
3.5.1 并运算50
3.5.2 交运算51
3.5.3 差运算51
3.6 空值52
3.7 聚集函数53
3.7.1 基本聚集53
3.7.2 分组聚集54
3.7.3 having子句56
3.7.4 对空值和布尔值的聚集57
3.8 嵌套子查询58
3.8.1 集合成员资格58
3.8.2 集合比较59
3.8.3 空关系测试60
3.8.4 重复元组存在性测试61
3.8.5 from子句中的子查询62
3.8.6 with子句63
3.8.7 标量子查询64
3.8.8 不带from子句的标量64
3.9 数据库的修改65
3.9.1 删除66
3.9.2 插入67
3.9.3 更新68
3.10 总结69
术语回顾70
实践习题70
习题72
工具74
延伸阅读75
参考文献75
第4章 中级SQL76
4.1 连接表达式76
4.1.1 自然连接76
4.1.2 连接条件79
4.1.3 外连接80
4.1.4 连接类型和条件83
4.2 视图83
4.2.1 视图定义84
4.2.2 在SQL查询中使用视图85
4.2.3 物化视图86
4.2.4 视图更新86
4.3 事务88
4.4 完整性约束89
4.4.1 单个关系上的约束90
4.4.2 非空约束90
4.4.3 唯一性约束91
4.4.4 check子句91
4.4.5 引用完整性91
4.4.6 给约束赋名93
4.4.7 事务中对完整性约束的违反94
4.4.8 复杂check条件与断言94
4.5 SQL的数据类型与模式96
4.5.1 SQL中的日期和时间类型96
4.5.2 类型转换和格式化函数96
4.5.3 缺省值97
4.5.4 大对象类型98
4.5.5 用户自定义类型99
4.5.6 生成唯一码值101
4.5.7 create table的扩展102
4.5.8 模式、目录与环境102
4.6 SQL中的索引定义103
4.7 授权104
4.7.1 权限的授予与收回105
4.7.2 角色106
4.7.3 视图的授权107
4.7.4 模式的授权108
4.7.5 权限的转移108
4.7.6 权限的收回109
4.7.7 行级授权110
4.8 总结110
术语回顾111
实践习题112
习题113
延伸阅读114
参考文献114
第5章 高级SQL116
5.1 使用程序设计语言访问SQL116
5.1.1 JDBC117
5.1.2 从Python访问数据库123
5.1.3 ODBC123
5.1.4 嵌入式SQL125
5.2 函数和过程127
5.2.1 声明及调用SQL函数和过程127
5.2.2 用于过程和函数的语言结构128
5.2.3 外部语言例程131
5.3 触发器132
5.3.1 对触发器的需求132
5.3.2 SQL中的触发器132
5.3.3 何时不用触发器135
5.4 递归查询137
5.4.1 使用迭代的传递闭包137
5.4.2 SQL中的递归139
5.5 高级聚集特性140
5.5.1 排名141
5.5.2 分窗144
5.5.3 旋转145
5.5.4 上卷和立方体146
5.6 总结149
术语回顾149
实践习题149
习题151
工具153
延伸阅读153
第6章 形式化关系查询语言154
6.1 关系代数154
6.1.1 选择运算154
6.1.2 投影运算155
6.1.3 关系运算的复合155
6.1.4 笛卡儿积运算156
6.1.5 连接运算157
6.1.6 集合运算158
6.1.7 赋值运算159
6.1.8 更名运算160
6.1.9 等价查询161
6.2 元组关系演算161
6.2.1 查询示例161
6.2.2 形式化定义164
6.2.3 表达式的安全性164
6.3 域关系演算165
6.3.1 形式化定义165
6.3.2 查询示例165
6.3.3 表达式的安全性166
6.4 纯关系查询语言的表达能力167
6.5 总结168
术语回顾168
实践习题168
习题170
延伸阅读171
参考文献171
第二部分 数据库设计与应用程序开发
第7章 使用E-R模型的数据库设计174
7.1 设计过程概览174
7.1.1 设计阶段174
7.1.2 设计选择175
7.2 实体-联系模型176
7.2.1 实体集176
7.2.2 联系集177
7.3 复杂属性179
7.4 映射基数181
7.5 主码184
7.5.1 实体集184
7.5.2 联系集185
7.5.3 弱实体集186
7.6 从实体集中删除冗余属性187
7.7 将E-R图转换为关系模式190
7.7.1 强实体集的表示190
7.7.2 具有复杂属性的强实体集的表示190
7.7.3 弱实体集的表示192
7.7.4 联系集的表示192
7.7.5 模式的冗余193
7.7.6 模式的合并194
7.8 扩展的E-R特性194
7.8.1 特化195
7.8.2 概化196
7.8.3 属性继承196
7.8.4 特化上的约束197
7.8.5 聚集197
7.8.6 转换为关系模式198
7.9 实体-联系设计问题200
7.9.1 E-R图中的常见错误200
7.9.2 使用实体集还是属性201
7.9.3 使用实体集还是联系集202
7.9.4 二元还是n元联系集203
7.10 数据建模的可选表示法204
7.10.1 可选的E-R表示法205
7.10.2 统一建模语言206
7.11 数据库设计的其他方面208
7.11.1 功能要求208
7.11.2 数据流、工作流208
7.11.3 模式演化208
7.12 总结209
术语回顾210
实践习题210
习题212
工具213
延伸阅读214
参考文献214
第8章 关系数据库设计215
8.1 好的关系设计的特点215
8.1.1 分解216
8.1.2 无损分解217
8.1.3 规范化理论218
8.2 使用函数依赖进行分解218
8.2.1 符号惯例219
8.2.2 码和函数依赖219
8.2.3 无损分解和函数依赖221
8.3 范式222
8.3.1 Boyce-Codd范式222
8.3.2 第三范式224
8.3.3 BCNF和3NF的比较225
8.3.4 更高级的范式226
8.4 函数依赖理论226
8.4.1 函数依赖集的闭包226
8.4.2 属性集的闭包228
8.4.3 正则覆盖229
8.4.4 保持依赖232
8.5 使用函数依赖的分解算法233
8.5.1 BCNF分解233
8.5.2 3NF分解235
8.5.3 3NF算法的正确性236
8.6 使用多值依赖的分解237
8.6.1 多值依赖237
8.6.2 第四范式239
8.6.3 4NF分解239
8.7 更多的范式240
8.8 原子域和第一范式241
8.9 数据库设计过程242
8.9.1 E-R模型和规范化242
8.9.2 属性和联系的命名243
8.9.3 为了性能去规范化244
8.9.4 其他设计问题244
8.10 时态数据建模245
8.11 总结247
术语回顾248
实践习题249
习题251
延伸阅读253
参考文献254
第9章 应用程序开发255
9.1 应用程序和用户界面255
9.2 Web基础256
9.2.1 统一资源定位符256
9.2.2 超文本标记语言257
9.2.3 Web服务器和会话259
9.3 servlet261
9.3.1 servlet示例261
9.3.2 servlet会话263
9.3.3 servlet的生命周期264
9.3.4 应用服务器264
9.4 可选择的服务器端框架264
9.4.1 服务器端脚本264
9.4.2 Web应用框架266
9.4.3 Django框架267
9.5 客户端代码和Web服务268
9.5.1 JavaScript268
9.5.2 Web服务272
9.5.3 断连操作272
9.5.4 移动应用平台273
9.6 应用程序体系结构274
9.6.1 业务逻辑层275
9.6.2 数据访问层和对象-关系映射275
9.7 应用程序性能278
9.7.1 通过高速缓存减少开销279
9.7.2 并行处理280
9.8 应用程序安全性280
9.8.1 SQL注入280
9.8.2 跨站点脚本和请求伪造281
9.8.3 密码泄露282
9.8.4 应用级认证283
9.8.5 应用级授权284
9.8.6 审计追踪286
9.8.7 隐私286
9.9 加密及其应用287
9.9.1 加密技术287
9.9.2 数据库中的加密支持289
9.9.3 加密和认证290
9.10 总结291
术语回顾292
实践习题293
习题293
项目建议294
工具296
延伸阅读297
参考文献297
第三部分 数据管理实现技术
第10章 存储管理300
10.1 物理存储介质概述300
10.2 存储器接口302
10.3 磁盘303
10.3.1 磁盘的物理特性303
10.3.2 磁盘的性能度量305
10.4 闪存306
10.5 文件组织308
10.5.1 定长记录308
10.5.2 变长记录310
10.5.3 大对象存储312
10.6 文件中记录的组织312
10.6.1 堆文件组织313
10.6.2 顺序文件组织314
10.6.3 多表聚簇文件组织315
10.6.4 划分317
10.7 数据字典存储317
10.8 数据库缓冲区319
10.8.1 缓冲区管理器319
10.8.2 缓冲区替换策略321
10.8.3 写操作的重排序与恢复323
10.9 总结324
术语回顾324
实践习题325
习题326
延伸阅读327
参考文献327
第11章 索引328
11.1 基本概念328
11.2 顺序索引329
11.2.1 稠密索引和稀疏索引329
11.2.2 多级索引332
11.2.3 索引更新333
11.2.4 辅助索引334
11.2.5 多码索引335
11.3 B+树索引文件335
11.3.1 B+树的结构336
11.3.2 B+树的查询338
11.3.3 B+树的更新341
11.3.4 B+树更新的复杂度346
11.3.5 非唯一性搜索码347
11.4 散列索引348
11.5 多码访问350
11.5.1 使用多个单码索引350
11.5.2 多码索引350
11.5.3 覆盖索引351
11.6 索引的创建351
11.7 位图索引353
11.8 总结354
术语回顾355
实践习题355
习题356
延伸阅读357
参考文献357
第12章 查询处理和查询优化358
12.1 概述358
12.2 查询代价的度量360
12.3 关系代数运算的执行362
12.3.1 选择运算362
12.3.2 排序366
12.3.3 连接运算368
12.3.4 其他运算378
12.4 表达式执行381
12.4.1 物化381
12.4.2 流水线382
12.5 查询优化384
12.5.1 概述384
12.5.2 关系表达式的转换386
12.5.3 表达式结果的统计信息估计393
12.5.4 执行计划的选择400
12.6 总结408
术语回顾410
实践习题411
习题414
延伸阅读415
参考文献415
第13章 事务管理416
13.1 事务的概念416
13.2 一个简单的事务模型417
13.3 存储器结构419
13.4 事务的原子性和持久性420
13.5 事务的隔离性421
13.6 可串行化425
13.7 事务的隔离性和原子性428
13.7.1 可恢复调度428
13.7.2 无级联调度428
13.8 事务的隔离性级别429
13.9 隔离性级别的实现431
13.9.1 锁431
13.9.2 时间戳432
13.9.3 多版本和快照隔离432
13.10 事务的SQL语句表示433
13.11 总结434
术语回顾435
实践习题436
习题436
延伸阅读437
参考文献437
第14章 并发控制与恢复438
14.1 基于锁的协议438
14.1.1 锁438
14.1.2 锁的授予441
14.1.3 两阶段封锁协议441
14.1.4 封锁的实现443
14.1.5 基于图的协议444
14.2 死锁处理446
14.2.1 死锁预防446
14.2.2 死锁检测与恢复447
14.3 多粒度449
14.4 插入操作、删除操作与谓词读451
14.4.1 删除451
14.4.2 插入452
14.4.3 谓词读和幻象现象452
14.5 基于时间戳的协议454
14.5.1 时间戳454
14.5.2 时间戳排序协议455
14.5.3 Thomas写规则456
14.6 基于有效性检查的协议458
14.7 多版本机制459
14.7.1 多版本时间戳排序460
14.7.2 多版本两阶段封锁461
14.8 故障分类462
14.9 存储器463
14.9.1 稳定存储器的实现463
14.9.2 数据访问464
14.10 恢复与原子465
14.10.1 日志记录466
14.10.2 数据库修改467
14.10.3 并发控制与恢复467
14.10.4 事务提交468
14.10.5 使用日志来重做和撤销事务 468
14.10.6 检查点471
14.11 恢复算法472
14.11.1 事务回滚472
14.11.2 系统崩溃后的恢复472
14.11.3 提交处理的优化474
14.12 缓冲区管理474
14.12.1 日志记录缓冲474
14.12.2 数据库缓冲475
14.12.3 操作系统在缓冲区管理中的作用476
14.12.4 模糊检查点477
14.13 总结477
术语回顾480
实践习题481
习题483
延伸阅读484
参考文献484
第四部分 高级话题一
第15章 大数据分析
第16章 区块链数据库
第17章 高级应用开发
附录A 详细的大学模式

蜀ICP备2024047804号

Copyright 版权所有 © jvwen.com 聚文网