书籍详情

数据库原理(第2版)

数据库原理(第2版)

作者:(美)David M. Kroenke著;郭平译;郭平译

出版社:清华大学出版社

出版时间:2005-06-01

ISBN:9787302105817

定价:¥29.00

购买这本书可以去
内容简介
  ColinJohnson是西雅图一家小型制造厂的产品管理员。几年前,Colin计划构建一个数据库来跟踪产品包中的产品。一开始,他运用电子制表软件来完成这一工作,却无法通过该表获取所需的报表。Colin听说了MicrosoftAccess,希望该软件能解决问题。经过几天的尝试,他发现无法掌握Access的使用方法,于是购买了一些流行的Access书籍并努力学习。不过最终他还是放弃了,于是他聘请了一个顾问,该顾问创建了一个大致可满足Colin要求的应用程序。一段时间以后,Colin想对此应用程序作一些改动,但他却不敢作这样的尝试。Colin是个成功的商人,他能够主动地去实现他的目标。作为一个老练的Windows用户,他可以通过自学掌握Excel、PowerPoint以及大量面向产品的应用程序。但他在使用Access来解决问题时却停滞不前。Colin认为“我确信我可以做到,但我没有更多的时间”。这样的事件非常引人注目,因为在过去的10年内上演了无数次。Microsoft、Oracle和其他数据库管理系统(DBMS)厂商都意识到了这一情况,他们投入了数百万美元来创建更好的图形界面、数以百计的多面板向导,以及众多示例应用程序。遗憾的是,这样的努力无法从根本上解决问题。事实上,许多用户并不清楚向导可以实现哪些功能。一旦这些用户需要修改数据结构或是组件(例如窗体和查询),就会陷入麻烦中,这令他们措手不及。如果不了解底层结构,这些用户就只能绞尽脑汁,却徒劳无功。最终也只能得到一些设计糟糕的数据库和应用程序,而无法满足用户的要求。那么为什么像Colin这样的用户可以学会使用文字处理软件或电子数据表这样的产品,却无法学会使用DBMS产品呢?其中一个主要原因就是许多人都不熟悉数据库的基本概念。每个人可能都知道段落和边距,却无法理解关系的概念。其次,他们可能觉得使用DBMS产品一定比了解数据库概念本身更容易。“我们想做的只是跟踪一些内容,为什么实现起来却这么困难?”如果不了解关系模型,在存储数据之前将一张销售发票分成5个单独的表就可能使业务用户产生迷惑。基本概念当今的技术特点是如果不学习基本概念,那么就不可能成功地利用DBMS。凭借多年来为业务用户开发数据库的经验,我认为数据库的基本概念主要包括以下内容:●关系模型的基本概念●结构化查询语言(SQL)●数据建模●数据库设计●数据库管理像Colin这样的用户(或是将接受类似工作的学生)不需要像信息系统专家那样深入地了解这些主题。因此,本书只介绍了一些基本的概念——这些内容对于像Colin这样的用户(创建和使用小型数据库的用户)来说至关重要。我已经在DatabaseProcessing一书中重写、简化和删除了一些内容1。不过在本书中,也力求讨论准确,不会产生误导。即使学生们已学习过更高级的数据库课程,也仍然可从本书中获益。独立于DBMS产品的概念本书假设学生没有使用过任何特定的DBMS产品。虽然附录中介绍了如何使用Access,但所有的概念都适合于DBMS产品。通过这种方式,学生们可以理解所有数据库的基础知识——从小型的Access数据库到大型的Oracle或DB2数据库。而且这一方法也避免了一个常见的问题。在同时介绍概念和产品时,学生容易将概念与产品特性、功能相混淆。例如参照完整性约束。在讲授基础理论时,学生都知道在某些情况下,一个表中的列值必须总是由另一个表中的列值提供。学生也将知道这一约束如何出现在关系定义的上下文中,以及DBMS或应用程序如何强制执行这一约束。如果结合具体的DBMS教学,如Access,那么学生将学到的知识就可能是:在某些情况下选取复选框,而在其他情况下不选取的具体操作。这样很容易导致在介绍产品特性的同时,使学生们淡忘了数据库的基础理论。然而这并不是说在本书中将不使用DBMS。相反,学生们可以通过使用企业版DBMS产品来熟悉这些基本概念。本书假定您将参阅其他书籍或资料来学习如何使用DBMS的特性和功能,Prentice-Hall提供了有关MicrosoftAccess2003的大量辅助读物,可以结合本书一起学习。复习题、练习题和实践项目学生能否学会最终运用所学的知识非常重要,因此每章都提供了一些复习题、练习题和三个贯穿本书始终的项目。如果学生阅读并理解了每一章的内容,就可以知道复习题的答案。练习题要求学生将每章所讲的概念应用到具体的小问题或任务中。第一个项目GardenGlory介绍了一个向个人或企业提供园艺服务的合伙公司的数据库,并讨论了该数据库的开发和使用。第二个项目JamesRiver珠宝行分析了一家零售店为支持针对的购买者而设计的程序的数据库需求。第三个项目介绍了Mid-Western大学化学系实验设备的调度。本书的所有章节和附录中都包括了这3个项目。在每个实例中,都要求学生将各章中学到的知识运用到项目中。教师们将从教师手册中获得有关这些项目的使用的更多信息,可以从Web站点(www.prenhall.com/kroenke)的教师专区获取相关数据库和示例数据。对第1版的改进与第1版相比,本书主要有两点改进。首先,关于规范化化的讨论已经转向于如何为关系的规范化提供说明性的过程。在本书的第1版中就曾经介绍过规范化的原则,但将原则的应用留给了学生。本版的第2章介绍了学生使用规范化的4个步骤。这一改变不仅可以使规范化更加简单,还可以使规范化的原则更易于理解。其次,新添的第7章介绍了如下高级主题的概述。●Web数据库处理●使用XML处理数据库●分布式数据库处理●OLAP和数据挖掘●对象关系数据库管理所有这些讨论的目的都只是将这些主题的本质介绍给学生,从而增强学生的数据库基本知识,并且鼓励他们在重要的主题领域继续努力学习。主要内容本书共包括7章和1个附录。第1章解释了使用数据库的原因、数据库的组成以及开发数据库的方法。学生们将学习数据库及其应用程序的用途、数据库相对于电子表格列表的差别和优势。第2章介绍了关系模型,定义了基本的关系术语,同时还介绍了规范化原则的基本概念,并描述了规范化过程。第3章讲述了基本的SQL语句。描述了定义数据的基本SQL语句,如SQLSELECT和数据修改语句。本书并不介绍高级的SQL语句,只讲述一些核心的语句。接下来的3章讨论了数据库设计和管理。第4章使用实体-关系(E-R)模型解决数据建模问题,其中包括对数据建模的需求、基本的E-R术语和概念,还提供了一个简短的E-R建模示例应用程序。第5章讲述了数据库设计,解释了规范化的基本概念。第4章示例中的数据模型在第5章中则被转换为关系设计。第6章讨论了数据库管理。该章讲述了数据库管理的需求,概述了并发控制、安全性和备份恢复技术。这些主题对所有的数据库都很重要,对个人的单用户数据库也是如此。事实上,这些主题在某些方面对于私人数据库更为重要,因为它们没有专业的数据库管理员来确保关键任务的执行。最后,第7章介绍了前面所描述的高级主题。在附录中介绍了MicrosoftAccess。这一简短的介绍可以帮助学生结合Access技术文档文件创建简单的数据库和应用程序组件。回顾与展望在过去的30多年中,我发现数据库和数据库应用程序的开发是一项令人愉快、有益的工作。我相信,未来数据库的数量、大小以及重要性都将有大幅度的提高,该领域将取得更大的成就。在此希望本书中所提及的概念、知识和技术有助于学生更好地进行数据库项目的开发。
