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

  • 购买积分:12 如何计算积分?
  • 作  者:(美)JEFFREYD.ULLMAN,JENNIFERWIDOM编著
  • 出 版 社:北京:机械工业出版社
  • 出版年份:2009
  • ISBN:9787111268284
  • 页数:334 页
图书介绍:本书分两大部分,首先是流行的关系数据库和关系对象数据库内容,介绍了关系数据模型、E/R模型、UML模型以及对象模型等高级数据模型。然后介绍了有关半结构化数据组织管理中比较流行的XML等内容。

第1章 数据库系统世界 1

1.1数据库系统的发展 1

1.1.1早期的数据库管理系统 1

1.1.2关系数据库系统 2

1.1.3越来越小的系统 2

1.1.4越来越大的系统 2

1.1.5信息集成 3

1.2数据库管理系统概述 3

1.2.1数据定义语言命令 3

1.2.2查询处理概述 4

1.2.3存储器和缓冲区管理器 5

1.2.4事务处理 5

1.2.5查询处理器 6

1.3本书概述 6

1.4参考文献 7

第一部分 关系数据库模型 9

第2章 关系数据模型 9

2.1数据模型概述 9

2.1.1什么是数据模型 9

2.1.2一些重要的数据模型 9

2.1.3关系模型简介 10

2.1.4半结构化模型简介 10

2.1.5其他数据模型 11

2.1.6几种建模方法的比较 11

2.2关系模型基础 12

2.2.1属性 12

2.2.2模式 12

2.2.3元组 12

2.2.4域 12

2.2.5关系的等价描述 13

2.2.6关系实例 13

2.2.7关系上的键 13

2.2.8数据库模式示例 14

2.2.9习题 15

2.3在SQL中定义关系模式 16

2.3.1SQL中的关系 16

2.3.2数据类型 16

2.3.3简单的表定义 17

2.3.4修改关系模式 18

2.3.5默认值 18

2.3.6键的声明 19

2.3.7习题 20

2.4代数查询语言 21

2.4.1为什么需要一种专门的查询语言 21

2.4.2什么是代数 21

2.4.3关系代数概述 21

2.4.4关系上的集合操作 21

2.4.5 投影 23

2.4.6选择 23

2.4.7笛卡儿积 24

2.4.8 自然连接 24

2.4.9 θ连接 25

2.4.10组合操作构成查询 26

2.4.11命名和重命名 27

2.4.12操作之间的联系 27

2.4.13代数表达式的线性符号 28

2.4.14习题 29

2.5关系上的约束 32

2.5.1作为约束语言的关系代数 32

2.5.2引用完整性约束 33

2.5.3键约束 33

2.5.4其他约束举例 34

2.5.5习题 35

2.6小结 35

2.7参考文献 36

第3章 关系数据库设计理论 37

3.1函数依赖 37

3.1.1函数依赖的定义 37

3.1.2关系的键 38

3.1.3超键 39

3.1.4习题 40

3.2函数依赖的规则 40

3.2.1函数依赖的推导 40

3.2.2分解/结合规则 40

3.2.3平凡函数依赖 41

3.2.4计算属性的闭包 42

3.2.5闭包算法为何有效 43

3.2.6传递规则 44

3.2.7函数依赖的闭包集合 45

3.2.8投影函数依赖 45

3.2.9习题 47

3.3关系数据库模式设计 48

3.3.1异常 48

3.3.2分解关系 49

3.3.3 Boyce-Codd范式 50

3.3.4分解为BCNF 50

3.3.5习题 52

3.4分解的优劣 53

3.4.1从分解中恢复信息 53

3.4.2无损连接的chase检验 55

3.4.3为什么chase检验有效 56

3.4.4依赖的保持 57

3.4.5习题 58

3.5第三范式 58

3.5.1第三范式的定义 59

3.5.2 3NF模式综合算法 59

3.5.3为什么3NF综合算法有效 60

3.5.4习题 60

3.6多值依赖 61

3.6.1属性独立及随之产生的冗余 61

3.6.2多值依赖的定义 61

3.6.3多值依赖的推导 62

3.6.4第四范式 64

3.6.5分解为第四范式 64

3.6.6范式间的联系 65

3.6.7习题 65

3.7 MVD的发现算法 66

3.7.1闭包和chase 66

3.7.2将chase扩展到MVD 67

3.7.3 chase为何对MVD有效 69

3.7.4投影MVD 69

3.7.5习题 70

3.8小结 70

3.9参考文献 71

第4章 高级数据库模型 73

