作者 |
[美] 亚伯拉罕·西尔伯沙茨 (Abraham Silberschatz) [美] 亨利·F. 科思 (Henry F. Korth) [印] S. 苏达尔尚(S. Sudarshan) 等 |
丛书名 |
计算机科学丛书 |
出版社 |
机械工业出版社 |
ISBN |
9782110261643 |
简要 |
简介 |
内容简介书籍计算机书籍 ---------------------------8084497 - 数据库系统概念(本科教学版·原书第7版)--------------------------- 《数据库系统概念》是数据库系统方面的经典教材之一,其内容由浅入深,既包含数据库系统基本概念,又反映数据库技术新进展。本书基于该书第7版进行改编,保留其中的基本内容,压缩或删除了一些高级内容,更加适合作为国内高校计算机及相关专业本科生数据库课程教材。 ---------------------------8075051 - 数据库管理:大数据与小数据的存储、管理及分析实战--------------------------- 本书全面讲解数据库设计、建模、系统构建、数据存储以及数据仓库、数据治理等方面的基础知识,并提出了一种数据库管理的新方法。本书的三位作者均为该领域专家,在大数据、数据分析、数据质量和数据集成方面经验丰富。全书理论结合实践,既有对现有数据库技术的讲解,又有对最新技术趋势的分析。为了帮助读者更好地理解基本概念,书中包含大量真实案例,涉及查询实例、代码以及图形等,并搭建了在线学习环境,这使本书成为信息系统或计算机科学专业本科生和研究生入门课程的完美教材。 |
目录 |
[套装书具体书目] 8075051 - 数据库管理:大数据与小数据的存储、管理及分析实战 - 9787111665199 - 机械工业出版社 - 定价 149 8084497 - 数据库系统概念(本科教学版·原书第7版) - 9787111692225 - 机械工业出版社 - 定价 89 ---------------------------8084497 - 数据库系统概念(本科教学版·原书第7版)--------------------------- 改编者序 译者简介 前言 作者简介 第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 详细的大学模式 ---------------------------8075051 - 数据库管理:大数据与小数据的存储、管理及分析实战--------------------------- 出版者的话 赞誉 译者序 前言 作者简介 第一部分 数据库与数据库设计 第1章 数据库管理的基本概念 2 1.1 数据库技术的应用 2 1.2 关键定义 3 1.3 基于文件与数据库的数据管理方法 3 1.3.1 基于文件的方法 3 1.3.2 基于数据库的方法 4 1.4 数据库系统的元素 6 1.4.1 数据库模型与实例 6 1.4.2 数据模型 7 1.4.3 三层架构 7 1.4.4 8 1.4.5 数据库用户 9 1.4.6 数据库语言 9 1.5 数据库系统和数据库管理的优点 9 1.5.1 数据独立性 9 1.5.2 数据库建模 10 1.5.3 管理结构化、半结构化、非结构化数据 10 1.5.4 管理数据冗余 10 1.5.5 指定完整性约束 11 1.5.6 并发控制 11 1.5.7 备份和恢复设备 12 1.5.8 数据安全性 12 1.5.9 性能分析工具 12 总结 12 关键术语表 13 思考题 13 问题和练习 14 第2章 数据库管理系统的架构与分类 15 2.1 DBMS的架构 15 2.1.1 连接管理器和安全管理器 16 2.1.2 DDL编译器 16 2.1.3 查询处理器 16 2.1.4 存储管理器 19 2.1.5 DBMS工具 20 2.1.6 DBMS接口 20 2.2 DBMS分类 21 2.2.1 基于数据模型的分类 21 2.2.2 基于同步访问的分类 23 2.2.3 基于架构的分类 23 2.2.4 基于使用方法的分类 24 总结 25 关键术语表 26 思考题 26 问题和练习 28 第3章 使用(E)ER模型和UML类图进行概念数据建模 29 3.1 数据库设计阶段 29 3.2 实体关系模型 30 3.2.1 实体类型 31 3.2.2 属性类型 31 3.2.3 关系类型 32 3.2.4 弱实体类型 36 3.2.5 三元关系类型 36 3.2.6 ER模型示例 38 3.2.7 ER模型的局限性 40 3.3 扩展的实体关系模型 40 3.3.1 特化/泛化 41 3.3.2 分类 42 3.3.3 聚集 43 3.3.4 EER模型的示例 43 3.3.5 设计EER模型 44 3.4 UML类图 45 3.4.1 面向对象概述 45 3.4.2 类 45 3.4.3 变量 46 3.4.4 访问修饰符 46 3.4.5 关联 47 3.4.6 特化/泛化 49 3.4.7 聚集 49 3.4.8 UML示例 49 3.4.9 高级UML建模概念 50 3.4.10 UML与EER的对比 52 总结 53 关键术语表 56 思考题 56 问题和练习 59 第4章 数据管理的组织方面 62 4.1 数据管理 62 4.1.1 和元数据的作用 62 4.1.2 元数据建模 63 4.1.3 数据质量 63 4.1.4 数据治理 67 4.2 数据管理中的角色 68 4.2.1 信息架构师 68 4.2.2 数据库设计师 68 4.2.3 数据所有者 68 4.2.4 数据管理员 68 4.2.5 数据库管理员 69 4.2.6 数据科学家 69 总结 69 关键术语表 70 思考题 70 问题和练习 70 第二部分 数据库系统类型 第5章 传统数据库 72 5.1 分层模型 72 5.2 CODASYL模型 75 总结 79 关键术语表 79 思考题 80 问题和练习 80 第6章 关系数据库:关系模型 81 6.1 关系模型 81 6.1.1 基本概念 82 6.1.2 正式定义 83 6.1.3 键的类型 84 6.1.4 关系约束 86 6.1.5 关系数据模型的示例 87 6.2 规范化 88 6.2.1 非规范化关系模型中的插入、删除和更新异常 88 6.2.2 非正式的规范化准则 89 6.2.3 函数依赖和主属性类型 90 6.2.4 规范化形式 90 6.3 将概念ER模型映射到关系模型 96 6.3.1 实体类型映射 96 6.3.2 关系类型映射 97 6.3.3 多值属性类型映射 103 6.3.4 弱实体类型映射 103 6.3.5 小结 104 6.4 将概念EER模型映射到关系模型 105 6.4.1 EER特化映射 106 6.4.2 EER类别映射 107 6.4.3 EER聚集映射 108 总结 109 关键术语表 110 思考题 110 问题和练习 114 第7章 关系数据库:结构化查询语言 116 7.1 关系数据库管理系统和SQL 116 7.1.1 SQL的关键特征 116 7.1.2 三层数据库架构 118 7.2 SQL数据定义语言 119 7.2.1 DDL的关键概念 119 7.2.2 DDL的示例 120 7.2.3 参照完整性约束 123 7.2.4 DROP和ALTER命令 123 7.3 SQL数据操作语言 125 7.3.1 SQL SELECT语句 125 7.3.2 SQL INSERT语句 149 7.3.3 SQL DELETE语句 149 7.3.4 SQL UPDATE语句 150 7.4 SQL视图 152 7.5 SQL索引 154 7.6 SQL权限 155 7.7 用于元数据管理的SQL 156 总结 157 关键术语表 159 思考题 160 问题和练习 167 第8章 面向对象的数据库以及对象持久性 169 8.1 概述:OO的基本概念 169 8.2 OO的高级概念 171 8.2.1 方法重载 171 8.2.2 继承 171 8.2.3 方法重写 173 8.2.4 多态和动态绑定 173 8.3 对象持久性的基本原则 175 8.4 面向对象数据库管理系统 176 8.4.1 对象标识符 177 8.4.2 ODMG标准 177 8.4.3 对象模型 178 8.4.4 对象定义语言 178 8.4.5 对象查询语言 181 8.4.6 语言绑定 183 8.5 评估OODBMS 185 总结 186 关键术语表 186 思考题 187 问题和练习 188 第9章 扩展关系数据库 189 9.1 关系模型的局限性 189 9.2 RDBMS主动拓展 190 9.2.1 触发器 190 9.2.2 存储过程 192 9.3 对象-关系型RDBMS扩展 193 9.3.1 用户定义类型 194 9.3.2 用户定义函数 197 9.3.3 继承 198 9.3.4 行为 200 9.3.5 多态性 201 9.3.6 集合类型 201 9.3.7 大对象 203 9.4 递归的SQL查询 203 总结 205 关键术语表 206 思考题 207 问题和练习 208 第10章 XML数据库 209 10.1 可扩展标记语言 209 10.1.1 基本概念 210 10.1.2 文档类型定义和XMLSchema定义 213 10.1.3 可扩展样式表语言 216 10.1.4 命名空间 219 10.1.5 XPath 219 10.2 处理XML文档 220 10.3 存储XML文档 221 10.3.1 面向文档的XML文档存储方法 222 10.3.2 面向数据的XML文档存储方法 222 10.3.3 存储XML文档的组合方法 222 10.4 XML数据和关系数据之间的差异 223 10.5 XML文档和(对象-)关系数据之间的映射 223 10.5.1 基于表的映射 223 10.5.2 模式无关的映射 224 10.5.3 模式感知的映射 226 10.5.4 SQL/XML 227 10.6 搜索XML数据 230 10.6.1 全文搜索 231 10.6.2 基于关键字的搜索 231 10.6.3 XQuery的结构化搜索 231 10.6.4 使用RDF和SPARQL进行语义搜索 232 10.7 用于信息交换的XML 234 10.7.1 面向消息的中间件 235 10.7.2 基于SOAP的Web服务 235 10.7.3 基于REST的Web服务 238 10.7.4 Web服务和数据库 239 10.8 其他数据表示格式 239 总结 243 关键术语表 245 思考题 246 问题和练习 247 第11章 NoSQL数据库 249 11.1 NoSQL运动 249 11.1.1 “一体适用”时代的终结? 249 11.1.2 NoSQL运动的出现 250 11.2 键-值存储 252 11.2.1 从键到哈希 252 11.2.2 水平扩展 253 11.2.3 实例:Memcached 254 11.2.4 请求协调器 256 11.2.5 一致性哈希 256 11.2.6 复制和冗余 258 11.2.7 最终一致性 259 11.2.8 稳定化 260 11.2.9 完整性约束和查询 261 11.3 元组和文档存储 261 11.3.1 带键的项 262 11.3.2 过滤和查询 263 11.3.3 使用MapReduce进行复杂查询和聚合 266 11.3.4 SQL毕竟…… 275 11.4 面向列的数据库 276 11.5 基于图的数据库 277 11.5.1 Cypher概述 279 11.5.2 探索社交图谱 280 11.6 其他NoSQL类别 285 总结 286 关键术语表 287 思考题 288 问题和练习 289 第三部分 物理数据存储、 事务管理和数据库访问 第12章 物理文件组织和索引 292 12.1 存储硬件和物理数据库设计 292 12.1.1 存储层次结构 292 12.1.2 硬盘驱动器的内部结构 293 12.1.3 从逻辑概念到物理结构 296 12.2 记录组织 298 12.3 文件组织 300 12.3.1 基本概念:搜索键、主文件和辅助文件组织 300 12.3.2 堆文件组织 301 12.3.3 顺序文件组织 301 12.3.4 随机文件组织(哈希) 302 12.3.5 索引顺序文件组织 306 12.3.6 列表数据组织(线性与非线性表) 310 12.3.7 辅助索引和倒排文件 313 12.3.8 B-树和B+-树 318 总结 322 关键术语表 323 思考题 324 问题和练习 325 第13章 物理数据库组织 326 13.1 物理数据库组织和数据库访问方法 326 13.1.1 从数据库到表空间 327 13.1.2 索引设计 328 13.1.3 数据库访问方法 330 13.1.4 连接操作 337 13.2 企业存储子系统和业务连续性 338 13.2.1 磁盘阵列和RAID 339 13.2.2 企业存储子系统 341 13.2.3 业务连续性 347 总结 350 关键术语表 351 思考题 351 问题和练习 353 第14章 事务管理基础 354 14.1 事务、恢复和并发控制 354 14.2 事务和事务管理 355 14.2.1 描述事务和事务生命周期 355 14.2.2 涉及事务管理的DBMS组件 356 14.2.3 日志文件 357 14.3 恢复 358 14.3.1 故障类型 358 14.3.2 系统恢复 359 14.3.3 介质恢复 360 14.4 并发控制 361 14.4.1 典型的并发性问题 361 14.4.2 调度和串行调度 363 14.4.3 可串行化调度 363 14.4.4 乐观和悲观调度器 365 14.4.5 锁和锁协议 365 14.5 事务的ACID属性 371 总结 372 关键术语表 372 思考题 373 问题和练习 375 第15章 数据库访问和数据库API 376 15.1 数据库系统的架构 376 15.1.1 集中式系统架构 376 15.1.2 分层架构 377 15.2 数据库API的分类 379 15.2.1 专有与通用API 380 15.2.2 嵌入式与调用级API 380 15.2.3 早期绑定与晚期绑定 381 15.3 通用数据库API 382 15.3.1 ODBC 382 15.3.2 OLE DB和ADO 383 15.3.3 ADO.NET 384 15.3.4 Java数据库连接 387 15.3.5 插曲:SQL注入与访问安全 392 15.3.6 SQLJ 393 15.3.7 插曲:嵌入式API与嵌入式DBMS 395 15.3.8 语言集成查询 396 15.4 对象持久性和对象关系映射API 398 15.4.1 使用Enterprise JavaBeans的对象持久性 398 15.4.2 使用Java持久性 API实现对象持久性 402 15.4.3 使用Java数据对象的对象持久性 407 15.4.4 其他宿主语言中的对象持久性 410 15.5 数据库API总结 414 15.6 万维网中的数据库访问 416 15.6.1 最初的Web服务器 416 15.6.2 通用网关接口:面向动态网页 416 15.6.3 客户端脚本:对更丰富Web的渴望 418 15.6.4 作为平台的JavaScript 419 15.6.5 DBMS自适应:REST、其他Web服务和展望 421 总结 423 关键术语表 424 思考题 424 问题和练习 426 第16章 数据分布和分布式事务管理 427 16.1 分布式系统和分布式数据库 427 16.2 分布式数据库的架构规则 428 16.3 分割、分配和复制 430 16.3.1 垂直分割 430 16.3.2 水平分割(分片) 431 16.3.3 混合分割 431 16.3.4 复制 433 16.3.5 元数据的分布和复制 433 16.4 透明性 434 16.5 分布式查询处理 435 16.6 分布式事务管理和并发控制 437 16.6.1 主站点和主副本2PL 437 16.6.2 分布式2PL 438 16.6.3 两阶段提交协议 439 16.6.4 乐观并发和松耦合系统 441 16.6.5 基于补偿的事务模型 442 16.7 最终一致性和BASE事务 445 16.7.1 水平分割和一致性哈希 445 16.7.2 CAP定理 445 16.7.3 BASE事务 446 16.7.4 多版本并发控制和向量时钟 447 16.7.5 基于Quorum的一致性 448 总结 450 关键术语表 451 思考题 451 问题和练习 452 第四部分 数据仓库、数据治理 和大数据分析 第17章 数据仓库与商务智能 454 17.1 操作与战术/战略决策 454 17.2 数据仓库定义 455 17.3 数据仓库模式 457 17.3.1 星形模式 457 17.3.2 雪花模式 458 17.3.3 事实星座模式 458 17.3.4 特定的模式问题 459 17.4 抽取、转换和加载过程 465 17.5 数据集市 467 17.6 虚拟数据仓库和虚拟数据集市 468 17.7 操作数据存储 469 17.8 数据仓库与数据湖 469 17.9 商务智能 470 17.9.1 查询和报告 471 17.9.2 数据透视表 471 17.9.3 联机分析处理 471 总结 479 关键术语表 480 思考题 481 问题和练习 483 第18章 数据集成、数据质量和数据治理 485 18.1 数据与流程集成 485 18.1.1 分析型和操作型数据需求的融合 486 18.1.2 数据集成和数据集成模式 487 18.1.3 数据和流程集成中的数据服务和数据流 494 18.2 搜索非结构化数据和企业搜索 500 18.2.1 全文搜索原理 500 18.2.2 索引全文文档 501 18.2.3 网络搜索引擎 502 18.2.4 企业搜索 504 18.3 数据质量和主数据管理 505 18.4 数据治理 506 18.4.1 全面数据质量管理 507 18.4.2 能力成熟度模型集成 507 18.4.3 数据管理知识体系 508 18.4.4 信息和相关技术的控制目标 508 18.4.5 信息技术基础架构库 508 18.5 展望 508 总结 509 关键术语表 509 思考题 510 问题和练习 511 第19章 大数据 513 19.1 大数据的5个V 513 19.2 Hadoop 516 19.2.1 Hadoop的历史 516 19.2.2 Hadoop堆栈 517 19.3 Hadoop中的SQL 528 19.3.1 HBase:Hadoop上的第一个数据库 528 19.3.2 Pig 533 19.3.3 Hive 533 19.4 Apache Spark 536 19.4.1 Spark Core 536 19.4.2 Spark SQL 538 19.4.3 MLlib、Spark Streaming和GraphX 540 总结 541 关键术语表 542 思考题 543 问题和练习 544 第20章 分析学 546 20.1 分析过程模型 546 20.2 分析应用程序实例 548 20.3 数据科学家职务简介 549 20.4 数据预处理 550 20.4.1 用于分析的去规范化数据 550 20.4.2 抽样 551 20.4.3 探索性分析 551 20.4.4 缺失值 552 20.4.5 异常值检测和处理 553 20.5 分析的类型 553 20.5.1 预测性分析 553 20.5.2 评估预测模型 560 20.5.3 描述性分析 566 20.5.4 社交网络分析 570 20.6 分析模型的后处理 574 20.7 分析模型成功的关键因素 575 20.8 分析中的经济学视角 576 20.8.1 总所有权成本 576 20.8.2 投资回报 576 20.8.3 内包与外包 577 20.8.4 本地解决方案与云解决方案 578 20.8.5 开源软件与商业软件 579 20.9 提高分析的投资回报率 580 20.9.1 新的数据来源 580 20.9.2 数据质量 582 20.9.3 管理支持 583 20.9.4 组织因素 584 20.9.5 交叉应用 584 20.10 隐私和安全 585 20.10.1 关于隐私和安全的总体考虑 585 20.10.2 RACI矩阵 586 20.10.3 访问内部数据 587 20.10.4 隐私条例 591 总结 592 关键术语表 593 思考题 594 问题和练习 597 附录 使用在线环境 |