
本书选用以网络环境为背景,目前广泛使用的SQL Server关系型数据库管理系统为数据库系统平台,全面系统地介绍数据库技术的基础理论、数据库系统的设计方法、现代数据库系统的开发应用等内容。包括了数据库设计理论、设计方法、Transact-SQL编程、网络数据库系统安全、面向对象数据库技术、并行数据库系统和分布式数据库系统、数据仓库、数据挖掘等内容。本书第2版仍以广泛应用的SQL Server列举基本案例,通过ODBC和ADO数据库访问技术,把ASP技术或JSP技术制作的Web网页与数据库之间连接起来,技术方法结构清晰,基本覆盖了现代数据库技术应用知识要点。
本书在内容编排上系统全面,力求重点突出、新颖实用、可读性强,是系统学习和掌握现代数据库技术理论与实践的理想教材或参考书。
前 言
数据库技术是现代信息技术的重要组成部分。随着计算机技术的发展与广泛应用,无论是在数据库技术的基础理论、数据库技术应用、数据库系统开发,还是在数据库商品软件的推出方面,都有了长足的、迅速的进步与发展。
随着计算机网络技术的日益发展与广泛应用,支持网络技术的数据库系统也不断推陈出新,推动着数据库技术的发展和应用。新的数据库系统,在继承了传统数据库技术的同时,不仅在数据库系统性能和功能的完善方面,而且在数据库系统管理的易操作性、安全性、易维护性方面以及系统的开发技术方面,都较以前的数据库系统产品有了很大的发展与进步,并且在现代信息技术系统开发和新技术应用的理念方面,都更加符合当今社会对信息技术发展的需要与应用。尽管数据库系统软件不断推陈出新,但数据库技术的核心仍然万变不离其宗,保持着传统的数据库基础理论和设计方法。
SQL Server 是在Microsoft公司与Sybase公司合作的基础上推出的关系型数据库系统,它一经推出便迅速成为Windows NT网络方案的首选数据库系统。而新一代的SQL Server 2000着眼于Internet背景下的网络数据库的应用与开发,是Microsoft公司继Windows 2000之后的一部很有影响力的系统软件。它除了具有现代数据库管理系统所具备的各种强大的功能外,在支持Internet技术方面,还提供了HTTP的支持,并为Web用户提供了功能完善的网络数据管理与数据分析解决方案以及开发应用数据仓库和电子商务的便利环境。
本书选用网络环境广泛使用的SQL Server作为数据库系统平台,系统地介绍网络数据库技术的基础理论、实现方法、设计过程与开发应用等。在内容编排上由理论到实践、从技术基础到综合开发与新技术应用,使学习过程能够由浅入深、由点到面、由具体实践到系统提高逐步过渡。本书在技术基础内容方面包括传统数据模型的建立、数据库系统结构组成、关系模型的数据结构、数据运算、数据库设计理论与设计方法、数据库系统分析与设计、标准通用查询语言SQL等;在数据库系统开发和应用方面,介绍了SQL Server 2000关系数据库系统结构组成、管理工具、语言与编程接口,以及SQL Server 2000数据管理、SQL Server数据库操作等应用开发功能。
就数据库编程来说,Transact-SQL是标准SQL语言的增强版本,用Transact-SQL语言可以直接和数据库引擎进行交互,书中系统地介绍了Transact-SQL程序设计应用与开发。数据库系统安全是数据库技术的重要组成部分,面向对象技术广泛应用于现代数据库技术,并行数据库系统和分布式数据库系统是现代数据库的重要内容,这些内容书中均有完整的介绍。最后介绍了SQL Server 2000作为网络编程的后台数据库,可以通过ODBC和ADO这两种数据库访问技术,用于ASP技术或JSP技术制作的Web网页与数据库之间的连接。
本书符合现代信息技术的教育理念,旨在引导和培养读者的综合实践与创新能力。通过本书,读者不仅可以系统地掌握数据库技术的基础理论、设计方法,还可以系统地掌握现代数据库系统的开发技术。
本书由张莉教授根据多年从事相关教学及科研成果主持编写。参加本书编写的其他教师在数据库技术原理与应用方面,也都有着多年科研开发与教学实践经验。特别是具有丰富理论与扎实经验的研究生和本科生对案例的设计与调试,更为本书增加了新颖性、实用性和可读性。本书在编写过程中参考了大量的文献资料,是教学、科研与实践协作的结果。
本书由张莉教授担任主编,具体参加修订编写的人员还有王永进、杨丽丽、陈雷、王强、董莉、赵文坊、段清玲、张筠、李琼飞、马钦、王德宇、马志远、张一飞、张媛媛、朱杨等。本书涉及数据库技术应用原理的新内容较多,修订版经过多年教学实践检验,其内容编排符合现代教育认知理念,取得了良好的教学效果和社会反响。第2版仍然以应用研发为目的,理论结合实践,注重案例分析。
本书整个编写过程中力求系统简练,但难免有遗漏、不足之处,恳请学界同仁和广大读者及时批评指正,并提出宝贵的意见和建议。
? 编 者
目 录
第1章 数据库系统概述 1
1.1 概述 1
1.1.1 数据库技术与信息技术 1
1.1.2 数据库技术的应用及特点 2
1.1.3 SQL Server数据库系统与
网络分布式操作 2
1.1.4 网络数据库系统编程 3
1.2 数据库技术的发展 3
1.2.1 人工管理阶段 4
1.2.2 文件系统阶段 5
1.2.3 数据库系统阶段 6
1.2.4 高级数据库系统阶段的
应用与发展 8
1.2.5 数据库系统发展阶段的
划分 10
1.3 信息描述与数据模型 11
1.3.1 数据模型及其三要素 12
1.3.2 概念模型及其表示方法 13
1.3.3 实体联系模型 16
1.4 三种常见的数据模型 18
1.4.1 层次模型 18
1.4.2 网状模型 19
1.4.3 关系模型 20
1.5 数据库系统 21
1.5.1 数据库系统的
三级模式结构 21
1.5.2 数据库系统的组成 23
1.5.3 数据库管理系统的功能 24
1.5.4 数据库系统的视图 25
1.5.5 数据库系统的访问 26
思考练习题 27
第2章 关系数据库系统模型 29
2.1 关系模型的基本概念 29
2.1.1 关系模型 29
2.1.2 数据结构 32
2.1.3 关系操作 32
2.1.4 关系的完整性 33
2.2 关系运算 35
2.2.1 传统的集合运算 35
2.2.2 专门的关系运算 37
2.2.3 关系数据检索实例 42
2.3 关系演算 44
2.3.1 元组关系演算语言 45
2.3.2 域关系演算语言QBE 50
思考练习题 53
第3章 关系数据库的设计理论 55
3.1 实体类型的属性关系 55
3.2 数据的函数依赖 56
3.2.1 函数依赖 56
3.2.2 依赖的逻辑蕴涵 57
3.2.3 关键字 58
3.3 关系数据库模式的规范化理论 59
3.3.1 关系模式规范化设计 60
3.3.2 第一范式(1NF) 61
3.3.3 第二范式(2NF) 62
3.3.4 第三范式(3NF) 63
3.3.5 BCNF范式 64
3.3.6 多值函数依赖关系的
第四范式(4NF) 65
3.3.7 第五范式(5NF) 67
3.4 关系模式的分解算法 69
3.4.1 关系模式的分解 69
3.4.2 无损连接 69
3.4.3 无损连接的检验 70
3.4.4 保持函数依赖的分解 72
思考练习题 73
第4章 数据库设计方法 75
4.1 数据库系统的设计过程 75
4.2 需求分析 77
4.2.1 收集用户需求 77
4.2.2 分析用户需求 78
4.2.3 撰写需求说明书 82
4.3 概念设计 83
4.3.1 概念模型的特点及设计方法 83
4.3.2 局部概念模型的设计 84
4.3.3 合成全局概念模型 86
4.4 逻辑结构的设计 89
4.4.1 概念模型向关系模型的转换 90
4.4.2 应用规范化理论优化
逻辑模型 92
4.4.3 设计用户子模式 93
4.5 物理设计 93
4.5.1 影响物理设计的因素 94
4.5.2 确定关系模式的存取方法 94
4.5.3 确定数据库的存储结构 95
4.6 数据库的实施、运行和维护 96
4.6.1 数据库的实施 97
4.6.2 数据库的试运行 97
4.6.3 数据库的运行和维护 98
思考练习题 99
第5章 结构化查询语言SQL 101
5.1 SQL结构化查询语言 101
5.1.1 SQL语言的特点 101
5.1.2 SQL数据库的
三级模式结构 102
5.2 SQL的数据描述与操作 103
5.2.1 定义基表 103
5.2.2 定义索引 105
5.3 SQL语言的数据检索功能 106
5.4 SQL语言的数据更新功能 111
5.4.1 修改语句 111
5.4.2 插入语句 112
5.4.3 删除语句 112
5.4.4 SQL语言对视图的操纵 113
5.5 SQL的数据控制功能 116
5.5.1 SQL的数据控制方法 117
5.5.2 SQL Server数据操作 118
思考练习题 119
第6章 SQL Server关系
数据库系统 121
6.1 SQL Server系统概述 121
6.1.1 SQL Server 2000的
功能与特点 121
6.1.2 SQL Server 2000产品系列 125
6.2 SQL Server 2000的数据库结构 126
6.2.1 数据库逻辑体系结构 127
6.2.2 数据库物理体系结构 128
6.2.3 客户机和服务器的
交互方式 133
6.2.4 SQL Server 2000
分布式查询 134
6.3 SQL Server客户机/服务器体系
结构及软件组成 134
6.3.1 SQL Server 2000
客户端组件 135
6.3.2 SQL Server 2000
服务器端组件 137
6.3.3 SQL Server 2000
对XML的支持 139
6.3.4 SQL Server 2000传输组件 140
6.4 SQL Server 2000的
系统管理与开发 142
6.4.1 分布式管理 142
6.4.2 管理工具 142
6.4.3 语言与编程接口 144
思考练习题 145
第7章 SQL Server 2000数据库
应用与管理 147
7.1 SQL Server 2000的安装 147
7.1.1 环境要求 147
7.1.2 SQL Server 2000的安装 149
7.1.3 从SQL Server 7.0升级 153
7.2 启动和登录数据库服务器 154
7.2.1 数据库服务器的启动 154
7.2.2 登录数据库服务器 156
7.3 SQL Server 2000数据管理 157
7.3.1 SQL Server 2000的
数据定义语言 157
7.3.2 SQL Server 2000的
数据操作语言 160
7.4 SQL Server数据库操作 162
7.4.1 用Enterprise Manager
创建数据库 162
7.4.2 用Enterprise Manager定义和
管理数据表 163
7.4.3 用视图创建向导创建视图 166
7.4.4 用工具和向导创建
数据库图表 169
7.4.5 用Enterprise Manager
创建存储过程和触发器 170
7.4.6 数据库的安全管理 174
思考练习题 178
第8章 Transact-SQL语言结构 179
8.1 T-SQL语言概述 179
8.1.1 T-SQL语言特点 179
8.1.2 T-SQL附加语言 180
8.1.3 SQL Server Query Analyzer
工具 185
8.1.4 osql实用程序 186
8.2 Transact-SQL数据类型 187
8.3 Transact-SQL语言运算符 193
8.3.1 算术运算符 193
8.3.2 赋值运算符 195
8.3.3 位运算符 195
8.3.4 比较运算符 196
8.3.5 逻辑运算符 197
8.3.6 一元运算符 197
8.3.7 运算符的优先顺序 198
8.4 数据表的创建与维护 198
8.4.1 创建数据表 198
8.4.2 删除数据表 201
8.4.3 向数据表中插入记录 202
8.4.4 从数据表中删除记录 203
8.4.5 修改和更新记录 204
8.5 对数据库中数据表的操作 205
8.5.1 按条件查询数据 205
8.5.2 使用通配符和子查询 206
8.5.3 数据连接 207
8.5.4 数据排序 208
8.5.5 数据统计 209
8.6 数据库索引 210
8.6.1 索引的概念 211
8.6.2 索引类型 211
8.6.3 索引的创建与删除 212
8.6.4 索引的设计 213
8.7 数据库视图 214
8.7.1 视图的创建与删除 215
8.7.2 视图与数据修改 216
8.7.3 查询和视图的比较 217
8.8 函数 217
8.8.1 聚合函数 217
8.8.2 数学函数 222
8.8.3 字符串函数 223
8.8.4 系统函数 228
8.8.5 日期和时间函数 231
8.8.6 文本和图像函数 233
8.9 SQL Server 2000数据库复制 235
8.9.1 数据库复制的技术体系 235
8.9.2 数据库复制原理 238
8.9.3 复制的拓扑结构 240
8.9.4 事务复制的实现 242
8.9.5 SQL Server数据备份与
恢复 248
思考练习题 254
第9章 Transact-SQL 程序设计 255
9.1 T-SQL的变量定义和
流程控制语句 255
9.1.1 变量的定义和使用 255
9.1.2 流程控制语句 258
9.2 存储过程 265
9.2.1 存储过程概述 266
9.2.2 创建存储过程 267
9.2.3 调用存储过程 269
9.2.4 修改存储过程 271
9.2.5 删除存储过程 273
9.2.6 存储过程的优化 273
9.3 用户自定义的数据类型 274
9.4 触发器的应用 275
9.4.1 SQL Server触发器的用途 276
9.4.2 创建触发器 276
9.4.3 使用触发器 278
9.4.4 查看触发器的信息 283
9.4.5 修改和删除触发器 285
9.5 事务和锁 286
9.5.1 事务的概念 286
9.5.2 事务编程 288
9.5.3 锁 290
9.5.4 使事务更有效地工作 292
思考练习题 293
第10章 数据库的安全及其维护 295
10.1 SQL Server的安全性管理 295
10.2 SQL Server数据库的
安全性管理与控制 297
10.3 SQL Server的安全体系结构和
安全认证 302
10.4 SQL Server的权限管理 304
思考练习题 310
第11章 现代数据库技术 311
11.1 面向对象的数据库系统 311
11.1.1 面向对象的数据模型 312
11.1.2 面向对象数据库语言 313
11.1.3 面向对象数据库的
模式演进 314
11.1.4 面向对象程序设计 315
11.2 并行数据库系统和分布式
数据库系统 315
11.2.1 并行数据库系统 315
11.2.2 分布式数据库系统 317
11.3 数据仓库 318
11.3.1 从数据库到数据仓库 318
11.3.2 数据仓库的定义 320
11.3.3 数据仓库系统的结构 320
11.3.4 数据仓库的数据组织 322
11.3.5 数据仓库的数据模型 324
11.3.6 SQL Sever 2000的
数据仓库组件 325
11.3.7 SQL Server 2000
数据仓库的建设流程 327
11.4 数据挖掘 329
11.4.1 数据挖掘概述 329
11.4.2 数据挖掘模型 330
11.4.3 使用决策树模型从关系
数据库中挖掘数据 332
11.4.4 应用聚类分析模型
挖掘数据 336
思考练习题 336
第12章 网络数据库编程 338
12.1 网络数据库的连接 338
12.1.1 ODBC的管理 338
12.1.2 通过ODBC连接数据库 345
12.1.3 ADO简介 350
12.2 ASP编程 358
12.2.1 ASP概述 358
12.2.2 ASP的内置对象 361
12.2.3 ASP的内置组件 374
12.2.4 ASP实现对数据库的
访问 378
12.3 JSP编程 381
12.3.1 JSP概述 381
12.3.2 JSP编程概要 382
12.3.3 JSP数据库访问技术 388
思考练习题 392
参考答案 394