商家名称 | 信用等级 | 购买信息 | 订购本书 |
数据库原理(第3版) [平装] | |||
数据库原理(第3版) [平装] |
《数据库原理(第3版)》书中介绍了在成功管理数据库系统的基本概念,包括:关系模型的基本原理、结构化查询语言(SQL)、数据建模、数据库设计、数据库管理、Web数据库处理。
David M.Kroenke,在1967年作为Rand Corporation公司的实习生时进入了计算行业,在此之后,他的职业生涯涉及教育、工业、顾问和出版等领域。
Kroenke曾经在科罗拉多州立大学、西雅图大学教学,目前在华盛顿大学教学。在多年的教学生涯中,他组织了数十次由大学教授参加的教学研讨会。在1991年,International Association ofInformation System授予他“年度计算机教育家”的荣誉称号。
在工业方面,Kroenke曾经为美国空军和波音计算机服务工作,并且负责创立了个公司。他也曾经是Microrim公司负责产品销售和开发的副主席,并且是Wall Data公司在数据库划分方面的首席技术专家。Kroenke是语义对象数据模型的创始者,他所拥有的咨询客户包括mM公司、Microsoft、Computer Sciences公司,以及许多其他的公司和组织。
Kroenke的著作Database Processing最初出版于1977年,现在已经是第10版。 Kroenke也出版了其他许多书籍,包括经典的Business Compu~~r Systems(198i)。他最近编写的书籍是UsingMIS的第1版。出于对成为海员的渴望,Kroenke也编写了KnowYour Boat:The Guide tOEverything ThatMakes YourBoat Work。Kroenke现居住在华盛顿州的西雅图市,他结过婚,有两个孩子和两个外孙。
David J.Auer目前是西华盛顿大学的College of Business and Economics(CBE)信息系统和技术服务的主管,并且是CBE的决策科学部门的讲师。他从1981年开始在CBE中任教,教授的课程包括Quantitative Methods、Production and Operations Management、Statistics、Finance and Management Information Systems。在1994年,他受雇于目前的CBE职位。除了管理CBE的计算机、网络和其他技术资源之外,他还教授Management Information System课程。Auer负责教授Principles ofManagement Information Systems and Business Database Development课程,并且负责拓展CBE的网络基础结构课程,包括计算机硬件和操作系统、远程通信和网络管理。Auer已经和其他人合作编写了一些与MIS相关的书籍。
Auer在华盛顿大学获得了英语文学学士学位,在西华盛顿大学获得了数学和经济学学士学位,并且在西华盛顿大学获得经济学硕士学位和辅导心理学硕士学位。Auer是美国空军军官,他还作为组织开发专家和治疗专家为Employee Assistance Program(EAP)工作。Auer和妻子Donna居住在华盛顿州的贝灵汉市,他是当地计划委员会(Planning Commission)的成员,并且积极参与社团成长和发展的相关问题。他有两个孩子和3个外孙。~
第Ⅰ部分 基础知识
第1章 数据库简介3
1.1 使用数据库的原因4
1.1.1 关于列表的问题4
1.1.2 使用关系数据库7
1.1.3 关系表的处理13
1.2 数据库系统的概念14
1.2.1 数据库15
1.2.2 DBMS16
1.2.3 应用程序18
1.2.4 个人数据库系统和企业数据库系统的比较20
1.3 Access工作台:第1部分——熟悉Microsoft Access22
1.3.1 创建Access数据库23
1.3.2 创建数据库表26
1.3.3 在表中插入数据——数据表视图34
1.3.4 修改表中的数据——数据表视图37
1.3.5 删除表中的行——数据表视图38
1.3.6 在表中插入数据——使用表单40
1.3.7 修改数据和删除记录——使用表单44
1.3.8 创建一个表的Access报表44
1.3.9 关闭数据库并退出Access47
1.4 小结48
1.5 复习题49
1.6 练习题50
1.7 Access工作台练习题51
1.8 Garden Glory项目问题52
1.9 James River珠宝行项目问题52
1.10 Queen Anne Curiosity商店项目问题53
第2章 关系模型55
2.1 关系56
2.1.1 一个关系示例与两个非关系示例57
2.1.2 显示关系结构的说明58
2.1.3 术语说明59
2.2 键的类型59
2.2.1 复合键60
2.2.2 候选键与主键60
2.2.3 代理键63
2.2.4 外键与参照完整性约束64
2.3 NULL值的问题68
2.4 函数依赖与规范化68
2.4.1 函数依赖69
2.4.2 再论主键与候选键70
2.4.3 规范化71
2.4.4 关系设计原则72
2.4.5 规范化过程72
2.4.6 规范化的示例74
2.5 Access工作台:第二部分——在Microsoft Access中操作多个表79
2.5.1 WMCRM数据库中可能的修改问题80
2.5.2 操作多个表84
2.5.3 创建表之间的关系86
2.5.4 使用包括两个表的表单90
2.5.5 创建包括两个表中数据的报表91
2.5.6 关闭数据库并退出Access92
2.6 小结93
2.7 复习题94
2.8 练习题95
2.9 Access工作台练习题96
2.10 Garden Glory项目问题99
2.11 James River Jewelry珠宝行项目问题100
2.12 Queen Anne Curiosity商店项目问题101
第3章 结构化查询语言105
3.1 示例数据库106
3.2 用于数据定义的SQL语句110
3.2.1 使用表约束定义主键115
3.2.2 使用表约束定义外键116
3.2.3 向DBMS提交SQL语句118
3.3 插入关系数据的SQL语句121
3.4 SQL关系查询语句124
3.4.1 SQL SELECT/FROM/WHERE架构124
3.4.2 从单个表中读取指定列125
3.4.3 从单个表中读取指定行127
3.4.4 从单个表中读取指定行和指定列129
3.4.5 在WHERE子句中指定范围、使用通配符和空值131
3.4.6 对结果进行排序134
3.4.7 SQL内置函数和计算135
3.4.8 内置函数和分组138
3.4.9 使用子查询处理多个表139
3.4.10 使用连接查询多个表141
3.4.11 SQL JOIN…ON语法145
3.4.12 外部连接148
3.5 修改和删除关系数据的SQL语句150
3.5.1 修改数据150
3.5.2 删除数据1523.6 修改和删除表和约束的SQL语句153
3.6.1 DROP TABLE和ALTERTABLE语句153
3.6.2 CHECK约束154
3.7 SQL视图155
3.8 Access工作台:第三部分——在Microsoft Access中使用查询155
3.8.1 使用Microsoft Access SQL156
3.8.2 使用Microsoft Access QBE160
3.8.3 使用Microsoft Access 参数查询165
3.8.4 使用Microsoft Access SQL创建表166
3.8.5 修改Access表以添加Access SQL不支持的数据需求169
3.8.6 使用Microsoft Access SQL插入数据174
3.8.7 使用Access SQL添加参照完整性约束177
3.8.8 修改Access数据库以添加Access SQL不支持的约束178
3.8.9 关闭数据库并退出Access180
3.9 小结181
3.10 复习题182
3.11 练习题184
3.12 Access工作台练习题186
3.13 Garden Glory项目问题189
3.14 James River珠宝行项目问题190
3.15 Queen Anne Curiosity商店项目问题192
第Ⅱ部分 数据库设计和管理
第4章 数据建模与实体-关系模型197
4.1 需求分析阶段198
4.2 实体-关系数据模型199
4.2.1 实体199
4.2.2 属性200
4.2.3 标识符200
4.2.4 关系201
4.3 实体-关系图204
4.3.1 E-R模型的不同版本205
4.3.2 数据建模产品中E-R模型的变化205
4.3.3 弱实体207
4.3.4 ID依赖实体207
4.3.5 非标识符依赖的弱实体209
4.3.6 子类实体212
4.3.7 递归关系213
4.4 开发E-R图示例214
4.4.1 Heather Sweeney Designs公司的数据库214
4.4.2 培训课的客户列表214
4.4.3 给客户的信函模板216
4.4.4 销售发货单219
4.4.5 属性说明222
4.4.6 业务规则224
4.4.7 验证数据模型224
4.5 Access工作台:第四部分——使用Microsoft Access来开发原型225
4.5.1 为原始的数据模型创建表单模型226
4.5.2 为修改过的数据模型创建表单原型228
4.5.3 Access的Banded Form and Report Editors230
4.5.4 关闭数据库并退出Access231
4.6 小结231
4.7 复习题232
4.8 练习题234
4.9 Access工作台练习题234
4.10 Garden Glory项目问题235
4.11 James River Jewelry项目问题235
4.12 Queen Anne Curiosity 商店项目问题236
第5章 数据库设计239
5.1 把数据模型转换为数据库的设计方案240
5.2 使用关系模型表示实体241
5.2.1 ITEM实体的表示241
5.2.2 CUSTOMER实体的表示243
5.2.3 SALES-COMMISSION实体的关系设计246
5.2.4 弱实体的表示247
5.3 关系的表示251
5.3.1 强实体中的关系251
5.3.2 使用了弱实体的关系258
5.3.3 子型实体关系的表示259
5.3.4 递归关系的表示260
5.4 Heather Sweeney Designs公司的数据库设计264
5.4.1 弱实体265
5.4.2 关系265
5.4.3 强制参照完整性266
5.5 Access工作台:第五部分——Microsoft Access中的关系268
5.5.1 Access中的多对多关系268
5.5.2 Access中的一对一关系268
5.5.3 关闭数据库并退出Access273
5.6 小结273
5.7 复习题274
5.8 练习题276
5.9 Access工作台练习题276
5.10 Garden Glory公司项目问题277
5.11 James River珠宝行项目问题277
5.12 Queen Anne Curiosity商店项目问题278
第6章 数据库管理279
6.1 Heather Sweeney Designs公司的数据库280
6.2 并发控制287
6.2.1 使用原子事务的必要性287
6.2.2 并发事务处理288
6.2.3 丢失更新问题289
6.2.4 并发问题:脏读取、不可重复读取和幻象读取290
6.2.5 资源锁定290
6.2.6 串行化事务292
6.2.7 死锁292
6.2.8 乐观锁定和悲观锁定293
6.2.9 声明锁定特征294
6.2.10 一致事务295
6.2.11 事务隔离级别296
6.3 游标类型297
6.4 数据库安全298
6.4.1 用户账户299
6.4.2 处理权限和责任300
6.4.3 DBMS级别的安全304
6.4.4 应用程序级别的安全305
6.5 数据库备份与恢复306
6.5.1 通过重新处理进行恢复306
6.5.2 通过回滚和前滚进行恢复307
6.5.3 DBA的其他职责310
6.6 分布式数据库的处理310
6.6.1 分布式数据库的类型310
6.6.2 分布式数据库面临的挑战312
6.7 对象-关系数据库313
6.8 Access工作台:第六部分——Microsoft Access中的数据库管理313
6.8.1 Access中的数据库安全314
6.8.2 受保护数据库的使用322
6.8.3 受保护数据库的管理324
6.8.4 关闭数据库并退出Access324
6.9 小结324
6.10 复习题326
6.11 练习题328
6.12 Access工作台练习题329
6.13 Garden Glory项目问题330
6.14 James River珠宝行项目问题331
6.15 Queen Anne Curiosity商店项目问题332
第7章 数据库处理应用程序和商业智能335
7.1 数据库处理的环境336
7.1.1 查询、表单和报表337
7.1.2 客户机/服务器以及传统的应用程序处理339
7.1.3 存储过程和触发器339
7.2 Web数据库处理340
7.2.1 ODBC342
7.2.2 使用IIS进行Web处理345
7.2.3 Active Server Pages(ASP)349
7.2.4 Active Data Objects(ADO)352
7.2.5 Web数据库处理面临的挑战358
7.3 数据库处理和XML358
7.3.1 XML模式文件359
7.3.2 XML和数据库处理360
7.3.3 XML Web Services362
7.4 商业智能系统363
7.5 Access工作台:第七部分:使用Microsoft Access进行Web数据库处理367
7.5.1 Wallingford Motors的Web主页367
7.5.2 选择数据库文件369
7.5.3 创建ODBC数据源370
7.5.4 创建客户联系方式的视图371
7.5.5 创建ASP页面372
7.5.6 运行ASP页面374
7.5.7 关闭374
7.6 小结375
7.7 复习题376
7.8 练习题378
7.9 Access工作台练习题380
7.10 Garden Glory公司项目问题381
7.11 James River Jewelry珠宝行项目问题381
7.12 Queen Anne Curiosity商店项目问题382
附录A Microsoft SQL Server 2005 Express Edition简介383
附录B MySQL简介395
附录C SQL视图409
术语表427
Colin Johnson是西雅图一家小型制造厂的产品管理员。几年前,Colin计划构建一个数据库来跟踪产品包中的产品。开始时,他运用电子制表软件来完成这一工作,却无法通过该表获取所需的报表。Colin听说了Microsoft Access,希望该软件能解决问题。经过几天的尝试,他发现无法掌握Access的使用方法,于是购买了一些流行的Access书籍并努力学习。不过最终他还是放弃了,后来他聘请了一个顾问,该顾问创建了一个大致可满足Colin要求的应用程序。一段时间以后,Colin想对此应用程序作一些改动,但他却不敢进行这样的尝试。
Colin是个成功的商人,他能够主动地去实现他的目标。作为一个老练的Windows用户,他可以通过自学掌握Excel、PowerPoint以及大量面向产品的应用程序。但他在使用Access来解决问题时却停滞不前。Colin认为“我确信我可以做到,但我没有更多的时间”。这样的事件非常引人注目,因为在过去的10年内上演了无数次。
Microsoft Corporation、Oracle和其他数据库管理系统(DBMS)厂商都意识到了这一情况,他们投入了数百万美元来创建更好的图形用户界面、数以百计的多窗格向导,以及众多示例应用程序。遗憾的是,这样的努力无法从根本上解决问题。事实上,许多用户并不清楚向导可以实现哪些功能。一旦这些用户需要修改数据结构或是组件(例如,窗体和查询),就会陷入麻烦中,这令他们措手不及。如果不了解底层结构,这些用户就只能绞尽脑汁,却徒劳无功。最终也只能得到一些设计糟糕的数据库和应用程序,而无法满足用户的要求。
那么为什么像Colin这样的用户可以学会使用文字处理软件或电子数据表这样的产品,却无法学会使用DBMS产品呢?其中一个主要原因就是许多人都不熟悉数据库的基本概念。每个人可能都知道段落和边距,却无法理解关系的概念。其次,他们可能觉得使用DBMS产品一定比了解数据库概念本身更容易。“我们想做的只是跟踪一些内容,为什么实现起来却这么困难?”如果不了解关系模型,在存储数据之前将一张销售发票分成5个单独的表就可能使业务用户感到迷惑。
基本概念
当今的技术特点是如果不学习基本概念,那么就不可能成功地利用DBMS。凭借多年来为业务用户开发数据库的经验,我认为数据库的基本概念主要包括以下内容:
● 关系模型的基本概念
● 结构化查询语言(SQL)
● 数据建模
● 数据库设计
● 数据库管理
由于当前Internet和World Wide Web的广泛使用,因此可以增加一个更为基本的概念:
● Web数据库处理
像Colin这样的用户(或是将接受类似工作的学生)不需要像信息系统专家那样深入地了解这些主题。因此,《数据库原理》只介绍了一些基本的概念——这些内容对于像Colin这样的用户(创建和使用小型数据库的用户)来说至关重要。我已经在Database Processing: Fundamentals, Designs, and Implementation一书中重写、简化和删除了一些内容1。 不过在《数据库原理》中,也力求讨论准确,不会产生误导。即使学生们已学习过更高级的数据库课程,也仍然可从《数据库原理》中获益。
独立于DBMS产品的概念
《数据库原理》假设学生没有使用过任何特定的DBMS产品。《数据库原理》通过Microsoft Access、SQL Server 2005 Express Edition和MySQL 5.0举例说明了数据库概念,从而使学生可以将这些产品作为工具使用,并且实际地尝试练习书中的内容,但是,所有的概念都适合于DBMS产品。通过这种方式,学生们可以理解所有数据库的基础知识—— 从小型的Access数据库到大型的Oracle或DB2数据库。
而且这一方法也避免了一个常见的问题。在同时介绍概念和产品时,学生容易将概念与产品特性、功能相混淆。例如参照完整性约束。在讲授基础理论时,学生都知道在某些情况下,一个表中的列值必须总是由另一个表中的列值提供。学生也将知道这一约束如何出现在关系定义的上下文中,以及DBMS或应用程序如何强制执行这一约束。如果结合具体的DBMS教学,如Access,那么学生将学到的知识就可能是:在某些情况下选取复选框,而在其他情况下不选取的具体操作。这样很容易导致在介绍产品特性的同时,使学生们淡忘了数据库的基本理论。
然而这并不是说在《数据库原理》中将不使用DBMS。相反,学生们可以通过使用企业版DBMS产品来熟悉这些基本概念。《数据库原理》的这一版本包括了关于Access、SQL Server 2005 Express Edition和MySQL 5.0的充分的基本信息,从而使您可以在不借助其他书籍或资料的情况在课堂上介绍这些产品。《数据库原理》深入介绍了Access,因为它是在个人数据库方面非常流行的产品(并且包括在Microsoft Office Professional应用程序套件中)。通过学习这些Access相关知识,学生可以完成书中介绍的所有数据库任务,并且可能胜任一些课程的学习。然而,如果希望深入介绍特定的DBMS或使用《数据库原理》中没有介绍的DBMS产品,则需要提供额外的书籍或资料。Prentice-Hall提供了有关Microsoft Access 2003和其他DBMS产品的大量辅助读物,可以结合《数据库原理》一起学习。
Access工作台
《数据库原理》前面的版本在附录中介绍了Access。Access广泛用于初级数据库课程,因此这一版本介绍了如何使用Access的更多信息。每一章都带有一个“Access工作台”部分,其中使用Access举例说明了本章的概念和技术。“Access工作台”的第一部分介绍了如何创建数据库和简单的表,到最后的第七部分则介绍了针对Access数据库的Web数据库处理。“Access工作台”的作用不是全面地介绍Access,而是介绍包括了所有必要的基础Access主题,从而使学生可以有效地构建并使用Access数据库。
复习题、练习题和实践项目
学生能否学会最终运用所学的知识非常重要,因此每章都提供了一些复习题、练习题(包括针对“Access工作台”的练习题)和3个贯穿《数据库原理》始终的项目。如果学生阅读并理解了每一章的内容,就应该能知道复习题的答案。练习题要求学生将每章所讲的概念应用到具体的小问题或任务中。
第一个项目Garden Glory介绍了一个向个人或企业提供园艺服务的合伙公司的数据库,并讨论了该数据库的开发和使用。第二个项目James River珠宝行分析了一家零售店为支持针对的购买者而设计的程序的数据库需求。第三个项目Queen Anne Curiosity商店介绍了零售商店的销售和库存需求。《数据库原理》的所有章节和附录C中都包括了这3个项目。在每个实例中,都要求学生将各章中学到的知识运用到项目中去。教师们可以填写《数据库原理》最后的调查表向培生出版集团驻北京代表处领取教学支持资料,其中包括与《数据库原理》相关的一些数据库和示例数据。在过去30多年中,我们已经发现数据库和数据库应用程序的开发是一项令人愉快和有益的活动。我们相信:数据库的数量、大小和重要性会在将来不断增加,并且该领域将越来越显示其突出的地位。我们希望《数据库原理》中介绍的概念、知识和技术将帮助学生成功地参与到现在和多年以后的数据库项目构建中。
对第2版的改进
主要的改动如下:
● 介绍了SQL视图(附录C)。
● 介绍了子类型/子类型实体(第4章和第5章)。
● 使用了IE Crow’s Foot E-R图而不是UML E-R模型以方便用户使用,并且与Database Processing的第10版保持一致(第4章和后面的章节)。
● 重新安排了第6章和第7章中的主题——在第6章中作为数据库管理的一部分介绍了分布式数据库和面向对象的数据库。
● 附带介绍了基于Web的数据库处理,包括创建Web页面的特定步骤和代码示例,这些Web页面显示存储在数据库中的数据(第7章)。
● 介绍了商业智能(BI)系统的概念(第7章)。
● 在每章和附录C中使用“Access工作台”介绍Access的基础知识。
● 介绍SQL Server 2005 Express Edition(附录A)和MySQL 5.0(附录B)的使用。
此外,使用示例数据集充分地开发了在《数据库原理》各个部分中使用的3个示例数据库——在每一章中使用的Wedgewood Pacific Corporation和Heather Sweeney Designs,以及在“Access工作台”中使用的Wallingford Motors。这些数据库的使用提供了全书各个章节之间概念示例的连续性,并且使学生可以创建实际的数据库以试验每章中讨论的主题。