130 likes | 326 Views
分布式关系数据库上的关键字查询 中期报告. 导师:高宏 学生:李一罡 2009-3-13. 进度安排. 目前已完成的研究工作及结果. 分布式数据库关键字检索的系统框架设计 分布式关键字查询分解算法 结果合并算法及相应的排序算法 可达性索引的设计 子节点关键字查询处理算法. 完成情况. 完成理论算法的设计 代码实现完成 50% 代码的类的设计 单节点上的关键字查询算法 全局模式的获取 连接表达式的生成算法 KR 索引的实现. 系统框架图. KR 索引.
E N D
分布式关系数据库上的关键字查询中期报告 导师:高宏 学生:李一罡 2009-3-13
目前已完成的研究工作及结果 分布式数据库关键字检索的系统框架设计 分布式关键字查询分解算法 结果合并算法及相应的排序算法 可达性索引的设计 子节点关键字查询处理算法
完成情况 完成理论算法的设计 代码实现完成50% 代码的类的设计 单节点上的关键字查询算法 全局模式的获取 连接表达式的生成算法 KR索引的实现
KR索引 KR索引:KR索引用来记录关键字在数据库中的出现情况,这里用(keyword,bitmap<column>)作为单个记录格式,keyword为关键字,bitmap<column>用来表示关键字在每列中的出现情况,0表示未出现,1表示出现。为了加快查询的速度,这里利用B+Tree来实现
连接表达式生成算法 连接表达式生成算法 输入:关系模式图GTS,keywords 输出:规模最多为T的连接表达式组 cnGenerator() { cnQueue:连接表达式结果队列; 挑选keywords中的一个关键字key,将出现key的关系加入cnQueue; while(cnQueue不空){ 从cnQueue取出头C if(C满足接受条件) 输出C; if(C满足剪枝条件) 忽略C; else{ for(对于每个在GTS中与C中节点相邻的节点R){ if(R包含C中没有的关键字&&C规模小于T) 将R加入C } }} 接受条件:连接表达式C包含所有的关键字 剪枝条件:相同的外键节点指向同一主键节点
连接表达式精简模块 可达性索引:可达性索引用来实现对两个关键字在两个邻接数据库之间是否可以连接产生结果,从而避免无效连接表达式查询的下发,减少底层数据库的查询时间,和结果所占用的网络传输时间 索引压缩:Bloom filter 索引记录:(key,BF)
排序算法 直接贡献度和间接贡献度 关键字相关度 总分值
结果合并算法 结果合并及排序算法 输入:连接表达式CNi中对于j数据库的子查询的结果Prefixij 输出:全局结果队列resultQueue Subresult merging Algorithm() { for (每个CNi) v= 参与CNi的数据库数量 for( j=1; j<=v; j++) 计算 MSTj 计算 ST,MST,GMST while( 少于K个结果输出 ) do{ 选择MST值最大的CNi 选择ST值最大的数据库j 重新计算ST,MST,GMST for (resultQueue中每个结果T) if ( score(T)>GMST) 输出 T }
后期进度安排 2009.3 完成可达性索引模块,查询合并模块,排序模块的实现 2008.5 系统的调试,以及测试环境的搭建 2008.6 编写毕业论文和答辩
遇到的困难和问题 1. 可达性索引的更新代价问题:如何优化索引结构来降低索引的更新代价 2. 搜索算法的优化:由于查询中设计大量的连接操作,如何减少连接的次数来提高检索效率