图书简介:
第1章 数据库系统概论 11.1 数据库的基本概念 11.1.1 信息与数据 11.1.2 数据库 21.1.3 数据库管理系统 21.1.4 元数据 21.2 数据模型 21.2.1 组成要素 31.2.2 概念数据模型 31.2.3 逻辑数据模型 41.3 数据管理技术的产生和发展 71.4 数据库管理系统的功能与特点 101.4.1 数据库管理系统的功能 101.4.2 数据库管理系统的特点 111.5 数据库系统的结构 131.5.1 数据库三级模式结构 131.5.2 数据库二级映像与数据独立性 141.5.3 数据库的体系结构 151.5.4 数据库系统的组成 171.6 数据库语言 181.6.1 数据定义语言 191.6.2 数据操纵语言 191.6.3 数据控制语言 191.6.4 事务控制语言 191.7 数据库技术的新发展 191.7.1 数据库技术发展趋势 191.7.2 新型数据库与大数据 20小结 22习题 23第2章 关系模型与关系代数 242.1 关系模型 242.1.1 基本概念 242.1.2 关系模型的数据结构 252.1.3 数据操作 272.1.4 数据约束 282.2 关系数据结构 282.2.1 关系 282.2.2 关系的性质 302.2.3 关系模式 302.3 关系操作 322.4 关系的完整性 322.4.1 实体完整性 322.4.2 参照完整性 332.4.3 自定义完整性 342.5 关系数据模型的优缺点 342.6 关系代数 352.6.1 基本运算 352.6.2 专门的关系运算 372.6.3 扩展的关系运算 422.7 关系演算 432.7.1 元组关系演算 432.7.2 域关系演算语言QBE 44小结 47习题 48第3章 数据库设计过程与方法 503.1 数据库设计概述 503.1.1 数据库的设计方法 513.1.2 数据库开发生命周期方法 533.1.3 数据库设计的基本过程 553.2 数据库需求分析 573.2.1 需求描述与分析 573.2.2 需求分析的步骤 583.2.3 数据字典 623.3 数据库概念设计 633.3.1 概念设计的必要性 633.3.2 概念设计的方法和步骤 643.3.3 概念设计工具:E-R图 663.4 数据库逻辑设计与优化 663.4.1 逻辑设计环境 663.4.2 E-R模式向关系模型的转换 663.4.3 用关系规范化理论对关系模型进行优化 673.5 数据库的物理设计 683.5.1 数据库的物理结构确定 683.5.2 物理结构的评价 703.6 数据库的实施和运行维护 703.6.1 数据库实际结构的建立 703.6.2 装载数据 703.6.3 应用程序开发测试 713.6.4 数据库试运行 713.6.5 数据库运行与维护 71小结 72习题 73第4章 实体-联系模型 744.1 实体-联系模型概述 744.1.1 实体集 744.1.2 属性 744.1.3 联系集 764.2 约束 774.2.1 映射基数 774.2.2 参与约束 774.3 实体-联系图 774.4 扩展的实体-联系模型特性 784.5 实体-联系设计 804.5.1 E-R图设计 804.5.2 用实体集还是用属性 834.5.3 用实体集还是用联系集 834.5.4 二元还是n元联系集 844.6 数据建模的其他表示法及工具 844.6.1 统一建模语言 844.6.2 数据建模的其他方法 90小结 93习题 94第5章 规范化 965.1 关系模式设计中的问题 965.2 函数依赖 995.2.1 函数依赖的定义 995.2.2 Armstrong公理 1005.2.3 函数依赖与码的联系 1015.2.4 属性集的闭包 1025.2.5 FD推理规则的完备性 1035.2.6 FD集的最小依赖集 1035.3 模式分解 1045.3.1 模式分解问题 1055.3.2 无损分解 1055.3.3 保持函数依赖的分解 1085.3.4 模式分解与模式等价问题 1105.4 范式 1115.4.1 第一范式(1NF) 1125.4.2 第二范式(2NF) 1125.4.3 第三范式(3NF) 1135.4.4 BC范式(BCNF) 1145.5 多值函数依赖与4NF 1155.5.1 多值函数依赖 1155.5.2 4NF 1165.6 函数依赖与5NF 117小结 117习题 118第6章 基础SQL语言 1216.1 SQL概述 1216.1.1 SQL标准与历史 1216.1.2 SQL标准数据类型及SQL标准内置函数 1226.1.3 SQL的功能与特点 1236.2 数据库基本结构定义 1246.2.1 数据库的创建、修改与删除 1256.2.2 基本表的定义、修改与删除 1286.3 数据查询语句基本结构 1306.3.1 查询语句概述 1306.3.2 基本查询结构 1316.3.3 查询语句中使用运算符 1336.3.4 用聚集函数统计查询结果 1376.3.5 INTO子句 1396.3.6 GROUP BY子句 1406.3.7 HAVING子句 1406.3.8 ORDER BY子句 1416.3.9 用TOP谓词限制结果集 1416.4 集合运算 1436.4.1 并运算 1436.4.2 交/差运算 1436.4.3 集合运算的使用原则 1446.5 连接查询 1456.5.1 连接概述 1456.5.2 内连接 1456.5.3 自连接 1466.5.4 外连接 1476.6 嵌套查询 1486.6.1 嵌套查询基本概念 1486.6.2 非相关子查询和相关子查询 1496.6.3 IN和NOT IN运算符 1506.6.4 ANY和ALL运算符 1516.6.5 EXISTS和NOT EXISTS运算符 1526.7 数据修改 1536.7.1 数据插入 1536.7.2 数据更新 1556.7.3 数据删除 1556.8 视图 1566.8.1 视图的定义 1566.8.2 查询中使用视图 1576.8.3 视图的更新 1576.8.4 视图的作用 1586.9 完整性约束 1596.9.1 完整性约束的定义 1596.9.2 PRIMARY KEY约束 1596.9.3 UNIQUE约束 1596.9.4 NOT NULL约束 1606.9.5 CHECK约束 1606.9.6 FOREIGN KEY约束 1616.9.7 域约束 1636.9.8 断言 1646.9.9 完整性约束的修改 1646.9.10 完整性约束的验证 166习题 168第7章 高级SQL语言 1717.1 游标 1717.1.1 游标的基本概念 1717.1.2 游标种类 1727.1.3 游标操作 1737.2 存储过程 1767.2.1 存储过程的概念 1767.2.2 存储过程的类型 1777.2.3 存储过程的操作 1787.3 函数 1817.3.1 SQL中函数的概念 1817.3.2 函数的类型 1827.3.3 函数的操作 1827.4 触发器 1877.4.1 触发器的概念和作用 1877.4.2 触发器的分类 1887.4.3 触发器的工作原理 1887.4.4 创建和使用DML触发器 1897.4.5 创建和使用DDL触发器 1927.5 递归查询 1937.5.1 递归查询基本概念 1937.5.2 递归查询的操作 1937.6 记录排序与分页 195习题 196第8章 数据库访问接口与应用程序开发 1978.1 数据库连接访问 1978.1.1 ADO 1988.1.2 ODBC 1998.1.3 JDBC 2018.2 XML数据交换 2068.2.1 XML数据模型 2078.2.2 XML数据库 2078.2.3 XML数据交换 2098.3 数据库应用程序开发 2138.3.1 数据库应用程序架构 2138.3.2 数据访问层和对象关系映射(ORM) 2158.3.3 数据展现:查询和报表 2168.3.4 C/S应用程序开发 2178.3.5 B/S应用程序开发 217习题 218第9章 数据存储和查询处理与优化 2199.1 数据存储 2199.1.1 物理存储介质概述 2199.1.2 文件组织 2219.1.3 RAID 2239.2 索引 2279.2.1 B+树索引 2299.2.2 散列索引 2339.2.3 位图索引 2339.3 查询处理及查询优化 2359.3.1 查询处理 2359.3.2 关系代数运算的执行 2369.3.3 查询优化技术 2389.3.4 代数优化 2419.3.5 物理优化 243习题 245第10章 事务与并发控制 24610.1 事务的概念与性质 24610.2 事务的并发执行可能引起的 问题 24910.3 可串行化 25110.3.1 串行调度 25110.3.2 可串行化调度 25210.3.3 可恢复性 25510.3.4 事务隔离性级别 25610.4 基于锁的并发控制协议 25710.4.1 封锁 25710.4.2 两段锁协议(2PL) 25910.4.3 锁的升级及更新锁 26010.5 活锁与死锁 26110.5.1 活锁 26110.5.2 死锁 26210.6 多粒度封锁 264习题 266第11章 故障恢复 26711.1 数据库恢复概述 26711.1.1 数据库恢复概述 26711.1.2 故障种类 26711.1.3 日志记录 26811.2 恢复与原子性 26911.2.1 事务管理器 26911.2.2 使用日志撤销和重做事务 27011.3 缓冲区管理 27511.3.1 缓冲区管理器结构 27511.3.2 缓冲区管理策略 27511.3.3 日志记录缓冲 27611.3.4 检查点 27711.4 恢复处理 28011.4.1 事务故障的恢复 28011.4.2 系统故障的恢复 28011.4.3 介质故障的恢复 282习题 283第12章 数据库安全 28412.1 数据库安全基础 28412.2 数据库安全性控制 28612.3 用户标识和鉴别 28712.4 自主访问控制 28812.4.1 权限类型 28912.4.2 授权及权限回收 29012.5 基于角色的访问控制 29012.6 强制访问控制 29112.7 安全审计 29212.8 其他数据库安全机制 29412.8.1 使用视图实现安全控制 29412.8.2 使用存储过程实现安全控制 29412.9 外部安全机制 29512.9.1 数据加密 29512.9.2 数字签名 29712.9.3 认证技术 297习题 298第13章 新型数据库和前沿技术 29913.1 数据仓库和数据挖掘 29913.1.1 数据仓库 29913.1.2 数据挖掘 30213.2 分布式数据库 30413.2.1 分布式数据库系统概述 30413.2.2 分布式数据库系统的体系结构 30613.2.3 分布式网络数据的特性 31013.2.4 分布式查询处理 31113.2.5 分布式事务管理 31313.2.6 分布式数据库实例 31713.3 空间数据库 31713.3.1 空间数据 31713.3.2 空间数据模型 31813.3.3 空间对象关系 31913.3.4 空间数据操作 31913.3.5 空间数据查询语言 32113.3.6 空间索引 32113.4 多媒体数据库 32213.4.1 多媒体数据 32313.4.2 多媒体数据库的层次结构 32313.4.3 多媒体数据模式 32413.4.4 多媒体元数据 32413.4.5 多媒体数据库查询 32513.4.6 多媒体数据库 32613.4.7 多媒体数据库的检索 32813.5 NoSQL数据库 32813.5.1 NoSQL数据库概述 32913.5.2 NoSQL数据库的架构及数据 组织方式 32913.5.3 NoSQL数据库的特性 33013.5.4 关系数据库和NoSQL数据库的区别 33013.5.5 几种常见的NoSQL数据库产品 331第14章 商业数据库管理系统及选型 33314.1 Oracle数据库 33314.1.1 Oracle数据库简介 33314.1.2 Oracle发展简史 33314.1.3 Oracle 特点 33414.1.4 Oracle 12c新特性 33514.1.5 Oracle 12c版本介绍 33714.1.6 Oracle体系结构 33714.1.7 Oracle Developer Suite 33914.2 SQL Server数据库 34014.2.1 SQL Server数据库简介 34014.2.2 SQL Server版本介绍 34014.2.3 SQL Server特点 34114.2.4 SQL Server 2016新特性 34314.2.5 SQL Server版本介绍 34514.2.6 SQL Server体系结构 34514.2.7 SQL Server开发工具 34614.3 DB2数据库 34714.3.1 DB2数据库简介 34714.3.2 DB2发展简史 34714.3.3 DB2版本介绍 34814.3.4 DB2核心数据库的特点 34914.3.5 DB2 V11.1新特性 34914.3.6 DB2 体系结构 35114.3.7 DB2开发工具 35214.4 Sybase数据库 35314.4.1 Sybase数据库简介 35314.4.2 Sybase数据库发展简史 35314.4.3 Sybase数据库特点 35414.4.4 Sybase ASE 16新特性 35514.4.5 Sybase数据库体系结构 35514.4.6 Sybase数据库管理工具 35514.5 MySQL数据库 35614.5.1 MySQL数据库简介 35614.5.2 MySQL发展简史 35614.5.3 MySQL特点 35714.5.4 MySQL 5.7新特性 35714.5.5 MySQL版本介绍 35814.5.6 MySQL体系结构 35814.5.7 MySQL开发工具 36214.6 工程应用中数据库管理系统的选型 362附录A 数据库设计 367医院信息管理系统(HIS-2018版) 367一、案例说明与实现目标 376二、HIS中涉及的缩写说明 376三、HIS中的实体间关系说明 376四、HIS中涉及的各种实体、联系类型及实例数据 377附录B 实验指导 385实验一 数据库E-R设计 385一、实验内容及要求 385二、实验重点与难点 385三、上机实验作业 385四、本实验参考资料 385五、项目需用仪器设备名称 385六、教学后记 385实验二 数据库逻辑及物理设计 385一、实验内容及要求 385二、实验重点与难点 386三、上机实验作业 386四、本实验参考资料 386五、项目需用仪器设备名称 386六、教学后记 386实验三 数据库实现 386一、实验内容及要求 386二、实验重点与难点 386三、上机实验作业 386四、本实验参考资料 387五、项目需用仪器设备名称 387六、教学后记 387实验四 数据库应用开发——服务器编程 387一、实验内容及要求 387二、实验重点与难点 387三、上机实验作业 387四、本实验参考资料 387五、项目需用仪器设备名称 388六、教学后记 388实验五 数据库应用开发——访问接口编程 388一、实验内容及要求 388二、实验重点与难点 388三、上机实验作业 388四、本实验参考资料 388五、项目需用仪器设备名称 388六、教学后记 388实验六 数据库备份与恢复 388一、实验内容及要求 388二、实验重点与难点 389三、上机实验作业 389四、本实验参考资料 389五、项目需用仪器设备名称 389六、教学后记 389
展开
前 言
计算机技术的发展不仅极大地促进了科学技术的发展,而且明显加快了经济信息化和社会信息化的进程。因此,计算机教育在各国都备受重视,具备计算机知识与使用能力已成为21世纪人才的基本素质之一。 数据库应用技术是其中的核心技术之一,以其为核心的各种数据库应用管理,无可争议地改变了政府部门和企事业单位的运营和管理方式。随着数据库应用广度和深度的扩展,不仅是计算机和信息技术行业,而且包括技术管理、工程管理甚至决策人员在内的众多行业都开始关心数据库技术。 为了适应各高校计算机学科正在开展的课程体系与教学内容的改革,及时反映相关研究成果,积极探索适应21世纪计算机人才培养的教学模式,我们编写了这本数据库应用技术的教材。本教材具有如下特色。1.根据读者的层次分类。将数据库技术分为数据库基础知识、数据库管理技术、数据库应用技术、现代数据库技术和主流商业数据库介绍等四部分,且内容上保持连贯性。读者可以根据自身需求选择适当的内容阅读,不同层次的读者可以从不同的深度学习数据库知识。这样就使得本书更加符合软件工程应用的特点。2.面向软件工程理念,采用工程应用型学习方法,即“提出问题→解决问题→应用分析”的问题驱动方式,突出学生主动探究在整个教学中的作用。3.在内容描述上,我们换位思考,站在学生的角度阐述概念和理论,避免堆砌大量学生不常用的专业词汇,使得整个教材通俗易懂。4.在内容组织上,以一个典型的数据库应用系统(简化的医院管理数据库HIS)为案例,在MS SQL Server平台上,以理论和实际相结合的方式,讲解数据库的概念和应用开发技术,以期达到高效的学习效果。5.本教材的内容分为四部分:① 数据库基础知识,讲述数据库的基本概念和理论知识,这部分是基础,面向所有读者;② 数据库管理技术,讲述数据库维护管理技术,面向关心数据库维护的读者;③ 数据库应用技术,讲述数据库的设计开发技术,面向关心行业应用系统开发的读者;④ 现代数据库技术及主流商业数据库介绍,介绍数据库技术的前沿热点及主要的数据库管理系统的商业产品,面向关心数据库发展动向及实际数据库产品的读者。6.本教材注重将计算机理论知识和现实中的工程应用相结合,适当引入数据库技术的的最新发展,保持了教学内容的先进性和实用性。本教材源于基础教育的教学实践及科研实践中的许多心得体会,凝聚了工作在教学和科研第一线教师多年的教学与科研成果。
通过学习本教材,你可以了解:● 数据库的概念、组成结构等基础知识;● 关系数据库的核心——关系数据模型及数据库的操作语言SQL;● 数据库的查询优化、并发控制、系统恢复、安全性等数据库管理技术;● 数据库的应用设计方法和开发技术;● 现代数据库技术的热点—数据挖掘、数据仓库、分布式数据库以及空间数据库;● 目前的主流数据库管理系统产品——Oracle、SQLServer、DB2、MySQL及Sybase的概况。 教学中,可以根据教学对象和学时等具体情况对教材中的内容进行删减和组合,也可以进行适当扩展,参考学时为32~64学时。为适应教学模式和教学方法的改革,本教材每章配套安排了习题及参考答案、实验指导书、多媒体电子课件及相应的网络教学资源,请登录华信教育资源网(http://hxedu.com.cn)免费注册下载。 本书第1、2、3、4、5章由魏祖宽编写,第9、10、11、12及13章的部分小节由郑莉华编写,第13章的主体部分、全书的案例数据库、实验设计及指导的内容由牛新征编写,第6、7、8、14章由孙明编写。全书由魏祖宽统稿并定稿。参加本书编写的还有重庆邮电大学的刘兆宏,电子科技大学的胡旺、周益民、代林、胡红梅、陈佳、张乐信、刘小龙、姬海波、梁继东、陶晶晶、尹畅等,他们承担了收集基本素材、案例数据、相关技术资料及稿件校对等大量的基础工作。 本书在编写过程中参考了大量新近出版的相关资料和书籍,吸取了许多专家的宝贵经验,在此向他们深表谢意! 由于数据库应用技术发展迅速,作者学识有限,书中难免存在误漏之处,望广大读者批评指正。
作 者2020年1月
展开