文档库 最新最全的文档下载
当前位置:文档库 › 数据库系统原理与设计

数据库系统原理与设计

数据库系统原理与设计

作者:万常选、廖国琼、吴京慧、刘喜平

国家级精品课程配套教材

图书详细信息:

ISBN:9787302205906

定价:38元

印次:1-3

装帧:平装

印刷日期:2011-1-7

图书简介:

全书共分12章。第1章是数据库系统基本概念;第2和第3章是关系数据库基础;第4~第6章是关系数据库设计;第7~第10章是关系数据库管理系统;第11和第12章是数据库应用开发。本书注重数据库应用与设计能力的培养,将数据库设计的内容分散在第4~第6章以及7.6节和9.6节等章节逐层推进。

本书及配套的实验教程是国家精品课程《数据库系统及应用》的建设教材,有配套的电子教案和教学网站(https://www.wendangku.net/doc/d018771738.html,/jpkc/sjk),可作为计算机及相关专业本科生的数据库系统原理课程教材,也可供数据库爱好者自学和参考。

前言:

数据库系统是计算机系统的重要组成部分,是企业、机构、互联网乃至整个信息社会赖以运转的基础,在当今社会中扮演着越来越重要的角色。正是由于数据库具有重要的基础地位,数据库理论与技术教育已成为现代计算机科学和相关学科教育中的核心部分,所有计算机及其相关专业的学生都有必要掌握和熟悉数据库理论与技术。

通过多年的数据库课程教学,我们发现学生在学习数据库课程之后,仍然不会“用”数据库--不会设计数据库,不会管理数据库,不会开发数据库应用程序。带着这些问题,我们进行了一系列的数据库课程的教学改革探索与实践,并取得了一定的成绩,如《数据库系统及应用》于2007年获得国家精品课程立项。目前,虽然数据库教材很多,但是很难找到完全适合教学需要的教材。于是,我们决定动手编写一套让学生会“用”数据库的教材,一本“够用”的教材,这便是编写本书的初衷。本书虽然不一定能完全达到目标,但至少开始了有益的尝试。

数据库技术发展至今,已经相当成熟,相关知识博大精深。本书定位于面向计算机及其相关专业本科生的第一本数据库入门教材,在内容选择上颇费思量。在构思本书之前,本书作者一直在思考:对于计算机及其相关专业的本科生来说,需要掌握哪些数据库知识?回答这个问题并不容易,这是因为数据库知识非常丰富,而且由于课时有限,学生不可能了解所有数据库知识。另外,不同用户在使用数据库时,他们的视角是不同的。数据库系统的用户大致可分为4类:数据库管理员、数据库系统分析员、数据库设计人员、数据库应用程序员及终端用户。我们认为,计算机及其相关专业的学生既可能做数据库管理员,也可能成为系统分析员和数据库设计员,更可能是数据库应用程序员。因此,作为一本数据库入门教材,必须要提供这些方面的知识,为学生以后的深入学习打下基础。

基于这些考虑,本书内容包括以下几个部分。

数据库系统基本概念(第1章)。该部分介绍了数据、数据管理、数据库、数据库管理系统和数据库系统等基本概念。同时,也介绍了数据模型、数据抽象、数据库模式等概念。 关系数据库基础(第2章和第3章)。第2章介绍了关系模型(关系数据结构、关系操作和关系完整性约束条件)以及关系代数;第3章介绍了关系数据库的标准语言--SQL,包括数据定义DDL语言、数据控制DCL语言和数据操纵DML语言。

关系数据库设计(第4章~第6章)。第4章介绍了数据库建模方法,包括实体-联系模型

基本概念、概念模型设计过程以及如何将E-R模型转化为关系模型;第5章介绍了关系数据库设计理论,着重讲述了函数依赖及规范化理论;第6章通过一个实例演示了关系数据库设计过程。

关系数据库管理系统(第7章~第10章)。第7章介绍了关系数据库物理存储结构,包括文件组织、记录组织、索引技术以及物理数据库设计;第8章介绍了查询处理技术,包括查询处理过程、各种关系操作算法以及查询优化技术;第9章讲述了数据库完整性和安全技术,包括数据库安全性、完整性的基本概念和措施,游标、存储过程和触发器,以及应用与安全设计;第10章阐述了事务管理和恢复相关技术。

数据库应用开发(第11章和第12章)。第11章介绍了数据库应用系统的体系结构、常用数据库访问技术和数据库应用开发技术;第12章介绍了Web数据库基本概念,讨论了Web 数据库访问技术,并介绍了XML数据库基本概念。

与其他教材相比,本书的主要特点如下。

①强化对关系数据库模式的理解,以模式导航图为工具,使学生深刻理解关系数据库查询原理,灵活掌握关系代数和SQL查询语言。

②以案例为驱动,通过分析应用需求来介绍数据库建模的基本方法,使学生深刻理解关系数据库设计思想,提高数据库设计能力。

③增加关系数据库物理存储结构、查询处理和查询优化等内容,一是有利于学生从底层的角度理解SQL查询,二是有利于学生更好地理解关系数据库的物理设计,三是有利于学生更好地理解关系数据库的优点和缺点。该部分内容可根据授课对象的不同有选择地教学。④从使用者的角度,以应用需求为驱动介绍数据库的事务、并发、恢复和完整性、安全性等内容。

⑤增加数据库应用开发和Web数据库技术介绍,使学生能了解数据库常用访问方法和Web 数据库的原理和实现技术,为后续学习和数据库应用开发实践打下一定的基础。

本书由万常选、廖国琼、吴京慧和刘喜平编写,其中,第1、第2、第7、第8章由万常选执笔,第4、第5、第6、第10章及7.6节、9.6节由廖国琼执笔,第3和第9章及11.1节由吴京慧执笔,第11和第12章由刘喜平执笔。万常选提出本书的编写大纲,并对全书的初稿进行了修改、补充和总纂。

本书及配套的《数据库系统原理与设计实验教程》是国家精品课程《数据库系统及应用》的建设教材,有配套的教学PPT和教学网站(https://www.wendangku.net/doc/d018771738.html,/jpkc/sjk),可作为计算机相关专业本科生的数据库系统原理课程教材,也可供数据库爱好者自学和参考。

本书在编写过程中,参阅了大量的参考书目和文献资料,在此向参考资料的作者们表示衷心的感谢。

由于作者学识浅陋,书中不足之处在所难免,敬请各位读者批评指正。

编者2009年3月

第1章数据库系统概论1

1.1 数据库系统的作用1

1.1.1 数据与数据管理2

1.1.2 数据管理技术的产生与发展2

1.1.3 数据库应用8

1.2 数据模型9

1.2.1 数据模型的分类10

1.2.2 数据模型的组成要素11

1.2.3 层次模型12

1.2.4 网状模型14

1.2.5 关系模型14

1.2.6 面向对象模型16

1.2.7 XML模型20

1.3 数据抽象与数据库三级模式29 1.4 数据库系统32

1.4.1 数据库系统组成32

1.4.2 数据库管理系统33

1.4.3 数据库系统的相关人员38

本章小结40

习题142

第2章关系模型与关系代数44

2.1 关系模型45

2.1.1 关系数据结构45

2.1.2 关系完整性约束条件49

2.1.3 关系操作55

2.2 关系代数56

2.2.1 传统的集合运算57

2.2.2 专门的关系运算57

2.2.3 关系代数查询综合举例64

本章小结67

习题268

第3章SQL语言70

3.1 SQL概述71

3.1.1 SQL发展71

3.1.2 SQL特点72

3.1.3 SQL查询基本概念73

3.2 简单查询74

3.2.1 投影运算76

3.2.2 选择运算79

3.2.3 排序运算84

3.2.4 查询表84

3.3 连接查询85

3.3.1 等值与非等值连接85

3.3.2 自表连接88

3.3.3 外连接89

3.4 嵌套子查询91

3.4.1 使用IN的子查询91

3.4.2 使用比较运算符的子查询95

3.4.3 使用存在量词EXISTS的子查询96 3.5 聚合查询99

3.5.1 聚合函数99

3.5.2 分组聚合100

3.5.3 复杂查询102

3.6 集合运算104

3.7 SQL查询一般格式106

3.8 SQL数据定义语言108

3.8.1 数据库的定义108

3.8.2 基本表的定义112

3.8.3 索引的定义116

3.9 SQL数据更新语言118

3.9.1 插入数据118

3.9.2 删除数据120

3.9.3 修改数据120

3.10 视图121

3.10.1 定义视图122

3.10.2 查询视图124

3.10.3 更新视图125

3.10.4 删除视图127

本章小结127

习题3128

第4章数据库建模(实体-联系模型)132 4.1 数据库设计过程133

4.2 E-R模型基本概念及表示134

4.3 约束137

4.3.1 映射约束137

4.3.2 码约束140

4.3.3 参与约束141

4.3.4 存在依赖与弱实体集141

4.4 扩展E-R特征143

4.5 E-R模型设计原则144

4.6 数据库概念设计实例--大学选课系统148 4.6.1 概念设计任务148

4.6.2 系统需求分析148

4.6.3 数据库概念设计151

4.6.4 大学选课系统总E-R图152

4.7 逻辑设计--E-R模型转化为关系模型153 4.7.1 E-R模型转化方法153

4.7.2 大学选课系统E-R模型转化实例156

本章小结157

习题4158

第5章关系数据理论与模式求精160

5.1 问题提出161

5.2 函数依赖定义163

5.3 函数依赖理论166

5.3.1 函数依赖集闭包166

5.3.2 属性集闭包167

5.3.3 正则覆盖168

5.3.4 无损连接分解170

5.3.5 保持依赖分解170

5.4 范式171

5.4.1 第一范式(1NF)171

5.4.2 第二范式(2NF)171

5.4.3 Boyce-Codd范式(BCNF)172

5.4.4 第三范式(3NF)173

5.5 模式分解算法174

5.5.1 BCNF分解算法174

5.5.2 3NF分解算法175

5.6 数据库模式求精176

本章小结178

习题5179

第6章关系数据库设计实例--网上书店181 6.1 需求描述和系统边界182

6.2 需求分析182

6.2.1 业务需求及处理流程182

6.2.2 功能需求分析183

6.2.3 业务规则分析185

6.3 确定实体集及属性185

6.4 确定联系集及E-R图188

6.5 检查是否满足需求190

6.6 逻辑数据库设计191

6.7 模式求精196

6.8 进一步思考196

本章小结196

习题6197

第7章数据库存储结构199

7.1 文件组织199

7.1.1 存储介质200

7.1.2 存储访问201

7.1.3 定长记录与变长记录202

7.2 记录组织204

7.3 顺序索引207

7.3.1 索引基本概念207

7.3.2 索引顺序文件208

7.3.3 多级索引209

7.3.4 索引的更新210

7.3.5 辅助索引211

7.4 B +树索引212

7.4.1 B +树索引的结构212

7.4.2 B +树索引的查询与更新214

7.4.3 B +树文件组织215

7.5 散列216

7.5.1 散列文件组织216

7.5.2 散列索引217

7.5.3 动态散列218

7.5.4 散列与顺序索引的比较218 7.6 物理数据库设计219

本章小结222

习题7225

第8章查询处理227

8.1 查询处理227

8.1.1 查询处理过程228

8.1.2 查询代价度量229

8.1.3 选择运算230

8.1.4 连接运算235

8.1.5 其他运算242

8.1.6 表达式计算243

8.2 查询优化244

8.2.1 查询优化概述244

8.2.2 关系表达式转换245

8.2.3 结果集大小估计247

8.2.4 选择执行计划249

本章小结253

习题8254

第9章数据库完整性与安全257 9.1 数据库安全性258

9.1.1 数据库安全的基本概念258 9.1.2 安全标准259

9.1.3 SQL存取控制机制261

9.1.4 审计机制266

9.2 数据库完整性267

9.2.1 完整性约束条件268

9.2.2 实体完整性269

9.2.3 参照完整性271

9.2.4 用户自定义完整性274

9.2.5 完整性约束的修改276

9.3 游标277

9.3.1 游标的使用277

9.3.2 当前游标集的修改280

9.4 存储过程281

9.4.1 创建存储过程282

9.4.2 执行存储过程288

9.4.3 修改和删除存储过程288 9.5 触发器290

9.5.1 创建触发器290

9.5.2 修改和删除触发器294

9.5.3 触发器的作用295

9.6 应用与安全设计297

本章小结299

习题9300

第10章事务管理与恢复303

10.1 事务304

10.1.1 问题背景304

10.1.2 事务概念305

10.1.3 事务特性306

10.1.4 事务并发执行与调度307

10.1.5 事务调度及正确性准则309

10.2 并发控制312

10.2.1 基于封锁的协议312

10.2.2 两阶段封锁协议314

10.3 恢复与备份316

10.3.1 故障分类及恢复策略316

10.3.2 事务访问数据方式318

10.3.3 基于日志的故障恢复策略319

10.3.4 检查点322

10.3.5 备份与介质故障恢复324

本章小结325

习题10327

第11章数据库应用开发329

11.1 数据库系统的体系结构330

11.1.1 软件开发体系结构概述330

11.1.2 C/S体系结构331

11.1.3 B/S体系结构334

11.1.4 C/S与B/S结构的结合336

11.1.5 常用开发体系结构338

11.2 数据库访问技术340

11.2.1 ODBC API和ODBC库341

11.2.2 MFC DAO343

11.2.3 RDO344

11.2.4 OLE DB344

11.2.5 ADO346

11.2.6 ADO .NET346

11.2.7 JDBC347

11.2.8 数据库访问技术小结348

11.3 数据库应用开发实践351

11.3.1 ADO编程对象模型351

11.3.2 直接使用ADO Data控件访问数据库356 11.3.3 使用智能指针访问数据库360

11.3.4 使用VC++Extensions for ADO访问数据库366

本章小结371

习题11372

第12章Web数据库374

12.1 什么是Web数据库375 12.2 Web基础375

12.3 脚本语言376

12.4 Web数据库访问模式377 12.5 Web服务器接口377 12.6 Web数据库访问技术378 12.7 XML数据库380

12.7.1 XML应用场景380

12.7.2 XML与数据库382

12.7.3 什么是XML数据库384 本章小结387

习题12389

参考文献391

相关文档
相关文档 最新文档