数据库系统原理与设计(第3版)清华大学万常选廖国琼、吴京慧、刘喜平9787302475pdf下载

数据库系统原理与设计(第3版)清华大学万常选廖国琼、吴京慧、刘喜平9787302475百度网盘pdf下载

作者:
简介:数据库系统原理与设计(第3版)清华大学万常选廖国琼、吴京慧、刘喜平9787302475
出版社:
出版时间:
pdf下载价格:0.00¥

免费下载


书籍下载


内容介绍

基本信息

  • 商品名:【□□8□□】数据库系统原理与设计(第3版)清华大学万常选廖国琼、吴京慧、刘喜平9787302475
  • ISBN:9787302475170
  • 定价:59.9
  • 出版社:清华大学出版社
  • 作者:万常选,廖国琼,吴京慧,刘喜平

参考信息(以实物为准)

  • 出版时间:2017-08-01
  • 印刷时间:2017-08-01
  • 版次:3
  • 印次:
  • 包装:平装
  • 开本:16开
  • 用纸:胶版纸
  • 页数:442
  • 字数:666000

编辑推荐

  本书已在清华大学出版社数字化教学平台智学苑(http://www.izhixue.com.cn/)上线。 
  本书已被多所高校选作教材,累计已发行35000余册。

内容简介

  

本书是国家精品资源共享课“数据库系统及应用”的配套教材、□□批“‘十二五’普通高等教育本科□□□规划教材”。本次修订仍然坚持围绕“培养学生会‘用’数据库”的目标,进一步提升学生的概念建模能力,培养学生会“设计”数据库。第3版对章节进行了适当的调整,使得结构更加合理、可用性更强;重新梳理和调整了数据库设计流程,以便更好地指导学生开展数据库设计大作业的实践活动;将原书□□2章Web数据库更新为数据管理技术前沿,介绍大数据处理平台和框架、NoSQL和NewSQL数据库等前沿技术。
  全书共分12章。□□章是数据库系统基本概念;第2、3、7章是关系数据库基础(含数据库编程);第4~6章是关系数据库设计;第8~10章是关系数据库管理系统;□□1、12章是数据库应用开发和数据管理技术前沿。本书强调数据库应用与设计能力的培养,将数据库设计的内容分散在第4~6章以及第8.5节、第9.3节等章节逐层推进。
  本书可作为计算机及相关专业本科生“数据库系统原理”课程的教材,也可供数据库爱好者自学和参考。
  
  

前言序言

Foreword国家精品资源共享课“数据库系统及应用”于2014在“爱课程”网上线,已经3年多了。□□批“十二五”普通高等教育本科□□□规划教材、国家精品资源共享课配套教材《数据库系统原理与设计》(第2版)及配套教材《数据库系统原理与设计实验教程》(第2版)于2012年出版,也已近5年了。该套教材引起数据库界同仁和学生的很大反响,已被全国50余所高校选作教材,4年多共印刷了9次。笔者所在学校针对“数据库系统原理”课程开展翻转课堂教学,从2013年试点到2015年全面实施也已经4年多了。为了更好地适应大数据时代对数据库课程的教学需求,我们从2016年下半年开始着手对本书进行修订。本次修订仍然坚持“培养学生‘三会’数据库”的目标,即会设计数据库、会管理数据库、会开发数据库应用程序,强调数据库设计与应用能力的培养,着重培养学生的应用建模能力,重点是数据库概念模型。第3版对章节进行了适当的调整,使得结构更加合理、可用性更强。
本次修订的主要内容包括:
(1) 对第4、6两章涉及的大学选课系统、网上书店系统数据库设计实例的数据库设计流程进行了重新梳理和调整,以便更好地指导学生开展数据库设计大作业的实践活动。重新梳理和调整后的数据库设计流程为:系统需求分析(需求概述和系统边界、主要业务处理流程、功能需求分析、数据需求分析、业务规则及完整性约束分析)→数据库概念设计(确定基本实体集及属性、主要业务局部概念建模、定义联系集及属性、设计完整ER模型、检查是否满足需求)→数据库逻辑设计及模式求精→数据库物理设计→数据库应用与安全设计。
(2) 将原第3章中的SQL数据定义与更新语言,第9章中的游标、存储过程和触发器等数据库编程的内容独立出来构□□版的第7章SQL数据定义、更新及数据库编程,并新增TSQL语言简介的内容,这样有利于提高学生的数据库编程能力。因此,新版的第3章集中介绍SQL查询语言,有利于学生深刻理解关系数据库逻辑模型,灵活掌握关系代数和SQL查询语言;第3版的第9章集中介绍数据库安全性与完整性,并深入地介绍触发器应用于数据库安全控制和复杂的用户自定义完整性约束。◆数据库系统原理与设计(第3版)(3) 对原第7、8章的内容进行了适当的压缩,并合并作为第3版的第8章数据库存储结构与查询处理。
(4) 删除了原书□□2章Web数据库,新增了□□2章数据管理技术前沿,主要内容包括:大数据的兴起、大数据处理平台和框架、数据库面临的挑战、NoSQL数据库、NewSQL数据库。设计这一章的目的是让学生了解数据管理技术的前沿,扩展学生的知识面。今后改版时,这一章的内容将与时俱进,不断更新。
(5) 将原□□1.3节数据库应用开发实践的主要内容放到与本书配套的《数据库系统原理与设计实验教程》(第3版)中;考虑到ASP开发技术已经过时,将原来的ASP设计实例改为JSP设计实例;第3版的□□1.3节简单介绍了对象\|关系映射框架。
(6) 调整了部分章节的内容和顺序,增加和调整了部分章节的例题和习题,对部分概念和文字进行了修改。
(7) 将配套教材《数据库系统原理与设计实验教程》(第3版)中使用的SQL Server 2005平台改为SQL Server 2014。
与其他教材相比,本书的主要特点如下。
(1) 强化对关系数据库模式的理解,以模式导航图为工具,使学生深刻理解关系数据库逻辑模型,灵活掌握关系代数和SQL查询语言。
(2) 以案例为驱动,通过分析应用需求来介绍数据库建模的基本方法,着力培养学生应用建模的能力,重点是使学生深刻理解数据库概念模型,提高数据库设计能力。
(3) 涵盖了关系数据库物理存储结构、查询处理和查询优化等内容,这些内容一是有利于学生更好地理解关系数据库的物理模型,二是有利于学生更好地理解关系数据库管理系统(DBMS)的基本原理,三是有利于学生从底层的角度理解SQL查询。
(4) 从使用者的角度,以应用需求为驱动介绍数据库的安全性、完整性以及事务、并发和恢复等内容,使学生深刻理解关系数据库管理系统(DBMS)的基本原理。
(5) 增加数据库应用开发和数据管理技术前沿介绍,一方面增强学生的实践能力,另一方面让学生了解数据库的前沿和发展方向,为后续的数据库应用开发实践和进一步学习打下基础。
本次修订方案由万常选、廖国琼、吴京慧、刘喜平、刘爱红等讨论确定,万常选负责□□、2、8章的修订,廖国琼负责第4、5、6、10章的修订,吴京慧负责第3、7、9章的修订,刘喜平负责□□1、12章的修订。□后,万常选对全书的修订稿进行了修改、补充和总纂。
本书在编写和修订过程中,参阅了大量的参考书目和文献资料,在此向参考资料的作者表示衷心的感谢。
在整个编写和修订过程中,尽管我们一直怀着敬畏的心情、保持严谨的态度,也付出了辛勤的劳动,限于水平,书中不足之处仍然在所难免,敬请各位读者批评指正,并将您的宝贵意见反馈给我们(wanchangxuan@263.net)。我们对您的厚爱致以崇高的敬意!
编者
2017年6月

目录

□□章数据库系统概论1
1.1数据库系统的作用1
1.1.1数据与数据管理2
1.1.2数据管理技术的产生与发展3
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关系模型15
1.3数据抽象与数据库三级模式17
1.3.1数据抽象17
1.3.2数据库三级模式结构及两层映像18
1.3.3数据库三级模式与三层模型的联系和区别20
1.4数据库系统22
1.4.1数据库系统组成22
1.4.2数据库管理系统23
1.4.3数据库系统的相关人员27
本章小结29
习题133
第2章关系模型与关系代数35
2.1关系模型36
2.1.1关系数据结构36
2.1.2关系完整性约束41◆数据库系统原理与设计(第3版)目录  
2.1.3关系操作46
2.2关系代数47
2.2.1传统的集合运算48
2.2.2专门的关系运算49
2.2.3关系代数查询综合举例56
本章小结60
习题261
第3章SQL查询语言63
3.1SQL概述63
3.1.1SQL发展64
3.1.2SQL特点65
3.1.3SQL查询基本概念66
3.2单表查询67
3.2.1投影运算70
3.2.2选择运算73
3.2.3排序运算78
3.2.4查询表79
3.2.5聚合查询79
3.3连接查询81
3.3.1等值与非等值连接81
3.3.2自表连接85
3.3.3外连接86
3.4嵌套子查询87
3.4.1使用IN的子查询88
3.4.2使用比较运算符的子查询91
3.4.3使用存在量词EXISTS的子查询92
3.4.4复杂子查询实例96
3.5集合运算99
3.6SQL查询一般格式101
本章小结103
习题3103
第4章数据库建模107
4.1数据库设计过程108
4.2ER模型基本概念及表示109
4.2.1实体与实体集109
4.2.2属性110
4.2.3联系与联系集112
4.3约束114
4.3.1映射约束114
4.3.2码约束与联系集的属性安置116
4.3.3依赖约束118
4.3.4参与约束119
4.3.5多值联系119
4.4弱实体集120
4.5扩展ER特征121
4.6ER建模问题123
4.6.1ER建模的基本原则123
4.6.2依赖约束的建模128
4.6.3多值联系的建模130
4.7数据库概念设计实例——大学选课系统133
4.7.1概念设计任务133
4.7.2系统需求分析133
4.7.3数据库概念设计138
4.8逻辑设计——ER模型转化为关系模型144
4.8.1ER模型转化方法144
4.8.2大学选课系统ER模型转化实例149
本章小结153
习题4154
第5章关系数据理论与模式求精157
5.1问题提出158
5.2函数依赖定义160
5.3范式163
5.3.1□□范式(1NF)——码163
5.3.2第二范式(2NF)——全部是码164
5.3.3第三范式(3NF)——仅仅是码164
5.3.4BoyceCodd范式(BCNF)165
5.4函数依赖理论167
5.4.1函数依赖集闭包167
5.4.2属性集闭包168
5.4.3正则覆盖170
5.4.4无损连接分解172
5.4.5保持依赖分解173
5.5模式分解算法173
5.5.1BCNF分解算法173
5.5.23NF分解算法175
5.6数据库模式求精176
本章小结178
习题5179
第6章关系数据库设计实例——网上书店182
6.1系统需求分析183
6.1.1需求概述和系统边界183
6.1.2主要业务处理流程183
6.1.3功能需求分析183
6.1.4数据需求分析185
6.1.5业务规则及完整性约束分析186
6.2数据库概念设计188
6.2.1确定基本实体集及属性188
6.2.2主要业务局部概念建模190
6.2.3定义联系集及属性196
6.2.4完整E\|R模型198
6.2.5检查是否满足需求198
6.3数据库逻辑设计200
6.4模式求精207
本章小结207
习题6208
第7章SQL数据定义、更新及数据库编程210
7.1SQL数据定义语言211
7.1.1数据库的定义211
7.1.2基本表的定义216
7.1.3索引的定义219
7.2SQL数据更新语言221
7.2.1插入数据221
7.2.2删除数据223
7.2.3修改数据224
7.3视图225
7.3.1定义视图225
7.3.2查询视图228
7.3.3视图更新229
7.3.4删除视图230
7.4T\|SQL语言简介231
7.4.1表达式231
7.4.2函数232
7.4.3流程控制语句236
7.5游标237
7.5.1游标的定义与使用238
7.5.2当前游标集的修改与删除241
7.6存储过程242
7.6.1创建存储过程242
7.6.2执行存储过程246
7.6.3修改和删除存储过程247
7.7触发器248
7.7.1创建触发器249
7.7.2修改和删除触发器254
本章小结256
习题7257
第8章数据库存储结构与查询处理262
8.1文件组织与记录组织263
8.1.1存储介质263
8.1.2存储访问264
8.1.3文件组织与文件中记录的组织265
8.2索引与散列270
8.2.1索引基本概念270
8.2.2顺序索引271
8.2.3B+树索引273
8.2.4散列277
8.3查询处理281
8.3.1查询处理过程281
8.3.2查询代价度量283
8.3.3选择运算284
8.3.4连接运算286
8.3.5其他运算293
8.3.6表达式计算295
8.4查询优化296
8.4.1查询优化实例296
8.4.2关系表达式转换297
8.4.3查询优化策略298
8.5物理数据库设计299
本章小结302
习题8306
第9章数据库安全性与完整性308
9.1数据库安全性308
9.1.1数据库安全概述309
9.1.2SQL Server 安全机制312
9.1.3触发器实现安全性320
9.2数据库完整性320
9.2.1数据库完整性概述320
9.2.2SQL Server完整性321
9.2.3使用规则和触发器实现完整性328
9.3数据库应用与安全设计329
9.3.1数据库安全性控制329
9.3.2数据库完整性控制332
9.3.3存储过程设计335
本章小结338
习题9339
□□0章事务管理与恢复340
10.1事务341
10.1.1问题背景341
10.1.2事务概念342
10.1.3事务特性343
10.1.4事务并发执行与调度344
10.1.5事务调度及正确性准则346
10.2并发控制349
10.2.1基于封锁的协议349
10.2.2两阶段封锁协议352
10.3恢复与备份354
10.3.1故障分类及恢复策略354
10.3.2事务访问数据方式355
10.3.3基于日志的故障恢复策略357
10.3.4检查点360
10.3.5备份与介质故障恢复363
本章小结364
习题10366
□□1章数据库应用开发368
11.1数据库系统的体系结构369
11.1.1软件开发体系结构概述369
11.1.2C/S体系结构370
11.1.3B/S体系结构372
11.1.4C/S与B/S结构的结合375
11.1.5常用开发体系结构377
11.2数据库访问技术379
11.2.1ODBC API和ODBC库380
11.2.2MFC DAO381
11.2.3RDO382
11.2.4OLE DB383
11.2.5ADO385
11.2.6ADO.NET386
11.2.7JDBC389
11.2.8数据库访问技术小结392
11.3对象关系映射框架394
本章小结397
习题11399
□□2章数据管理技术前沿400
12.1大数据的兴起401
12.1.1大数据的概念401
12.1.2从数据库到大数据403
12.1.3大数据处理模式404
12.2大数据处理平台和框架405
12.2.1Apache Hadoop406
12.2.2Spark409
12.2.3Storm410
12.3数据库面临的挑战412
12.3.1MySpace数据库架构变化412
12.3.2数据库可扩展性问题的解决方法414
12.3.3数据库的发展416
12.4NoSQL数据库417
12.4.1键值数据库Redis417
12.4.2文档数据库MongoDB421
12.4.3列数据库HBase426
12.4.4图数据库Neo4j429
12.5NewSQL数据库433
12.5.1VoltDB434
12.5.2NuoDB437
本章小结440
习题12440
参考文献441

精彩书摘

第3章chapter3
SQL查询语言接正文接标题1.1微型计算机简介学习目标
结构化查询语言(structured query language,SQL)是关系数据库的标准语言,本章主要讲授SQL查询语言在数据库中的应用。目前,几乎所有的关系型数据库管理系统,如Oracle、Sybase、SQL Server和Access等均采用SQL语言标准。因此,本章的教学目标主要有两个,一是要求读者掌握对数据库的基本操作,并了解数据库管理系统的基本功能;二是要求读者熟练掌握SQL查询语句,并运用SQL查询语句完成对数据库的查询操作。学习方法
本章重在实验,因此要求读者结合课堂讲授的知识,强化上机实训,通过实训加深对课堂上学过的有关概念和知识点的理解,以便达到融会贯通的学习目标。学习指南
本章的重点是3.2节、3.3节和3.4节,难点是3.4节。本章导读
(1) SQL查询语句对关系代数运算做了哪些扩展?
(2) 连接查询包括哪些?它们分别用于什么地方?
(3) 在使用分组聚合查询时需要注意什么?
(4) 相关子查询与非相关子查询的概念是什么?
(5) 如何理解存在量词以及存在量词在SQL查询中的重要地位?
(6) 如何理解查询表的概念?查询表与子查询有何异同点?
3.1SQL概述
SQL语言于1974年由Boyce等提出,并于1975—1979年在IBM公司研制的System R数据库管理系统上实现,现已成为国际标准。
自从SQL成为国际标准以来,很多数据库厂商都对SQL语言进行了再开发和扩展,但是包括查询SELECT、插入INSERT、修改UPDATE、删除DELETE、创建CREATE以及对象删除DROP在内的标准SQL语句仍然可被用来完成几乎所有的数据库操作。◆数据库系统原理与设计(第3版)第◆3章SQL查询语言3.1.1SQL发展
SQL语言是关系数据库的标准语言,是数据库领域中一个主流语言,它经历了如下几个阶段。
(1) SQL86: □□个SQL标准,由美国国家标准局(American National Standard Institute,ANSI)公布,1987年国际标准化组织(International Organization for Standardization,ISO)通过。该标准也称为SQL1。
(2) SQL92: 在1992年,由ISO和ANSI对SQL86进行了重新修订,发布了第二个SQL标准SQL92,该标准也称为SQL2。
(3) SQL99: 随着信息技术的应用,数据库理论和技术得到了广泛的应用和发展。在1999年,ISO发布了反映□新数据库理论和技术的标准SQL99,该版本在SQL2的基础上,扩展了诸多功能,包括递归、触发、面向对象技术等。该标准也称为SQL3。
(4) SQL2003: 该标准是□新的标准,也称SQL4,于2003年发布,包括9个部分。
① ISO/IEC 9075—1: Framework(SQL/Framework);
② ISO/IEC 9075—2: Foundation(SQL/Foundation);
③ ISO/IEC 9075—3: Call Level Interface(SQL/CLI);
④ ISO/IEC 9075—4: Persistent Stored Modules(SQL/PSM);
⑤ ISO/IEC 9075—9: Management of External Data(SQL/MED);
⑥ ISO/IEC 9075—10: Object Language Bindings(SQL/OLB);
⑦ ISO/IEC 9075—11: Information and Definition Schemas(SQL/Schemata);
⑧ ISO/IEC 9075—13: Java Routines and Types Using the Java Programming Language(SQL/JRT);
⑨ ISO/IEC 9075—14: XMLRelated Specifications(SQL/XML)。
目前,许多数据库厂商都支持SQL92的绝大多数标准,以及SQL99和SQL2003的部分标准,并对SQL语言进行了扩展。这些扩展的SQL语言,不仅遵循标准SQL语言规定的功能,而且还增强了许多功能,并赋予SQL不同的名字,如Oracle产品将SQL称为PL/SQL,Sybase和Microsoft SQL Server产品将SQL称为TransactSQL。
SQL语言由4部分组成,包括数据定义语言DDL、数据操纵语言DML、数据控制语言DCL和其他,其功能如下:
(1) 数据定义语言(data definition language,DDL): 主要用于定义数据库的逻辑结构,包括数据库、基本表、视图和索引等,扩展DDL还支持存储过程、函数、对象、触发器等的定义。DDL包括3类语言,即定义、修改和删除。
(2) 数据操纵语言(data manipulation language,DML): 主要用于对数据库的数据进行检索和更新,其中更新操作包括插入、删除和修改数据。
(3) 数据控制语言(data control language,DCL): 主要用于对数据库的对象进行授权、用户维护(包括创建、修改和删除)、完整性规则定义和事务定义等。
(4) 其他: 主要是嵌入式SQL语言和动态SQL语言的定义,规定了SQL语言在宿主语言中使用的规则。扩展SQL还包括数据库数据的重新组织、备份与恢复等功能。
3.1.2SQL特点
SQL语言因其简单、灵活、易掌握,受到了广大用户的接受,SQL语言既可以作为交互式数据库语言使用,也可以作为程序设计语言的子语言使用,它是一个兼有关系代数和元组演算特征的语言,其特点如下所述。
1. 综合统一
(1) SQL语言集数据定义语言DDL,数据操纵语言DML和数据控制语言DCL的功能于一体,语言风格统一,可以独立完成数据库生命周期中的全部活动,包括定义关系模式、录入数据以及建立数据库、查询、更新、维护、数据库重构、数据库安全性控制等一系列操作,这就为数据库应用系统开发提供了良好的环境。例如用户在数据库投入运行后,还可根据需要随时地逐步地修改模式,并不影响数据库的运行,从而使系统具有良好的可扩充性。
(2) 在关系模型中实体和实体间的联系均用关系表示,这种数据结构的单一性带来了数据操作符的统一,即对实体及实体间联系的每一种操作(如查找、插入、删除和修改)都只需要一种操作符。
2. 高度非过程化
非关系数据模型的数据操纵语言是面向过程的语言,在完成某项操作请求时必须指定存取路径。而用SQL语言进行数据操作,用户只需提出“做什么”,而不必指明“怎么做”,因此用户无须了解存取路径,存取路径的选择以及SQL语句的操作过程由系统自动完成。这不仅大大减轻了用户负担,而且有利于提高数据独立性。
3. 面向集合的操作方式
SQL语言采用集合操作方式,其操作对象、操作结果都是元组的集合。而非关系数据模型采用的是面向记录的操作方式,其操作对象是一条记录。
(1) 非关系数据模型采用的是面向记录的操作方式,任何一个操作的对象都是一条记录。例如: 查询所有平均成绩在80分以上的学生姓名,用户必须说明完成该操作请求的具体处理过程,即如何用循环结构按照某条路径一条一条地把满足条件的学生记录读出来。
(2) SQL语言采用集合操作方式,不仅查询操作的对象是元组的集合,而且一次更新(插入、删除和修改)操作的对象也可以是元组的集合。
4. 同一种语法结构提供两种使用方式
(1) SQL语言既是自含式语言,又是嵌入式语言,且在两种不同的使用方式下,SQL语言的语法结构基本上是一致的。
(2) 作为自含式语言,它能够独立地用于联机交互的使用方式,用户可以在终端键盘上直接键入SQL命令对数据库进行操作。
(3) 作为嵌入式语言,SQL语句能够嵌入到高级语言(如Java、VC、VB、Delphi等)程序□,□程序员设计程序时使用。
5. 语言简洁,易学易用
SQL语言功能极强,但十分简洁,易学易用。SQL语言的动词非常少,主要包括:
(1) 数据查询: SELECT;
(2) 数据定义: CREATE、DROP、ALTER;
(3) 数据更新: INSERT、DELETE、UPDATE;
(4) 数据控制: GRANT、REVOKE。
……

作者简介

万常选,工学博士,教授,博士生导师,国务院政府特殊津贴专家,江西省首批“赣鄱英才555工程”领军人才培养计划人选,江西省高校中青年学科带头人,江西省普通高等学校计算机类本科专业教学指导委员会主任委员,江西省计算机学会副理事长,江西省“十二五”重点学科“计算机科学与技术”学科带头人,江西省首批优势科技创新团队“数据工程与数字媒体创新团队”领军人才,江西省高校数据与知识工程重点实验室主任,江西财经大学计算机科学与技术学科首席教授。
国家精品资源共享课、国家精品课程《数据库系统及应用》课程负责人,2013-2017年教育部高等学校管理科学与工程类专业教学指导委员会委员;获江西省高等学校教学名师奖、江西省“十五”优秀研究生指导教师、“全省模范教师”称号等;获第六届高等教育*教学成果奖二等奖1项,江西省优秀教学成果一等奖2项、二等奖3项,江西省高校优秀教材一等奖2部。
中国计算机学会高级会员、数据库专委会委员,主持国家自然科学基金、国家社会科学基金项目多项,出版专著教材多部,在IEEE TKDE、Information Sciences、JCST、计算机学报、软件学报、计算机研究与发展、ACM CIKM等重要期刊或国际会议发表学术论文50余篇,获江西省高校科技成果奖一等奖3项、二等奖2项,江西省自然科学奖三等奖1项。