《数据库系统教程》PDF下载

  • 购买积分:16 如何计算积分?
  • 作  者:施伯乐等编著
  • 出 版 社:北京:高等教育出版社
  • 出版年份:2003
  • ISBN:704012310X
  • 页数:506 页
图书介绍:本书为教育部面向21世纪课程教材《数据库系统教程》的第二版,其第一版荣获2002年全国普通高等学校优秀教材奖二等奖。这次改版作了较大的修改和补充,对传统的数据库理论和应用进行了精炼。

第1章 数据库概论 1

1.1 引言 1

1.1.1 数据与信息 2

1.1.2 数据处理与数据管理 3

1.1.3 数据库技术的基本术语 4

1.2 数据库的由来和发展 4

1.2.1 人工管理阶段 5

1.2.2 文件系统阶段 5

1.2.3 数据库阶段 7

1.2.4 高级数据库技术阶段 9

1.3.1 概念设计中的数据描述 11

1.3 数据描述 11

1.3.2 逻辑设计中的数据描述 12

1.3.3 物理设计中的数据描述 13

1.3.4 数据联系的描述 13

1.4 数据模型 15

1.4.1 数据模型的定义 15

1.4.2 实体联系模型 16

1.4.3 层次模型 18

1.4.4 网状模型 19

1.4.5 关系模型 21

1.4.6 对象模型 22

1.5.1 数据库的三级体系结构 23

1.5 数据库的体系结构 23

1.5.2 体系结构中的五个要素 25

1.5.3 两级数据独立性 27

1.5.4 用户与用户界面 27

1.5.5 本节小结 27

1.6 数据库管理系统 28

1.6.1 DBMS的工作模式 28

1.6.2 DBMS的主要功能 29

1.6.3 DBMS的模块组成 31

1.7 数据库系统 31

1.7.1 DBS的组成 31

1.7.2 DBS的全局结构 33

1.7.3 DBS结构的分类 35

1.7.4 DBS的效益 38

小结 39

习题1 40

第2章 关系模型和关系运算理论 42

2.1 关系模型的基本概念 42

2.1.1 基本术语 42

2.1.2 关系的定义和性质 43

2.1.3 关系模型的三类完整性规则 44

2.1.4 ER模型向关系模型的转换规则 45

2.1.5 关系模型的三级体系结构 47

2.1.7 关系查询语言和关系运算 50

2.1.6 关系模型的形式定义和优点 50

2.2 关系代数 51

2.2.1 关系代数的五个基本操作 51

2.2.2 关系代数的四个组合操作 53

2.2.3 关系代数运算的应用实例 56

2.2.4 关系代数的七个扩充操作 57

2.3 关系演算 61

2.3.1 元组关系演算 61

2.3.2 域关系演算 64

2.3.3 关系运算的安全约束和等价性 66

2.4.1 关系代数表达式的优化问题 68

2.4 关系代数表达式的优化 68

2.4.2 关系代数表达式的等价变换规则 69

2.4.3 关系代数表达式的优化算法 71

2.5 关系逻辑 76

2.5.1 关系运算的成分 76

2.5.2 规则的安全性 78

2.5.3 从关系代数到关系逻辑的转换 79

2.5.4 递归过程 82

2.5.5 关系逻辑与关系代数的差异 84

小结 84

习题2 85

3.1 SQL的体系结构 88

3.1.1 SQL的产生和发展 88

第3章 关系数据库语言SQL 88

3.1.2 SQL数据库的体系结构 89

3.1.3 SQL的组成 90

3.2 SQL的数据定义 91

3.2.1 SQL模式的创建和撤销 91

3.2.2 基本数据类型 92

3.2.3 基本表的创建、修改和撤销 92

3.2.4 索引的创建和撤销 95

3.3 SQL的数据查询 96

3.3.1 SELECT查询语句 96

3.3.2 SELECT语句完整的句法 103

3.3.3 SELECT语句中的限定 104

3.3.4 基本表的连接操作 110

3.3.5 SQL3中的递归查询 112

3.4 SQL的数据更新 114

3.4.1 数据插入 114

3.4.2 数据删除 115