4.1 E/R模型 73

4.1.1实体集 73

4.1.2属性 74

4.1.3联系 74

4.1.4实体-联系图 74

4.1.5 E/R图实例 75

4.1.6二元E/R联系的多样性 75

4.1.7多路联系 76

4.1.8联系中的角色 77

4.1.9联系的属性 78

4.1.10多路联系到二元联系的转换 79

4.1.11 E/R模型中的子类 80

4.1.12习题 81

4.2设计原则 82

4.2.1忠实性 82

4.2.2避免冗余 83

4.2.3简单性 83

4.2.4选择正确的联系 83

4.2.5选择正确的元素种类 84

4.2.6习题 86

4.3 E/R模型中的约束 87

4.3.1 E/R模型中的键 87

4.3.2 E/R模型中键的表示 87

4.3.3引用完整性 88

4.3.4度约束 89

4.3.5习题 89

4.4弱实体集 89

4.4.1弱实体集的来源 89

4.4.2弱实体集的要求 90

4.4.3弱实体集的符号 91

4.4.4习题 91

4.5从E/R图到关系设计 92

4.5.1实体集到关系的转化 92

4.5.2 E/R联系到关系的转化 92

4.5.3关系组合 94

4.5.4处理弱实体集 95

4.5.5习题 96

4.6子类结构到关系的转化 97

4.6.1 E/R方式转化 97

4.6.2面向对象方法 98

4.6.3使用空值组合关系 99

4.6.4各种方法的比较 99

4.6.5习题 100

4.7 统一建模语言 101

4.7.1 UML类 101

4.7.2 UML类的键 101

4.7.3关联 101

4.7.4自关联 102

4.7.5关联类 103

4.7.6 UML中的子类 103

4.7.7聚集与组合 104

4.7.8习题 105

4.8 UML图到关系的转化 105

4.8.1 UML到关系的基础知识 105

4.8.2从UML子类到关系 106

4.8.3从聚集与组合到关系 106

4.8.4 UML与弱实体集的类比 107

4.8.5习题 108

4.9 对象定义语言 108

4.9.1类声明 108

4.9.2 ODL中的属性 108

4.9.3 ODL中的联系 109

4.9.4反向联系 109

4.9.5联系的多重性 110

4.9.6 ODL中的类型 110

4.9.7 ODL中的子类 112

4.9.8在ODL中声明键 113

4.9.9习题 113

4.10从ODL设计到关系设计 114

4.10.1从ODL类到关系 114

4.10.2类中的复杂属性 114

4.10.3值集合类型属性的表示 115

4.10.4其他类型构建器的表示 116

4.10.5 ODL中联系的表示 117

4.10.6 习题 117

4.11小结 118

4.12参考文献 119

第二部分 关系数据库程序设计 121

第5章 代数和逻辑查询语言 121

5.1包上的关系操作 121

5.1.1为什么采用包 121

5.1.2包的并、交、差 122

5.1.3包上的投影操作 123

5.1.4包上的选择操作 123

5.1.5包的笛卡儿积 124

5.1.6包的连接 124

5.1.7习题 125

5.2关系代数的扩展操作符 125

5.2.1消除重复 126

5.2.2聚集操作符 126

5.2.3分组 127

5.2.4分组操作符 127

5.2.5扩展的投影操作符 128

5.2.6排序操作符 129

5.2.7外连接 129

5.2.8 习题 130

5.3关系逻辑 131

5.3.1谓词和原子 131

5.3.2算术原子 131

5.3.3 Datalog规则和查询 132

5.3.4 Datalog规则的意义 133

5.3.5扩展谓词和内涵谓词 134

5.3.6 Datalog规则应用于包 135

5.3.7习题 136

5.4关系代数与Datalog 136

5.4.1布尔操作 136

5.4.2投影 137

5.4.3选择 137

5.4.4积 138

5.4.5连接 139

5.4.6用Datalog模拟多重操作 139

5.4.7 Datalog与关系代数的比较 140

5.4.8 习题 141

5.5小结 141

5.6参考文献 142

第6章 数据库语言SQL 143

6.1 SQL中的简单查询 143

6.1.1 SQL中的投影 145

6.1.2 SQL中的选择 146

6.1.3字符串比较 147

6.1.4 SQL中的模式匹配 147

6.1.5日期和时间 148

6.1.6空值和涉及空值的比较 149

6.1.7布尔值UNKNOWN 149

6.1.8输出排序 151

6.1.9习题 151

6.2多关系查询 152

