PROLOG事实库的持久化研究与实现
| 摘要 | 第1-7页 |
| Abstract | 第7-17页 |
| 1 绪论 | 第17-22页 |
| ·引言 | 第17页 |
| ·课题背景及意义 | 第17-19页 |
| ·研究目的与内容 | 第19-21页 |
| ·研究目标 | 第19-20页 |
| ·主要内容 | 第20页 |
| ·解决的主要技术问题 | 第20-21页 |
| ·本文结构 | 第21-22页 |
| 2 系统设计与实现 | 第22-25页 |
| ·概述 | 第22页 |
| ·总体设计 | 第22-23页 |
| ·事实的访问机制 | 第23页 |
| ·定义为Prolog系统的模块 | 第23页 |
| ·模块划分 | 第23-25页 |
| 3 存储结构的设计与实现 | 第25-44页 |
| ·数据的结构 | 第25-27页 |
| ·事实的顺序 | 第25页 |
| ·事实编号和块号的存储问题 | 第25页 |
| ·跨块问题 | 第25-26页 |
| ·数据块结构 | 第26-27页 |
| ·事实的结构 | 第27页 |
| ·索引的结构 | 第27-36页 |
| ·综合分析 | 第27-29页 |
| ·关键字的构成 | 第29-30页 |
| ·主索引及其它索引 | 第30页 |
| ·长索引项的存储(跨块问题) | 第30-32页 |
| ·改进的B~+树 | 第32-33页 |
| ·索引块的结构 | 第33-34页 |
| ·索引项的结构 | 第34-36页 |
| ·块的分裂与合并 | 第36-37页 |
| ·数据块分裂与合并 | 第36页 |
| ·索引块分裂与合并 | 第36-37页 |
| ·库文件的结构 | 第37-44页 |
| ·数据文件 | 第37页 |
| ·索引文件 | 第37-38页 |
| ·元文件 | 第38-40页 |
| ·配置文件 | 第40-41页 |
| ·日志文件 | 第41-44页 |
| 4 缓冲区管理 | 第44-56页 |
| ·全局缓冲区的构成 | 第44-46页 |
| ·总体结构 | 第44-45页 |
| ·锁定事实链表的组成 | 第45-46页 |
| ·日志缓冲区数据格式 | 第46-49页 |
| ·局部缓冲区 | 第49-51页 |
| ·概述 | 第49-50页 |
| ·访问局部日志缓冲区的技巧 | 第50-51页 |
| ·如何实现回溯? | 第51页 |
| ·全局缓冲区实现 | 第51-54页 |
| ·数据结构的根 | 第54-55页 |
| ·连接句柄的唯一性 | 第55-56页 |
| 5 同步控制 | 第56-69页 |
| ·总体思路 | 第56-59页 |
| ·激活被阻塞的线程 | 第59-60页 |
| ·读完成后的激活 | 第59-60页 |
| ·写完成后的激活 | 第60页 |
| ·消息的格式 | 第60-61页 |
| ·数据结构设计 | 第61-62页 |
| ·事实库信息同步 | 第62页 |
| ·全局日志缓冲区的同步 | 第62-63页 |
| ·局部日志缓冲区同步 | 第63页 |
| ·数据缓冲块和索引缓冲块的同步 | 第63-64页 |
| ·数据块的同步 | 第63-64页 |
| ·索引块的同步 | 第64页 |
| ·事实的同步 | 第64页 |
| ·谓词信息的同步 | 第64页 |
| ·索引信息同步 | 第64页 |
| ·根结构同步 | 第64-65页 |
| ·互斥量同步 | 第65-66页 |
| ·文件读写的同步 | 第66页 |
| ·指针数组元素移动问题 | 第66页 |
| ·多进程问题 | 第66-67页 |
| ·系统退出及其他问题 | 第67页 |
| ·死锁检测 | 第67-69页 |
| 6 关键算法的分析与设计 | 第69-90页 |
| ·二分查找法的改进 | 第69-70页 |
| ·索引项插入时索引键的加长 | 第70-72页 |
| ·k=-1时的索引键 | 第72-73页 |
| ·插入位置的确定 | 第73-74页 |
| ·数据块的分裂 | 第74页 |
| ·索引项修改 | 第74-78页 |
| ·移动索引项的处理 | 第75-76页 |
| ·分裂节点的处理 | 第76-77页 |
| ·在节点缓冲区中插入索引项 | 第77-78页 |
| ·在节点缓冲区中删除索引项 | 第78页 |
| ·合并节点 | 第78页 |
| ·删除索引节点 | 第78-79页 |
| ·删除事实及其索引键 | 第79页 |
| ·主索引项中数据指针的处理问题 | 第79页 |
| ·搜索事实 | 第79-80页 |
| ·插入事实 | 第80-81页 |
| ·事实的查询 | 第81-89页 |
| ·概述 | 第81-82页 |
| ·最佳匹配索引 | 第82页 |
| ·搜索范围的确定 | 第82-84页 |
| ·索引个数的确定 | 第84-85页 |
| ·两种极端情况的处理 | 第85页 |
| ·查询算法设计 | 第85-89页 |
| ·出错处理 | 第89-90页 |
| 7 结论 | 第90-92页 |
| 1)总结 | 第90页 |
| 2)展望与设想 | 第90-92页 |
| 参考文献 | 第92-93页 |
| 附录A 源程序文件名清单及说明 | 第93-94页 |
| 后记或致谢 | 第94-95页 |
| 作者简介及读研期间主要科研成果 | 第95页 |