3.4.3 数据修改 116

3.5 视图的定义和对视图的操作 117

3.5.1 视图的创建和撤销 117

3.5.2 对视图的更新操作 118

3.5.3 视图的优点 119

3.6 嵌入式SQL 120

3.6.1 SQL的运行环境 120

3.6.2 嵌入式SQL的使用规定 121

3.6.3 嵌入式SQL的使用技术 122

3.6.4 动态SQL语句 126

小结 127

习题3 128

第4章 关系数据库的规范化设计 132

4.1 关系模式的设计问题 132

4.1.1 关系模式的外延和内涵 132

4.1.2 关系模式的冗余和异常问题 133

4.1.3 本章的符号规定 134

4.2 函数依赖 135

4.2.1 函数依赖的定义 135

4.2.3 FD的推理规则 136

4.2.2 FD的逻辑蕴涵 136

4.2.4 FD和关键码的联系 138

4.2.5 属性集的闭包 138

4.2.6 FD推理规则的完备性 139

4.2.7 FD集的最小依赖集 140

4.3 关系模式的分解特性 141

4.3.1 模式分解问题 141

4.3.2 无损分解 142

4.3.3 无损分解的测试方法 144

4.3.4 保持函数依赖的分解 146

4.3.5 模式分解与模式等价问题 147

4.4 关系模式的范式 148

4.4.2 第二范式(2NF) 149

4.4.1 第一范式(1NF) 149

4.4.3 第三范式(3NF) 150

4.4.4 BCNF(Boyce-Codd NF) 152

4.4.5 分解成BCNF模式集的算法 153

4.4.6 分解成3NF模式集的算法 154

4.4.7 模式设计方法的原则 154

4.5 模式的进一步规范化处理 155

4.5.1 多值依赖的定义 155

4.5.2 关于FD和MVD的推理规则集 156

4.5.3 第四范式(4NF) 157

4.5.4 嵌入多值依赖 158

4.5.5 连接依赖和第五范式 158

小结 160

习题4 161

第5章 数据库设计与ER模型 166

5.1 数据库设计概述 166

5.1.1 软件工程与软件生存期 166

5.1.2 数据库工程与数据库生存期 167

5.1.3 数据库设计的输入、输出 168

5.2 数据库设计的全过程 169

5.2.1 规划阶段 169

5.2.2 需求分析阶段 170

5.2.3 概念设计阶段 171

5.2.4 逻辑设计阶段 172

5.2.5 物理设计阶段 174

5.2.6 数据库的实现 175

5.2.7 数据库的运行与维护 177

5.3 ER模型 178

5.3.1 ER模型的基本元素 178

5.3.2 属性的分类 180

5.3.3 联系的设计 182

5.3.4 ER模型的操作 185

5.3.5 采用ER方法的数据库概念设计 186

5.4 ER模型到关系模型的转换 193

5.4.1 ER图转换成关系模式集的规则 193

5.4.2 采用ER方法的逻辑设计步骤 194

5.5 ER模型实例分析 195

5.5.1 库存销售信息管理系统的ER模型及转换 195

5.5.2 公司车队信息系统的ER模型 197

5.5.3 人事管理信息系统的ER模型 198

5.5.4 旅游管理信息系统的ER模型 199

5.6 ER模型的扩充 200

5.6.1 弱实体 200

5.6.2 子类实体与超类实体 201

小结 202

习题5 202

6.1 物理存储介质 205

6.1.1 存储介质层次 205

第6章 数据库的存储结构 205

6.1.2 磁盘 207

6.1.3 第三级存储器 210

6.2 文件组织 211

6.2.1 定长记录 211

6.2.2 变长记录 213

6.3 文件结构 216

6.3.1 四种文件结构 216

6.3.2 顺序文件 217

6.3.3 聚集文件 218

6.4.1 索引技术的分类 219

6.4.2 有序索引的分类 219

6.4 索引技术 219

6.4.3 主索引 220

6.4.4 辅助索引 223

6.4.5 B+树索引文件 224

6.4.6 B树索引文件 231

6.5 散列技术 232

6.5.1 散列机制 232

6.5.2 散列索引 235

