《数据库系统原理与设计(第2版)》是万常选、廖国琼、吴京慧、刘喜平编著,2012年清华大学出版社出版的国家精品课程配套教材、“十二五”普通高等教育本科国家级规划教材。该教材可作为计算机及相关专业本科生的数据库系统原理课程教材,也可供数据库爱好者自学和参考。
全书共分12章。第1章是数据库系统基本概念,第2、3章是关系数据库基础,第4~6章是关系数据库设计,第7~10章是关系数据库管理系统,第11、12章是数据库应用开发。该教材强调数据库应用与设计能力的培养,将数据库设计的内容分散在第4~6章以及7.6节、9.6节等章节逐层推进。
目录
- 第1章数据库系统概论1
- 1.1数据库系统的作用1
- 1.1.1数据与数据管理2
- 1.1.2数据管理技术的产生与发展2
- 1.1.3数据库应用8
- 1.2数据模型9
- 1.2.1数据模型的分层10
- 1.2.2数据模型的组成要素11
- 1.2.3层次模型12
- 1.2.4网状模型14
- 1.2.5关系模型14
- 1.2.6面向对象模型17
- 1.2.7XML模型20
- 1.3数据抽象与数据库三级模式29
- 1.4数据库系统32
- 1.4.1数据库系统组成32
- 1.4.2数据库管理系统33
- 1.4.3数据库系统的相关人员38
- 本章小结40
- 习题143
- 第2章关系模型与关系代数45
- 2.1关系模型46
- 2.1.1关系数据结构46
- 2.1.2关系完整性约束51
- 2.1.3关系操作56
- 2.2关系代数57
- 2.2.1传统的集合运算58
- 2.2.2专门的关系运算59
- 2.2.3关系代数查询综合举例66
- 本章小结70
- 习题271
- 第3章SQL语言73
- 3.1SQL概述74
- 3.1.1SQL发展74
- 3.1.2SQL特点75
- 3.1.3SQL查询基本概念76
- 3.2简单查询77
- 3.2.1投影运算79
- 3.2.2选择运算82
- 3.2.3排序运算87
- 3.2.4查询表87
- 3.3连接查询88
- 3.3.1等值与非等值连接88
- 3.3.2自表连接91
- 3.3.3外连接92
- 3.4聚合查询94
- 3.4.1聚合函数94
- 3.4.2分组聚合95
- 3.5嵌套子查询97
- 3.5.1使用IN的子查询97
- 3.5.2使用比较运算符的子查询100
- 3.5.3使用存在量词EXISTS的子查询101
- 3.5.4复杂查询105
- 3.6集合运算107
- 3.7SQL查询一般格式109
- 3.8SQL数据定义语言111
- 3.8.1数据库的定义111
- 3.8.2基本表的定义115
- 3.8.3索引的定义119
- 3.9SQL数据更新语言121
- 3.9.1插入数据121
- 3.9.2删除数据123
- 3.9.3修改数据123
- 3.10视图124
- 3.10.1定义视图125
- 3.10.2查询视图127
- 3.10.3视图更新128
- 3.10.4删除视图130
- 本章小结130
- 习题3131
- 第4章数据库建模(实体-联系模型)135
- 4.1数据库设计过程136
- 4.2E-R模型基本概念及表示137
- 4.2.1实体与实体集137
- 4.2.2属性138
- 4.2.3联系与联系集140
- 4.3约束142
- 4.3.1映射约束142
- 4.3.2码约束与联系集的属性安置144
- 4.3.3依赖约束146
- 4.3.4参与约束147
- 4.3.5多值联系147
- 4.4弱实体集148
- 4.5扩展E-R特征149
- 4.6E-R建模问题151
- 4.6.1E-R建模的基本原则151
- 4.6.2依赖约束的建模156
- 4.6.3多值联系的建模158
- 4.7数据库概念设计实例——大学选课系统160
- 4.7.1概念设计任务161
- 4.7.2系统需求分析161
- 4.7.3数据库概念设计165
- 4.8逻辑设计——E-R模型转化为关系模型172
- 4.8.1E-R模型转化方法172
- 4.8.2大学选课系统E-R模型转化实例177
- 本章小结178
- 习题4179
- 第5章关系数据理论与模式求精182
- 5.1问题提出183
- 5.2函数依赖定义185
- 5.3函数依赖理论188
- 5.3.1函数依赖集闭包188
- 5.3.2属性集闭包189
- *5.3.3正则覆盖191
- 5.3.4无损连接分解193
- 5.3.5保持依赖分解194
- 5.4范式194
- 5.4.1第一范式(1NF)——码194
- 5.4.2第二范式(2NF)——全部是码195
- 5.4.3第三范式(3NF)——仅仅是码195
- 5.4.4Boyce-Codd范式(BCNF)196
- 5.5模式分解算法198
- 5.5.1BCNF分解算法198
- *5.5.23NF分解算法200
- 5.6数据库模式求精201
- 本章小结203
- 习题5204
- 第6章关系数据库设计实例——网上书店207
- 6.1需求描述和系统边界208
- 6.2需求分析208
- 6.2.1业务需求及处理流程208
- 6.2.2功能需求及数据需求分析209
- 6.2.3业务规则分析211
- 6.3主要业务的概念建模分析212
- 6.4确定实体集及属性216
- 6.5确定联系集及E-R图220
- 6.6检查是否满足需求223
- 6.7逻辑数据库设计224
- 6.8模式求精231
- 本章小结231
- 习题6232
- 第7章数据库存储结构234
- 7.1文件存储与记录格式234
- 7.1.1存储介质235
- 7.1.2存储访问236
- 7.1.3定长记录与变长记录237
- 7.2文件中的记录组织方式239
- 7.3顺序索引242
- 7.3.1索引基本概念242
- 7.3.2索引顺序文件243
- 7.3.3多级索引244
- 7.3.4索引的更新245
- 7.3.5辅助索引246
- 7.4B+树索引247
- 7.4.1B+树索引的结构247
- 7.4.2B+树索引的查询与更新249
- 7.4.3B+树文件组织250
- 7.5散列251
- 7.5.1散列文件组织251
- 7.5.2散列索引252
- 7.5.3动态散列253
- 7.5.4散列与顺序索引的比较253
- 7.6物理数据库设计254
- 本章小结257
- 习题7260
- 第8章查询处理262
- 8.1查询处理262
- 8.1.1查询处理过程263
- 8.1.2查询代价度量264
- 8.1.3选择运算265
- 8.1.4连接运算270
- 8.1.5其他运算277
- 8.1.6表达式计算278
- 8.2查询优化279
- 8.2.1查询优化概述279
- 8.2.2关系表达式转换280
- 8.2.3结果集大小估计282
- 8.2.4选择执行计划284
- 8.2.5查询优化实例286
- 本章小结288
- 习题8289
- 第9章数据库完整性与安全293
- 9.1数据库安全性294
- 9.1.1数据库安全的基本概念294
- 9.1.2安全标准295
- 9.1.3SQL存取控制机制297
- 9.1.4审计机制302
- 9.2数据库完整性303
- 9.2.1完整性约束条件304
- 9.2.2实体完整性305
- 9.2.3参照完整性307
- 9.2.4用户自定义完整性310
- 9.2.5完整性约束的修改312
- 9.3游标313
- 9.3.1游标的使用313
- 9.3.2当前游标集的修改316
- 9.4存储过程317
- 9.4.1创建存储过程318
- 9.4.2执行存储过程324
- 9.4.3修改和删除存储过程324
- 9.5触发器326
- 9.5.1创建触发器326
- 9.5.2修改和删除触发器330
- 9.5.3触发器的作用331
- 9.6应用与安全设计333
- 本章小结335
- 习题9336
- 第10章事务管理与恢复339
- 10.1事务340
- 10.1.1问题背景340
- 10.1.2事务概念341
- 10.1.3事务特性342
- 10.1.4事务并发执行与调度343
- 10.1.5事务调度及正确性准则345
- 10.2并发控制348
- 10.2.1基于封锁的协议348
- 10.2.2两阶段封锁协议351
- 10.3恢复与备份353
- 10.3.1故障分类及恢复策略353
- 10.3.2事务访问数据方式354
- 10.3.3基于日志的故障恢复策略356
- 10.3.4检查点359
- 10.3.5备份与介质故障恢复362
- 本章小结363
- 习题10365
- 第11章数据库应用开发367
- 11.1数据库系统的体系结构368
- 11.1.1软件开发体系结构概述368
- 11.1.2C/S体系结构369
- 11.1.3B/S体系结构372
- 11.1.4C/S与B/S结构的结合374
- 11.1.5常用开发体系结构376
- 11.2数据库访问技术378
- 11.2.1ODBCAPI和ODBC库379
- 11.2.2MFCDAO381
- 11.2.3RDO382
- 11.2.4OLEDB382
- 11.2.5ADO384
- 11.2.6ADO.NET384
- 11.2.7JDBC385
- 11.2.8数据库访问技术小结386
- 11.3数据库应用开发实践389
- 11.3.1ADO编程对象模型389
- 11.3.2直接使用ADOData控件访问数据库394
- 11.3.3使用智能指针访问数据库398
- 11.3.4使用VC++ExtensionsforADO访问数据库405
- 本章小结409
- 习题11411
- *第12章Web数据库412
- 12.1什么是Web数据库413
- 12.2Web基础413
- 12.3脚本语言414
- 12.4Web数据库访问模式415
- 12.5Web服务器接口415
- 12.6Web数据库访问技术416
- 12.7XML数据库418
- 12.7.1XML应用场景418
- 12.7.2XML与数据库420
- 12.7.3什么是XML数据库422
- 本章小结425
- 习题12427
- 参考文献429