目录 1
第1章 绪论 1
1.1 研究目的及意义 1
1.1.1 扩展关系数据库 2
1.1.2 面向对象数据库 2
1.1.3 对象-关系数据库 3
1.2 对象-关系技术的研究进展 3
1.2.1 对象-关系技术的萌发 3
1.2.2 对象-关系技术的现状 4
1.2.3 对象-关系技术的前景 6
1.3 相关研究工作概述 6
2.1.1 关于值与对象的讨论 8
2.1 设计思想 8
第2章 数据模型 8
2.1.2 对象标识 10
2.1.3 对象结构 11
2.1.4 继承性 12
2.1.5 封装 13
2.1.6 方法 13
2.2 形式描述 14
2.2.1 型与值 14
2.2.2 类与关系 16
第3章 查询代数 20
3.1 保持模式结构的操作 20
3.1.1 并 21
3.1.2 差 22
3.1.4 选择 23
3.1.3 交 23
3.2 改变模式结构的操作 25
3.2.1 投影 25
3.2.2 联结 27
3.2.3 NEST和UNNEST 28
3.3 代数操作的嵌套使用 29
3.3.1 扩展选择 29
3.3.2 扩展投影 30
第4章 体系结构 32
4.1 客户机-服务器体系结构 32
4.1.1 设计原则 32
4.1.3 功能分布 33
4.1.2 平台及通信工具 33
4.1.4 服务器的多进程结构 34
4.2 系统功能划分 35
4.2.1 客户端 35
4.2.2 服务器端 35
4.2.3 语言处理 35
4.2.4 模式管理 36
4.2.5 事务处理 36
4.2.6 查询执行 36
4.2.7 对象管理 36
4.2.8 存储管理 36
4.3.2 用户界面 37
4.3.1 系统运行环境 37
4.3 系统环境 37
第5章 数据库语言 38
5.1 主要特点 38
5.2 ADBL的数据定义功能 39
5.2.1 数据库的创建 39
5.2.2 表的创建 40
5.2.3 索引的创建 44
5.2.4 视图的创建 44
5.3 ADBL的模式操纵功能 45
5.3.1 表的修改 46
5.3.2 表的删除 47
5.4 ADBL的查询功能 47
5.4.1 对构造层次的查询 49
5.4.2 对继承层次的查询 52
5.4.3 对传递闭包的查询 53
5.5 ADBL的数据操纵功能 54
5.5.1 INSERT语句 54
5.5.2 UPDATE语句 56
5.5.3 DELETE语句 56
5.5.4 对视图的操作 57
5.6 ADBL的数据控制功能 59
5.6.1 完整性保护 59
5.6.2 安全性保护 61
5.6.3 事务管理 65
5.6.4 封锁机制 67
6.1.1 域 68
第6章 基类扩充 68
6.1 对built-in类型的扩充 68
6.1.2 模式类型 69
6.1.3 抽象数据类型 69
6.2 用户定义函数机制 70
6.2.1 UDF在ADBL中的使用 71
6.2.2 UDF的继承机制 72
6.2.3 UDF的实现 73
6.3 利用UDF实现操作符定义及操作符重载 76
第7章 嵌入式ADBL 78
7.1 语法结构 78
7.1.1 可执行语句 78
7.1.2 说明性语句 79
7.2 预编译实现方法 81
7.3 嵌入式ADBL的程序首部处理 83
7.3.1 SQL变量 83
7.3.2 SQL通信区 87
7.4 嵌入式ADBL的程序体处理 87
7.4.1 不含输出宿主变量的AEDBL语句 88
7.4.2 含有输出宿主变量的AEDBL语句 88
7.4.3 特殊AEDBL语句的处理 89
7.5 游标机制 89
7.5.1 游标的声明 90
7.5.2 游标的打开 91
7.5.3 对当前实例的取值 91
7.5.5 带游标的ADML操作 92
7.5.4 游标的关闭 92
7.5.6 游标的撤销 95
第8章 复杂对象 96
8.1 扩展的非第一范式结构 96
8.2 复杂对象语义 97
8.3 对象引用 99
8.3.1 引用作为完整性约束 99
8.3.2 引用作为类型构造器 101
8.3.3 两种特殊的引用方式 106
8.3.4 引用信息的外存表示 107
8.4 复杂对象信息组成 108
8.5.2 复杂对象内存形式 109
8.5.1 复杂对象语言形式 109
8.5 复杂对象表示形式 109
8.5.3 复杂对象外存形式 112
8.5.4 复杂对象显示形式 116
8.6 对象管理 116
8.6.1 对象缓冲区管理 117
8.6.2 对象存取 119
8.6.3 驻留对象管理 121
8.7 对象聚集 122
8.7.1 传统聚集策略 122
8.7.2 Angel聚集策略 122
8.8 对复杂对象操作的实现 125
8.8.1 ADML操作 125
8.8.2 授权操作 127
8.8.3 并发控制操作 128
第9章 查询处理与优化 130
9.1 查询语义 130
9.1.1 路径语义 130
9.1.2 对层次的讨论 131
9.1.3 层次的确定 132
9.1.4 层次的匹配 136
9.2 查询处理 137
9.2.1 总体处理方案 137
9.2.2 嵌套查询处理 143
9.2.3 继承层次查询处理 150
9.2.4 传递闭包查询处理 152
9.3 查询优化 155
9.3.1 代数查询优化 156
9.3.2 索引机制 163
9.3.3 基于代价评估的优化方法 165
第10章 模式管理与动态模式修改 176
10.1 模式管理 176
10.1.1 数据字典 176
10.1.2 ANGEL $ TABLES表 177
10.1.3 模式管理器 181
10.1.4 模式管理的应用 184
10.2 动态模式修改 185
10.2.1 ORDBMS中的DSM 185
10.2.2 DSM在Angel系统中的实现 190
11.1 安全机制 206
第11章 安全机制与完整性保护 206
11.1.1 安全性定义 207
11.1.2 安全性检查 218
11.1.3 安全机制的实现 218
11.2 完整性保护 220
11.2.1 ORDBMS主动性规则的研究 221
11.2.2 Angel对规则系统的支持 224
11.2.3 S E-C-A模型的实现 226
11.2.4 S E-C-A模型中的规则行为分析 229
11.2.5 语义完整性约束 232
12.1 事务 236
12.1.1 基本概念 236
第12章 事务管理 236
12.1.2 事务管理器 239
12.2 常规事务管理 241
12.2.1 封锁与并发控制 242
12.2.2 日志与恢复 247
12.2.3 事务管理器的实现 250
12.3 长事务管理 250
12.3.1 保存点机制 251
12.3.2 具体实现 252
第13章 开放数据库连接驱动程序的设计与实现 256
13.1 开放数据库连接简介 256
13.1.1 ODBC接口 257
13.1.2 ODBC组件 258
13.1.3 驱动程序类型 259
13.1.4 一致级 260
13.2 设计目标 262
13.2.1 驱动程序结构 263
13.2.2 Winsock简介 265
13.3 重要数据结构 266
13.3.1 三级句柄 266
13.3.2 数据类型 267
13.3.3 返回状态与出错信息 268
13.4 Angel数据传输协议 269
13.4.1 连接Angel服务器 269
13.4.2 发送命令 270
13.4.3 返回结果 270
13.5 具体实现 272
13.5.1 初始化连接 273
13.5.2 终止连接 275
13.5.3 处理SQL语句 276
13.5.4 取回结果 279
13.5.5 处理终止语句或事务 282
13.5.6 信息查询与目录函数 283
13.6 数据源管理 284
第14章 复杂对象推理的逻辑语言 285
14.1 A-logic的语法 285
14.1.1 类型 285
14.1.2 A-logic语言 286
14.2 A-logic的语义 299
14.3 讨论 302
附录A Angel数据语言文本 304
参考文献 315