6.5.3 静态散列中的问题 236

6.5.4 可扩充散列结构 236

6.6 多键访问 241

6.6.1 单键查询的问题 241

6.6.2 网格文件 242

6.6.3 分区散列技术 244

小结 245

习题6 246

第7章 系统实现技术 248

7.1 系统目录 248

7.1.1 关系DBMS的目录 248

7.1.2 系统目录的扩充ER图 250

7.1.3 系统目录和DBMS各子系统的联系 250

7.2 事务 252

7.2.1 事务的定义 252

7.2.2 事务的ACID性质 253

7.2.3 事务的状态变迁图 255

7.3 数据库的恢复 256

7.3.1 存储器结构 257

7.3.2 恢复的基本原则和实现方法 259

7.3.3 故障类型和恢复方法 260

7.3.4 检查点技术 261

7.3.5 阴影页技术 263

7.3.6 SQL对事务的支持 265

7.4 数据库的并发控制 265

7.4.1 并发操作带来的四个问题 265

7.4.2 封锁技术 268

7.4.3 封锁带来的问题 272

7.4.4 并发操作的调度 274

7.4.5 SQL中事务的存取模式和隔离级别 275

7.4.6 基于时标的并发控制 276

7.5 并发事务的可串行化和可恢复性 278

7.5.1 并发事务的可串行化 279

7.5.2 并发事务的可恢复性 284

7.6 数据库的完整性 286

7.6.1 完整性子系统和完整性规则 286

7.6.2 SQL中的完整性约束 286

7.6.3 SQL3中的触发器 291

7.7 数据库的安全性 295

7.7.1 安全性问题 295

7.7.2 权限问题 296

7.7.3 SQL中的安全性机制 297

7.7.4 常用的安全性措施 299

小结 303

习题7 303

第8章 对象数据库系统 306

8.1 对象联系图 307

8.1.1 从关系到嵌套关系、复合对象 307

8.1.2 引用类型 309

8.1.3 对象联系图的成分 310

8.1.4 数据的概化/特化 312

8.2 面向对象的数据类型系统 313

8.3 ORDB的定义语言 314

8.3.2 数据类型的定义 315

8.3.1 ORDBS的定义 315

8.3.3 继承性的定义 316

8.3.4 引用类型的定义 318

8.3.5 SQL3中的定义语言 319

8.4 ORDB的查询语言 320

8.4.1 以关系为值的属性 320

8.4.2 路径表达式 321

8.4.3 Oracle中查询的两种技术 322

8.4.4 嵌套与解除嵌套 324

8.4.5 函数的定义和使用 325

8.4.6 复合值的创建和查询 325

8.5.1 ODMG标准 326

8.5 OODBS概述 326

8.5.2 OODBS的定义 327

8.5.3 面向对象数据模型的概念 328

8.6 ODMG1.0标准 332

8.6.1 持久化程序设计语言 332

8.6.2 ODMG C++对象定义语言(C++ ODL) 334

8.6.3 ODMG C++对象操纵语言(C++ OML) 336

8.7 ODMG2.0标准 337

8.7.1 ODMG对象模型 337

8.7.2 ODMG对象定义语言(ODL) 339

8.7.3 ODMG对象查询语言(OQL) 340

8.8 OODB与ORDB的比较 346

8.9.1 统一建模语言(UML)概述 347

8.9 使用UML类图来概念对象建模 347

8.9.2 用类图表达类和关联 348

8.9.3 用类图表达关联类 351

8.9.4 用类图表达概化/特化 352

8.9.5 用类图表达聚合 354

小结 355

习题8 356

第9章 分布式数据库系统 359

9.1 集中计算与分布计算 359

9.2 客户机/服务器系统 361

9.2.1 C/S系统的计算模式 361

9.2.2 C/S系统的体系结构 363

9.2.3 C/S结构的演变 365

9.2.4 网络服务器的类型 367

9.3 分布式数据库系统概述 369

9.3.1 从集中式、分散式到分布式 369

9.3.2 DDBS的定义 369

9.3.3 DDBS的特点与优缺点 371

9.3.4 DDBS的分类 374

9.4 分布式数据存储 375

