《数据库原理与技术:基于SQL Server 2012/重点大学计算机专业系列教材》讲授数据库基本原理和技术,并以SQL Server 2012为平台介绍数据库管理系统的应用。全书分为两个部分,第1~5章介绍数据库的一般原理; 第6~18章介绍SQL Server的数据管理技术。
本书由浅入深、循序渐进地介绍各个知识点,提供了大量例题并做了深入的剖析,有助于读者理解概念和巩固知识; 各章都有一定数量的练习题,附录中给出了部分练习题的参考答案和10个上机实验题,便于学生学习和上机实训。
本书可以作为各类院校计算机科学与技术及相关专业的“数据库原理与技术”课程的教学用书,对于计算机应用人员和计算机爱好者而言本书也是一本实用的自学参考书。
数据库技术是目前IT行业中发展最快的技术之一,已经广泛应用于各种类型的数据处理系统之中,了解并掌握数据库知识已经成为各类科技人员和管理人员的基本要求。现在,“数据库原理与技术”课程已成为普通高校计算机及相关专业本、专科学生的一门重要的专业课程,本课程既具有较强的理论性,又具有很强的实践性。
本书基于SQL Server 2012讨论数据库的原理和技术。全书分为两部分,第1~5章为数据库基础部分,介绍数据库的一般原理。其中,第1章为数据库系统概述,第2章为数据模型,第3章为关系数据库,第4章为关系数据库规范化理论,第5章为数据库设计。第6~18章为SQL Server数据库管理和应用部分,介绍SQL Server 2012的数据管理方法和数据访问技术。其中,第6章为SQL Server系统概述,第7章为创建和删除数据库,第8章为创建和使用表,第9章为TSQL基础,第10章为TSQL程序设计,第11章为索引和视图,第12章为数据完整性,第13章为事务处理和数据锁定,第14章为函数和存储过程,第15章为触发器,第16章为SQL Server的安全管理,第17章为数据文件安全和灾难恢复,第18章为SQL Server数据访问技术。本书中带“*”部分为选修内容。
本书每章都给出了一定数量的练习题,附录A给出了部分练习题的参考答案,附录B给出了SQL Server数据管理的上机实验题供读者选做。
本书内容由浅入深、循序渐进、通俗易懂,适合自学,既讲授一般性的数据库原理,又突出数据库实际应用技术。书中提供了大量例题,有助于读者理解概念、巩固知识、掌握要点、攻克难点。本书可以作为各类院校计算机科学与技术及相关专业的“数据库原理与技术”课程的教学用书,对于计算机应用人员和计算机爱好者而言本书也是一本实用的自学参考书。
为便于教学和学习,本书提供了完整的配套资源,包括PPT课件、全部上机实验题参考答案、示例数据库文件和第18章的程序,这些资源均可从清华大学出版社网站下载。
由于编者水平所限,书中难免存在不足之处,敬请广大读者指正。
编者
2015年5月
第1章数据库系统概述
1.1数据和数据管理
1.2数据管理技术的发展
1.2.1人工管理阶段(20世纪50年代)
1.2.2文件系统阶段(20世纪60年代)
1.2.3数据库系统阶段(20世纪60年代后期)
1.3数据库系统
1.4数据库管理系统
1.4.1DBMS的主要功能
1.4.2DBMS的组成
1.4.3常用的DBMS
练习题1
第2章数据模型
2.1什么是数据模型
2.1.1三个世界及其关系
2.1.2两类模型
2.2概念模型
2.2.1实体间的联系方式
2.2.2实体联系表示法
2.2.3设计ER图的基本步骤
2.3DBMS支持的数据模型
2.3.1数据模型的组成要素
2.3.23种基本的数据模型
2.4数据库系统的体系结构
2.4.1数据库系统模式的概念
2.4.2数据库系统的三级组织结构
2.4.33个模式之间的两层映像
2.4.4数据库系统的结构
练习题2
第3章关系数据库
3.1关系和关系数据库
3.1.1关系的概念
3.1.2关系数据库的概念
3.1.3关系操作语言
3.2关系代数
3.2.1传统的集合运算
3.2.2专门的关系运算
3.3关系演算
3.3.1元组关系演算
3.3.2域关系演算
3.4SQL简介
3.4.1SQL概述
3.4.2SQL语言的分类
3.4.3SQL支持的标准和发展历史
练习题3
第4章关系数据库规范化理论
4.1为什么要对关系模式进行规范化
4.1.1问题的提出
4.1.2问题的解决
4.1.3关系模式规范化概述
4.2函数依赖
4.2.1函数依赖的定义
4.2.2函数依赖与属性关系
4.2.3函数依赖的分类
4.2.4Armstrong公理
4.2.5闭包及其计算
4.2.6函数依赖集的等价和覆盖
4.2.7最小函数依赖集
4.2.8确定候选码
4.3关系模式的规范化
4.3.1关系与范式
4.3.2常用的几种范式
4.3.3关系模式的规范化过程
4.4关系模式分解的理论
4.4.1模式分解的定义
4.4.2无损分解的定义和性质
4.4.3无损分解的检验算法
4.4.4函数依赖保持性
4.4.5模式分解算法
4.5关系数据库规范化应用实例
练习题4
第5章数据库设计
5.1数据库设计概述
5.2需求分析
5.2.1需求分析的步骤
5.2.2需求分析的方法
5.3概念结构设计
5.3.1概念结构设计的方法和步骤
5.3.2局部ER模型设计
5.3.3总体ER模型设计
5.4逻辑结构设计
5.4.1ER模型向关系模型的转换
5.4.2优化模型
5.4.3设计适合DBMS的关系模式
5.5物理结构设计
5.6数据库的实施和维护
练习题5
第6章SQL Server系统概述
6.1SQL Server 2012系统简介
6.1.1SQL Server的发展历史
6.1.2SQL Server 2012的各种版本
6.1.3SQL Server 2012的组成结构和主要管理工具
6.2SQL Server的安装
6.3SQL Server 2012的工具和实用程序
6.3.1SQL Server管理控制器
6.3.2SQL Server配置管理器
6.4SQL Server的体系结构
6.4.1SQL Server的客户机/服务器体系结构
6.4.2SQL Server的总体架构
6.4.3一个基本的SELECT查询的执行流程
练习题6
第7章创建和删除数据库
7.1数据库对象
7.2系统数据库
7.3SQL Server数据库的存储结构
7.3.1文件和文件组
7.3.2数据库的存储结构
7.3.3事务日志
7.4创建和修改数据库
7.4.1创建数据库
7.4.2修改数据库
7.5重命名和删除数据库
7.5.1重命名数据库
7.5.2删除数据库
练习题7
第8章创建和使用表
8.1表的概念
8.1.1什么是表
8.1.2表中数据的完整性
8.2创建表
8.3修改表的结构
8.4数据库关系图
8.4.1建立数据库关系图
8.4.2删除关系和数据库关系图
8.5更改表名
8.6删除表
8.7记录的新增和修改
8.8表的两种特殊类型的列
练习题8
第9章TSQL基础
9.1TSQL语句的执行
9.2数据定义语言
9.2.1数据库的操作语句
9.2.2表的操作语句
9.3数据操纵语言
9.3.1INSERT语句
9.3.2UPDATE语句
9.3.3DELETE语句
9.4数据查询语言
9.4.1投影查询
9.4.2选择查询
9.4.3排序查询结果
9.4.4使用聚合函数
9.4.5连接查询
9.4.6子查询
9.4.7空值及其处理
*9.5关系数据库系统的查询优化
练习题9
第10章TSQL程序设计
10.1标识符和注释
10.1.1标识符的类型
10.1.2使用标识符和同义词
10.1.3注释
10.2SQL Server的数据类型
10.2.1数据类型概述
10.2.2系统数据类型
10.2.3用户定义数据类型
10.3变量
10.3.1局部变量
10.3.2全局变量
10.4运算符
10.4.1算术运算符
10.4.2赋值运算符
10.4.3按位运算符
10.4.4比较运算符
10.4.5逻辑运算符
10.4.6字符串连接运算符
10.4.7一元运算符
10.4.8运算符的优先级
10.5批处理
10.5.1批处理概述
10.5.2GO命令
10.5.3批处理的使用规则
10.6控制流语句
10.6.1BEGIN…END语句
10.6.2IF…ELSE语句
10.6.3CASE语句
10.6.4WHILE语句
10.6.5GOTO语句
10.7异常处理
10.7.1TRY…CATCH构造
10.7.2THROW语句
10.7.3RAISERROR语句
10.8游标
10.8.1游标的概念
10.8.2游标的基本操作
10.8.3使用游标
练习题10
第11章索引和视图
11.1索引
11.1.1索引概述
11.1.2创建索引
11.1.3索引的查看与使用
11.1.4修改索引
11.1.5删除索引
11.2视图
11.2.1视图概述
11.2.2创建视图
11.2.3使用视图
11.2.4视图定义的修改
11.2.5查看视图的信息
11.2.6视图的重命名和删除
11.2.7索引视图
练习题11
第12章数据完整性
12.1数据完整性概述
12.1.1为什么需要考虑数据完整性
12.1.2SQL Server提供的强制数据完整性方法
12.2约束
12.2.1PRIMARY KEY约束
12.2.2FOREIGN KEY约束
12.2.3UNIQUE约束
12.2.4CHECK约束
12.2.5列约束和表约束
12.3默认值
12.3.1在创建表时指定默认值
12.3.2使用默认对象
12.4规则
12.4.1创建规则
12.4.2绑定规则
12.4.3解除和删除规则
练习题12
第13章事务处理和数据锁定
13.1事务处理
13.1.1事务概述
13.1.2事务的分类
13.1.3显式事务
13.1.4自动提交事务
13.1.5隐式事务
13.1.6事务和异常处理
13.2数据锁定
13.2.1并发控制概述
13.2.2SQL Server中的自动锁定
13.2.3SQL Server中的自定义锁定
练习题13
第14章函数和存储过程
14.1函数
14.1.1函数概述
14.1.2内置函数
14.1.3用户定义函数
14.2存储过程
14.2.1存储过程概述
14.2.2存储过程的类型
14.2.3创建存储过程
14.2.4执行存储过程
14.2.5存储过程的参数和返回值
14.2.6存储过程的管理
练习题14
第15章触发器
15.1触发器概述
15.1.1触发器的作用
15.1.2触发器的种类
15.2DML触发器
15.2.1DML触发器概述
15.2.2创建DML触发器
15.2.3触发器的删除、禁用和启用
15.2.4inserted表和deleted表
15.2.5INSERT、UPDATE和DELETE触发器的应用
15.2.6INSTEAD OF触发器
15.3DDL触发器
15.3.1创建DDL触发器
15.3.2DDL触发器的应用
15.4登录触发器
15.5触发器的管理
15.5.1查看触发器
15.5.2修改触发器
练习题15
第16章SQL Server的安全管理
16.1SQL Server安全体系结构
16.2SQL Server的身份验证模式和设置
16.2.1SQL Server的身份验证模式
16.2.2设置身份验证模式
16.3SQL Server账号管理
16.3.1SQL Server服务器登录账号管理
16.3.2SQL Server数据库用户账号管理
16.4权限和角色
16.4.1权限
16.4.2角色
16.5架构
练习题16
第17章数据文件安全和灾难恢复
17.1数据文件安全概述
17.2数据库备份和还原
17.2.1数据库备份和还原概述
17.2.2数据库备份和恢复过程
17.3数据库的分离和附加
17.3.1分离用户数据库
17.3.2附加用户数据库
17.4数据库镜像简介
17.5数据库快照简介
17.6日志传送简介
17.7故障转移群集简介
17.8AlwaysOn简介
练习题17
第18章SQL Server数据访问技术
18.1ADO.NET模型
18.1.1ADO.NET简介
18.1.2ADO.NET体系结构
18.1.3ADO.NET数据库的访问流程
18.2ADO.NET的数据访问对象
18.2.1SqlConnection对象
18.2.2SqlCommand对象
18.2.3SqlDataReader对象
18.2.4SqlDataAdapter对象
18.3DataSet对象
18.3.1DataSet对象概述
18.3.2DataSet对象的属性和方法
18.3.3Tables集合和DataTable对象
18.3.4Columns集合和DataColumn对象
18.3.5Rows集合和DataRow对象
练习题18
附录A部分练习题的参考答案
附录B上机实验题
参考文献