数据库课程是信息管理与信息系统及其相关专业的一门必修的核心课程,数据库技术是信息技术和信息产业的重要支柱。国内高校的所有专业几乎都已经开设数据库课程,只不过不同的专业侧重面和要求有所不同。作为信息管理与信息系统专业的学生,需要掌握数据库的基本原理、数据库的应用、数据库的设计和实施方法、数据库的运行管理,并初步掌握数据库应用的开发方法等。本书围绕以上要求共分为9章。
第1章为数据库基础。主要内容包括数据库和数据模型的基础知识和基本概念,以及数据库的特点和三层模式结构。
第2章为关系数据库基础。关系数据库经过几十年的发展目前仍然是主流系统,所以学习数据库必须首先要掌握关系数据库的基本知识。这一章的主要内容包括关系的基本概念、关系数据模型及其约束、关系代数和关系数据库管理系统SQL Server简介。SQL Server是目前的主流关系数据库管理系统之一,本书选择这个系统作为学习数据库的平台和实践平台,特别是第3章和第4章都与SQL Server密切相关。
第3章为关系数据库标准语言SQL。所有关系数据库管理系统遵循相同的数据定义、数据操作和数据查询语言SQL,学习和掌握SQL是使用关系数据库的基础。本章首先给出了一个样本数据库,使得后续介绍数据定义、数据操作和数据查询更加系统化,然后分别介绍了数据定义和数据完整性约束的实现、数据操作和数据完整性约束的作用以及数据查询功能,最后简单介绍了视图的概念和使用。
第4章为数据库编程初步。该章介绍了SQL Server支持的Transact SQL以及游标、存储过程和触发器,这些内容都是数据库编程的基础。
第5章为数据库管理。主要内容为数据库管理的概念,以及数据库的安全管理、事务管理、灾难恢复管理和并发控制等。
第6章为关系数据库理论。主要介绍了函数依赖和逻辑蕴含的概念、模式分解及其准则,以及关系的规范化。这一章的内容是设计关系数据库模式的理论基础。
第7章为数据库的设计与实施。主要介绍了数据库的设计方法和实施方法,同时还介绍了数据库设计工具PowerDesinger,最后还通过一个案例介绍了数据库设计和实施的步骤。
第8章为数据库开发入门。这一章主要介绍数据库的开发方法和开发技术,以及数据库的访问技术,最后通过一个案例示意了数据库应用系统的开发过程。该章侧重的是开发技术,不同的院校可以根据实际情况作出取舍。
第9章为数据库新技术。
数据库课程是信息管理与信息系统及其相关专业的一门必修的核心课程,数据库技术是信息技术和信息产业的重要支柱。国内高校的所有专业几乎都已经开设数据库课程,只不过不同的专业侧重面和要求有所不同。作为信息管理与信息系统专业的学生,需要掌握数据库的基本原理、数据库的应用、数据库的设计和实施方法、数据库的运行管理,并初步掌握数据库应用的开发方法等。本书围绕以上要求共分为9章。
第1章为数据库基础。主要内容包括数据库和数据模型的基础知识和基本概念,以及数据库的特点和三层模式结构。
第2章为关系数据库基础。关系数据库经过几十年的发展目前仍然是主流系统,所以学习数据库必须首先要掌握关系数据库的基本知识。这一章的主要内容包括关系的基本概念、关系数据模型及其约束、关系代数和关系数据库管理系统SQL Server简介。SQL Server是目前的主流关系数据库管理系统之一,本书选择这个系统作为学习数据库的平台和实践平台,特别是第3章和第4章都与SQL Server密切相关。
第3章为关系数据库标准语言SQL。所有关系数据库管理系统遵循相同的数据定义、数据操作和数据查询语言SQL,学习和掌握SQL是使用关系数据库的基础。本章首先给出了一个样本数据库,使得后续介绍数据定义、数据操作和数据查询更加系统化,然后分别介绍了数据定义和数据完整性约束的实现、数据操作和数据完整性约束的作用以及数据查询功能,最后简单介绍了视图的概念和使用。
第4章为数据库编程初步。该章介绍了SQL Server支持的Transact SQL以及游标、存储过程和触发器,这些内容都是数据库编程的基础。
第5章为数据库管理。主要内容为数据库管理的概念,以及数据库的安全管理、事务管理、灾难恢复管理和并发控制等。
第6章为关系数据库理论。主要介绍了函数依赖和逻辑蕴含的概念、模式分解及其准则,以及关系的规范化。这一章的内容是设计关系数据库模式的理论基础。
第7章为数据库的设计与实施。主要介绍了数据库的设计方法和实施方法,同时还介绍了数据库设计工具PowerDesinger,最后还通过一个案例介绍了数据库设计和实施的步骤。
第8章为数据库开发入门。这一章主要介绍数据库的开发方法和开发技术,以及数据库的访问技术,最后通过一个案例示意了数据库应用系统的开发过程。该章侧重的是开发技术,不同的院校可以根据实际情况作出取舍。
第9章为数据库新技术。主要介绍数据库的研究领域和数据库的发展及其新技术,其中影响比较大的研究领域和新技术有分布式数据库、面向对象数据库、XML数据库、数据仓库、并行数据库和多媒体数据库等。另外,该章还简单介绍了知识库、模糊数据库、主动数据库和空间数据库等。
此外,本书还具有如下特点:
(1) 为了方便教师和学生使用,在每一章开始有导读,介绍该章的主要学习内容和学习目标,并强调了本章学习的重点和难点。这样可以使教师的教学目标和学生的学习目标更加明确。
(2) 除每章结尾有习题以外,每一节都配有大量的思考题,这些思考题一是可以对刚学习过的内容进行总结和复习;二是可以引出将要学习的内容,使前后知识更好地衔接;三是可以拓展学生的思路,鼓励学生在教材知识的基础上进一步进行自主学习。
(3) 尤其注重理论联系实际,这包括在内容讲解上注重与实践的结合,除纯概念和理论内容以外,大部分内容都可以通过实践完成教学,可以实践的部分都配有相应的实验和实验指导,全书从第2章开始一共安排了13个单项实验和一个综合实验--课程大作业。
本书是在作者多年教学的基础上撰写而成的,同时得到了《中国高等院校信息系统学科课程体系》(清华大学出版社,2005)课题研究组和评审专家组的大力帮助和指导。
王晓波老师参加了第7章、第8章和附录A的编写,车蕾老师参加了第8章和附录B的编写,其余章节由崔巍编写并对全书进行了统稿。本书由中国人民大学王珊教授主审,她为本书提出了很多宝贵的修改意见,在此表示深深的感谢。
由于作者水平有限,书中的疏漏和瑕疵敬请读者批评指正。如果您对本书的再版有什么好的建议或意见,可将邮件发至:cuiw@bistu.edu.cn.
崔 巍2008年12月
第1章 数据库基础1
1.1 数据管理 1
1.1.1 数据1
1.1.2 数据处理2
1.1.3 数据管理及其技术发展2
思考题4
1.2 数据库系统 4
1.2.1 什么是数据库4
1.2.2 数据库管理系统6
1.2.3 数据库系统6
1.2.4 数据库管理与数据库管理员7
思考题8
1.3 数据模型概述 8
1.3.1 基本概念8
1.3.2 概念模型9
1.3.3 层次模型11
1.3.4 网状模型12
1.3.5 关系模型12
思考题13
1.4 数据库的三层模式结构 13
1.4.1 数据独立性13
1.4.2 三层模式和两级映射15
1.4.3 数据库管理系统的基本结构16
思考题17
本章小结 17
习题1 18
第2章 关系数据库基础19
2.1 关系概念 19
2.1.1 关系的定义 19
2.1.2 基本概念和术语21
思考题22
2.2 关系数据模型 23
2.2.1 关系模型及其要素23
2.2.2 关系完整性约束24
思考题26
2.3 关系代数 27
2.3.1 传统的集合运算27
2.3.2 专门关系运算29
思考题31
2.4 关系数据库管理系统SQL Server
介绍 32
2.4.1 SQL Server的基本结构32
2.4.2 SQL Server数据库及其建立32
思考题35
本章小结 36
习题2 36
实验1 建立数据库 37
第3章 关系数据库标准语言SQL38
3.1 SQL语言概述 38
3.2 样本数据库 39
3.3 数据定义功能与数据完整性约束
的实现 40
3.3.1 模式的定义和删除 40
3.3.2 表的定义、修改和删除40
思考题46
3.4 数据操作功能及数据完整性的
作用 46
3.4.1 插入操作46
3.4.2 删除操作51
3.4.3 更新操作52
思考题52
3.5 数据查询功能 53
3.5.1 SQL SELECT命令的语法53
3.5.2 简单查询54
3.5.3 连接查询57
3.5.4 分组与汇总查询59
3.5.5 嵌套查询62
思考题65
3.6 视图 65
3.6.1 视图的概念65
3.6.2 视图的建立和使用66
思考题67
本章小结 68
习题3 68
实验2 建立表和定义完整性约束 69
实验3 数据操作和完整性约束的
作用 71
实验4 数据查询 72
实验5 视图的应用 74
第4章 数据库编程初步75
4.1 T-SQL简介 75
4.1.1 变量、数据类型与表达式75
4.1.2 函数79
4.1.3 语句79
思考题81
4.2 游标 81
4.2.1 游标及其语句81
4.2.2 游标查询处理举例83
4.2.3 利用游标进行删除和更新操作84
4.2.4 嵌入式SQL85
思考题86
4.3 存储过程 86
4.3.1 基本概念86
4.3.2 创建存储过程和执行存储过程87
4.3.3 存储过程的修改和删除88
4.3.4 存储过程应用举例88
4.3.5 获得有关存储过程的信息91
思考题91
4.4 触发器 91
4.4.1 基本概念92
4.4.2 建立触发器92
4.4.3 deleted表和inserted表93
4.4.4 触发器应用举例94
思考题96
本章小结 96
习题4 96
实验6 游标 96
实验7 存储过程 97
实验8 触发器 98
第5章 数据库管理99
5.1 数据管理与数据库管理 99
5.1.1 数据库规划和设计阶段的管理99
5.1.2 数据库实施、运行和维护阶段的管理100
思考题100
5.2 数据库安全管理 100
5.2.1 数据库安全概述101
5.2.2 数据库管理系统的身份识别机制101
5.2.3 SQL Server的用户和角色管理102
5.2.4 SQL Server的用户权限管理108
思考题111
5.3 事务管理 111
5.3.1 事务的概念和性质111
5.3.2 事务管理的命令113
思考题115
5.4 恢复管理 115
5.4.1 软故障及其恢复115
5.4.2 硬故障恢复116
思考题123
5.5 并发控制 124
5.5.1 为什么需要并发控制124
5.5.2 可串行化126
5.5.3 封锁127
5.5.4 死锁129
5.5.5 隔离131
思考题132
本章小结 133
习题5 133
实验9 用户管理和权限管理 134
实验10 事务管理和灾难恢复 136
实验11 并发事务控制 137
第6章 关系数据库理论139
6.1 函数依赖 139
6.1.1 函数依赖的概念139
6.1.2 为什么要讨论函数依赖140
6.1.3 术语和符号141
6.1.4 函数依赖的逻辑蕴涵141
思考题143
6.2 模式分解 143
6.2.1 模式分解的准则143
6.2.2 模式分解举例144
思考题144
6.3 关系规范化 145
6.3.1 第一范式145
6.3.2 第二范式145
6.3.3 第三范式146
6.3.4 BC范式147
6.3.5 规范化算法149
6.3.6 规范化小结149
思考题150
本章小结 150
习题6 151
第7章 数据库设计与实施152
7.1 数据库设计的一般内容和步骤 152
7.1.1 数据库设计的基本任务152
7.1.2 数据库设计的方法与步骤153
思考题154
7.2 数据库设计工具PowerDesigner
简介 154
思考题156
7.3 概念模型设计 156
7.3.1 弱实体、依赖联系和强制联系156
7.3.2 概念数据模型设计的基本内容
和方法157
7.3.3 使用PowerDesigner设计概念模型159
思考题160
7.4 逻辑模型设计 161
7.4.1 E-R模型向关系模型的转换161
7.4.2 使用PowerDesigner将概念模型
转换成逻辑(物理)模型161
7.4.3 使用PowerDesigner设计逻辑
(物理)模型162
7.4.4 关系模式优化162
思考题162
7.5 物理数据库设计 162
思考题163
7.6 数据库的实施与维护 163
7.6.1 数据库的实施164
7.6.2 数据库的运行和维护164
思考题165
7.7 数据库设计案例 165
7.7.1 需求概述165
7.7.2 概念结构设计166
7.7.3 逻辑结构设计167
7.7.4 物理结构设计和数据库实施170
思考题171
本章小结 171
习题7 171
实验12 数据库设计 172
第8章 数据库开发入门174
8.1 数据库应用系统开发方法概述 174
8.1.1 结构化生命周期法174
8.1.2 快速原型法177
8.1.3 面向对象方法177
思考题178
8.2 数据库应用系统的基本架构 179
8.2.1 客户/服务器结构179
8.2.2 浏览器/服务器结构179
思考题180
8.3 数据库访问技术 180
8.3.1 ODBC180
8.3.2 ADO.NET182
8.3.3 JDBC184
思考题185
8.4 数据库开发案例 185
8.4.1 数据库设计185
8.4.2 系统主界面186
8.4.3 学生管理190
8.4.4 课程管理195
8.4.5 选课管理197
8.4.6 统计查询201
思考题208
本章小结 208
习题8 208
实验13 使用C#开发数据库应用
程序 208
第9章 数据库新技术与发展209
9.1 分布式数据库 209
9.1.1 分布式数据库的基本概念209
9.1.2 分布式数据库的基本特点210
思考题211
9.2 面向对象数据库 211
9.2.1 面向对象数据库的研究方法211
9.2.2 ODMG数据模型和OQL212
9.2.3 面向对象数据库的基本特征及其存在
的问题212
9.2.4 RDBMS、ORDBMS和OODBMS
的比较213
思考题213
9.3 并行数据库 214
9.3.1 为什么要研究并行数据库214
9.3.2 并行数据库的研究内容214
思考题214
9.4 主动数据库 214
思考题215
9.5 知识库 216
思考题216
9.6 模糊数据库 217
思考题217
9.7 多媒体数据库 217
思考题218
9.8 数据仓库 218
9.8.1 什么是数据仓库218
9.8.2 数据仓库系统219
9.8.3 数据仓库与决策支持219
思考题220
9.9 XML数据库 220
9.9.1 XML数据库的研究过程220
9.9.2 XML基础220
9.9.3 XML数据类型和SQL/XML221
思考题221
9.10 地理信息系统与空间数据库 221
思考题222
本章小结 222
附录A 课程大作业223
A.1 内容及要求 223
A.1.1 实践目的223
A.1.2 实践内容223
A.1.3 实践步骤224
A.1.4 实践要求224
A.1.5 评分标准224
A.2 题目 224
A.2.1 餐饮管理信息系统224
A.2.2 订货、发货管理系统225
A.2.3 住宅小区物业管理信息系统227
A.2.4 机房管理系统228
A.2.5 药品库房管理系统229
A.2.6 教务管理信息系统230
附录B 课程大作业样例233
B.1 题目及需求分析 233
B.2 概念结构设计 235
B.3 逻辑结构设计 242
B.4 物理数据库设计 249
B.5 系统实现 250
主要参考书目253