9.4.1 数据分片(Data Fragmentation) 375

9.4.2 数据分配(Data Allocation) 376

9.5 分布式数据库的体系结构 377

9.5.1 体系结构 378

9.5.2 分布透明性 380

9.5.3 分布式数据库管理系统 382

9.6 分布式查询处理 384

9.6.1 查询例子分析 384

9.6.2 查询代价的估算方法 386

9.6.3 基于半连接的优化策略 386

9.6.4 基于连接的优化方法 389

9.7 分布式数据库中的并发控制和恢复技术 390

9.7.1 DDB中的问题 390

9.7.2 基于数据项识别拷贝的分布式并发控制 390

9.7.4 分布式恢复 392

9.7.3 基于投票方法的分布式并发控制 392

小结 393

习题9 394

第10章 中间件技术 396

10.1 中间件 396

10.1.1 中间件的定义 396

10.1.2 中间件的作用 397

10.2 ODBC结构 398

10.2.1 ODBC概念 398

10.2.2 ODBC的体系结构 399

10.3 ODBC接口 404

10.3.1 ODBC应用程序的基本流程 404

10.2.3 ODBC的特性 404

10.3.2 ODBC句柄 405

10.3.3 数据源的连接与断开 408

10.3.4 SQL语句的执行 408

10.3.5 查询结果的获取 410

10.4 ODBC的符合性级别 411

10.4.1 API符合性的三个级别 411

10.4.2 SQL符合性的三个级别 413

10.4.3 ODBC API与SQLCLI之间的协调 414

10.4.4 典型的DB应用系统开发工具 414

10.5 Java和JDBC 415

10.5.1 Java简介 415

10.5.2 JDBC的提出 417

10.5.3 JDBC的基本功能 418

10.5.4 JDBC与CGI的比较 418

10.6 JDBC的结构 420

10.6.1 JDBC数据库设计方法 420

10.6.2 保持一致性的措施 421

10.6.3 JDBC驱动程序 422

10.7 JDBC API 423

10.7.1 JDBC API的目标 423

10.7.2 JDBC API接口概貌 424

10.7.3 JDBC的接口和类 426

10.7.4 JDBC数据库应用程序的编程 427

小结 430

习题10 431

第11章 数据库与WWW 433

11.1 网络基本概念 433

11.1.1 Internet 433

11.1.2 WWW 435

11.1.3 网络协议模型 435

11.2 WWW与数据库 438

11.2.1 WWW与数据库的结合 438

11.2.2 WWW与数据库交互的方法 439

11.2.3 CGI、JDBC和API的比较 443

11.3.1 CGI程序 444

11.3 公共网关接口(CGI) 444

11.3.2 CGI特点 446

11.4 ASP技术 449

11.4.1 ASP的特点 449

11.4.2 ASP服务器端程序的原理 450

11.4.3 ASP的对象存取Mdb数据库方法 450

11.5 JSP技术 452

11.5.1 JSP脚本语言 452

11.5.2 JSP中的指令 453

11.5.3 JSP中的内置对象(Implicit Objects) 455

11.5.4 JSP应用例子 457

11.6.1 PHP语言简介 460

11.6.2 PHP应用例子 460

11.6 PHP技术 460

11.6.3 PHP连接数据库的方法 462

小结 466

习题11 466

第12章 XML技术 468

12.1 XML概述 468

12.1.1 从SGML、HTML到XML 468

12.1.2 XML、DTD与XML Schema 469

12.1.3 XML数据库 471

12.2 常用的XML查询语言:XQuery 472

12.2.1 XQuery的基本功能 472

12.2.2 基本概念 474

12.2.3 简单查询 475

12.2.4 各种类型的查询 478

12.2.5 复杂查询 484

12.3 基于关系数据库的XML处理 489

12.3.1 关系数据的XML发布 489

12.3.2 XML存储和查询系统的体系结构 491

12.3.3 XML数据到关系数据库的存储映射 492

12.3.4 产生映射方法的步骤 494

12.3.5 将XML文档中的数据装入关系表 500

12.3.6 基于关系数据库的XML查询 501

小结 503

习题12 504

参考文献 506