6.2.1 SQL中的积和连接 153

6.2.2消除属性歧义 153

6.2.3元组变量 154

6.2.4多关系查询的解释 155

6.2.5查询的并、交、差 156

6.2.6习题 157

6.3子查询 158

6.3.1产生标量值的子查询 159

6.3.2关系的条件表达式 160

6.3.3元组的条件表达式 160

6.3.4关联子查询 161

6.3.5 FROM子句中的子查询 162

6.3.6 SQL的连接表达式 163

6.3.7自然连接 164

6.3.8外连接 164

6.3.9习题 165

6.4全关系操作 167

6.4.1消除重复 167

6.4.2并、交、差中的重复 168

6.4.3 SQL中的分组和聚集 168

6.4.4聚集操作符 168

6.4.5分组 169

6.4.6 分组、聚集和空值 170

6.4.7 HAVING子句 171

6.4.8习题 171

6.5数据库更新 172

6.5.1插入 172

6.5.2删除 174

6.5.3修改 174

6.5.4习题 175

6.6 SQL中的事务 175

6.6.1可串行化 175

6.6.2原子性 177

6.6.3事务 177

6.6.4只读事务 178

6.6.5读脏数据 179

6.6.6其他隔离层次 180

6.6.7习题 181

6.7小结 182

6.8参考文献 183

第7章 约束与触发器 184

7.1键和外键 184

7.1.1外键约束声明 184

7.1.2维护引用完整性 185

7.1.3延迟约束检查 186

7.1.4习题 188

7.2属性和元组上的约束 188

7.2.1非空值约束 189

7.2.2基于属性的CHECK约束 189

7.2.3基于元组的CHECK约束 190

7.2.4基于元组和基于属性的约束的比较 191

7.2.5习题 191

7.3修改约束 192

7.3.1给约束命名 192

7.3.2修改表上的约束 193

7.3.3习题 193

7.4断言 194

7.4.1创建断言 194

7.4.2使用断言 194

7.4.3习题 195

7.5触发器 196

7.5.1 SQL中的触发器 196

7.5.2触发器设计的选项 197

7.5.3习题 199

7.6小结 200

7.7参考文献 201

第8章 视图与索引 202

8.1虚拟视图 202

8.1.1视图定义 202

8.1.2视图查询 203

8.1.3属性重命名 203

8.1.4习题 204

8.2视图更新 204

8.2.1视图删除 204

8.2.2可更新视图 204

8.2.3视图中的替换触发器 206

8.2.4习题 207

8.3 SQL中的索引 207

8.3.1建立索引的动机 208

8.3.2索引的声明 208

8.3.3习题 209

8.4索引的选择 209

8.4.1简单代价模型 209

8.4.2一些有用的索引 209

8.4.3计算最佳索引 211

8.4.4索引的自动选择 213

8.4.5习题 213

8.5物化视图 214

8.5.1物化视图的维护 214

8.5.2物化视图的定期维护 215

8.5.3利用物化视图重写查询 216

8.5.4物化视图的自动创建 217

8.5.5习题 218

8.6小结 218

8.7参考文献 219

第9章 服务器环境下的SQL 220

9.1三层体系结构 220

9.1.1 Web服务器层 220

9.1.2应用层 221

9.1.3数据库层 222

9.2 SQL环境 222

9.2.1环境 222

9.2.2模式 223

9.2.3目录 223

9.2.4 SQL环境中的客户和服务器 224

9.2.5连接 224

9.2.6会话 225

9.2.7模块 225

9.3 SQL/宿主语言接口 225

9.3.1阻抗不匹配问题 226

9.3.2 SQL与宿主语言连接 227

9.3.3 DECLARE节 227

9.3.4使用共享变量 227

9.3.5单元组选择语句 228

9.3.6游标 229

9.3.7游标更新 231

9.3.8避免并发修改 231

9.3.9动态SQL 232

9.3.10习题 233

9.4存储过程 234

9.4.1创建PSM函数和过程 234

9.4.2 PSM中的简单语句格式 234

9.4.3分支语句 235

9.4.4 PSM中的查询 236

9.4.5 PSM中的循环 237

9.4.6 for循环 238

9.4.7 PSM中的异常处理 239

9.4.8使用PSM函数和过程 241

9.4.9习题 241

9.5使用调用层接口 242

9.5.1 SQL/CLI简介 242

9.5.2进程语句 244

9.5.3从查询结果中取数据 244

9.5.4向查询传递参数 246

9.5.5习题 247

9.6 JDBC 247

