描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787302514206丛书名: 21世纪高等学校计算机基础实用规划教材
(2)每章均配有大量的习题,通过这些习题的练习,可以加深和巩固所学的知识。
(3)针对本书的内容,在书的后面还附有相应的实验。
(4)为了方便读者学习和上机实践,本书例题的数据库脚本和实验用的数据库脚本、教学课件PPT、教学大纲和部分习题答案等资料可到清华大学出版社官网本书页面下载。
本书配有相应的实验内容,且每章后面均附有大量习题。
本书针对非计算机专业的学生学习数据库编写,可作为各高等院校非计算机专业相关课程的教材,也可作为其他人员学习数据库的参考教材。
第1章数据管理技术及其发展
1.1数据与数据爆炸
1.1.1数据和信息
1.1.2数据爆炸
1.1.3数据分类
1.1.4数据处理和数据管理
1.2数据管理技术的发展过程
1.2.1人工管理
1.2.2文件管理
1.2.3数据库管理
1.2.4从数据库到大数据
1.3大数据时代
1.3.1大数据概念
1.3.2大数据特征
1.3.3大数据意义
1.3.4大数据应用
1.4数据科学
1.4.1研究目的
1.4.2研究内容
1.4.3与其他学科的关系
1.5数据管理典型应用
1.5.1医院信息管理系统
1.5.2地图数据库管理系统
1.5.3舆情监控系统
本章小结
习题1
第2章数据库设计概述
2.1数据库系统的组成
2.1.1数据库和数据库管理系统
2.1.2数据库应用系统
2.1.3数据库系统
2.2数据库系统的三级模式结构
2.2.1模式
2.2.2外模式
2.2.3内模式
2.2.4三级模式间的关系
2.3数据库设计概述
2.3.1数据库设计的方法
2.3.2数据库设计的基本步骤
2.3.3数据建模
2.4数据库需求分析
2.4.1需求分析的任务
2.4.2需求分析的方法
2.5数据库的概念设计
2.5.1概念模型
2.5.2ER图
2.6数据库的逻辑设计
2.6.1数据模型的三要素
2.6.2层次模型和网状模型简介
2.6.3关系模型
2.6.4ER模型向关系模型的转换
2.7数据库的物理设计
2.8数据库的实施、运行与维护
2.9数据库设计案例
2.9.1案例需求简介
2.9.2案例ER图
2.9.3案例的关系模型
本章小结
习题2
第3章数据库和表的管理
3.1常见的关系型数据库管理系统
3.2初识SQL Server 2012
3.2.1SQL Server的发展与版本
3.2.2SQL Server 2012的主要组件
3.2.3SQL Server 2012管理平台
3.2.4SQL语言和TransactSQL语言
3.3数据库的管理
3.3.1SQL Server 2012数据库组成
3.3.2数据库对象的标识符
3.3.3数据库的创建
3.3.4数据库的修改
3.3.5数据库的删除
3.3.6数据库的备份与还原
3.4表的创建与管理
3.4.1数据类型
3.4.2表的创建
3.4.3定义表的约束
3.4.4表的修改
3.4.5表的删除
3.5表中数据的维护
3.5.1使用SQL Server管理平台维护表中数据
3.5.2使用语句维护表中数据
本章小结
习题3
第4章关系数据查询
4.1关系代数
4.1.1传统的集合运算
4.1.2专门的关系运算
4.2SQL查询基础
4.3单表查询
4.3.1基本查询
4.3.2条件查询
4.3.3生成表查询
4.3.4聚合查询
4.3.5结果集的数据排序
4.4多表查询
4.4.1连接概述
4.4.2内部连接
4.4.3外部连接
4.4.4结果集的归并处理
4.5子查询
4.5.1单值子查询
4.5.2多值子查询
本章小结
习题4
第5章索引与视图
5.1索引
5.1.1索引的基本概念
5.1.2索引的分类
5.1.3创建索引
5.1.4管理和使用索引
5.1.5删除索引
5.2视图
5.2.1视图的基本概念
5.2.2视图的创建
5.2.3视图的修改
5.2.4视图的删除
5.2.5视图的管理
5.2.6视图的应用
本章小结
习题5
第6章TransactSQL程序设计
6.1TransactSQL语言程序设计基础
6.1.1常量与变量
6.1.2运算符与表达式
6.1.3常用系统函数
6.2程序控制流程语句
6.2.1批处理、语句块与注释
6.2.2顺序结构
6.2.3选择结构
6.2.4循环结构
6.3存储过程
6.3.1为什么需要存储过程
6.3.2系统存储过程
6.3.3自定义存储过程
6.3.4修改和删除存储过程
本章小结
习题6
第7章数据库应用系统开发
7.1数据库应用系统的开发步骤
7.2数据库应用系统的体系结构和开发工具
7.2.1数据库应用系统的体系结构
7.2.2常用的数据库应用系统的开发工具
7.3常用的数据库编程接口
7.4数据库应用系统开发案例——学生成绩管理系统
7.4.1后台数据库的设计
7.4.2应用系统功能规划与划分
7.4.3数据库服务器的配置
7.5VB.NET前台应用系统程序的开发
7.5.1ADO.NET的基本操作
7.5.2数据库数据与相关控件的绑定
7.5.3学生成绩管理系统VB.NET的实现
7.6C 前台应用系统程序的开发
7.6.1ADO的基本操作
7.6.2学生成绩管理系统的C 实现
本章小结
习题7
附录A实验内容
A.1实验1SQL Server 2012环境和库的操作
A.2实验2SQL Server数据表的管理
A.3实验3关系数据查询语言
A.4实验4索引和视图
A.5实验5TransactSQL程序设计
附录B数据库脚本
B.1第1~7章示例中使用的不带数据的数据库脚本
B.2附录A的实验内容中使用的不带数据的数据库脚本
参考文献
随着“互联网 ”和信息处理技术的不断发展,大数据时代的到来,以及人工智能、机器学习的发展进步,数据库在当今计算机应用中的应用越来越广泛,已成为不可或缺的数据管理基础工具。数据库的使用以及数据库系统的开发应用是很多人必须掌握的一种技能。作为当代大学生,无论何种专业,或多或少都需要处理各种各样的大量数据,没有数据库或不会使用数据库进行数据的管理和操作是不可想象的。
“数据库技术与应用”是高等学校非计算机专业一门非常重要的计算机公共课,华中科技大学几乎所有专业(理、工、医、文、管)都开设了这门课,为了适应普通高等院校各种专业的需求,以及学时数少的现实情况,我们编写了本书。为了和前期课程相呼应,本书用两种程序设计语言来讲解和开发示例应用程序。通过对本书的学习,读者可以掌握数据库的基本概念,数据库的设计实现步骤和方法,以及数据库应用系统的开发方法,也可为后续课程的学习和提高打下良好的基础。
当今社会,数据管理技术的掌握程度和数据处理能力水平的高低,是衡量大学生计算机使用水平的一个非常重要的指标,因而“数据库技术与应用”是当今各种专业的大学生必须学习和掌握的一门公共基础技能课程。为了方便、快捷地使读者适应社会,了解社会的使用情况和需求,本书分三部分组织。
部分数据库理论概述(第1~2章),首先介绍当今社会“互联网 ”、大数据、数据处理技术的发展情况,再讲解数据库的一些基本概念,以及数据库设计的基本步骤和方法,后通过学生经常使用的HUB系统的模拟系统“学生成绩管理系统”来讲解系统的设计开发过程,这样做是为了简单、不局限于特定专业、易于理解实现。本书通篇都是以此模拟系统为主线讲解,力求做到通俗、易懂、不枯燥、趣味性强。
第二部分是数据库技术(第3~6章),以社会上使用较普及的微软公司的SQL Server 2012进行讲解,主要介绍常用的数据库、表、索引、视图和存储过程等各种常用的数据库对象的操作使用方法,包括通过管理平台的操作和通过命令的操作两种方式。
第三部分是数据库应用系统的开发(第7章),本书采用VB.NET和VC 6.0 Console两种环境平台进行系统的开发,主要考虑的是不同专业的学生前期所学的程序设计语言的不同。在这部分介绍了常用的应用系统的架构,不同开发环境所使用的API的使用方法以及“学生成绩管理系统”的功能划分和开发。本书“学生成绩管理系统”采用C/S架构实现,有兴趣的读者也可改用B/S架构实现。
本书每章均配有大量的习题,通过这些习题的练习,可以加深和巩固所学的知识。另外,针对本书的内容,在书的附表中还附有相应的实验。为了方便读者学习和上机实践,本书例题的数据库脚本和实验用的数据库脚本、教学课件PPT、教学大纲和部分习题答案等资料可到清华大学出版社官网本书页面下载。
本书由张建国主编。第1章和第5章由黄晓涛编写,第2章由王芬编写,第3章由张晓芳编写,第4章由阙向红编写,第6章由黄庆凤编写,第7章由张建国编写。
在本书的酝酿和编写过程中得到了我校网络与计算中心于俊清主任(书记)、李战春副书记、康玲副主任和计算机基础教研室胡兵主任的大力支持和帮助,在此衷心地表示感谢!
限于编者的水平有限、经验不足,加之编者过多,书中难免存在错误或不妥之处,恳请广大读者给予批评指正,有意见或建议可发送邮件到[email protected]。
编者
2018年12月于华中科技大学
索引与视图
索引和视图是数据库常用的对象。索引是为了快速地从数据库中找到所需要的数据,SQL Server提供了类似于图书的目录作用的索引技术,用户可以使用索引技术在大量数据里快速查询。视图是为了更方便地服务于应用程序,SQL Server提供了数据库的三级模式中外模式的对象——视图,用户可以简化所使用数据表。
本章主要介绍索引和视图的概念以及在SQL Server 2012数据库系统中索引和视图的基本操作。
5.1索引
在数据库中,索引的含义与日常意义上的“索引”一词并无多大区别,如小时候查字典中使用的索引,它是用于提高数据库数据访问速度的数据库对象。
5.1.1索引的基本概念
在关系数据库中,索引(Index)是一种单独地、物理地对数据库表中一列或多列的值进行排序的一种存储数据结构,它是某个表中一列或若干列值的集合和相应的指向表中物理标识这些值的数据页的逻辑指针清单。索引是数据库中一种特殊类型的对象,它与数据库中的表有着紧密的关系。
数据库索引的作用相当于图书的目录,可以根据目录中的页码快速找到所需的内容。一本书中,利用目录可以快速查找所需内容,而无须翻阅整本书。在数据库中,索引使数据库程序无须对整个表进行扫描,就可以在其中找到所需数据。书中的目录是一个标题列表,其中注明了各章节标题所对应的页码; 而数据库中的索引是一个表中所包含的关键字对应的值的列表,其中注明了表中关键字和所包含的各个值在数据库表中对应物理行所在的存储位置,如图5.1所示。
图5.1数据库索引与数据表的示意图
当数据库表中有大量记录时,对表进行查询有两种方式: 种方式是对全表进行搜索,将所有记录一一取出,和查询条件进行一一对比,然后返回满足条件的记录,这样做会消耗大量数据库系统时间,并造成大量的磁盘I/O操作; 第二种方式是在表中建立索引,然后先在索引中根据关键字找到符合查询条件的索引值,再通过保存在索引中的数据库表中数据的相应物理位置所处的页码,快速找到数据表中所对应的记录。从图5.1中可以看到,索引可以避免对数据库表的全表扫描,一些查询可以仅在索引页中扫描少量索引页及数据页,而不是遍历数据库表中所有的数据页。但注意,并不是所有的数据库表建索引就检索快,若要检索表的数据记录比较少,则即使不用索引也可以一次性把所有数据读取出来,只需要做一次读写操作; 如果使用索引,则首先检索索引,至少读取一次索引数据,再根据索引检索结果去读取相应的数据,再读取一次表数据,至少要做两次读写操作,这显然比不用索引至少多读写一次,这样用索引检索数据就不快了。
一般来说,创建索引可以大大提高系统的性能,主要表现在以下方面:
(1) 通过创建索引,可以大大加快数据的检索速度,这是创建索引主要的原因。
(2) 通过创建性索引,可以保证数据库表中每一行数据的性。
(3) 可以加速表和表之间的连接,在实现数据的参照完整性方面特别有意义。
(4) 在使用分组和排序子句进行数据检索时,利用索引可以减少排序和分组的时间。
(5) 在数据查询的过程中,SQL Server都会对查询语句进行优化。查询优化器如果发现所查数据已建索引,一般来说会根据索引优化所建立的查询执行路径,它将决定选择哪些索引可以使得该查询速度快。
例如,从“学院”表中提取“学院名称”为“计算机学院”的“学院电话”和“学院地址”,则可使用下面的命令:
SELECT 学院名称,学院电话,学院地址
FROM 学院
WHERE 学院名称=’计算机学院’
如果在“学院名称”那列上没有索引,那么SQL Server就可能对数据库中的数据表进行全表扫描,对表中的数据一行一行地查询,观察数据库表中每一行的“学院名称”列的内容。为了找出满足检索条件的那些行,必须访问表中的每一行。对于数据量大的数据表来说,表的检索可能要花费数分钟甚至数小时。
如果在“学院名称”列上创建了索引,就可以提高SQL Server查询所需数据的速度。SQL Server首先搜索针对“学院名称”列所建的索引,找到关键字“学院名称”为“计算机学院”的值,然后根据索引中的物理位置信息确定其在数据表中的物理页和行。由于索引是进行了排序和分类的,并且索引的行和列的数据比较少,所以对索引全部搜索一遍很快,这样就加速了数据的检索。
在数据库中建立索引会提高检索或查找的效率,但这并不是说表中的每个字段都需要建立索引,因为增删记录时除了对表中的数据进行处理外,还需要对每个索引进行维护,索引将额外占用磁盘空间,并且会降低增加、删除和修改的速度。在通常情况下,只对表中经常查询的字段才创建索引。
5.1.2索引的分类
数据库索引是数据库管理系统中一个排序了的数据结构,协助快速查询、更新数据库表中的数据。索引的实现通常使用B 树或B-树及其变种,根据索引关键字的顺序与创建索引的数据表的物理顺序是否相同,索引可分为聚集(簇)索引(Clustered Index)和非聚集(非簇)索引(Nonclustered Index)。非聚集索引和聚集索引比较起来,聚集索引有着更快的检索速度。
聚集索引是指数据库表中数据的行物理顺序与索引关键字值的逻辑顺序相同。在创建聚集索引时,一般要重新组织数据库表中的数据,这些数据要按指定的一个或多个列的值排序。聚集索引的叶结点也包含实际的数据,因此用它查找数据很快,但每个表只能建一个聚集索引,因为一个表的物理顺序只有一种情况。在聚集索引中,叶结点即数据结点,所有数据行的存储顺序与索引关键字值的顺序一致。如图5.2所示,该例子是以学生的姓名作为索引关键字,在索引中只描述了姓名和数据所在的页码,该例子中的索引是一个二级索引。一般使用聚集索引的场合为:
(1) 此列包含有限数目的不同值。
(2) 所查询的结果返回为一个区间的值。
(3) 所查询的结果返回某个值相同的大量结果集。
评论
还没有评论。