作者简介
  DavidM.Kroenke是数据库技术的开发先驱,曾开发出世界上第一个数据库管理系统(DBMS)产品,并领导开发了R:base系列产品。此外,他还担任过Microsoft公司Access项目的顾问,同时也是语义对象模型的创始人。相关图书C++精解和程序设计(第4版)程序设计抽象思想:C语言描述C++简明教程精通Office商务应用完美C++教程信息技术基础(第3版)C语言教程:模块化程序设计(第2版)TCP/IP网络互联技术(卷3):客户-服务器编程与应用(Windows套接字版)
目录
第Ⅰ部分 数据库基础
第1章 数据库简介 3
1.1 使用数据库的原因 3
1.1.1 关于列表的问题 4
1.1.2 使用关系数据库 6
1.1.3 关系表的处理 11
1.2 数据库系统的概念 12
1.2.1 数据库 13
1.2.2 DBMS 14
1.2.3 应用程序 15
1.2.4 桌面数据库系统和企业数据库系统的比较 18
1.3 小结 20
1.4 复习题 21
1.5 练习题 22
1.6 Garden Glory项目 23
1.7 James River珠宝行项目 23
1.8 Mid-Western大学化学系项目 24
第2章 关系模型 25
2.1 关系 25
2.1.1 关系与非关系的示例 26
2.1.2 术语说明 27
2.2 键的类型 28
2.2.1 复合键 29
2.2.2 主键与候选键 29
2.2.3 外键与参照完整性约束 30
2.2.4 代理键 33
2.3 函数依赖与规范化 36
2.3.1 函数依赖 36
2.3.2 再论主键与候选键 38
2.3.3 规范化 38
2.3.4 关系设计原则 39
2.3.5 规范化过程 40
2.3.6 规范化的示例 42
2.4 空值问题 47
2.5 小结 48
2.6 复习题 49
2.7 练习题 51
2.8 Garden Glory项目 51
2.9 James River珠宝行项目 53
2.10 Mid-Western大学化学系项目 54
第3章 结构化查询语言 57
3.1 示例数据库 57
3.2 用于数据定义的SQL语句 59
3.2.1 使用表约束定义主键 61
3.2.2 使用表约束定义外键 62
3.2.3 向DBMS提交SQL语句 63
3.2.4 DROP语句 64
3.3 SQL关系查询语句 64
3.3.1 从单个表中读取指定列 65
3.3.2 从单个表中读取指定行 66
3.3.3 从单个表中读取指定行和指定列 67
3.3.4 在WHERE子句中指定范围、使用通配符和空值 68
3.3.5 对结果进行排序 70
3.3.6 SQL内置函数 71
3.3.7 内置函数和分组 73
3.3.8 使用子查询处理多个表 74
3.3.9 使用连接处理多个表 75
3.3.10 外部连接 78
3.4 修改关系数据的SQL语句 80
3.4.1 插入数据 80
3.4.2 修改数据 81
3.4.3 删除数据 81
3.5 小结 82
3.6 复习题 83
3.7 练习题 85
3.8 Garden Glory项目 86
3.9 James River珠宝行项目 87
3.10 Mid-Western大学化学系项目 88
第Ⅱ部分 数据库设计和管理
第4章 数据建模与实体-关系模型 93
4.1 需求分析阶段 94
4.2 实体-关系数据模型 94
4.2.1 实体 95
4.2.2 属性 96
4.2.3 标识符 96
4.2.4 关联 96
4.2.5 二元关联的3种类型 97
4.2.6 递归关联 98
4.2.7 实体-关系图 98
4.2.8 弱实体和ID依赖实体 99
4.3 UML实体-关系模型 101
4.3.1 UML形式的实体和关系 101
4.3.2 UML形式的弱实体 102
4.4 开发E-R图示例 102
4.4.1 Heather Sweeney Designs公司的数据库 103
4.4.2 培训课的客户列表 103
4.4.3 给客户的信函模板 105
4.4.4 销售发货单 107
4.4.5 属性说明 111
4.4.6 业务规则 111
4.4.7 验证数据模型 111
4.5 小结 112
4.6 复习题 113
4.7 练习题 114
4.8 Garden Glory项目 114
4.9 James River珠宝行项目 115
4.10 Mid-Western大学化学系项目 115
第5章 数据库设计 117
5.1 用关系模型表示实体 117
5.1.1 ITEM实体的表示 117
5.1.2 CUSTOMER实体的表示 118
5.1.3 非规范化 119
5.1.4 SALES-COMMISSION实体的关系设计 120
5.1.5 弱实体的表示 122
5.2 关联的表示 123
5.2.1 一对一关联的表示 123
5.2.2 存在问题的一对一关联 125
5.2.3 一对多关联的表示 126
5.2.4 多对多关联的表示 128
5.2.5 递归关联的表示 130
5.3 Heather Sweeney Designs数据库设计 134
5.3.1 弱实体 135
5.3.2 关联 135
5.3.3 强制参照完整性 136
5.4 小结 138
5.5 复习题 138
5.6 练习题 139
5.7 Garden Glory项目 140
5.8 James River珠宝行项目 140
5.9 Mid-Western大学化学系项目 141
第6章 数据库管理 143
6.1 数据库处理环境 144
6.1.1 查询、窗体和报表 144
6.1.2 Internet应用程序处理 145
6.1.3 客户机/服务器以及传统的应用程序处理 145
6.1.4 存储过程和触发器 146
6.1.5 控制、安全和可靠性的必要性 147
6.2 并发控制 148
6.2.1 使用原子事务的必要性 148
6.2.2 并发事务处理 149
6.2.3 丢失更新问题 150
6.2.4 并发问题:脏读取、非一致读取和幻象读取 151
6.2.5 资源锁定 152
6.2.6 串行化事务 153
6.2.7 死锁 153
6.2.8 乐观锁定和悲观锁定 154
6.2.9 声明锁定特征 155
6.2.10 一致事务 156
6.2.11 事务隔离级别 157
6.3 数据库安全 158
6.3.1 处理权限和责任 158
6.3.2 DBMS安全 160
6.3.3 应用程序安全 161
6.4 数据库备份与恢复 162
6.4.1 通过重新处理恢复 163
6.4.2 通过回滚和前滚恢复 163
6.5 DBA的其他职责 167
6.6 小结 167
6.7 复习题 169
6.8 练习题 171
6.9 Garden Glory项目 171
6.10 James River珠宝行项目 172
6.11 Mid-Western大学化学系项目 173
第7章 高级主题 175
7.1 Web数据库处理 175
7.1.1 使用Active Server Pages进行Web处理 176
7.1.2 使用JSP进行Web处理 179
7.1.3 ODBC和JDBC 181
7.1.4 Web数据库处理面临的挑战 183
7.2 数据库处理和XML 183
7.2.1 XML模式文件 184
7.2.2 XML和数据库处理 185
7.2.3 XML Web Services 186
7.3 分布式数据库处理 187
7.3.1 分布式数据库的类型 187
7.3.2 分布式数据库面临的挑战 188
7.4 OLAP和数据挖掘 189
7.4.1 OLAP 190
7.4.2 数据挖掘 192
7.5 对象关系型数据库 193
7.6 小结 194
7.7 复习题 196
7.8 练习题 197
附录A 使用Microsoft Access 处理数据库 199
A.1 Carbon River Construction的数据库模式 199
A.1.1 Carbon River Construction的数据结构图 200
A.1.2 列设计 201
A.2 用Access创建表和关联 202
A.2.1 创建表 203
A.2.2 创建关联 205
A.3 创建查询和SQL语句 208
A.3.1 运用图形工具创建简单的SQL查询 208
A.3.2 操作查询 213
A.4 创建Access的数据输入窗体 215
A.4.1 创建简单的窗体 215
A.4.2 在窗体中使用默认值和组合框 217
A.4.3 查找非键值数据 221
A.5 创建Access报表 223
A.5.1 带式报表生成器 223
A.5.2 报表中的计算 226
A.5.3 参数化报表 228
A.6 小结 230
A.7 复习题 231
A.8 练习题 233
A.9 Garden Glory项目 233
A.10 James River珠宝行项目 234
术语表 237
猜您喜欢

读书导航