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页 |