腾讯技术专家良心推荐,数据库高效优化宝典

Java 专栏收录该内容
44 篇文章 0 订阅

引言

对于一个从事 DBA 工作十几年的“老鸟”来说,你要问我管理数据库最头疼的事是啥?我会告诉你,无休止的优化会是很多 DBA 的噩梦,相信这也是很多同行的感受! 为什么会这样?是 DBA 的能力不行 ,做不好优化吗?

本文是关于数据库优化的专业文章,从文中可以看出数据库优化不只是 DBA 的事,而是需要所有相关人员在设计、开发测试、运维以及硬件选型等环节相互配合,这样才能最大可能地提升数据库的性能。

本文与很多数据库专著的不同之处就是作者能从一线开发工程师的角度去解读和探讨数据库优化的思路,同时给出了大量的代码示例和参考SQL,使得读者完全可以根据书中示例一一实践,有助于加深对数据库优化的理解。

在阅读本文的过程中,你也会欣喜地发现,作者在展开篇幅的同时,深入浅出地介绍了很多数据库的知识点 这些基础知识对于开发人员理解数据库的工作原理,以及 DBA 掌握和运维数据库,都会有巨大帮助!相信本文会帮到很多人。

由阿里三位专家撰写:数据库高效优化:架构、规范SQL技巧文档

 

本文将从目录、主要内容和读者对象给大家进行介绍,大家循序渐进的看就可以,你会发现内容越来越深,可以让你学习到更多的知识。希望本文能够帮助到大家的学习!

目录

由阿里三位专家撰写:数据库高效优化:架构、规范SQL技巧文档

 

主要内容

本文分为四大部分。

第一部分为引入篇(第0~1章)。

这部分首先结合我多年的工作经验,总结了SQL语句优化时可能会面临的一些困难,然后讲述了一些常见的关于SQL优化的误区,以便读者正确看待SQL语句优化。

第1章讲述了我曾经处理的几个案例。通过这些活生生的案例,可以让读者更直观地感受到SQL语句优化的重.要性,同时在每企案例后面,我还针对窒例出现的问题进行了总结。

由阿里三位专家撰写:数据库高效优化:架构、规范SQL技巧文档

 

第二部分为原理篇(第2-9章)

第2章讲述了SQL语句优化的核心组件——优化器,以及优化的最基础概念——成本。这部分非常重要,建议初学者仔细阅读。

由阿里三位专家撰写:数据库高效优化:架构、规范SQL技巧文档

 

第3~6章介绍了和优化相关的几个重要概念:执行计划、统计信息、SQL解析、游标、绑定变量。这部分较为基础,建议初学者根据情况选择阅读。

由阿里三位专家撰写:数据库高效优化:架构、规范SQL技巧文档

 

由阿里三位专家撰写:数据库高效优化:架构、规范SQL技巧文档

 

第7~8章介绍了SQL语句的实体对象及它们在物理上是如何存储数据的。这部分对于数据库结构设计有较大帮助。此外,在对SQL语句进行优化时,也需要考虑相关对象,因为优化措施可能会影响该对象的其他语句,需要统筹考虑。

由阿里三位专家撰写:数据库高效优化:架构、规范SQL技巧文档

 

第9章介绍了Oracle专有的一些SQL语句。使用这些语句有时可以达到意想不到的效果。如果你不考虑数据库平台迁移的问题,可以充分利用这些语句。

由阿里三位专家撰写:数据库高效优化:架构、规范SQL技巧文档

 

原理篇是我们是迈入实践篇的基础,它几乎覆盖了SQL优化相关的所有原理知识。通过对这些内容的学习,读者可以为后面的SQL优化打下良好的基础。如果你已经拥有相关知识基础,可以直接进入实践篇。

第三部分为SQL篇(第10~16章)。

第10章介绍了一个重要的优化手段——查询转换。这章内容相对来说比较难,市面上相关资料较少,可作为重点来看。

由阿里三位专家撰写:数据库高效优化:架构、规范SQL技巧文档

 

第11章介绍了数据对象的访问方式。这章内容非常基础,也可作为重点来看。

由阿里三位专家撰写:数据库高效优化:架构、规范SQL技巧文档

 

第12~~16章介绍了多种操作及常见的优化手段,包括表关联、半/反连接、子查询、排序、并行等。对于这部分内容,读者可根据实际需求有重点地阅读。

由阿里三位专家撰写:数据库高效优化:架构、规范SQL技巧文档

 

第四部分为实践篇(第17~22章)。

第17章针对不同的数据库,如Oracle及 MySQL等,详细介绍如何从其结构设计、SQL开发等方面制定一系列的规范,目的是让一线的架构、研发、运维人员有章可循。

由阿里三位专家撰写:数据库高效优化:架构、规范SQL技巧文档

 

第18章主要分析建立完善的数据库架构评估模型的方法。通过建立性能基线和业务压力模型来模拟压力测试,以及根据测试结果来确定优化方案。根据性能问题的相关特征,如整体或局部、偶尔慢还是持续慢等,从语句级、对象级、数据库级、数据库架构级、应用架构级、业务架构级等维度逐层分析,找到问题的瓶颈点。

由阿里三位专家撰写:数据库高效优化:架构、规范SQL技巧文档

 

第19章主要介绍勾勒数据库画像的方法。数据库画像,即依托于现有的数据库对象、语句、访问特征、性能表现等进行数据的采集和分析,帮助我们形成对数据库的基本认知,并据此来制定运维管理策略、技术方案、迁移方案以及工作量等。

由阿里三位专家撰写:数据库高效优化:架构、规范SQL技巧文档

 

第20~22章深度剖析打造数据库审核平台的方法。借助平台设定的审核规则,我们可以快速发现数据库中潜在的风险。对于研发人员而言,可以借助平台来定位问题,并且达到辅助设计和开发工作的目的,对于DBA而言,可以借助平台快速掌握多个系统的整体情况,批量筛选低效SQL,以及快速诊断一般性问题。

由阿里三位专家撰写:数据库高效优化:架构、规范SQL技巧文档

 

这份【数据库高效优化:架构、规范与SQL技巧】共有438页,需要完整版的小伙伴,可以以下方式来获取!

本文特色和读者对象

1.本文具有以下几个特点:

  • 文中内容由项目而生,以一线开发工程师的视角展开
  • 注重实战 几乎所有的章节都配有代码,读者可在实际工作环境中直接编写代码并运行大部分代码附有详细的说明,便于读者理解。
  • 涵盖了 SQL 语句的诸多方面,特别是第二部分,可作为工作手册供大家优化时查阅使用。

2.读者对象

本文主要讲解了与Oracle数据库的SQL语句优化相关的内容,除了个别Oracle自有的优化特性外,文中介绍的核心优化思想也适用于其他关系型数据库。文中没有讲解Oracle体系结构和SQL语言本身,这里假设大部分人已熟悉Oracle和 SQL语言。

具体来说,本文适读的重点对象包括但不局限于下列人员:

  • Oracle数据库开发人员。
  • 数据库架构师、数据库管理员。
  • 其他关系型数据库的从业者。
  • 对SQL语句优化感兴趣的人员。
  • 大专院校计算机相关专业的学生。

希望本文能够帮助到大家的学习,让大家成长更快,不断提升自己的价值!

