目录
第1章数据库系统概述1
1.1数据库系统及其总体结构1
1.1.1数据库管理系统出现的背景1
1.1.2数据库系统的抽象层次9
1.1.3数据库语言与SQL11
1.1.4SQL与ODBC/JDBC/OLE DB/ADO/Hibernate13
1.1.5数据库系统总体结构17
1.2数据库系统中的关键术语与概念19
1.2.1数据库及其相关概念19
1.2.2视图及其相关概念21
1.2.3数据抽象、数据模型、数据模式及其相互关系23
1.2.4传统数据模型回顾25
1.3数据库系统的用户28
1.4数据库应用系统开发概述29
1.4.1C/S模式29
1.4.2B/S模式30
1.4.3组件与分布式对象开发技术30
1.4.4CGI/ISAPI/NSAPI34
1.4.5ASP/JSP/PHP35
1.4.6.NET与Java EE开发平台37
1.4.7Web应用的MVC架构及其各种实现38
本章小结40
习题140第2章高级(概念)数据模型42
2.1关于数据模型的几个重要问题42
2.2数据库设计综述44
2.3实体联系模型45
2.3.1实体、实体型及属性45
2.3.2联系及联系型47
2.3.3实体联系模型中的完整性约束49
2.3.4弱实体54
2.3.5实体联系模型中的元素图示56
2.3.6应用示例57
2.4扩展实体联系模型59
2.4.1类层次59
2.4.2演绎与归纳60
2.4.3演绎的原则61
2.4.4聚集61
2.5利用实体联系模型进行数据库概念设计62
2.5.1实体与属性的取舍62
2.5.2属性在实体与联系间的取舍63
2.5.3二元联系与三元联系的取舍64
2.5.4三元联系与聚集的取舍65
2.5.5大型系统的数据库概念设计方法65
2.6实体联系模型设计工具——ERwin66
2.6.1ERwin建模方法66
2.6.2ERwin应用实例69
2.7UML对象模型72
2.7.1对象模型的核心概念72
2.7.2对象模型的组成76
2.7.3UML概述76
2.7.4对象模型的UML表示76
2.7.5用类图表达泛化78
2.7.6用类图表达聚合与组合79
2.7.7用类图表达依赖79
2.7.8用类图表达实现80
本章小结80
习题281第3章关系数据模型82
3.1SQL语言简介82
3.2关系数据模型的数据结构83
3.3关系模型上的完整性约束85
3.3.1完整性约束简介85
3.3.2域约束86
3.3.3主键约束86
3.3.4唯一约束87
3.3.5外键约束87
3.3.6一般性约束90
3.3.7完整性约束的实施91
3.4SQL Server和Sybase支持的完整性约束及其设定91
3.4.1SQL Server和Sybase支持的完整性约束92
3.4.2DEFAULT的设定92
3.4.3RULE的设定94
3.4.4检查约束的设定95
3.4.5主键约束的设定96
3.4.6唯一约束的设定96
3.4.7外键约束的设定97
3.4.8触发器的定义99
3.5视图及其操作103
3.5.1基本概念103
3.5.2视图的创建104
3.5.3视图的修改与删除104
3.5.4视图的数据插入105
3.6实体联系模型向关系模型的转换106
3.6.1转换的一般方法107
3.6.2联系型转换为表107
3.6.3带键约束的联系型可不转换为表109
3.6.4实体联系模型向关系模型转换方法小结110
3.6.5实体联系模型向关系模型转换示例112
3.7对象模型向关系模型的转换113
3.7.1关系模型的UML表示 113
3.7.2转换的一般方法113
3.7.3类的转换113
3.7.4关联关系的转换115
3.7.5关联类的转换116
3.7.6聚合、组合及泛化关系的转换118
3.7.7转换实例120
3.8关系代数122
3.8.1简介122
3.8.2关系代数概述123
3.8.3选择与投影124
3.8.4集合操作125
3.8.5改名操作128
3.8.6联结操作129
3.8.7除(商)操作133
3.8.8关系代数查询表达式示例134
3.9关系运算140
3.9.1元组关系运算140
3.9.2域关系运算142
本章小结144
习题3144第4章SQL及其操作146
4.1SQL概况146
4.1.1SQL及其标准146
4.1.2SQL的特点147
4.1.3SQL92标准的分级148
4.1.4标准SQL与实际数据库产品中的SQL148
4.2数据定义子语言及其操作148
4.2.1定义子语言的3个命令关键字149
4.2.2定义数据库149
4.2.3定义表152
4.2.4定义视图155
4.2.5定义索引156
4.3数据操纵子语言及其操作158
4.3.1数据操纵子语言的4个命令关键字158
4.3.2数据插入159
4.3.3数据修改159
4.3.4数据删除161
4.3.5数据查询162
4.4Sybase和SQL Server中的TSQL169
4.4.1TSQL语言简介169
4.4.2TSQL的数据类型170
4.4.3TSQL编程172
4.4.4TSQL提供的函数178
4.4.5TSQL游标183
4.4.6TSQL存储过程185
4.5在C/C++中使用SQL189
4.5.1嵌入式SQL语句的基本形式189
4.5.2嵌入式SQL与宿主语言的通信191
4.5.3SQL通信区192
4.5.4主变量的定义与使用192
4.5.5嵌入SQL中的游标定义与使用196
4.5.6C语言中的嵌入式SQL实例197
4.6在PowerBuilder中使用SQL201
4.6.1静态SQL语句201
4.6.2动态SQL语句202
4.6.3存储过程调用204
本章小结205
习题4206第5章数据库的保护207
5.1数据库保护概况207
5.1.1数据库破坏的类型207
5.1.2DBMS对数据库的保护措施208
5.2数据库安全性208
5.2.1数据库安全性概况208
5.2.2自主式访问控制的授权与撤权211
5.2.3Sybase及SQL Server的安全体系及其设置212
5.2.4数据库安全性的其他相关内容216
5.3数据库完整性217
5.3.1数据库完整性概况217
5.3.2完整性约束的类型218
5.3.3完整性约束的定义219
5.3.4完整性约束的验证221
5.3.5SQL92和数据库产品对完整性的推荐和支持221
5.4故障恢复技术222
5.4.1事务管理概况222
5.4.2故障恢复导论226
5.4.3日志结构230
5.4.4DBMS围绕更新事务的工作231
5.4.5事务内消息的处理235
5.4.6故障类型及恢复对策236
5.4.7SQL Server中的事务及故障恢复238
5.5并发控制240
5.5.1并发控制导论241
5.5.2并发执行可能引起的问题242
5.5.3并发控制的正确性准则245
5.5.4基于锁的并发控制协议247
5.5.5多粒度加锁协议252
5.5.6死锁及其预防、检测与处理257
5.5.7SQL Server中的并发控制技术260
本章小结262
习题5263第6章关系数据库设计理论265
6.1关系模式中可能存在的异常265
6.1.1存在异常的关系模式示例265
6.1.2可能存在的异常267
6.2关系模式中存在异常的原因268
6.3函数依赖268
6.3.1函数依赖定义268
6.3.2函数依赖分类及其定义270
6.3.3其他相关定义270
6.3.4函数依赖示例271
6.3.5Armstrong公理系统272
6.4关系模式的规范形式273
6.4.1范式273
6.4.2规范化273
6.4.3以函数依赖为基础的范式274
6.4.4多值依赖与第四范式280
6.4.5联结依赖与第五范式282
6.5关系模式的规范化286
6.5.1规范化步骤286
6.5.2关系模式的分解及其指标287
本章小结288
习题6288第7章数据库应用设计290
7.1数据库应用设计的步骤290
7.2用户需求描述与分析292
7.2.1需求分析的内容292
7.2.2用户需求调研的方法293
7.2.3用户需求描述与分析方法294
7.2.4用户需求描述与分析实例294
7.3概念设计297
7.3.1概念设计的方法298
7.3.2视图设计298
7.3.3视图集成298
7.4逻辑设计299
7.4.1ER图向关系模型的转换299
7.4.2数据模式的优化302
7.4.3设计外模式304
7.5物理设计304
7.5.1索引的有关概念305
7.5.2聚簇索引与非聚簇索引305
7.5.3建立索引306
7.6数据库实施307
7.6.1数据载入307
7.6.2编写、调试应用程序307
7.6.3数据库试运行308
7.7数据库使用与维护308
本章小结309
习题7310第8章数据库应用系统设计实例311
8.1系统总体需求简介311
8.1.1用户总体业务结构311
8.1.2总体安全要求311
8.2系统总体设计312
8.2.1系统设计考虑的主要内容312
8.2.2系统的体系结构312
8.2.3系统软件开发平台312
8.2.4系统的总体功能模块314
8.3系统需求描述315
8.3.1系统全局数据流图315
8.3.2系统局部数据流图315
8.3.3系统数据字典317
8.4系统概念模型描述319
8.4.1构成系统的实体型319
8.4.2系统局部ER图319
8.4.3合成全局ER图321
8.4.4优化全局ER图322
8.5系统的逻辑设计323
8.5.1转化为关系数据模型324
8.5.2关系数据模型的优化与调整324
8.5.3数据库表的结构325
8.6数据库的物理设计328
8.6.1存储介质类型的选择329
8.6.2定义数据库329
8.6.3创建表及视图330
8.6.4创建索引332
8.6.5数据库服务器性能优化333
本章小结334
习题8334第9章数据库应用进展及新技术335
9.1基于文件系统的数据管理335
9.2第一代数据库系统336
9.3第二代数据库系统337
9.4OLTP及OLAP338
9.5数据仓库339
9.5.1数据仓库概述339
9.5.2数据仓库的多维数据模型340
9.5.3数据仓库的相关概念341
9.5.4数据仓库的系统结构343
9.5.5数据仓库系统开发与工作过程344
9.6数据挖掘345
9.6.1数据挖掘概述345
9.6.2数据挖掘的主要技术347
9.6.3数据挖掘在各行业的应用348
9.7并行与分布式数据库系统350
9.8Web数据库351
9.9面向对象的数据库系统352
9.10内存数据库352
9.11云数据库353
9.12NewSQL数据库354
9.13NoSQL数据库355
9.14其他数据库系统356
本章小结359
习题9359第10章数据库上机实验及指导360
10.1SQL数据库语言操作实验360
10.1.1SQL定义子语言实验360
10.1.2SQL操纵子语言实验363
10.1.3TSQL编程实验369
10.2数据库完整性实验371
10.2.1表本身的完整性371
10.2.2表间参照完整性373
10.3SQL Server安全设置实验375
10.3.1创建登录账号375
10.3.2数据库用户设置375
10.3.3SQL Server角色管理376
10.3.4SQL Server语句及对象授权实验377
10.4数据库系统管理实验377
10.4.1故障恢复实验377
10.4.2数据库服务器及性能设置实验379
本章小结381
习题10381附录SQL Server的Pubs样例库表结构382参考文献385
