第1部分 数据库概念 3
第1章 数据库基础 3
1.1数据库特性 3
1.1.1数据库管理系统 4
1.1.2数据抽象层次 5
1.1.3物理数据独立性 7
1.1.4逻辑数据独立性 8
1.2流行的数据库模型 8
1.2.1纯文本文件 8
1.2.2层次模型 11
1.2.3网状模型 12
1.2.4关系模型 14
1.2.5面向对象模型 15
1.2.6对象关系模型 17
1.3数据库简史 17
1.4为什么关注于关系模型 20
第1章 自我测试题 20
第2章 关系数据库组件之探讨 23
2.1概念数据库设计组件 23
2.1.1实体 24
2.1.2属性 25
2.1.3关系 25
2.1.4业务规则 29
2.2体验练习2-1:北风贸易公司数据库之探讨 30
2.3逻辑/物理数据库设计组件 32
2.3.1表 32
2.3.2列和数据类型 34
2.3.3约束 35
2.3.4完整性约束 40
2.3.5视图 42
第2章 自我测试题 44
第3章 基于表单的数据库查询 47
3.1QBE:基于表单查询的根源 47
3.2微软Access入门 48
3.3微软AccessRelationships面板 54
3.4微软Access表设计视图 56
3.5使用微软Access创建查询 57
3.6体验练习3-1:罗列出所有的客户 60
3.7体验练习3-2:有选择地显示数据列 61
3.8体验练习3-3:查询结果排序 62
3.9体验练习3-4:高级排序 63
3.10体验练习3-5:有选择地显示数据行 65
3.11体验练习3-6:复合行的选取 67
3.12体验练习3-7:使用不等于运算符 68
3.13体验练习3-8:表连接查询 69
3.14体验练习3-9:限制连接查询结果 71
3.15体验练习3-10:外连接查询 72
3.16体验练习3-11:微软AccessSQL 74
3.17体验练习3-12:多表连接查询与计算列 76
3.18体验练习3-13:聚合函数 78
3.19体验练习3-14:自连接查询 80
第3章 自我测试题 83
第4章 SQL介绍 86
4.1SQL简史 88
4.2OracleSQL入门 89
4.3体验练习4-1:解锁HR账户与HR身份登录 90
4.4数据在哪里 93
4.4.1使用目录视图查找数据库对象 93
4.4.2使用对象浏览器查看数据库对象 95
4.5体验练习4-2:使用ApplicationExpressObjectBrowser 96
4.6数据查询语言(DQL):SELECT语句 97
4.6.1列出所有的行与列 97
4.6.2限制显示的列 98
4.6.3查询结果排序 99
4.6.4选取显示的行 100
4.6.5表连接查询 107
4.6.6聚合函数 113
4.7数据操纵语言(DML) 116
4.7.1事务支持(COMMIT与ROLLBACK) 116
4.7.2INSERT语句 117
4.7.3UPDATE语句 119
4.7.4DELETE语句 120
4.8数据定义语言(DDL)语句 120
4.8.1CREATETABLE语句 121
4.8.2ALTERTABLE语句 122
4.8.3CREATEVIEW语句 123
4.8.4CREATEINDEX语句 124
4.8.5DROP语句 124
4.9数据控制语言(DCL)语句 125
4.9.1GRANT语句 125
4.9.2REVOKE语句 126
第4章 自我测试题 126
第2部分 数据库开发 131
第5章 数据库生命周期 131
5.1传统生命周期 132
5.1.1计划阶段 133
5.1.2需求收集 134
5.1.3概念层设计 136
5.1.4逻辑层设计 136
5.1.5物理层设计 137
5.1.6构建阶段 137
5.1.7实现与展现 138
5.1.8后续支持 138
5.2非传统生命周期 139
5.2.1原型法 140
5.2.2快速应用系统开发 140
5.3工程三角形 141
5.4体验练习5-1:工程数据库管理任务 141
第5章 自我测试题 143
第6章 使用范式进行数据库设计 146
6.1范式化的需求 148
6.1.1插入异常 148
6.1.2删除异常 149
6.1.3更新异常 149
6.2应用范式化过程 149
6.2.1选择一个主键码 151
6.2.2第一范式:去除重复数据 153
6.2.3第二范式:去除部分依赖关系 155
6.2.4第三范式:去除传递依赖性 157
6.2.5高于第三范式的范式 159
6.3非范式化 163
6.4实践问题 163
6.5体验练习6-1:UTLA教学信息跟踪 164
6.6体验练习6-2:计算机图书公司 166
用户视图 167
第6章自我测试题 169
第7章数据与过程建模 172
7.1实体关系建模 172
7.1.1ERD格式 173
7.1.2超类与子类 179
7.1.3绘画ERD图的指导方针 183
7.2过程模型 184
7.2.1流程图 184
7.2.2功能层次图 186
7.2.3泳道图 187
7.2.4数据流图 188
7.3关联实体与过程 190
7.4体验练习7-1:使用信息工程格式绘制ERD图 191
第7章自我测试题 192
第8章物理数据库设计 196
8.1表设计 196
8.1.1实现超类型与子类型 200
8.1.2命名约定 203
8.2集成业务规则与数据完整性 206
8.2.1NOTNULL约束 207
8.2.2主键码约束 208
8.2.3参照性(外键码)约束 208
8.2.4唯一性约束 209
8.2.5核对性约束 209
8.2.6数据类型、精确度和范围 210
8.2.7触发器 210
8.3设计视图 211
8.4增加索引来提高性能 212
8.5体验练习8-1:逻辑模型到物理数据库模型的映射 213
第8章自我测试题 215
第3部分数据库实现 221
第9章数据库与外部互连 221
9.1部署模型 221
9.1.1中央式模型 222
9.1.2分布式模型 223
9.1.3客户机/服务器模型 224
9.2数据库同Web互连 228
9.2.1Internet与Web介绍 229
9.2.2Web“技术栈”中相应的组件 230
9.2.3从Web页面调用事务处理 230
9.3数据库同应用系统互连 232
9.3.1使用ODBC进行数据库连接 232
9.3.2使用OLEDB进行数据库连接 233
9.3.3 Java应用程序连接数据库 233
9.4体验练习9-1:万维网探讨 234
第9章自我测试题 234
第10章 数据库安全性 238
10.1为什么完全性是必要的 238
10.2数据库服务器安全性 239
10.2.1物理安全性 239
10.2.2网络安全性 240
10.2.3系统级安全性 243
10.3数据库客户端和应用程序安全性 244
10.3.1登录认证 244
10.3.2数据加密 244
10.3.3其他客户端考虑因素 245
10.4数据库访问安全性 246
10.4.1数据库安全架构 247
10.4.2模式拥有者账户 250
10.4.3系统级权限 251
10.4.4对象级权限 251
10.4.5角色 252
10.4.6视图 252
10.5安全监管与审计 253
10.6体验练习10-1:数据库对象权限 253
第10章 自我测试题 255
第11章 部署数据库 258
11.1指针处理 258
11.2事务管理 260
11.2.1什么是事务 260
11.2.2DBMS对于事务的支持 261
11.3体验练习11-1:SQL事务支持 263
锁定和事务死锁 264
11.4性能优化 268
11.4.1数据库查询的优化 269
11.4.2DML语句优化 271
11.5变更控制 272
第11章自我测试题 273
第12章在线分析处理数据库 276
12.1数据仓库 277
12.1.1OLTP系统同数据仓库系统比较 277
12.1.2数据仓库体系架构 278
12.2数据集市 283
12.3数据挖掘 284
12.4体验练习12-1:设计星型模式fact和维度表 285
第12章自我测试题 286
第13章 集成XML文档和对象入数据库 289
13.1学习XML基础 289
13.2学习SQL/XML 292
13.2.1XML数据类型 293
13.2.2SQL/XML函数 294
13.2.3SQL/XML映射规则 296
13.3体验练习13-1:使用SQL/XML函数 299
13.4面向对象应用 300
13.4.1面向对象编程 301
13.4.2面向对象编程语言 301
13.4.3对象一致性 302
13.5对象-关系数据库 306
第13章 自我测试题 307
第4部分 附录 313
附录A 自我测试题答案 313
附录B 体验练习解决方案 318