也希望本文能够得到大家的喜欢,多多转发关注不迷路,后面持续更新好文!

  • 2
    点赞
  • 12
    评论
  • 2
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

CruiseYoung提供的带有详细书签的电子书籍目录 http://blog.csdn.net/fksec/article/details/7888251 数据库系统基础:初级篇(第5版)(讲述数据库系统原理的经典教材) 基本信息 原书名: Fundamentals of Database Systems (5th Edition) 原出版社: Addison Wesl 作者: (美)Ramez Elmasri    Shamkant B.Navathe 译者: 邵佩英 徐俊刚 王文杰 丛书名: 图灵计算机科学丛书 出版社:人民邮电出版社 ISBN:9787115164087 上架时间:2007-9-24 出版日期:2007 年10月 开本:16开 页码:409 版次:5-1 内容简介   本书是一本讲述数据库系统原理的教材重点强调数据库建模与设计的基础、数据库管理系统提供的语言和工具以及系统实现技术。全书共分4个部分第一部分介绍最基本的概念、术语及建模原则第二部分描述了关系数据模型和关系型DBMS第三部分讨论数据库设计第四部分主要描述数据库系统中使用的物理文件结构和存取方法。书中涉及的内容非常广泛包括DBMS的概念、术语和体系结构ER模型和ER图数据抽象和语义数据建模UML类图表示法基本关系模型关系代数和关系演算SQL规范化磁盘上组织记录文件的主要方法文件的索引技术查询处理与优化以及物理数据库的设计与调优。   本书是高等院校计算机及相关专业本科生数据库系统课程的理想教材也是对相关技术人员非常有价值的参考书。 作译者   Ramez elmasri是世界知名的数据库学者。现任得克萨斯大学职灵顿分校计算机科学与工程系教授。1980年于斯坦福大学获得计算机科学硕士和博士学位。他的主要研究方向是数据库系统、时间数据库、概念建模、面向对象数据库、Wed建模和本体论数据库模型和语言、DBMS系统实现、检索技术等。   Shamkant B.Navathe 世界知名的数据库学者。现任佐治亚理工学院计算学院教授自1990年开始他一直在该校任教。他的主要研究方向是工程设计、生物(特别是人类基因组)数据库、文档及文本数据库等新兴应用中的数据库建模。设计和集成此外他对知识表示、数据挖掘和知识发现等也非常感兴趣。 目录 封面 -17 封底 -16 扉页 -15 版权 -14 译者序 -13 前言 -11 目录 -6 第一部分 引言与概念建模 1 第1章 数据库数据库用户 2 1.1 引言 2 1.2 一个示例 4 1.3 数据库方法的特征 6 1.3.1 数据库系统的自描述性 7 1.3.2 程序与数据分离和数据抽象 7 1.3.3 支持数据的多视图 9 1.3.4 数据共享和多用户事务处理 9 1.4 幕前角色 10 1.4.1 数据库管理员 10 1.4.2 数据库设计者 10 1.4.3 最终用户 10 1.4.4 系统分析员和应用程序员(软件工程师) 11 1.5 幕后工作者 11 1.6 使用DBMS方法的优势 12 1.6.1 控制冗余 12 1.6.2 限制非授权的访问 12 1.6.3 为程序对象提供持久性存储 13 1.6.4 提供高效查询处理的存储结构 13 1.6.5 提供备份与恢复 14 1.6.6 提供多用户界面 14 1.6.7 表示数据间复杂联系 14 1.6.8 确保完整性约束 14 1.6.9 允许使用规则进行推理和动作 15 1.6.10 使用数据库方法的其他含义 15 1.7 数据库应用简史 16 1.7.1 使用分层和网状系统的早期数据库应用 16 1.7.2 关系数据库提供应用灵活性 16 1.7.3 面向对象的应用和对更复杂数据库的需求 16 1.7.4 在Web上交换数据实现电子商务 17 1.7.5 为新应用扩展数据库功能 17 1.7.6 数据库与信息检索 17 1.8 什么时候不应该使用DBMS 18 1.9 小结 18 复习题 18 练习题 19 选读文献 19 第2章 数据库系统的概念和体系结构 20 2.1 数据模型、模式和实例 20 2.1.1 数据模型的分类 21 2.1.2 模式、实例和数据库状态 21 2.2 三层模式体系结构和数据独立性 23 2.2.1 三层模式体系结构 23 2.2.2 数据独立性 24 2.3 数据库语言和界面 25 2.3.1 DBMS的语言 25 2.3.2 DBMS界面 26 2.4 数据库系统的环境 27 2.4.1 DBMS的组成模块 27 2.4.2 数据库系统实用工具 29 2.4.3 工具、应用环境和通信软件 29 2.5 DBMS的集中式和客户/服务器体系结构 30 2.5.1 集中式DBMS体系结构 30 2.5.2 基本的客户/服务器体系结构 31 2.5.3 DBMS两层客户/服务器体系结构 32 2.5.4 面向Web应用的三层和n层体系结构 32 2.6 数据库管理系统的分类 33 2.7 小结 35 复习题 36 练习题 36 选读文献 37 第3章 使用实体-联系(ER)模型的数据建模 38 3.1 使用高级概念数据模型进行数据库设计 39 3.2 一个数据库应用示例 40 3.3 实体类型、实体集、属性和码 40 3.3.1 实体和属性 41 3.3.2 实体类型、实体集、码和值集 43 3.3.3 COMPANY数据库的初步概念设计 45 3.4 联系类型、联系集、角色和结构约束 46 3.4.1 联系类型、联系集和联系实例 47 3.4.2 联系度、角色名称和递归联系 48 3.4.3 联系类型的约束 49 3.4.4 联系类型的属性 50 3.5 弱实体类型 51 3.6 COMPANY数据库ER设计的改进 52 3.7 ER图、命名约定和设计问题 53 3.7.1 ER图表示法小结 53 3.7.2 模式结构的正确命名 53 3.7.3 ER概念设计的设计选择 54 3.7.4 ER图的候选表示法 55 3.8 其他表示法示例:UML类图 55 3.9 高于2度的联系类型 57 3.9.1 对二元和三元(或高度)联系的选择 57 3.9.2 三元(或高度)联系上的约束 60 3.10 小结 60 复习题 61 练习题 61 实验题 66 选读文献 66 第4章 增强的实体-联系(EER)建模 68 4.1 子类、超类和继承 68 4.2 特化和泛化 69 4.2.1 特化 69 4.2.2 泛化 71 4.3 特化和泛化层次的约束和特征 71 4.3.1 特化与泛化的约束 72 4.3.2 特化和泛化的层次和格 73 4.3.3 利用特化与泛化改进概念模型 75 4.4 采用类别的并类型建模 76 4.5 示例UNIVERSITY的EER模式设计选择和形式化定义 78 4.5.1 UNIVERSITY数据库示例 78 4.5.2 特化/泛化的设计选择 79 *4.5.3 EER模型概念的形式化定义 80 4.6 其他表示法的示例:UML类图中的特化/泛化 81 4.7 数据抽象、知识表示和本体论概念 82 4.7.1 分类和实例化 82 4.7.2 标识 83 4.7.3 特化和泛化 83 4.7.4 聚集和关联 83 4.7.5 本体论和语义网 85 4.8 小结 86 复习题 86 练习题 86 实验题 91 选读文献 93 第二部分 关系模型:概念、约束、语言、设计和编程 95 第5章 关系数据模型和关系数据库约束 96 5.1 关系模型概念 96 5.1.1 域、属性、元组和关系 97 5.1.2 关系的特性 99 5.1.3 关系模型表示法 101 5.2 关系模型约束和关系数据库模式 101 5.2.1 域约束 102 5.2.2 码约束和NULL值约束 102 5.2.3 关系数据库和关系数据库模式 103 5.2.4 实体完整性、参照完整性和外码 104 5.2.5 其他类型的约束 106 5.3 更新操作、事务和处理违例约束 107 5.3.1 插入操作 107 5.3.2 删除操作 108 5.3.3 更新操作 109 5.3.4 事务的概念 109 5.4 小结 109 复习题 110 练习题 110 选读文献 113 第6章 关系代数和关系演算 114 6.1 一元关系操作:SELECT和PROJECT 115 6.1.1 SELECT操作 115 6.1.2 PROJECT操作 116 6.1.3 操作序列和RENAME操作 117 6.2 基于集合论的关系代数操作 118 6.2.1 UNION、INTERSECTION和MINUS操作 118 6.2.2 笛卡儿积(或叉积)操作 120 6.3 二元关系操作:JOIN和DIVISION 121 6.3.1 JOIN操作 121 6.3.2 JOIN的变体EQUIJOIN和NATURAL JOIN 122 6.3.3 关系代数操作的完备集 124 6.3.4 DIVISION操作 124 6.3.5 查询树表示法 126 6.4 其他关系操作 127 6.4.1 广义投影 127 6.4.2 聚集函数和分组 127 6.4.3 递归闭包操作 128 6.4.4 OUTER JOIN操作 130 6.4.5 OUTER UNION操作 130 6.5 关系代数中的查询示例 131 6.6 元组关系演算 133 6.6.1 元组变量和值域关系 133 6.6.2 元组关系演算中的表达式与公式 134 6.6.3 存在量词与全称量词 134 6.6.4 使用存在量词的查询示例 135 6.6.5 查询图表示法 136 6.6.6 全称量词与存在量词的转换 137 6.6.7 使用全称量词 137 6.6.8 安全表达式 138 6.7 域关系演算 139 6.8 小结 140 复习题 141 练习题 141 实验题 144 选读文献 146 第7章 使用ER到关系的映射和EER到关系的映射进行关系数据库设计 147 7.1 使用ER到关系的映射进行关系数据库设计 147 7.1.1 ER到关系的映射算法 147 7.1.2 ER模型构造映射的讨论和总结 151 7.2 EER模型构造到关系的映射 152 7.2.1 特化或泛化的映射 153 7.2.2 共享子类(多重继承)的映射 154 7.2.3 类别的映射(并类型) 155 7.3 小结 156 复习题 156 练习题 156 实验题 157 选读文献 157 第8章 SQL-99:模式定义、约束、查询和视图 158 8.1 SQL数据定义和数据类型 159 8.1.1 SQL2中模式和目录的概念 159 8.1.2 SQL的CREATE TABLE命令 160 8.1.3 SQL中的属性数据类型和域 161 8.2 在SQL中定义约束 162 8.2.1 指定属性约束和属性默认值 162 8.2.2 指定码和参照完整性约束 163 8.2.3 为约束命名 164 8.2.4 使用CHECK指定元组约束 164 8.3 SQL中的模式更改语句 165 8.3.1 DROP命令 165 8.3.2 ALTER命令 165 8.4 SQL中的基本查询 166 8.4.1 基本SQL查询的SELECT-FROM- WHERE结构 166 8.4.2 多义属性名、别名和元组变量 168 8.4.3 未指定WHERE子句的查询语句和星号(*)的用法 170 8.4.4 SQL中作为集合的表 170 8.4.5 子串样式匹配和算术操作符 172 8.4.6 查询结果排序 173 8.5 更复杂的SQL查询 173 8.5.1 包含NULL和三值逻辑的比较 173 8.5.2 嵌套查询、元组与集/多集比较 174 8.5.3 关联嵌套查询 176 8.5.4 SQL中的EXISTS和UNIQUE函数 177 8.5.5 SQL中的显式集合和属性重新命名 178 8.5.6 SQL中的连接表和外连接 179 8.5.7 SQL中的聚集函数 180 8.5.8 分组:GROUP BY和HAVING子句 181 8.5.9 SQL查询的讨论与小结 183 8.6 SQL中的插入、删除和更新语句 184 8.6.1 INSERT命令 184 8.6.2 DELETE命令 185 8.6.3 UPDATE命令 186 8.7 指定约束作为断言和触发器 186 8.8 SQL中的视图(虚表) 187 8.8.1 SQL中视图的概念 187 8.8.2 SQL中的视图规范 188 8.8.3 视图的实现和更新 188 8.9 SQL的其他特性 190 8.10 小结 190 复习题 192 练习题 192 实验题 194 选读文献 195 第9章 SQL程序设计技术简介 197 9.1 数据库程序设计:问题与技术 197 9.1.1 数据库程序设计方法 198 9.1.2 阻抗失配 198 9.1.3 数据库程序设计中的典型交互序列 199 9.2 嵌入式SQL、动态SQLSQLJ 199 9.2.1 用嵌入式SQL检索单个元组 199 9.2.2 在嵌入式SQL中使用游标检索多个元组 202 9.2.3 使用动态SQL在运行时指定查询 203 9.2.4 SQLJ:Java中嵌入SQL命令 204 9.2.5 SQLJ中使用迭代器检索多个元组 206 9.3 使用函数调用的数据库程序设计:SQL/CLI和JDBC 207 9.3.1 以C语言为宿主语言使用SQL/CLI进行数据库程序设计 208 9.3.2 JDBC:面向Java程序设计的SQL函数调用 211 9.4 数据库存储过程与SQL/PSM 214 9.4.1 数据库存储过程和函数 214 9.4.2 SQL/PSM: 扩展SQL以指定持久存储模块 215 9.5 小结 216 复习题 216 练习题 216 实验题 217 选读文献 218 第三部分 数据库设计理论和方法学 219 第10章 函数依赖和关系数据库的规范化 220 10.1 关系模式的非形式化设计准则 221 10.1.1 给予关系中的属性以清晰的语义 221 10.1.2 元组中的冗余信息和更新异常 223 10.1.3 元组中的NULL值 225 10.1.4 生成寄生元组 226 10.1.5 总结和讨论设计准则 227 10.2 函数依赖 228 10.2.1 函数依赖的定义 228 10.2.2 函数依赖的推理规则 229 10.2.3 函数依赖集的等价 232 10.2.4 最小函数依赖集 232 10.3 基于主码的范式 233 10.3.1 关系的规范化 233 10.3.2 范式的实际使用 234 10.3.3 码的定义和参与码的属性 234 10.3.4 第一范式 235 10.3.5 第二范式 238 10.3.6 第三范式 239 10.4 第二范式和第三范式的通用定义 239 10.4.1 第二范式的通用定义 240 10.4.2 第三范式的通用定义 241 10.4.3 解释第三范式的通用定义 241 10.5 Boyce-Codd范式 241 10.6 小结 243 复习题 244 练习题 244 实验题 247 选读文献 248 第11章 关系数据库设计算法和其他依赖 249 11.1 关系分解的性质 250 11.1.1 关系分解和范式的不足 250 11.1.2 分解的依赖保持性质 250 11.1.3 分解的非加性(无损)连接性质 251 11.1.4 检验二元分解的非加性连接性质 253 11.1.5 连续非加性连接分解 254 11.2 关系数据库模式设计算法 254 11.2.1 依赖保持分解成3NF模式 254 11.2.2 非加性连接分解成BCNF模式 255 11.2.3 依赖保持和非加性(无损)连接分解成3NF模式 256 11.2.4 NULL值和悬挂元组问题 258 11.2.5 规范化算法的讨论 258 11.3 多值依赖和第四范式 261 11.3.1 多值依赖的形式化定义 261 11.3.2 函数依赖和多值依赖的推理规则 263 11.3.3 第四范式 263 11.3.4 非加性连接分解成4NF关系 264 11.4 连接依赖和第五范式 265 11.5 包含依赖 266 11.6 其他依赖和范式 267 11.6.1 模板依赖 267 11.6.2 域-码范式 268 11.7 小结 268 复习题 268 练习题 269 实验题 270 选读文献 270 第12章 实际数据库设计方法学和UML图的使用 271 12.1 组织中信息系统的角色 271 12.1.1 使用数据库系统的组织环境 271 12.1.2 信息系统的生命周期 273 12.1.3 数据库应用系统的生命周期 274 12.2 数据库设计与实现过程 275 12.2.1 第1阶段:需求汇集和分析 276 12.2.2 第2阶段:概念数据库设计 277 12.2.3 第3阶段:DBMS的选择 284 12.2.4 第4阶段:数据模型映射(逻辑数据库设计) 285 12.2.5 第5阶段:物理数据库设计 286 12.2.6 第6阶段:数据库系统的实现和调优 286 12.3 使用UML图作为数据库设计规范说明的辅助工具 287 12.3.1 UML作为设计规范说明的标准 287 12.3.2 将UML用于数据库应用设计 287 12.3.3 各种UML图 288 12.3.4 建模和设计的示例:UNIVERSITY数据库 291 12.4 基于UML的设计工具:Rational Rose 293 12.4.1 面向数据库设计的RationalRose 293 12.4.2 Rational Rose Data Modeler 293 12.4.3 使用Rational Rose Data Modeler的数据建模 294 12.5 自动化数据库设计工具 297 12.6 小结 299 复习题 299 选读文献 300 第四部分 数据存储、索引、查询处理和物理设计 303 第13章 磁盘存储、基本文件结构和散列 304 13.1 概述 304 13.1.1 存储层次和存储设备 304 13.1.2 数据库的存储 305 13.2 二级存储设备 306 13.2.1 磁盘设备的硬件描述 306 13.2.2 磁带存储设备 310 13.3 块缓冲 311 13.4 把文件记录保存在磁盘上 312 13.4.1 记录和记录类型 312 13.4.2 文件、定长记录和变长记录 313 13.4.3 记录块、跨块记录与非跨块记录 314 13.4.4 在磁盘上分配文件块 315 13.4.5 文件首部 315 13.5 文件操作 315 13.6 无序记录文件(堆文件) 317 13.7 有序记录文件(排序文件) 318 13.8 散列技术 320 13.8.1 内部散列 321 13.8.2 磁盘文件的外部散列法 323 13.8.3 允许动态文件扩展的散列技术 324 13.9 其他主文件组织 327 13.9.1 混合记录文件 327 13.9.2 B树和其他数据结构作为主组织 327 13.10 使用RAID技术的并行磁盘访问 327 13.10.1 用RAID增强可靠性 328 13.10.2 用RAID改善性能 329 13.10.3 RAID组织体系和级别 329 13.11 新的存储系统 331 13.11.1 存储局域网 331 13.11.2 网络连接存储 331 13.12 小结 332 复习题 332 练习题 333 选读文献 335 第14章 文件的索引结构 336 14.1 单级有序索引的类型 336 14.1.1 主索引 337 14.1.2 聚簇索引 339 14.1.3 辅助索引 339 14.1.4 小结 344 14.2 多级索引 344 14.3 使用B树与B+树的动态多级索引 346 14.3.1 搜索树和B树 347 14.3.2 B+树 350 14.4 多码上的索引 357 14.4.1 多属性上的有序索引 357 14.4.2 分区散列法 357 14.4.3 网格文件 358 14.5 其他类型的索引 358 14.5.1 使用散列和其他数据结构作为索引 358 14.5.2 逻辑索引与物理索引 359 14.5.3 讨论 359 14.6 小结 359 复习题 360 练习题 360 选读文献 362 第15章 查询处理和优化的算法 363 15.1 把SQL查询转换成关系代数 364 15.2 外排序算法 365 15.3 SELECT与JOIN操作的算法 366 15.3.1 SELECT操作的实现 366 15.3.2 JOIN操作的实现 369 15.4 PROJECT和集合操作的算法 374 15.5 聚集操作和外连接的实现 375 15.5.1 聚集操作的实现 375 15.5.2 外连接的实现 375 15.6 用流水线组合操作 376 15.7 在查询优化中使用启发式规则 376 15.7.1 查询树和查询图的表示法 377 15.7.2 查询树的启发式优化 378 15.7.3 将查询树转换为查询执行计划 383 15.8 利用选择性和代价估算进行查询优化 383 15.8.1 查询执行的代价成分 383 15.8.2 代价函数中使用的目录信息 384 15.8.3 SELECT操作的代价函数示例 384 15.8.4 JOIN的代价函数示例 386 15.8.5 多关系查询和连接顺序 387 15.8.6 说明基于代价的查询优化的示例 388 15.9 Oracle中的查询优化概述 390 15.10 语义查询优化 390 15.11 小结 391 复习题 391 练习题 391 选读文献 392 第16章 物理数据库设计和调优 393 16.1 关系数据库中的物理数据库设计 393 16.1.1 影响物理数据库设计的因素 393 16.1.2 物理数据库设计决策 394 16.2 关系系统中的数据库调优概述 396 16.2.1 索引的调优 396 16.2.2 数据库设计的调优 397 16.2.3 查询的调优 398 16.2.4 其他的查询调优原则 399 16.3 小结 400 复习题 400 选读文献 400 附录A ER模型的可选图形表示法 401 附录B 磁盘参数 403 附录C QBE语言概述 405 前言 近几年来虽然许多出版社都影印和翻译了多种数据库系统方面的教材我们也曾与中国人民大学张坤龙老师等一起翻译了《数据库系统基础》的第3版。凭我们多年来从事数据库课程教育的实践经验认为Elmasri和Navathe的《数据库系统基础》是一本出色的、系统的、先进的、实用的数据库课程教科书。它清晰地阐述了数据库系统理论和设计问题;它的内容极为充实广泛地涵盖了所有涉及数据库系统的设计、实现和管理所要求的诸多专题;它使用优秀的实例引入最新的现代数据库技术全书贯穿两个例子:COMPANY和UNIVERSITY使得读者能够使用同一个应用来比较不同的方法。当我们得到并初步阅读了Elmasri和Navathe的《数据库系统基础》第5版时我们发现它对全书又作了完善性修改和更新适时地反映了数据库技术和应用开发的最新发展趋势。而且它新增了一些应用实例使读者可以参与其中而书中章节后面的练习题和新的实验题又可以让读者获得基于现代数据库技术如Oracle、MySQLSQLServer以及了解使用PHP和XML的Web数据库编程获得建造数据库应用系统的实践经验。《数据库系统基础》正在成为从技术角度而不是从商业角度介绍数据库系统的权威教材。它既适合于研究生又适合于本科生使用更为教师提供了足够丰富的数据库课程教育素材。当然本书也是从事数据库技术研究和应用开发人员的良师益友。 这就是为什么我们还要花费大量精力和时间来翻译本书的原因和理由。 本书包括8个部分和5个附录。从第1部分开始介绍了为更好地掌握数据库设计与实现所需的基本概念以及数据库系统中用到的概念建模技术。第2部分到第4部分深入讲解了数据库系统基础中最重要的几个方面包括:关系模型的概念、约束、语言、设计和编程数据库设计理论和方法学数据存储、索引、查询处理和物理设计。第5部分和第6部分是数据库系统的高级专题包括:事务处理、并发控制、恢复技术以及对象和对象-关系数据库并给出了如何用SQL实现这些概念。第7和第8部分作为结束对诸如数据库安全性适应高级应用的增强数据模型分布式数据库及三层客户/服务器据结构以及XML、Web数据库、数据挖掘、数据仓库、移动数据库、多媒体数据库、地理信息系统、基因数据管理等新兴技术作了介绍。附录A给出许多可选用的显示ER或EER模式的图形记号;附录B给出磁盘的一些重要物理参数;附录C给出最早的图形化查询语言之一:示例查询(Query-By-ExampleQBE)语言的概述;附录D和E介绍基于层次数据模型和网状数据模型的传统数据库系统(http://www.aw.com/elmasri)。 本书分为上、下两册:上册包括第1~4部分及附录建议可以作为“数据库导论课程”的教科书;下册包括第5~8部分及附录建议可以作为“数据库高级课程”的教科书。当然正如在本书的前言中所指出的那样讲授一门数据库课程有许多种不同的方式各位教师可根据课程侧重点的不同以及根据学生的背景和需求组织教学内容。在前言中展示的各章节间的主要依赖关系图可以作为参考各主题可以按不同顺序进行讲授。可以跳过那些选择性的章节也可以添加书中其余部分的章节以便充实课程。 本书的翻译和审校由中国科学院研究生院信息学院邵佩英教授、徐俊刚副教授、王文杰副教授共同组织完成。参加翻译的还有(按姓氏笔画)裴莹、陈明、丁杰、林欢欢、张坤、张颖、周良、余清等。全书由邵佩英教授负责统一定稿。由于水平有限翻译不当之处恳请读者批评指正。 本书翻译过程中曾得到中国科学院高能物理所李伯民研究员的关心和指导得到我们的研究生王辉、祝孔强、阚劲松的帮助在此向他们表示衷心的感谢。我们还应感谢人民邮电出版社杨海玲等编辑们是他们的远见和支持使得本书能够尽快与读者见面。 译者 中国科学院研究生院信息学院 2007年5月 本书介绍了在设计、使用和实现数据库系统及应用时所需的基本概念。书中重点强调了数据库建模与设计的基础、数据库管理系统提供的语言和工具以及系统实现技术。本书旨在作为本科生或研究生的数据库系统课程(一个或两个学期)的教材或教学参考书。本书假定读者已熟悉基本的程序设计和数据结构的概念并对基本的计算机组成知识有所了解。 本书第一部分先提供了一个引言并介绍了最基本的概念和术语以及数据库概念建模原则。第二部分到第四部分深入讲解了数据库基础中最重要的几个方面。 以下是第5版的主要特色: ●本书内容的组织遵循独立性和灵活性原则可以根据个人需要进行取舍。 ●新增加了一章来介绍SQL程序设计技术这种技术用于使用PHP(一种流行的脚本语言)的Web应用。 ●对每章末尾的习题集进行了更新和扩充。 ●提供了一个辅助网站(http://www.aw.com/elmasri)其中包括可以装载到各种类型关系数据库中的数据以便学生更好地进行实验题。 ●提供了一个简单的关系代数和关系演算解释程序。 ●每章末尾的实验题(第3章~第12章)涵盖了该章的主题这些主题是与本书辅助网站上的数据库相关联的;这些实验题一开始是介绍性的在后续的章节中则将引入新的资料对其进行扩展。 ●对补充资料进行了重要的修订包括为教师和学生而准备的一组资料例如PowerPoint幻灯片和书中的图表以及带有答案的教师指导手册。 ■与第4版的主要区别 第5版对全书内容的组织结构改动较少主要改动集中于对单独某一章的改进上。主要改动如下: ●增加了新的实验题并对每章(第一部分到第三部分)末尾的练习题做了改进。 ●给出了说明规范化和数据库设计算法的新示例(第10章和第11章)。 ●给出了一种新设计这种设计增强了书中插图的视觉效果并对各种属性和实体类型使用了特殊字体从而增强了可读性和可理解性。 ■第5版的内容 第一部分描述了为更好地掌握数据库设计与实现所需的基本概念以及数据库系统中用到的概念建模技术。第1章和第2章介绍了数据库数据库的典型用户以及DBMS(数据库管理系统)的概念、术语和体系结构。第3章介绍了实体—联系(Entity-Relationship, ER)模型和ER图的概念并用它来说明概念数据库设计。第4章重点讨论数据抽象和语义数据建模的概念并且扩展ER模型以便把这些概念融入到模型中从而产生增强的实体—联系(Enhanced ER, EER)数据模型和EER图。第4章提出的概念包括子类、特化、泛化和并类型(类别)。在第3章和第4章中还介绍了UML类图表示法。 第二部分描述了关系数据模型和关系型DBMS。第5章描述了基本关系模型、完整性约束和更新操作;第6章描述了关系代数操作并介绍了关系演算;第7章讨论了通过ER到关系的映射和EER到关系的映射进行关系数据库设计;第8章详细介绍了SQL语言包括SQL标准大多数关系型系统中都实现了这一标准;第9章介绍了有关SQL程序设计的主题SQLJ、JDBC和SQL/CLI。 第三部分讨论了一些与数据库设计有关的主题。第10章和第11章涵盖了通过规范化进行关系数据库设计而开发的形式化体系、理论和算法。这些内容包括函数依赖和其他类型的依赖以及各种关系范式等;第10章对规范化提供了循序渐进的直观的讲解;第11章则给出了带有示例的关系设计算法并定义了一些其他类型的依赖如多值依赖和连接依赖等;第12章概要介绍了使用UML完成中型和大型应用数据库设计过程中的各个阶段。 第四部分从描述数据库系统中使用的物理文件结构和存取方法开始。第13章描述了磁盘上组织记录文件的主要方法包括静态和动态的散列技术;第14章描述了文件的索引技术包括B树和B+树数据结构和网格文件;第15章介绍了查询处理与优化的基本知识;第16章讨论了物理数据库的设计与调优。 附录A给出了展示基本的ER或EER模式时还可选用的其他一些图示表示法。如果教师认为必要可以用这些表示法替代书中所用的表示法。附录B给出了关于磁盘的一些重要的物理参数。附录C概述了QBE图形查询语言。附录D和附录E(在本书的辅助网站http://www.aw.com/elmasris 中也可找到)讨论了基于分层和网状数据模型的遗留数据库系统。这些已经使用了30多年的数据库系统是现今许多商业数据库应用和事务处理系统的基础要完全取代它们还需要数十年。我们认为对于学习数据库管理的学生来说了解这些存在已久的方法也是很重要的。 ■如何使用本书 讲授数据库课程有许多种不同的方式。本书的第一部分到第四部分中的各章可用于讲授数据库系统的导论课程各位教师可以按照本书给出的顺序也可以按照自己喜欢的顺序组织讲授。根据课程侧重点的不同教师可以跳过那些选择性的章节也可以添加书中其余部分的章节以充实授课内容。在每章开篇的最后列出了对某个特定的主题不需要详细讨论的情况下可以跳过的小节。我们建议作为数据库导论课程的教材可以选用第1章到第14章的内容并根据学生的背景和需求从本书中的其他章节选择一些内容添加进来。如果要强调系统实现技术那么可以包括本书第四部分和本书姊妹篇《数据库系统基础:高级篇》的第一部分的内容。 第3章和第4章涵盖了如何使用ER模型和EER模型进行概念建模这部分内容对于较好地从概念上理解数据库是很重要的。但是这两章内容可以有选择地讲授或者在课程的后期讲授如果课程的重点是数据库管理系统(DBMS)的实现甚至可以跳过这两章。第13章和第14章介绍的是文件组织和索引这两章内容同样可以在课程的前期或后期讲授如果课程的重点是数据库模型和语言也可以跳过这两章。对于学习过文件组织课程的学生可以把这几章的部分内容作为课后阅读材料或者布置一些练习题来复习这些概念。 一个有完整生命周期的数据库设计与实现的项目要涵盖概念设计(第3章和第4章)、数据模型映射(第7章)、规范化(第10章)和SQL实现(第9章)。同时还需要有关特定的程序设计语言和RDBMS的附加文档。 本书在编写时就考虑到了其主题可以按不同顺序进行讲授。下图展示了各章之间的主要依赖关系 。由图可知在前面引导性的两章之后可以从多个不同的主题开始讲授。这个图可能看起来有些复杂但它显现了非常重要的一点是如果按照如图所示的顺序进行讲授章节间的依赖关系就不会丢失。如果教师想以自己选择的顺序来讲授课程那么可以将此图作为参考。 如果将本书作为一个学期课程的教材可以将某些章节留作课外阅读资料。第四部分、《数据库系统基础:高级篇》的第三部分和第四部分可以考虑作为这样的阅读资料。如果将本书作为上、下两个学期的教材第一学期的课程“数据库设计/系统导论”面向大二、大三或大四的学生可以涵盖第1章~第14章的大部分内容。第二学期的课程“数据库设计与实现技术面向大四学生或一年级研究生则可涵盖《数据库系统基础:高级篇》中的内容。在以上两个学期中可以有选择地选用《数据库系统基础:高级篇》第三部分和第四部分中的某些章节。除本书之外如果学生所在学院还有其他介绍DBMS的资料也可以作为本书的附加资料进行学习。 ■补充资料 本书的所有使用者均可获得辅助资料。 ●在网站http://www.aw.com/cssupport上提供了PowerPoint讲稿和图。 ●在本书辅助网站(http://www.aw.com/elmasri)上提供了第5版新增的实验手册。实验手册包括流行的数据建模工具、关系代数和关系演算解释程序以及本书中使用的两个通用数据库管理系统实现的示例。本书每章末尾的实验题也与实验手册相关。 ●得到确认的教师可以获得习题答案。请访问Addison-Wesley 的教师资源中心(http://www.aw.com/irc)、联系当地的Addison-Wesley销售代表或者发送电子邮件到computing@aw.com以获取如何获得习题答案的信息。 ■致谢 非常荣幸能够向这么多人致谢感谢他们对本书的帮助与贡献。首先要感谢本书的编缉Matt Goldstein及Katherine Harutunian。特别要感谢第5版的首席编辑Matt Goldstein所付出的努力及帮助。我们还要感谢Addison-Wesley的那些为第5版做出贡献的人们:Michelle Brown、Gillian Hall、Patty Mahtani、Maite Suarez-Rivas、Bethany Tidd和Joyce Cosentino Wells。我们感谢Gillian Hall完成了本书的内部设计包括版式、字体和艺术设计方面非常细致的工作正是她周全的考虑我们才有了如此美观的书。 我们感谢为本书作出贡献的审稿人: Hani Abu-Salem迪保罗大学 Jamal R. Alsabbagh, 大河谷州立大学 Ramzi Bualuan圣母大学 Soon Chung赖特州立大学 Sumali Conlon密西西比大学 Hasan Davulcu亚利桑那州立大学 James Geller新泽西理工学院 Le Gruenwald俄克拉何马大学 Latifur Khan得克萨斯大学达拉斯分校 Herman Lam佛罗里达大学 Byung S.Lee佛蒙特大学 Donald Sanderson东田纳西州立大学 Jamil Saquer西南密苏里州立大学 Costas Tsatsoulis堪萨斯大学 Jack C. Wileden马萨诸塞大学阿默斯特分校 我们感谢Raj Sunderraman与我们一起完成了本书的实验部分并设计了实验题。旧金山大学的Salman Azar也贡献了部分习题。 Sham Navathe要向他佐治亚理工学院的学生们致谢:Saurav Sahay、Liora Sahar、Fariborz Farahmand、Nalini Polavarapu、Wanxia Xie、Ying Liu以及Gaurav Bhatia。Ed Omiecinski也曾提供了有价值的建议和修正。 我们还要再次感谢曾经审阅本书以及为本书前几版做出过贡献的人们。 ●第1版。Alan Apt(编缉)、Don Batory、Scott Downing、Dennis Heimbinger、Julia Hodges、Yannis Ioannidis、Jim Larson、Dennis McLeod、Per-Ake Larson、Rahul Patel、Nicholas Roussopoulos、David Stemple、Michael Stonebraker、Frank Tompa和Kyu-Young Whang。 ●第2版。Dan Joraanstad(编缉)、Rafi Ahmed、Antonio Albano、David Beech、Jose Blakeley、Panos Chrysanthis、Suzanne Dietrich、Vic Ghorpadey、Goets Graefe、Eric Hanson、Junguk L.Kim、Roger King、Vram Kouramajian、Vijay Kumar、John Lowther、Sanjay Manchanda、Toshimi Minoura、Inderpal Mumick、Ed Omiecinski、Girish Pathak、Raghu Ramakrishnan、Ed Robertson、Eugene Sheng、David Stotts、Marianne Winslett以及Stan Zdonick。 ●第3版。Maite Suarez-Rivas和Katherine Harutunian(编缉)、Suzanne Dietrich、Ed Omiecinski、Rafi Ahmed、Francois Bancilhon、Jose Blakeley、Rick Cattell、Ann Chervenak、David W.Embley、Henry A. Etlinger、Leonidas Fegaras、Dan Forsyth、Farshad Fotouhi、Michael Franklin、Sreejith Gopinath、Goetz Craefe、Richard Hull、Sushil Jajodia、Ramesh K. Karne、Harish Kotbagi、Vijay Kumar、Tarcisio Lima、Ramon A. Mata-Toledo、Jack McCaw、Dennis McLeod、Rokia Missaoui、Magdi Morsi、M.Narayanaswamy、Carlos Ordonez、Joan Peckham、Betty Salzberg、Ming-Chien Shan、Junping Sun、Rajshekhar Sunderraman、Aravindan Veerasamy以及Emilia E.Villareal。 ●第4版。Maite Suarez-Rivas、Katherine Harutunian、Daniel Rausch以及Juliet Silveri(编缉);、Phil Bernhard、Zhengxin Chen、Jan Chomicki、Hakan Ferhatosmanoglu、Len Fisk、William Hankley、Ali R.Hurson、Vijay Kumar、Peretz Shoval、Jason T.L. Wang(审稿人);;Ed Omiecinski(协助完成了第27章);得克萨斯大学阿灵顿分校的贡献者有Hyoil Han、Babak Hojabri、Jack Fu、Charley Li、Ande Swathi以及Steven Wu;佐治亚理工学院的贡献者有Dan Forsythe、Weimin Feng、Angshuman Guin、Abrar Ul-Haque、Bin Liu、Ying Liu、Wanxia Xie以及Waigen Yee。 最后我们真切地感谢我们的家人所给予的支持、鼓励和耐心。 R.E. S.B.N.
相关推荐
本版的新内容 这一版中的新内容和特色将使学生和本书的其他读者受益其中包括: ● 使用Microsoft Access 2010演示和强调数据库的创建和使用原则。本书把对Microsoft Access和其他Microsoft Office产品(如Excel)的所有引用都修订为最新发布的Microsoft Office 2010版本。 ● 本书的更新表现为使用Microsoft SQL Server 2008/2008 R2 Express版本。尽管书中大多数主题都向后兼容Microsoft SQL Server 2005 Express版本但均专门使用SQL Server 2008和Office 2010。 ● 本书中的更新还表现为使用MySQL Workbench作为MySQL 5.1的唯一数据库开发工具。本书第4版使用的MySQL GUI工具被MySQL在2009年12月18日宣布停止使用。目前的MySQL Workbench 5.2.x集成了MySQL GUI工具的功能这一版就使用它。 ● 使用Microsoft Windows 7操作系统作为本书的工作站操作系统。上一版使用的是Windows XP和Windows Vista操作系统而这一版更新为最新的Microsoft工作站操作系统。 ● 添加了附录C“系统分析和设计入门”。这个新附录为没有学习过这方面课程的学生或读者介绍了系统分析和设计概念论述了收集数据建模所需输入信息的基本方法(参见第4章)并在应用程序开发的过程中融入了数据库开发。此附录包含在本书配书光盘中。 ● 添加了附录D“Microsoft Visio 2010入门”。这个新附录介绍了如何使用Microsoft Visio 2010进行数据建模(参见第4章)和数据库设计(参见第5章)。此附录包含在本书配书光盘中。 ● 添加了附录E“Web服务器、PHP和Eclipse PDT入门”。这个新附录介绍了如何安装和使用Microsoft IIS Web服务器、PHP和用于Web数据库应用程序开发的Eclipse PDT IDE(参见第7章)。此附录包含在本书配书光盘中。 必要的基本概念 如果不学习基本概念只靠现有的技术就不可能成功使用DBMS。凭借多年来为商业用户开发数据库经验我们认为下面的数据库概念非常重要: ● 关系模型的基本概念 ● 结构化查询语言(SQL) ● 数据建模 ● 数据库设计 ● 数据库管理 由于当前Internet、World Wide Web和分析工具的广泛使用因此另外增加两个基本概念: ● Web数据库处理 ● 商业智能(BI)系统 像Colin这样的用户(或将来从事类似工作的学生)不需要像信息系统专家那样深入地了解这些主题。因此本书只介绍最基本的概念足以帮助Colin这样的用户创建和使用小型数据库了。本书的许多内容在David M.Kroenke和David J.Auer的Database Processing: Fundamentals, Designs, and Implementation1一书的基础上进行了重写和简化。不过在本书内容上我们也力求讨论准确不会产生误导。即使学生已学习过更高级的数据库课程也可从中获益。 独立于DBMS产品的概念 本书假设学生没有使用过任何特殊的DBMS产品我们通过Microsoft Access、SQL Server Express版和MySQL来演示数据库概念使学生可以将这些产品作为工具真正试验书中的内容而这些概念都是以DBMS无关的方式出现。通过这种方式学习学生可以掌握适用于任意数据库的基本原则包括小型的Microsoft Access数据库到大型的Oracle或DB2数据库。而且这一方法也避免了一个常见的问题:在同时介绍概念和产品时学生容易混淆概念与产品特性和功能。例如在讲授参照完整性约束时如果从概念的角度讲授会说明这时一个表中的列值必须总是由另一个表中的列值提供并解释这一约束出现在关系定义的上下文中的方式以及DBMS或应用程序如何强制执行这一约束。如果结合具体的DBMS讲授如Microsoft Access学生就只知道:在某些情况下选取复选框而在其他情况下不选取。这很容易导致学生在学习产品特性时会淡忘数据库的基本概念。 这并不是说教学中不应使用DBMS。相反学生们可以通过使用商业DBMS产品来更好掌握这些概念。本书的这一版包括Microsoft Access、SQL Server Express版和MySQL的足够多的基础信息使您无需其他书籍或资料就可以在课堂上使用这些产品。本书还深入介绍了Microsoft Access因为它是一个非常流行的个人数据库产品并且包括在Microsoft Office Professional应用程序套件中。但如果希望深入理解特定的DBMS或使用本书没有介绍的DBMS产品则需要额外的书籍或资料。Prentice Hall提供了Microsoft Access 2010和其他DBMS产品的大量图书可以结合本书一起学习。 Access工作台 本书的这一版继续使用首次在第3版引入的特征—— “Access工作台”。由于Microsoft Access广泛用于初级数据库课程因此介绍使用Microsoft Access的特定信息比较重要。每一章都带有一个“Access工作台”部分其中使用Microsoft Access来演示本章的概念和技术。“Access工作台”部分在第1章中介绍了如何创建数据库和单个表逐渐转移到不同主题到最后第7章介绍相对于Microsoft Access数据库的Web数据库处理和第8章介绍使用Microsoft Access和Microsoft Excel生成PivotTable OLAP报表。本书并非试图全面论述Microsoft Access而是介绍所有必要的基本Access主题使学生可以有效地构建并使用Microsoft Access数据库。 重要术语、复习题、练习题和项目 学生能否运用所学的知识非常重要因此每章都提供了重要术语表(本版新增)、复习题、练习题(包括针对“Access工作台”的练习题)和三个贯穿本书始终的项目。如果学生阅读并理解了每一章的内容就应能掌握每个重要术语的含义、能完成复习题。练习题要求学生将每章所讲的概念应用到具体的小问题或任务中。 第一个项目Garden Glory是有关一个向个人或企业提供园艺服务的合伙公司的数据库开发和使用。第二个项目James River珠宝行分析了为一家零售店实施常客计划的数据库需求。第三个项目Queen Anne Curiosity商店关注的是零售业的销售和库存需求。本书的所有章节都包括这三个项目。在每个实例中都要求学生将各章的知识运用到项目中。教师会在教师手册中找到使用这些项目的更多信息还可以从本书网站(www.pearsonhighered.com/kroenke)中受密码保护的教师部分获得数据库和数据。 本书使用的软件 与之前我们使用与DBMS无关的方式进行讨论一样本书将尽可能选择独立于操作系统的软件目前网络上有非常多的杰出软件可以使用许多大的DBMS厂商都提供了其主要产品的免费版本(如Microsoft 的SQL Server Express版Oracle公司的Oracle数据库和MySQL)Web编辑器和集成开发环境(IDE)也很常用例如Eclipse、NetBeans和Visual Studio Express版。PHP被认为是第四个最常用的编程语言可以下载用于许多操作系统和Web服务器。 所以尽管本书的示例是用Microsoft操作系统、SQL Server 2008/2008 R2 Express版、Microsoft Access 2010、Microsoft Excel 2010和IIS Web服务器创建的但它们大都很容易用Linux、MySQL Server Community版、OpenOffice.org Base、OpenOffice.org Calc和Apache Web服务器创建。本书使用的一些软件产品如PHP和Eclipse都可用于多种操作系统。 在过去30多年中我们已经发现数据库数据库应用程序的开发是一项愉快且有回报的活动。我们相信:在将来数据库的数量、大小和重要性会不断增加而该领域也越来越重要。希望本书介绍的概念、知识和技术帮助学生成功地参与到现在和多年后的数据库项目中。 对第4版的改进 本版最重要的改进是在全文和“Access工作台”每个部分都使用了Access 2010。由于推出了Microsoft Office 2010本书做了更新以反映该产品中的变化。当然我们还更新了本书所有其他产品的信息尤其是本版使用Windows 7操作系统来演示本书中的应用程序MySQL工作台现在是MySQL数据库开发的GUI。 我们继续保持并改进了本书前几版引入的几个特性: ● 在每章中使用“Access工作台”介绍Microsoft Access的基础知识。 ● 介绍SQL Server 2008 R2 Express版(附录A)和Oracle MySQL Community Server 5.1(附录B)的用法。附录A和附录B包含在本书配书光盘中。 ● 使用示例数据集充分开发了在本书各个部分中使用的三个示例数据库:Wedgewood Pacific Corporation、Heather Sweeney Designs和Wallingford Motors。 ● 在Web数据库处理主题中使用PHP脚本语言和Eclipse IDE。 ● 扩充介绍了XML。 ● 扩充介绍了商业智能(BI)系统。 ● 介绍了多维数据库模型 本版继续使用之前版本增加的较为有效的规范化讨论使用一个四步过程来演示规范化关系的规定步骤。这种方法不仅简化了规范化任务而且使规范化原理更易于理解因此当前版本仍沿用了这一方法。教师如需更多了解范式可参考第5章中介绍的大多数范式的简短定义。 本书概要 本书包括8章和5个附录(附录内容包含在本书配书光盘中)。第1章解释了使用数据库的原因、数据库各个组件和开发方法。学生将学习数据库及其应用程序的用途、数据库相对于电子表格列表的差别和优势。第2章介绍了关系模型定义了基本的关系术语还介绍了规范化原则的基本概念并描述了规范化过程。 第3章讲述了基本的SQL语句介绍了定义数据的基本SQL语句SQL SELECT语句和数据修改语句。本书并不介绍高级的SQL语句只讲述基本语句。 接下来的两章讨论了数据库设计。第4章使用实体-关系(E-R)模型解决数据建模问题其中包括对数据建模的需求、基本的E-R术语和概念并提供了一个简短的E-R建模示例应用程序(Heather Sweeney Designs)。第5章讲述了数据库设计解释了规范化的基本概念。第4章示例中的数据模型在第5章中则被转换为关系设计。 最后三章讨论了数据库管理以及数据库在应用程序中的使用。第6章概述了数据库管理构建了一个作为功能数据库的示例数据库并用作讨论数据库管理需求的示例。本章探讨了并发控制、安全性、备份及恢复技术数据库管理主题很重要因为它适用于所有数据库即使是个人或单用户数据库也是如此。事实上在某些方面这些主题对于小型数据库更重要因为它们没有专业的数据库管理员来确保关键任务的执行。第6章也讨论了分布式数据库和面向对象的数据库。 第7章介绍了使用基于Web的数据库处理包括开放数据库连接(ODBC)和PHP脚本语言的使用。本章也讨论了可扩展标记语言(XML)的出现和基本概念。 第8章介绍了商业智能(BI)系统和支持它们的数据仓库体系结构还讨论了多维数据库解释了如何为Heather Sweeney Designs建立多维数据库并使用它生成PivotTable OLAP报表。 附录A提供了SQL Server 2008 R2 Express版的简介附录B则提供了MySQL 5.1的类似介绍。在每章的“Access工作台”中都包括了对Microsoft Access的介绍。附录C介绍了系统分析与设计可以为第4章(数据建模)和第5章(数据库设计)提供参考。附录D简要介绍了Microsoft Visio 2010可用作数据建模(第4章)和数据库设计(第5章)的工具。另一个有效的数据库设计工具是MySQL工作台其用法参见附录B。最后附录E给出了启动和运转Microsoft IIS Web服务器、PHP和Eclipse PHP开发工具(PDT)的详细指导这些将有助于我们更好地学习第7章。 在快速变化的环境下保持最新 为使数据库的概念在各版中保持最新我们将根据需要在本书的网站(www.pearsonhighered .com/kroenke)上贴出更新表。例如发布Office 2007后我们就贴上了Access 2007的内容在课堂上使用Access 2007的教师就会有“Access工作台”部分和PowerPoint幻灯片的所需版本。教师资源和学生资料也可以从网站上获得所以应时常浏览本书的网站。
数据库系统概论 第5版_完整版 PDF电子书下载 带书签目录.pdf 编辑推荐   《数据库系统概论(第5版)》特色:   我国第一部系统阐述数据库原理、技术和方法的教材适时反映数据库领域新成果和应用新方向内容丰富概念准确结构完整语言精练具有较强的可读性与教学适用性。   从出版至今已被全国多所高校采用曾获国家优秀教材奖和全国高等学校优秀教材一等奖。对推动我国数据库教育的发展做出了重要贡献。   提供与教材配套的数字课程网站包含电子教案、教学视频、动画演示及习题解析等内容同时配有教辅用书《数据库系统概论(第5版)实验指导与习题解析》。 内容简介   《数据库系统概论(第5版)》第1版于1983年出版至今已修订至第5版。第5版被列入“十二五”普通高等教育本科国家规划教材。相应课程于2004年被评为北京市精品课程2005年被评为国家精品课程2014年被批准为国家精品资源共享课。   《数据库系统概论(第5版)》系统全面地阐述了数据库系统的基础理论、基本技术和基本方法。全书分为4篇16章。第一篇基础篇包括绪论、关系数据库、关系数据库标准语言SQL数据库安全性和数据库完整性共5章;第二篇设计与应用开发篇包括关系数据理论、数据库
©️2020 CSDN 皮肤主题: 数字20 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值