本书围绕数据库的原理、应用和实施,系统、全面地介绍数据库的基本概念、方法和核心技术。全书分三部分进行阐述,第一部分侧重数据库理论基础,内容包括数据库的基本概念、数据模型、关系数据库、关系代数和SQL语句、数据库规范化理论、数据库设计和数据库保护技术; 第二部分侧重SQL Server的数据库应用,内容包括TransactSQL语言、SQL Server数据对象(表、视图、索引、存储过程和函数、触发器)、安全性管理和并发机制; 第三部分侧重数据库应用系统的实施,内容包括.NET开发环境、一个学分制财务管理系统的总体设计、数据库设计和核心模块的实现。
本书可作为高等学校计算机专业数据库课程的教材,也可作为其他相关专业本科生数据库课程的教材,还可作为从事数据库研制、开发和应用的有关人员的参考书。
数据库是普通高校计算机专业、信息管理、软件工程等专业的专业基础课,其主要任务是研究如何存储、使用和管理数据,目前,已成功地应用于经济、教育、情报、科研、人工智能等各个领域。因此,数据库是国内外计算机专业的一门重要的课程。
开设数据库课程的目的是使学生在掌握数据库的基本原理、方法和技术的基础上,能根据应用需求灵活设计适合的数据库,并能联合现有的数据库管理系统和软件开发工具进行数据库的建立和数据库应用系统的开发。本书以关系数据库为核心,按照“原理—应用—实施”循序渐进的模式,全面、系统地阐述了数据库系统的理论和实践知识。其中,原理部分的目标是帮助读者掌握数据库的重要概念,最终能进行关系数据库的设计; 应用部分的目标是帮助读者熟练使用某种商品型数据库,通过比较,我们选用了SQL Server 2008,其是Microsoft公司具有里程碑性质的企业级数据库产品,和以往的数据解决方案相比,它给用户带来了更为强大的数据管理和业务处理功能; 实施部分的目标帮助读者按照软件工程和数据库设计的步骤来进行数据库信息管理系统的开发。
本书分为三大部分: 数据库原理部分、应用部分及实施部分,共18章。
第一部分: 数据库原理(第1~第7章)。第1和第2章介绍了数据库的基本概念和数据模型; 第3和第4章着重介绍了关系模型、关系数据库以及关系数据库的操作语言(关系代数和SQL语句); 第5章介绍数据库规范化理论; 第6和第7章分别介绍数据库设计和数据库保护的理论和方法。
第二部分: 数据库应用(第8~第14章)。第8章介绍了SQL Server的基本概念; 第9章介绍了TransactSQL 语言,包括标识符、变量、函数、流程控制语句及游标等。第10和第11章分别介绍了数据库、表、视图、索引的概念及基本操作; 第12和第13章分别介绍了存储过程和函数、触发器的管理和使用; 第14章介绍SQL Server数据库的保护,含安全性管理、备份和恢复、并发机制等。
第三部分: 数据库实施(第15~第18章)。第15章介绍了.NET开发环境; 第16和第17章分别介绍了学分制财务管理系统的总体设计和对应的数据库设计。第18章针对数据查询、存储过程、触发器和事务等核心技术,设计了专门的系统模块来描述它们的应用场景和实现过程。
本书强化以下特色:
(1) 内容全面: 本书不仅包括数据库理论部分,还有具体的SQL Server 2008的介绍和使用,另外还以学分制财务管理系统为例详细介绍数据库的设计和实施。
(2) 适用于多种层次的学生: 本书可适用于计算机及相关专业的数据库课程,无论从理论和实践都符合教学大纲的要求; 对于高职高专类院校,可把难度较大的部分作为选讲内容。
(3) 本书内容主要来源于课程教学的讲义和教案,将编者多年教学实践取得的丰富经验和操作技巧融合入教材,更有利于教师的授课和学生的学习。
(4) 强化实例教学: 对于每个知识点,本书设计了针对性强的教学案例。读者可以在清华大学出版社网页下载配套的教学资源。
(5) 在内容方面,既强调实用性,又注重理论的完整性,主要体现在:
① 数据库理论方面,突出关系数据库技术的主要内容,减少并弱化层次、网络模型的内容。
② 在关系模型操作语言方面,强化关系代数和SQL语句,并增加两者之间语句的对应关系,弱化常规数据库理论书中的关系演算部分内容。
③ 在SQL语句方面,除了常规的交互式SQL语句,增加嵌入式SQL部分。
④ 数据库规范化部分,弱化实际中应用较少的多值依赖和4NF。
⑤ 强化了数据库设计的内容,常规的数据库设计部分通常以概念居多,本书采用在数据库设计中应用最广的设计工具PowerDesigner来介绍具体的数据库设计过程。
⑥ 加入了商品型数据库SQL Server 2008的介绍和使用。
⑦ 比一般的数据库理论书增加了实践中应用较多的存储过程、触发器、游标等部分的内容,实践性更强。
⑧ 围绕数据库应用中的核心技术,增加采用.NET进行数据库应用系统开发的介绍。
本书在编写过程中,参考了大量的相关技术资料和程序开发文档,在此向资料的作者深表谢意; 还得到很多同事的关心和帮助,在此表示深深的感谢。
由于数据库技术发展迅速,加上编者水平有限,难免顾此失彼。对于书中存在的错误和不妥之处,敬请读者批评指正。
编者
2015年5月
第一部分数据库原理
第1章数据库系统概述
1.1数据库概述
1.1.1初识数据库
1.1.2数据库概念
1.2数据库系统组成
1.2.1数据库管理系统
1.2.2数据库应用程序
1.2.3用户
1.3数据库系统的三级模式结构
1.3.1三级模式
1.3.2模式映像与数据独立性
1.4数据库系统的软件体系结构
1.5数据库系统发展历程
1.5.1数据库系统的特点
1.5.2数据库系统的发展
1.5.3数据库系统的发展趋势
习题1
第2章数据模型
2.1数据模型简介
2.1.1数据模型的组成要素
2.1.2数据模型的发展
2.2概念模型
2.2.1ER数据模型的基本概念
2.2.2ER图
2.2.3EER图
2.3传统数据模型
2.3.1层次模型
2.3.2网状模型
2.3.3关系模型
2.4面向对象数据模型
2.4.1面向对象基本概念
2.4.2数据结构
2.4.3数据操作和约束
2.4.4对象数据模型的实施
习题2
第3章关系数据库系统
3.1关系数据库系统的特点
3.2关系模型的数据结构
3.2.1基本术语
3.2.2规范化的关系
3.2.3关系的键(码)
3.3关系代数
3.3.1基本的关系操作
3.3.2关系数据语言
3.3.3关系代数
3.3.4关系代数运算实例
3.4关系的完整性
3.4.1实体完整性
3.4.2参照完整性
3.4.3用户定义的完整性
习题3
第4章关系数据库标准语言SQL
4.1SQL概述
4.1.1SQL的产生与发展
4.1.2SQL语言功能概述
4.1.3SQL的特点
4.2数据准备——曲库
4.3数据定义
4.4数据查询
4.4.1查询语句的基本结构
4.4.2单表查询
4.4.3连接查询
4.4.4集合查询
4.4.5子查询
4.5数据更新
4.5.1插入操作
4.5.2删除操作
4.5.3修改操作
习题4
第5章数据库规范化理论
5.1函数依赖
5.1.1研究函数依赖的意义
5.1.2函数依赖的定义
5.1.3关系的键(码)
5.1.4函数依赖的公理系统
5.1.5属性集的闭包
5.1.6属性集闭包的应用
5.2关系模式的规范化
5.2.1问题的提出
5.2.2问题的根源
5.2.3范式
5.2.4规范化小结
习题5
第6章数据库设计
6.1数据库设计概述
6.1.1数据库设计的特点
6.1.2数据库设计的步骤
6.2需求分析阶段
6.2.1需求分析概述
6.2.2结构化分析建模
6.3概念结构设计
6.3.1概念结构设计概述
6.3.2采用ER方法的概念结构设计
6.4逻辑结构设计
6.4.1关系数据库的逻辑设计
6.4.2关系模型的优化
6.4.3设计外模式
6.5物理结构设计
6.6数据库的实施和维护
6.6.1数据库的实施
6.6.2数据库的运行和维护
6.7使用PowerDesigner进行数据库设计
6.7.1PowerDesigner介绍
6.7.2概念数据模型
6.7.3CDM生成PDM
6.7.4生成数据库
6.7.5生成REPORT
习题6
第7章数据库保护
7.1数据库安全性
7.1.1安全控制模型
7.1.2用户身份认证
7.1.3存取控制
7.1.4其他安全控制技术
7.1.5权限控制语句
7.2数据库完整性
7.2.1完整性控制的功能
7.2.2完整性约束条件作用的对象
7.2.3完整性控制语句
7.3并发控制
7.3.1并发控制的单位——事务
7.3.2并发带来的问题
7.3.3封锁技术
7.4数据库恢复
7.4.1故障种类
7.4.2数据库恢复技术
7.4.3恢复策略
习题7
第二部分数据库应用
第8章SQL Server概述
8.1SQL Server简介
8.2SQL Server的平台构成
8.3数据库引擎的体系结构
8.4SQL Server的管理工具
8.4.1SQL Server Configuration Manager
8.4.2SQL Server Management Studio
8.4.3Database Engine Tuning Advisor
8.4.4SQL Server Profiler
8.5注册服务器
习题8
第9章TransactSQL语言
9.1TransactSQL语言
9.2标识符、数据类型
9.2.1语法约定
9.2.2注释语句
9.2.3标识符
9.2.4数据类型
9.3常量和变量
9.3.1常量
9.3.2变量
9.3.3运算符
9.3.4表达式
9.4系统内置函数
9.4.1字符串函数
9.4.2日期函数
9.4.3数学函数
9.4.4其他常用函数
9.4.5转换函数
9.5批处理和流程控制语句
9.5.1批处理
9.5.2流程控制语句
9.6游标
9.6.1游标概述
9.6.2使用游标
习题9
第10章管理数据库
10.1数据库的组成
10.1.1物理数据库与文件
10.1.2逻辑数据库与数据库对象
10.1.3系统数据库与用户数据库
10.2数据库的操作
10.2.1创建数据库
10.2.2修改数据库
10.2.3删除数据库
10.2.4数据库的重命名
10.2.5查看数据库信息
10.2.6分离和附加数据库
10.2.7设置当前数据库
10.3扩展知识
10.3.1关于数据库空间使用
10.3.2数据库的排序规则
10.3.3数据库的统计信息
10.3.4查看系统数据库启动顺序
习题10
第11章表、视图和索引
11.1概述
11.2表
11.2.1表的概述
11.2.2表的分类
11.2.3创建表
11.2.4数据完整性的实现
11.2.5修改表和删除表
11.2.6表的数据操作
11.3视图
11.3.1视图概述
11.3.2创建视图
11.3.3管理视图
11.3.4视图的使用
11.4索引
11.4.1索引的概念
11.4.2索引的类型
11.4.3索引的创建
11.4.4删除索引
11.4.5查看索引信息
11.4.6索引填充因子
11.5使用数据库引擎优化顾问
习题11
第12章存储过程和函数
12.1存储过程
12.1.1存储过程概述
12.1.2创建存储过程
12.1.3执行存储过程
12.1.4带参数的存储过程
12.1.5管理存储过程
12.2用户自定义函数
12.2.1概述
12.2.2标量函数
12.2.3表值函数
12.2.4使用SSMS创建用户定义函数
12.2.5修改用户定义函数
12.2.6删除用户定义函数
习题12
第13章触发器
13.1触发器概述
13.2DML触发器
13.2.1DML触发器的概述和作用
13.2.2DML触发器分类
13.2.3与DML触发器相关的逻辑表
13.2.4创建DML触发器
13.3DDL触发器
13.3.1DDL触发器概述
13.3.2创建DDL触发器
13.4管理触发器
习题13
第14章SQL Server数据库的保护
14.1SQL Server的安全性
14.1.1SQL Server的安全机制
14.1.2管理SQL Server服务器安全性
14.1.3管理数据库的安全性
14.1.4管理数据库对象的安全性
14.2SQL Server的备份和恢复
14.2.1SQL Server的恢复模式
14.2.2SQL Server的备份
14.2.3备份数据库
14.2.4恢复数据库
14.3SQL Server的并发机制
14.3.1SQL Server的隔离级别
14.3.2SQL Server的锁模式
14.3.3SQL Server中死锁的处理
14.3.4SQL Server Profiler查看死锁
14.4*扩展知识
习题14
第三部分数据库实施
第15章数据库应用程序开发技术
15.1开发环境简介
15.2基于.NET的Windows程序开发
15.2.1可视化编程
15.2.2.NET下的可视化编程
15.3.NET中的数据库技术
15.3.1ADO.NET与.NET框架
15.3.2ADO.NET的组成
15.3.3ADO.NET的常用类
习题15
第16章学分制财务管理系统总体设计
16.1需求分析
16.2功能模块设计
16.3开发与运行环境
习题16
第17章学分制财务管理系统数据库设计
17.1总体设计
17.2完整性设计
17.3函数和存储过程设计
17.3.1函数设计——个人财务
17.3.2存储过程设计
习题17
第18章学分制财务管理系统实现
18.1建立数据库通用访问类
18.2基础DML的演练——用户管理
18.3动态查询条件的演练——查询学生信息
18.4调用函数和存储过程——查询统计
18.5触发器演练——资费标准管理
18.6事务演练——批量导入选课学分模块
18.7安全性演练1——用户登录
18.8安全性演练2——系统集成
习题18
附录
参考文献