第1章 数据库的设计与开发概述 1
1.1数据库概述 1
1.1.1数据库与数据库系统的发展 1
1.1.2数据与信息 3
1.2数据库系统架构 4
1.2.1数据库的三级模式架构 4
1.2.2数据独立性 9
1.2.3映射 9
1.3关系数据库与关系模型 10
1.3.1关系数据库管理系统 10
1.3.2关系模型 11
1.4数据库设计 14
1.4.1数据库设计的步骤 14
1.4.2规划 15
1.4.3需求分析 16
1.4.4概念设计 16
1.4.5逻辑设计 17
1.4.6物理设计 17
1.4.7实现和部署 17
1.4.8运行和维护 18
1.5数据库应用程序开发 18
1.5.1事务设计 18
1.5.2用户界面设计 19
1.5.3构建原型 19
1.5.4实现数据的转换与加载 20
1.5.5测试与维护 21
1.6小结 21
术语 22
练习 23
第2章 概念结构设计:实体关系建模 24
2.1实体关系建模与实体关系图 24
2.1.1为什么需要模型 24
2.1.2模型的作用 24
2.1.3建模语法 25
2.2实体、实例、属性和唯一标识符 26
2.2.1实体 26
2.2.2实例 27
2.2.3属性 27
2.2.4唯一标识符 30
2.2.5用仿实体关系图表示实体及其属性 30
2.3标识关系 30
2.3.1关系的度 31
2.3.2关系的可选性 31
2.3.3关系的基数 31
2.3.4关系的可转移性 38
2.3.5用仿实体关系图表示关系 39
2.4矩阵图 41
2.5小结 42
术语 42
练习 43
第3章 高级建模技术 46
3.1解决多对多关系 46
3.1.1隐藏属性的关系 46
3.1.2多对多关系的解决方案 47
3.1.3限定关系 49
3.2父类型与子类型 49
3.3层次结构和递归关系 53
3.3.1分层数据 53
3.3.2绘制层次结构 53
3.3.3层次关系与递归关系 54
3.4排他OR约束条件 55
3.4.1什么是约束条件 55
3.4.2相互排斥的关系 55
3.4.3弧 55
3.5利用历史数据建模 56
3.5.1保持时间特性 56
3.5.2与时间相关的历史信息和约束条件 57
3.5.3与价格相关的历史信息 58
3.5.4与日志相关的历史信息 58
3.6小结 59
术语 60
练习 60
第4章 逻辑数据库设计 62
4.1 ER图向关系模型的转换 62
4.1.1标识实体和属性 62
4.1.2确定属性域 64
4.1.3确定候选键和主键 65
4.2标识关系 66
4.2.1外键的命名 67
4.2.2一对一关系的映射 67
4.2.3一对多关系的映射 70
4.2.4多对多关系的映射 72
4.2.5关系的可选性的映射 75
4.2.6关系的可转移性的映射 75
4.2.7级联限定关系 76
4.2.8父类型和子类型的映射 78
4.2.9相互排斥关系的弧的映射 82
4.3定义完整性约束 83
4.4构建全局逻辑数据模型 84
4.5设计用户子模式 85
4.6小结 86
术语 87
练习 87
第5章 规范化 90
5.1规范化简介 90
5.2数据冗余和更新异常 92
5.3第一范式 94
5.4第二范式 95
5.5第三范式 98
5.6更高级的范式 101
5.6.1 BCNF 101
5.6.2 4NF 102
5.6.3 5NF 102
5.6.4 DKNF 104
5.7反规范化 104
5.7.1反规范化的目标 104
5.7.2反规范化技术 105
5.8小结 111
术语 112
练习 113
第6章 物理数据库设计 115
6.1物理设计简述 115
6.2将全局逻辑数据模型转换为目标DBMS支持的模型 116
6.2.1设计基本表 117
6.2.2设计派生数据的表示 117
6.2.3设计其他业务规则 118
6.3分析事务 118
6.3.1列出事务路径 118
6.3.2确定信息 119
6.3.3数据应用分析 120
6.4选择文件组织方式 120
6.4.1文件、块和记录 121
6.4.2文件组织 121
6.5选择索引 124
6.5.1索引简介 124
6.5.2创建与管理索引 125
6.5.3主索引与二级索引 128
6.5.4基于树的索引 130
6.6设计用户视图 132
6.6.1视图的定义与查询 132
6.6.2修改视图 136
6.6.3 DML语句和视图 136
6.6.4管理视图 137
6.7设计安全性机制 137
6.7.1设计系统安全性 138
6.7.2设计数据安全性 144
6.8了解系统资源 145
6.8.1主存 145
6.8.2 CPU 145
6.8.3磁盘I/O 146
6.8.4 RAID 146
6.8.5网络 147
6.9小结 147
术语 148
练习 148
第7章 函数与表达式 149
7.1大小写处理和字符处理 150
7.1.1 DUAL表 150
7.1.2字符函数 151
7.2数字函数 153
7.3日期函数 154
7.4转换函数 158
7.4.1 TO_ CHAR函数 159
7.4.2 TO_ NUMBER函数 163
7.4.3 TO_ DATE函数 163
7.5 NULL函数 165
7.5.1 NVL函数 165
7.5.2 NVL2函数 166
7.5.3 NULLIF函数 167
7.5.4 COALESCE函数 167
7.6条件表达式 168
7.6.1 CASE表达式 168
7.6.2 DECODE函数 169
7.7小结 170
术语 170
练习 171
第8章 连接操作 173
8.1笛卡儿积连接、等值连接和非等值连接 173
8.1.1笛卡儿积连接 174
8.1.2等值连接 174
8.1.3非等值连接 177
8.2内部连接和外部连接 178
8.2.1内部连接和外部连接概述 178
8.2.2左外连接、右外连接和完全外连接 178
8.3自连接 180
8.4自然连接和交叉连接 181
8.4.1 ANSI/ISO SQL 181
8.4.2自然连接 182
8.4.3交叉连接 183
8.5连接子句 183
8.5.1 USING子句 184
8.5.2 ON子句 185
8.5.3连接3个表 185
8.6小结 186
术语 187
练习 187
第9章 查询与更新操作 189
9.1组函数 189
9.1.1 MIN和MAX 190
9.1.2 SUM和AVG 191
9.1.3 VARIANCE和STDDEV 192
9.1.4 COUNT 192
9.2 GROUP BY和HAVING子句 194
9.2.1 GROUP BY子句 194
9.2.2组内组 196
9.2.3嵌套组函数 197
9.2.4 HAVING子句 197
9.3子查询 198
9.3.1单行子查询 198
9.3.2多行子查询 202
9.4 INSERT语句 205
9.4.1显式地向表中添加数据 205
9.4.2隐式地向表中添加数据 207
9.4.3插入特殊值 207
9.4.4使用子查询复制行 208
9.4.5通过用户交互操作插入记录 209
9.5更新列值和删除行 209
9.5.1 UPDATE 210
9.5.2 DELETE 212
9.6 DEFAULT值 213
9.7创建与修改表 214
9.7.1创建表 214
9.7.2修改表 217
9.8定义和管理约束条件 222
9.8.1完整性约束条件 222
9.8.2 NOT NULL和UNIQUE约束条件 224
9.8.3 PRIMARY KEY、 FOREIGN KEY和CHECK约束条件 226
9.8.4管理约束条件 229
9.9小结 232
术语 233
练习 234
第10章 高级SQL—— Oracle PL/SQL 237
10.1 PL/SQL体系结构和运行PL/SQL程序的方法 237
10.1.1 PL/SQL体系结构 237
10.1.2运行PL/SQL程序 237
10.2 PL/SQL块结构和组成元素 239
10.2.1 PL/SQL块结构 239
10.2.2 PL/SQL的组成元素 239
10.3 PL/SQL处理流程 244
10.3.1逻辑结构 244
10.3.2循环结构 250
10.3.3顺序结构 251
10.3.4异常处理 253
10.4游标 256
10.4.1显式游标 256
10.4.2游标的FOR循环 258
10.4.3隐式游标 258
10.5在PL/SQL中动态执行SQL语句 259
10.6小结 261
术语 261
练习 261
第11章 存储过程、函数及触发器 263
11.1存储过程 263
11.1.1什么是存储过程 263
11.1.2存储过程的语法 264
11.1.3存储过程的执行 268
11.1.4存储过程的维护 269
11.2函数 270
11.2.1什么是函数 270
11.2.2函数的语法 270
11.2.3函数的执行 271
11.2.4函数的维护 271
11.3触发器 272
11.3.1触发器的类型 272
11.3.2触发器的组成 272
11.3.3创建触发器 273
11.3.4创建系统事件触发器 278
11.4小结 279
术语 280
练习 280
第12章 创建数据库连接与执行SQL语句 281
12.1创建数据库连接 281
12.1.1异构环境下数据库互连的解决方法 281
12.1.2使用JDBC创建数据库连接 285
12.2执行SQL语句 288
12.2.1处理查询 288
12.2.2执行一般查询 288
12.2.3执行参数查询 290
12.2.4执行存储过程 291
12.3更新数据库 292
12.3.1创建表 292
12.3.2删除表 293
12.3.3修改表 293
12.3.4更新表中数据 293
12.4处理结果集 294
12.4.1以列名为参数 295
12.4.2以结果集中列的序号为参数 295
12.5小结 296
术语 296
练习 296
第13章 项目实例 299
13.1项目实例一:课程考试/练习系统(TES) 299
13.1.1 TES项目简介 299
13.1.2 TES的ERD设计 300
13.1.3 TES系统的逻辑模型 305
13.1.4 TES概念模型向逻辑模型的转换 305
13.2项目实例二:计算机销售电子商务平台项目(DPEBP) 309
13.3项目实例三:国际家居建材城商场管理系统(IFMS) 312
13.3.1 IFMS项目简介 312
13.3.2 IFMS系统的主要用例 312
13.3.3 IMFS的逻辑模型 316
13.3.4得到IMFS的关系表 318
13.4小结 319
术语 319
参考文献 320