9.6.1 JDBC简介 247

9.6.2 JDBC中的创建语句 248

9.6.3 JDBC中的游标操作 249

9.6.4参数传递 249

9.6.5习题 250

9.7 PHP 250

9.7.1 PHP基础 250

9.7.2数组 251

9.7.3 PEAR DB库 251

9.7.4使用DB创建数据库连接 251

9.7.5执行SQL语句 251

9.7.6 PHP中的游标操作 252

9.7.7 PHP中的动态SQL 252

9.7.8习题 253

9.8小结 253

9.9参考文献 254

第10章 关系数据库的新课题 255

10.1 SQL中的安全机制和用户认证 255

10.1.1权限 255

10.1.2创建权限 256

10.1.3检查权限的过程 257

10.1.4授权 257

10.1.5授权图 258

10.1.6收权 259

10.1.7习题 262

10.2 SQL中的递归 262

10.2.1在SQL中定义递归关系 262

10.2.2有问题的递归SQL表达式 264

10.2.3习题 266

10.3对象关系模型 267

10.3.1从关系到对象关系 267

10.3.2嵌套关系 267

10.3.3引用 268

10.3.4面向对象与对象关系的比较 269

10.3.5习题 270

10.4 SQL中的用户定义类型 270

10.4.1在SQL中定义类型 270

10.4.2用户定义类型中的方法声明 271

10.4.3方法定义 272

10.4.4用UDT声明关系 272

10.4.5引用 272

10.4.6为表生成对象标识符 273

10.4.7 习题 274

10.5对象关系数据上的操作 274

10.5.1引用的跟随 274

10.5.2访问UDT类型的元组分量 275

10.5.3生成器和转换器函数 276

10.5.4 UDT上联系的排序 277

10.5.5习题 278

10.6联机分析处理 279

10.6.1 OLAP和数据仓库 279

10.6.2 OLAP应用 279

10.6.3 OLAP数据的多维视图 280

10.6.4星型模式 280

10.6.5切片和切块 281

10.6.6习题 283

10.7数据立方体 283

10.7.1立方体算子 284

10.7.2 SQL中的立方体算子 285

10.7.3习题 286

10.8小结 286

10.9参考文献 287

第三部分 半结构化数据的建模和程序设计 289

第11章 半结构化数据模型 289

11.1半结构化数据 289

11.1.1为何需要半结构化数据模型 289

11.1.2半结构化数据表示 290

11.1.3信息集成与半结构化数据 291

11.1.4习题 292

11.2 XML 292

11.2.1语义标签 292

11.2.2有模式和无模式的XML 292

11.2.3格式规范的XML 292

11.2.4属性 294

11.2.5连接元素的属性 294

11.2.6命名空间 295

11.2.7 XML和数据库 295

11.2.8 习题 296

11.3文档类型定义 296

11.3.1 DTD的格式 296

11.3.2使用DTD 299

11.3.3属性列表 299

11.3.4标识符和引用 299

11.3.5习题 300

11.4 XML模式 301

11.4.1 XML模式的格式 301

11.4.2元素 301

11.4.3复杂类型 302

11.4.4属性 303

11.4.5受限的简单类型 304

11.4.6 XML模式中的键 305

11.4.7 XML模式中的外键 306

11.4.8习题 308

11.5小结 308

11.6参考文献 309

第12章 XML程序设计语言 310

12.1 XPath 310

12.1.1 XPath数据模型 310

12.1.2文档节点 311

12.1.3路径表达式 311

12.1.4相对路径表达式 312

12.1.5路径表达式中的属性 312

12.1.6轴 312

12.1.7表达式的上下文 313

12.1.8通配符 313

12.1.9路径表达式中的条件 314

12.1.10习题 315

12.2 XQuery 316

12.2.1 XQuery基础 317

12.2.2 FLWR表达式 318

12.2.3通过变量的值置换变量 320

12.2.4 XQuery中的连接 321

12.2.5 XQuery比较操作符 322

12.2.6消除重复 323

12.2.7 XQuery中的量词 323

12.2.8 聚集 324

12.2.9 XQuery表达式中的分支 324

12.2.10查询结果排序 324

12.2.11习题 325

12.3扩展样式表语言 326

12.3.1 XSLT基础 326

12.3.2模板 326

12.3.3从XML数据中获取值 327

12.3.4模板的递归应用 328

12.3.5 XSLT中的迭代 329

12.3.6 XSLT中的条件 330

12.3.7习题 331

12.4小结 332

12.5参考文献 332