《数据库系统基础教程 (原书第3版)》(美)JeffreyD.Ullman/岳 | PDF下载|ePub下载
数据库系统基础教程 (原书第3版) 版权信息
- 出版社:机械工业出版社
- 出版时间:2022-05-01
- ISBN:9787111268284
- 条形码:9787111268284 ; 978-7-111-26828-4
数据库系统基础教程 (原书第3版) 内容简介
本书由斯坦福大学知名计算机科学家Jeffrey Ullman和Jennifer Widom合作编写。本书分两大部分,首先是流行的关系数据库和关系对象数据库内容,介绍了关系数据模型、E/R模型、UML模型以及对象模型等不错数据模型。然后介绍了有关半结构化数据组织管理中比较流行的XML等内容,既包括了数据组织模型的内容,也给出了相关编程语言,如XPATH、XQuery、XSLT等。
数据库系统基础教程 (原书第3版) 目录
出版者的话
译者序
前言
第1章 数据库系统世界 1
1.1 数据库系统的发展 1
1.1.1 早期的数据库管理系统 1
1.1.2 关系数据库系统 2
1.1.3 越来越小的系统 2
1.1.4 越来越大的系统 2
1.1.5 信息集成 3
1.2 数据库管理系统概述 3
1.2.1 数据定义语言命令 3
1.2.2 查询处理概述 4
1.2.3 存储器和缓冲区管理器 5
1.2.4 事务处理 5
1.2.5 查询处理器 6
1.3 本书概述 6
1.4 参考文献 7
**部分 关系数据库模型
第2章 关系数据模型 9
2.1 数据模型概述 9
2.1.1 什么是数据模型 9
2.1.2 一些重要的数据模型 9
2.1.3 关系模型简介 10
2.1.4 半结构化模型简介 10
2.1.5 其他数据模型 11
2.1.6 几种建模方法的比较 11
2.2 关系模型基础 12
2.2.1 属性 12
2.2.2 模式 12
2.2.3 元组 12
2.2.4 域 12
2.2.5 关系的等价描述 13
2.2.6 关系实例 13
2.2.7 关系上的键 13
2.2.8 数据库模式示例 14
2.2.9 习题 15
2.3 在SQL中定义关系模式 16
2.3.1 SQL中的关系 16
2.3.2 数据类型 16
2.3.3 简单的表定义 17
2.3.4 修改关系模式 18
2.3.5 默认值 18
2.3.6 键的声明 19
2.3.7 习题 20
2.4 代数查询语言 21
2.4.1 为什么需要一种专门的查询语言 21
2.4.2 什么是代数 21
2.4.3 关系代数概述 21
2.4.4 关系上的集合操作 21
2.4.5 投影 23
2.4.6 选择 23
2.4.7 笛卡儿积 24
2.4.8 自然连接 24
2.4.9 q连接 25
2.4.10 组合操作构成查询 26
2.4.11 命名和重命名 27
2.4.12 操作之间的联系 27
2.4.13 代数表达式的线性符号 28
2.4.14 习题 29
2.5 关系上的约束 32
2.5.1 作为约束语言的关系代数 32
2.5.2 引用完整性约束 33
2.5.3 键约束 33
2.5.4 其他约束举例 34
2.5.5 习题 35
2.6 小结 35
2.7 参考文献 36
第3章 关系数据库设计理论 37
3.1 函数依赖 37
3.1.1 函数依赖的定义 37
3.1.2 关系的键 38
3.1.3 超键 39
3.1.4 习题 40
3.2 函数依赖的规则 40
3.2.1 函数依赖的推导 40
3.2.2 分解/结合规则 40
3.2.3 平凡函数依赖 41
3.2.4 计算属性的闭包 42
3.2.5 闭包算法为何有效 43
3.2.6 传递规则 44
3.2.7 函数依赖的闭包集合 45
3.2.8 投影函数依赖 45
3.2.9 习题 47
3.3 关系数据库模式设计 48
3.3.1 异常 48
3.3.2 分解关系 49
3.3.3 Boyce-Codd范式 50
3.3.4 分解为BCNF 50
3.3.5 习题 52
3.4 分解的优劣 53
3.4.1 从分解中恢复信息 53
3.4.2 无损连接的chase检验 55
3.4.3 为什么chase检验有效 56
3.4.4 依赖的保持 57
3.4.5 习题 58
3.5 第三范式 58
3.5.1 第三范式的定义 59
3.5.2 3NF模式综合算法 59
3.5.3 为什么3NF综合算法有效 60
3.5.4 习题 60
3.6 多值依赖 61
3.6.1 属性独立及随之产生的冗余 61
3.6.2 多值依赖的定义 61
3.6.3 多值依赖的推导 62
3.6.4 第四范式 64
3.6.5 分解为第四范式 64
3.6.6 范式间的联系 65
3.6.7 习题 65
3.7 MVD的发现算法 66
3.7.1 闭包和chase 66
3.7.2 将chase扩展到MVD 67
3.7.3 chase为何对MVD有效 69
3.7.4 投影MVD 69
3.7.5 习题 70
3.8 小结 70
3.9 参考文献 71
第4章 高级数据库模型 73
4.1 E/R模型 73
4.1.1 实体集 73
4.1.2 属性 74
4.1.3 联系 74
4.1.4 实体-联系图 74
4.1.5 E/R图实例 75
4.1.6 二元E/R联系的多样性 75
4.1.7 多路联系 76
4.1.8 联系中的角色 77
4.1.9 联系的属性 78
4.1.10 多路联系到二元联系的转换 79
4.1.11 E/R模型中的子类 80
4.1.12 习题 81
4.2 设计原则 82
4.2.1 忠实性 82
4.2.2 避免冗余 83
4.2.3 简单性 83
4.2.4 选择正确的联系 83
4.2.5 选择正确的元素种类 84
4.2.6 习题 86
4.3 E/R模型中的约束 87
4.3.1 E/R模型中的键 87
4.3.2 E/R模型中键的表示 87
4.3.3 引用完整性 88
4.3.4 度约束 89
4.3.5 习题 89
4.4 弱实体集 89
4.4.1 弱实体集的来源 89
4.4.2 弱实体集的要求 90
4.4.3 弱实体集的符号 91
4.4.4 习题 91
4.5 从E/R图到关系设计 92
4.5.1 实体集到关系的转化 92
4.5.2 E/R联系到关系的转化 92
4.5.3 关系组合 94
4.5.4 处理弱实体集 95
译者序
前言
第1章 数据库系统世界 1
1.1 数据库系统的发展 1
1.1.1 早期的数据库管理系统 1
1.1.2 关系数据库系统 2
1.1.3 越来越小的系统 2
1.1.4 越来越大的系统 2
1.1.5 信息集成 3
1.2 数据库管理系统概述 3
1.2.1 数据定义语言命令 3
1.2.2 查询处理概述 4
1.2.3 存储器和缓冲区管理器 5
1.2.4 事务处理 5
1.2.5 查询处理器 6
1.3 本书概述 6
1.4 参考文献 7
**部分 关系数据库模型
第2章 关系数据模型 9
2.1 数据模型概述 9
2.1.1 什么是数据模型 9
2.1.2 一些重要的数据模型 9
2.1.3 关系模型简介 10
2.1.4 半结构化模型简介 10
2.1.5 其他数据模型 11
2.1.6 几种建模方法的比较 11
2.2 关系模型基础 12
2.2.1 属性 12
2.2.2 模式 12
2.2.3 元组 12
2.2.4 域 12
2.2.5 关系的等价描述 13
2.2.6 关系实例 13
2.2.7 关系上的键 13
2.2.8 数据库模式示例 14
2.2.9 习题 15
2.3 在SQL中定义关系模式 16
2.3.1 SQL中的关系 16
2.3.2 数据类型 16
2.3.3 简单的表定义 17
2.3.4 修改关系模式 18
2.3.5 默认值 18
2.3.6 键的声明 19
2.3.7 习题 20
2.4 代数查询语言 21
2.4.1 为什么需要一种专门的查询语言 21
2.4.2 什么是代数 21
2.4.3 关系代数概述 21
2.4.4 关系上的集合操作 21
2.4.5 投影 23
2.4.6 选择 23
2.4.7 笛卡儿积 24
2.4.8 自然连接 24
2.4.9 q连接 25
2.4.10 组合操作构成查询 26
2.4.11 命名和重命名 27
2.4.12 操作之间的联系 27
2.4.13 代数表达式的线性符号 28
2.4.14 习题 29
2.5 关系上的约束 32
2.5.1 作为约束语言的关系代数 32
2.5.2 引用完整性约束 33
2.5.3 键约束 33
2.5.4 其他约束举例 34
2.5.5 习题 35
2.6 小结 35
2.7 参考文献 36
第3章 关系数据库设计理论 37
3.1 函数依赖 37
3.1.1 函数依赖的定义 37
3.1.2 关系的键 38
3.1.3 超键 39
3.1.4 习题 40
3.2 函数依赖的规则 40
3.2.1 函数依赖的推导 40
3.2.2 分解/结合规则 40
3.2.3 平凡函数依赖 41
3.2.4 计算属性的闭包 42
3.2.5 闭包算法为何有效 43
3.2.6 传递规则 44
3.2.7 函数依赖的闭包集合 45
3.2.8 投影函数依赖 45
3.2.9 习题 47
3.3 关系数据库模式设计 48
3.3.1 异常 48
3.3.2 分解关系 49
3.3.3 Boyce-Codd范式 50
3.3.4 分解为BCNF 50
3.3.5 习题 52
3.4 分解的优劣 53
3.4.1 从分解中恢复信息 53
3.4.2 无损连接的chase检验 55
3.4.3 为什么chase检验有效 56
3.4.4 依赖的保持 57
3.4.5 习题 58
3.5 第三范式 58
3.5.1 第三范式的定义 59
3.5.2 3NF模式综合算法 59
3.5.3 为什么3NF综合算法有效 60
3.5.4 习题 60
3.6 多值依赖 61
3.6.1 属性独立及随之产生的冗余 61
3.6.2 多值依赖的定义 61
3.6.3 多值依赖的推导 62
3.6.4 第四范式 64
3.6.5 分解为第四范式 64
3.6.6 范式间的联系 65
3.6.7 习题 65
3.7 MVD的发现算法 66
3.7.1 闭包和chase 66
3.7.2 将chase扩展到MVD 67
3.7.3 chase为何对MVD有效 69
3.7.4 投影MVD 69
3.7.5 习题 70
3.8 小结 70
3.9 参考文献 71
第4章 高级数据库模型 73
4.1 E/R模型 73
4.1.1 实体集 73
4.1.2 属性 74
4.1.3 联系 74
4.1.4 实体-联系图 74
4.1.5 E/R图实例 75
4.1.6 二元E/R联系的多样性 75
4.1.7 多路联系 76
4.1.8 联系中的角色 77
4.1.9 联系的属性 78
4.1.10 多路联系到二元联系的转换 79
4.1.11 E/R模型中的子类 80
4.1.12 习题 81
4.2 设计原则 82
4.2.1 忠实性 82
4.2.2 避免冗余 83
4.2.3 简单性 83
4.2.4 选择正确的联系 83
4.2.5 选择正确的元素种类 84
4.2.6 习题 86
4.3 E/R模型中的约束 87
4.3.1 E/R模型中的键 87
4.3.2 E/R模型中键的表示 87
4.3.3 引用完整性 88
4.3.4 度约束 89
4.3.5 习题 89
4.4 弱实体集 89
4.4.1 弱实体集的来源 89
4.4.2 弱实体集的要求 90
4.4.3 弱实体集的符号 91
4.4.4 习题 91
4.5 从E/R图到关系设计 92
4.5.1 实体集到关系的转化 92
4.5.2 E/R联系到关系的转化 92
4.5.3 关系组合 94
4.5.4 处理弱实体集 95
数据库系统基础教程 (原书第3版) 作者简介
Jeffrey D. Ullman 斯坦福大学计算机科学系Stanford W. Ascherman教授,数据库技术专家。他独立或与人合作出版了15本著作,发表了170多篇技术论文。他的研究兴趣包括数据库理论、数据库集成、数据挖掘和利用信息基础设施进行教育。他是美国国家工程院成员,曾获得Knuth奖、SIGMOD贡献奖和Karl V. Karlstrom杰出教育家奖和Edgar f. Codd发明奖。 Jennifer Widom 美国康奈尔大学计算机科学博士,现为斯坦福大学计算机科学与电子工程系教授,研究非传统的数据管理。她是ACM会士、Guggenheim会士和美国国家工程院成员,并且是多个编辑委员会、程序委员会和顾问委员会的成员。她在2007年获得了ACM SIGMOD Edgar F. Codd发明奖。