第1章 数据库在电子商务中的角色 1
1.1 引言 1
1.2 企业系统的构成 2
1.2.1 网络 2
1.2.2 硬件 2
1.2.3 软件 4
1.2.4 内容 5
1.3 数据库是什么 6
1.4 为什么数据库对于商业是重要的 7
1.4.1 一般的商业例子 7
1.4.2 电子商务的例子 8
1.5 本书的组织 10
1.6 本章小结 11
1.7 关键术语 11
1.8 练习 12
1.8.1 复习 12
1.8.2 讨论 12
1.8.3 实践 12
第2章 关系理论 14
2.1 引言 14
2.2 关系模型 14
2.2.1 关系数据库管理系统(RDBMS) 15
2.2.2 数据库管理员(DBA) 15
2.3 实体关系图 15
2.3.1 主键 17
2.3.2 关系的创建:外键 19
2.3.3 数据完整性 20
2.3.4 第一范式 20
2.4 数据库系统的类型 21
2.4.1 关系的优点 22
2.4.2 逻辑链接优于物理链接 22
2.4.3 第四代语言(4GL) 22
2.4.4 数据独立性 23
2.5 本章小结 24
2.6 关键术语 25
2.7 练习 26
2.7.1 复习 26
2.7.2 讨论 26
2.7.3 实践 26
2.8 参考文献 27
第3章 概念设计 28
3.1 引言 28
3.2 设计单表数据库 30
3.2.1 问题陈述 30
3.2.2 处理 30
3.3 设计具有一对多关系的数据库 31
3.3.1 问题陈述 32
3.3.2 处理 32
3.4 具有多对多关系的数据库 34
3.4.1 问题陈述 34
3.5 其他多表数据库的例子 38
3.5.1 Hospital数据库 38
3.5.2 ACME数据库 42
3.5.3 Amazon数据库 46
3.6 本章小结 52
3.7 关键术语 53
3.8 练习 53
3.8.1 复习 53
3.8.2 讨论 53
3.8.3 实践 54
第4章 规范化 57
4.1 引言 57
4.2 范式 57
4.2.1 非规范化设计 58
4.3 Arcade数据库的规范化 58
4.3.1 更新问题 59
4.3.2 插入问题 60
4.4 范式 61
4.4.1 第一范式(1NF) 61
4.4.2 确定因子 63
4.4.3 第二范式(2NF) 63
4.4.4 第三范式(3NF) 65
4.4.5 Boyce-Codd范式(BCNF) 67
4.4.6 第四范式(4NF) 68
4.4.7 检测范式的违例 69
4.5 本章小结 70
4.6 关键术语 71
4.7 练习 71
4.7.1 复习 71
4.7.2 讨论 71
4.7.3 实践 72
第5章 高级数据库设计 73
5.1 引言 73
5.2 递归关系 73
5.2.1 递归关系的一个例子 74
5.2.2 创建Mentor递归关系 74
5.2.3 一个多对多的递归关系 76
5.3 层次:超类和子类 78
5.3.1 一个超类/子类层次的例子 80
5.3.2 第二个超类/子类层次的例子 83
5.4 复杂的设计 84
5.4.1 问题陈述:Summer Reading Fun 84
5.4.2 问题陈述:Swampland Real Estate 87
5.5 本章小结 91
5.6 关键术语 92
5.7 练习 92
5.7.1 复习 92
5.7.2 讨论 93
5.7.3 实践 93
第6章 使用SQL在Oracle中创建数据库 96
6.1 引言 96
6.2 物理表的设计 97
6.2.1 数据类型和列的宽度 97
6.3 Sky_Member数据库 97
6.3.1 保留字 98
6.3.2 实现 99
6.4 Arcade数据库 103
6.5 Enrollment数据库 105
6.5.1 创建关联键 105
6.5.2 用参照完整性控制删除和创建的顺序 107
6.6 故障判断及排除 109
6.6.1 无效标识符 110
6.6.2 缺少或无效选项 111
6.6.3 无效的User.table.column、Table.column或Column定义 111
6.6.4 缺少表达式 111
6.6.5 违背完整性约束——没有找到父键 112
6.7 本章小结 112
6.8 关键术语 113
6.9 练习 113
6.9.1 复习 113
6.9.2 讨论 113
6.9.3 实践 114
第7章 在Oracle中检索数据 118
7.1 引言 118
7.2 SQL中的基本检索操作 119
7.2.1 显示所有行和列 119
7.2.2 列列表的使用 120
7.2.3 用Order by排序 121
7.2.4 在多列上排序 123
7.2.5 用Where选择行 125
7.2.6 涉及文本数据的Where子句 125
7.2.7 LIKE算符 126
7.2.8 复杂的Where子句 127
7.2.9 相同列上的多个条件 131
7.2.10 IN算符的使用 132
7.2.11 BETWEEN算符的使用 133
7.2.12 NOT算符 134
7.2.13 AND和OR的组合 135
7.3 聚集函数 137
7.3.1 Count函数 139
7.3.2 在Where中使用聚集函数 140
7.4 在查询中对数据分组 140
7.4.1 DISTINCT的使用 141
7.4.2 分组和聚集函数 141
7.4.3 用Having子句限制分组 143
7.4.4 Having和Where的组合 145
7.5 合并不同表中的数据 146
7.5.1 join和其他Where条件的组合 149
7.5.2 超过两个表的连接 151
7.6 子查询 154
7.7 本章小结 157
7.8 关键术语 158
7.9 练习 159
7.9.1 复习 159
7.9.2 讨论 159
7.9.3 实践 159
第8章 使用Microsoft Access创建数据库 166
8.1 引言 166
8.2 物理表的设计 166
8.2.1 数据类型和列宽 167
8.3 Sky_Member数据库 167
8.3.1 创建单个表的Access数据库 168
8.3.2 使用查询显示表的数据 172
8.4 Arcade数据库 174
8.4.1 创建数据库和表 174
8.4.2 创建表之间的关系 175
8.4.3 向Arcade数据库输入数据 176
8.4.4 显示数据 177
8.5 Enrollment数据库 177
8.5.1 创建Enroll数据库 179
8.5.2 创建关联键 179
8.5.3 Enroll数据库的关系 179
8.6 本章小结 180
8.7 关键术语 181
8.8 练习 181
8.8.1 复习 181
8.8.2 讨论 181
8.8.3 实践 182
第9章 使用Microsoft Access检索数据 187
9.1 引言 187
9.2 SQL中的基本检索操作 188
9.2.1 显示所有的行和列 188
9.2.2 使用列列表 190
9.2.3 用Order by排序 192
9.2.4 在多列上排序 194
9.2.5 用Where选择行 195
9.2.6 涉及文本数据的Where子句 196
9.2.7 LIKE算符 198
9.2.8 复杂Where子句 199
9.2.9 相同列上的多个条件 203
9.2.10 NOT算符 207
9.2.11 AND和OR的组合 207
9.3 聚集函数 210
9.3.1 COUNT函数 212
9.3.2 在Where中使用聚集函数 213
9.4 在查询中对数据分组 214
9.4.1 DISTINCT的使用 214
9.4.2 分组和聚集函数 214
9.4.3 用having子句限制分组 216
9.4.4 Having和Where的组合 218
9.5 合并不同表中的数据 220
9.5.1 将连接与其他Where条件组合 224
9.5.2 超过两个表的连接 225
9.6 子查询 228
9.7 本章小结 232
9.8 关键术语 233
9.9 练习 234
9.9.1 复习 234
9.9.2 讨论 234
9.9.3 实践 235
第10章 使用Microsoft SQL Server创建数据库 240
10.1 引言 240
10.2 物理表的设计 240
10.2.1 数据类型和列宽 241
10.3 Sky_Member数据库 241
10.3.1 创建单个表的SQL Server数据库 242
10.3.2 使用查询分析器输入数据 248
10.4 Arcade数据库 250
10.4.1 创建数据库和表 251
10.4.2 创建表之间的关系 253
10.4.3 向Arcade数据库输入数据 253
10.5 Enrollment数据库 254
10.5.1 创建关联键 255
10.5.2 Enroll数据库的关系 256
10.6 本章小结 258
10.7 关键术语 259
10.8 练习 259
10.8.1 复习 259
10.8.2 讨论 259
10.8.3 实践 260
第11章 使用Microsoft SQL Server检索数据 265
11.1 引言 265
11.2 SQL中基本的检索操作 266
11.3 显示所有的行和列 267
11.3.1 SQL Server查询分析器 267
11.3.2 使用列列表 269
11.3.3 用Order By排序 270
11.3.4 在多列上排序 272
11.3.5 用Where选择行 273
11.3.6 涉及文本数据的Where子句 275
11.3.7 LIKE算符 275
11.3.8 相同列的多个条件 279
11.3.9 使用IN算符 282
11.3.10 使用BETWEEN算符 283
11.3.11 NOT算符 283
11.3.12 组合AND和OR 284
11.4 聚集函数 287
11.4.1 创建列的别名 290
11.4.2 使用DISTINCT 290
11.4.3 用GroupBy创建子聚集 291
11.4.4 用having子句限制分组 293
11.5 合并不同表中的数据 295
11.5.1 省略连接条件导致的错误 297
11.5.2 将连接与其他where条件组合 298
11.5.3 超过两个表的连接 301
11.6 子查询 304
11.7 本章小结 308
11.8 关键术语 309
11.9 练习 310
11.9.1 复习 310
11.9.2 讨论 310
11.9.3 实践 311
第12章 使用Microsoft ASP.NET Web应用程序访问数据库 316
12.1 引言 316
12.2 什么是ASP.NET 317
12.2.1 ASP.NET Web表单 317
12.3 Web应用的例子 318
12.3.1 Web Developer Express简介 318
12.3.2 创建一个Web站点 319
12.3.3 设计视图与源码视图比较 320
12.3.4 使用工具箱构造页面 322
12.3.5 改变控件属性 322
12.3.6 为事件输入代码 323
12.3.7 测试应用 324
12.4 例1:显示表的内容 324
12.4.1 创建SqlDataSource控件 325
12.4.2 选择数据提供者 326
12.4.3 设置数据连接 326
12.4.4 为数据源选择连接 327
12.4.5 配置数据源 328
12.4.6 创建GridView控件 330
12.4.7 结束应用 331
12.4.8 设置到Oracle数据源的连接 331
12.5 例2:显示表的单个记录 333
12.5.1 创建Web站点并添加数据库 333
12.5.2 添加文本框 334
12.5.3 添加并配置数据源 335
12.5.4 为数据源创建查询 336
12.5.5 为查询设置Where子句 337
12.5.6 添加GridView 337
12.5.7 结束应用 338
12.6 例3:用多个条件检索数据 339
12.7 总结 345
12.8 关键术语 346
12.9 练习 347
12.9.1 复习 347
12.9.2 讨论 347
12.9.3 实践 348
第13章 使用Microsoft ASP.NET维护Web应用数据库 352
13.1 引言 352
13.1.1 DetailsView服务器控件 352
13.2 创建会员维护的Web应用 353
13.2.1 配置数据源 353
13.2.2 配置DetailsView控件 355
13.2.3 添加插入新行的能力 355
13.2.4 添加更新行的能力 359
13.2.5 添加删除行的能力 361
13.3 自动生成插入、更新和删除语句 363
13.4 创建带有GridView的会员维护的Web应用 365
13.5 本章小结 367
13.6 关键术语 368
13.7 练习 368
13.7.1 复习 368
13.7.2 讨论 368
13.7.3 实践 368
术语表 373