【软件学报,2008】Skyline查询处理
交互式多用户Skyline查询处理算法
交互式多用户Skyline查询处理算法邵路伊;秦小麟;王潇逸;郭成盖;邓丹萍【期刊名称】《计算机科学与探索》【年(卷),期】2018(012)008【摘要】传统的Skyline查询是在单用户场景下设计的,随着数据库技术的发展以及应用新需求的出现,实际应用中考虑到多用户共同参与Skyline查询.在分析现有Skyline查询算法解决该问题不足的基础上,提出了一种基于权重的交互式多用户Skyline查询(weight-based interactive multi-user Skyline query,MUSW)算法.该算法定义了一种满意度度量方法,由用户权重决定Skyline结果集中每个数据点的满意度大小.MUSW算法旨在选取满意度大的数据点,首先确定多个子空间Skyline候选集;然后通过用户交互对用户权重进行动态调整,系统根据用户的反馈判断是否终止查询,从而使返回结果更符合用户的真实需求.在模拟和真实数据上验证MUSW算法的可行性,且具有良好的交互性能.【总页数】12页(P1202-1213)【作者】邵路伊;秦小麟;王潇逸;郭成盖;邓丹萍【作者单位】南京航空航天大学计算机科学与技术学院,南京 210016;南京航空航天大学计算机科学与技术学院,南京 210016;南京航空航天大学计算机科学与技术学院,南京 210016;南京航空航天大学计算机科学与技术学院,南京 210016;南京航空航天大学计算机科学与技术学院,南京 210016【正文语种】中文【中图分类】TP311【相关文献】1.基于MapReduce的Skyline查询处理算法 [J], 崔文相;肖迎元;郝刚;王洪亚;邓华锋2.高效多子空间Skyline查询处理算法 [J], 王潇逸;秦小麟;王宁;史文浩3.基于属性优先关系的多用户Skyline查询处理算法 [J], 邵路伊;王沁雪;郭帅4.无线传感器网络中一种近似Skyline查询处理算法 [J], 潘立强;李建中;骆吉洲5.一种弹性可扩展的并行n-of-N Skyline查询处理算法 [J], 魏炜;王意洁;王媛;马行空因版权原因,仅展示原文概要,查看原文内容请购买。
多因素时间序列Skyline的快速查询算法
第 3 7卷 第 9期
V_ _7 O 3 1
・
计
算
机
工
程
2 1 年 5月 01
M a 0l v 2 1
N O. 9
Co p t rEn n e i g m u e gie rn
软件 技术 与数 据库 ・
文章 编号: 0 _ 48 o1 9_ 8 - 10 I 2( 1) —0 4 0 3 2 o 0— 3
均 为 内存 算 法 。 数据 库 领 域 对 S yie 询 的研 究 主要 在 数 据 kl 查 n
快速查询算法 ,并计算其算法复杂 度。通过一个简单案例验
证 MF S快速查询方法 的正确性,并对实验结果进行分析 , T 检查 MF S快速查询算法针对不同的多 因素时间序列组 的查 T
J N Xi l ”
(c o l f o t r , h n s a o il r l g , h n s a4 0 0 , ia S h o o f S wae C a g h c kCol e C a g h 10 4 Chn ) S a Wo e
[ s at hs a e rp ss l a tr i dS yi ( T )k l efs q eyagwtm wi T h loi m e n trsh Ab t c]T ip pr o oe MutF co me k l eMF S syi at ur l(i t MF S T eag rh gta ds e e r p a i T n n h h t s o t
Skyline软件介绍
Skyline软件介绍Skyline软件介绍一、软件性能总览Skyline 软件是利用航空影像、卫星数据、数字高程模型和其它的2D或3D信息源,包括GIS 数据集层等创建的一个交互式环境。
它能够允许用户快速的融合数据、更新数据库,并且有效地支持大型数据库和实时信息流通讯技术,此系统还能够快速和实时地展现给用户3D地理空间影像。
Skyline是独立于硬件之外、多平台、多功能一套软件系统。
Skyline软件系列产品为网络和非网络环境提供了一个三维交互世界的窗口。
以下的工作流程能够指导你在本地或网络环境下进行基本数据生成,数据传输,数据可视化和数据分析等。
产品能够分离开或根据用户需求进行用户化的特殊定制。
初始化界面和在线帮助工具能够帮助你设定适合自己的三维世界窗口来解决你特殊的商业案例。
从生成飞行文件的地表数据集或从你的GIS投资在二维/三维的knowledgebase简单的传送地表数据。
Skyline软件能够使你在一个新的视角又基于你已有的IT和GIS构架来观看你的商业案例。
二、Skyline软件系列产品(一)、TerraExplorer SuiteTerraExplorer ProTerraExplorer DeveloperTerraExplorer Run Time ProTerraExplorer Viewer(二)、TerraGate SuiteTerraGateInternet LicenseTerraPhoto3D Server(三)、TerraBuilder SuiteTerraBuilderTerraBuilder Enterprise EditionTerraBuilder DirectConnect三、产品性能介绍(一)、TerraBuilder——允许用户快速创建编辑和获得Skyline三维地表数据集。
l TerraBuilder 可以使用户为他们的地理参考的应用创建一个现实影像的、地理的、精确的地球三维模型。
skyline服务查询
Skyline服务查询实验实验内容:应用BNL算法和SFS算法对QWS数据集进行skyline服务查询算法介绍及实现:➢BNL算法该算法首先在内存中开辟有一块窗口,用于存放从文件中读入的疑似是SP的数据。
还有临时文件T,当内存中的窗口满时,原本需要插入到窗口中的点将被保存在临时文件中。
算法的流程如下:从存放需要查询的数据的文件F中,读取一个数据点p,与窗口中的所有点比较(如果窗口为空,则直接插入),根据比较结果不同执行下面三种操作。
●窗口中存在一点q,q点支配p点,则p点不可能是SP成员,将p点丢弃。
●p点支配窗口中的一个或多个点,则被p点支配的所有点不可能是SP成员,将它们删去。
●p点与窗口内所有的点都不相互支配,若窗口的容量仍够存放p点则插入p点,否则将p点插入临时文件T中。
当所有点都读取完并执行完上述操作时,窗口中在临时文件中加入第一个点之前就已经加入的点作为SP输出。
将临时文件T作为数据来源,即作为存放需要查询的数据的文件F,新建一个空白的临时文件T',从1开始循环执行该过程。
知道所有的点或者被丢弃,或者被作为SP输出。
具体实现(python):def BNL(len1,len2,data_array):reslist = []for i in range(len1):if len(reslist) == 0:reslist.append(i)else:deletelist=[]remain = Truefor k in reslist:kqicnt = 0iqkcnt = 0for t in range(len2):if data_array[i][t] >= data_array[k][t]:iqkcnt = iqkcnt + 1if data_array[i][t] <= data_array[k][t]:kqicnt = kqicnt + 1if kqicnt == 9:remain = Falsebreakif iqkcnt == 9:deletelist.append(k)if len(deletelist) > 0:reslist = [reslist[p] for p in range(0, len(reslist), 1 ) if p not in deletelist]if remain:reslist.append(i)return reslist➢SFS算法在BNL的基础上先对数据进行预处理(排序),使得加入的点一定是SP,减少删除的开销具体实现(python):def SFS(data,len1,len2):reslist = []reslist.append(0)for i in range(1,len1):remain = Truefor k in reslist:kqicnt = 0for t in range(len2):if data[i][t] <= data[k][t]:kqicnt = kqicnt + 1if kqicnt == 9:remain = Falsebreakif remain:reslist.append(i)return reslistQoS服务数据randdataset产生的Qos服务数据集放在了QoSdata文件中,通过传入该数据集检验上面的算法实验结果分析:BNL运行结果(数据较多,截图不全):SFS运行结果(数据较多,截图不全):运行速率分析BNL算法:SFS算法:。
skyline查询基数估计方法
skyline查询基数估计方法一、引言基数估计方法是一种用于估计大规模数据集中唯一值数量的技术。
而Skyline查询是一种常用的查询类型,用于找出数据集中的最优数据点。
将这两个概念结合起来,可以实现对大规模数据集中Skyline查询结果的基数进行估计,从而提高查询效率。
本文将介绍两种常用的基数估计方法在Skyline查询中的应用。
二、基数估计方法概述基数估计方法是通过对数据集中的一部分数据进行抽样或统计,来估计整个数据集中唯一值的数量。
常用的基数估计方法包括HyperLogLog和MinCount等。
这些方法通过合理的数据结构和算法,能够在保证一定估计精度的前提下,大幅减少对原始数据的存储和计算开销。
三、Skyline查询概述Skyline查询是一种常用的多目标查询类型,用于找出数据集中的最优数据点。
在Skyline查询中,用户需要定义一组目标属性,系统会根据这些属性在数据集中找出满足条件的最优数据点。
而在大规模数据集中进行Skyline查询时,由于计算复杂度的增加,查询效率成为一个重要的问题。
四、基数估计方法在Skyline查询中的应用1. 基于HyperLogLog的基数估计方法HyperLogLog是一种常用的基数估计方法,它通过哈希函数和位图等数据结构,能够在极小的存储空间内估计大规模数据集中的基数。
在Skyline查询中,可以利用HyperLogLog对查询结果进行基数估计,从而减少对原始数据的访问和计算开销。
例如,在计算Skyline查询结果时,可以先对候选数据点进行基数估计,然后只选择基数较大的数据点进行后续计算,以提高查询效率。
2. 基于MinCount的基数估计方法MinCount是另一种常用的基数估计方法,它通过随机采样和最小值统计等技术,能够在保证一定估计精度的前提下,估计大规模数据集中的基数。
在Skyline查询中,可以利用MinCount对查询结果进行基数估计,从而减少计算开销。
【软件学报】_数据相关_期刊发文热词逐年推荐_20140727
科研热词 数据挖掘 半监督聚类 集成索引结构 闭包中心 重定向服务 邻接矩阵 近邻传播 跨层优化 跨媒体 资源搜索 语义查询扩展 词语-概念相关度 计数算子 聚类分析 聚类 网络发展模式 网络动态模式 网络体系结构 网构软件 结构一致性 程序设计方法 移动对等网络 移动ipv6 社会网络分析 相似度矩阵 概念 极大团 本体 服务动态演化 时序数据预处理 数据分发 投影矩阵 成对约束 成对点约束 属性构造 属性关系一致原则 容错方法 家乡代理 媒体对象 失效检测 处理器特性 噪音消除 告警关联 可信关联规则 内存数据库 先验知识 信息迁移 信息可视化 交叉参照图模型 tpc-h负载 osgi
科研热词 skyline 高维数据流 高维数据 需方参与 随机投影 降维约简技术 键值存储 量化分析 连续查询 软件过程 路径敏感分析 行为元素 虚拟人 蒙特卡罗模拟 自治计算 联盟关系 网络推断 缺陷检测 统一计算设备架构 结果可视化 移动web 电子政务 熵最大化准则 滑动窗口 混合索引 流行病传播网络 流行病传播模型 泛化 死路径清除 正态分布 概率数据流 查询处理 服务描述信息 服务发现 最小包含超球体 时空数据挖掘 数据质量 数据清洗 数据流分析 数据流 数据泄漏防护 收敛性 支持向量机分类器 支持向量机 支持向量数据描述 推荐信任模型 排名策略 完整性约束 多agent系统 多agent 地理标记 图形处理器
推荐指数 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
2011年 序号 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
基于众包的不完整数据Skyline查询处理研究
基于众包的不完整数据Skyline查询处理研究在过去十年间,针对不完整数据的查询处理研究受到广泛关注。
现有方法往往致力于数据预处理,利用机器学习技术对缺失值进行填补。
此类方法的查询质量受限于机器算力。
在某些情况下,群体智慧可以很好地解决机器难以解决的问题。
对此,我们希望借助众包来优化查询质量。
本文研究针对不完整数据的Skyline查询处理问题,提出一个基于众包的Skyline查询框架,称之为BayesCrowd。
该框架包含不完整数据建模阶段和众包阶段。
在建模阶段,我们借助贝叶斯网络刻画数据相关性,利用c-table模型表示不完整数据对象,并提出高效建模算法。
在众包阶段,我们通过众包计算对象间支配关系,从而得到Skyline查询结果。
考虑到众包预算和众包延迟,BayesCrowd需要选择性地发布众包任务。
因此,本文设计效用函数来衡量众包任务的效益,并提出了三种任务选择策略来满足不同用户需求。
最后,我们在真实数据集以及合成数据集上进行大量的实验,从查询耗时、查询成本以及查询延迟的角度验证BayesCrowd的优越性。
一种渐进的分布式Skyline查询算法的开题报告
一种渐进的分布式Skyline查询算法的开题报告摘要:Skyline查询是一种重要的多维数据查询,被广泛应用于数据挖掘、决策分析和虚拟现实等领域。
随着数据规模不断增大,传统的Skyline查询算法已经无法满足分布式场景下的性能需求。
因此,本文提出了一种基于分布式计算框架的Skyline查询算法,通过将数据划分为多个分区,并将计算任务分配给多个计算节点处理,实现了Skyline查询任务的并行化处理。
本算法通过数据流式处理和贪心策略优化,能够提高查询的性能和扩展性。
我们还通过实验验证了算法的效率和准确性。
关键词:Skyline查询,分布式计算,数据流式处理,贪心策略,性能优化1. 研究背景和意义Skyline查询是指在多维数据集中挑选出最优的一些数据对象,通常用于决策分析、数据挖掘和虚拟现实等领域。
Skyline查询算法是计算Skyline结果的方法,已经得到广泛的应用和研究。
传统的Skyline查询算法主要是基于单机和集中式计算的,在处理大规模数据时性能较低、耗时较长。
为了解决传统Skyline算法的性能问题,在近年来越来越多的研究者开始关注Skyline查询算法在分布式场景下的实现。
主要的挑战在于如何高效地在多个计算节点之间合并结果,并且保证结果的准确性和完整性。
因此,开发分布式Skyline查询算法已成为当前研究中的一个重要问题。
如何同时提高查询的效率和准确性,是该领域的一个热门问题。
2. 研究内容和方法本文旨在研究一种基于分布式计算框架的Skyline查询算法。
该算法主要通过以下几个步骤实现:(1)将数据划分为多个分区,并将计算任务分配给多个计算节点处理,实现任务的并行化处理。
(2)利用数据流式处理的思想,在每个计算节点上按需计算数据流中的Skyline点,并将结果传递给合适的计算节点进行合并。
(3)设计一种基于贪心策略的合并算法,以不同阈值下的决策因素(如优先级)作为合并的判断依据,从而保证结果的准确性和完整性。
【软件学报】_概念_期刊发文热词逐年推荐_20140727
模型检测 概率搜索小组 概念设计 概念 构件 极小不可满足 极大相似分布 本体 时序关联共生 无结构对等网络 无线网络 文本聚类 数据空间管理 数据空间 数据库管理系统 数据分发 支配集 搜索方向 搜索强度 描述语义 推理 控制理论 控制关系 拥塞控制 拓扑控制 抽象精化 手势 志愿计算 形式系统 形式方法 张量镜头 并行程序设计模型 带缓存交叉开关 局部聚类模型 局部密度聚类 小波分解 密度吸引子 容错性 实体-属性-值模型 多速率多播 多模态 复制 基向量 基于点的算法 图文法 可视化语言 可管理运行时环境 可满足性 半结构化数据表示 动态轮询 分点 分布式聚类 分布式丢弃bloom filter 分布信息集成
2008年 序号 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106
数据挖掘 效用函数 攻击图 扫描监测系统部署 扫描监测模型 扫描检测 形式化 异常轨迹检测 延迟容忍网络 局部匹配 安全状态域趋向指数 安全状态域 安全实时数据库 子路径 子空间skyline查询 多路径路由 多覆盖集 基于平移的最小hausdorff距离 基于安全状态域的评估模型 域间路由系统 参数选择 动态蕴涵关系 前缀策略 前缀劫持 别名解析 分离逻辑 关键词检索 全局调度算法 全局匹配 信道容量 互联网路由注册处 互联网路由 互联网注册机制 事务隐蔽信道 xml结构完整性约束 xml vague集 vague区域划分 vague区域 super-peer体系结构 r树 peer-to-peer p-value mobile ip地址过滤 hoc dds并行模型 crown bloom filter ad
【软件学报】_网络体系结构_期刊发文热词逐年推荐_20140727
科研热词 跨层 自组织特征映射 神经网络 环境感知 查询优化 服务质量 无线网状网 改进的圆型反向传播网络 子空间skyline查询 圆型反向传播网络 功率控制 分类 super-peer体系结构 qos路由 qos体系结构 mac(媒体接入控制) bp-som bloom filter
推荐指数 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
科研热词 推荐指数 体系结构 2 边界网关协议(bgp) 1 软件特征量 1 软件体系结构 1 路由扩展性 1 能耗建模 1 网络性能 1 网络安全 1 网络可靠性 1 特征量度量 1 模型驱动 1 标识与位置分离 1 嵌入式软件能耗 1 域间多路径路由 1 地址空间 1 命令与控制 1 僵尸网络测量 1 僵尸网络检测 1 僵尸网络 1 mof(meta-object facility) 1 bp神经网络 1
2013年 序号 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
科研热词 推荐指数 非线性回归 1 车辆自组网 1 路由伪造 1 路由 1 跨层设计 1 责任域 1 覆盖网 1 网络安全 1 网络入侵检测 1 网络 1 程序切片 1 移动自组网 1 移动对等网络 1 源地址欺骗 1 模式匹配 1 有限状态自动机 1 无线mesh网络 1 数据中心 1 拓扑 1 小波神经网络 1 大规模 1 域间路由 1 博弈论 1 功耗模型 1 前缀劫持 1 体系结构 1 wireless mesh network 1 vehicular ad hoc network 1 overlay 1 mobile peer-to-peer network 1 mobile ad hoc network 1 gpu计算 1 gametheory 1 cross-layer design 1
《外包空间数据库中范围和移动k近邻skyline的查询验证》
《外包空间数据库中范围和移动k近邻skyline的查询验证》篇一一、引言随着空间数据库的广泛应用,对外包空间数据库中范围和移动k近邻Skyline查询的需求日益增长。
本文旨在探讨如何有效地在空间数据库中执行此类查询,并对其进行验证。
我们将首先介绍相关背景知识,然后详细阐述我们的方法、实验过程及结果分析。
二、背景知识外包空间数据库是一种分布式数据库系统,广泛应用于各种地理位置相关信息的应用程序中。
其中,范围查询和近邻查询是常见的操作,而Skyline查询则能获取在多个属性上达到最优解的数据点。
本文主要探讨的是在移动环境下的k近邻Skyline查询问题。
三、方法与实现我们采用了一种基于索引的算法来处理外包空间数据库中的范围和移动k近邻Skyline查询。
首先,我们构建了一个高效的索引结构,以加速查询过程中的数据检索。
其次,我们设计了一种动态规划算法,以处理移动环境下的k近邻问题。
最后,我们通过遍历Skyline曲线,获取多个属性上的最优解。
四、实验过程我们在一个模拟的外包空间数据库环境中进行了实验,以验证我们的算法性能。
我们使用了不同的数据集和查询场景,以评估算法的准确性和效率。
实验过程中,我们详细记录了查询的响应时间、准确率等指标。
五、结果分析实验结果表明,我们的算法在处理范围和移动k近邻Skyline 查询时具有较高的准确性和效率。
与传统的查询方法相比,我们的算法在响应时间上具有显著的优势。
此外,我们的算法还能有效处理移动环境下的数据变化,保持查询结果的实时性。
六、讨论与展望尽管我们的算法在实验中表现良好,但仍存在一些局限性。
例如,在处理大规模数据集时,算法的效率可能会受到一定影响。
此外,我们的算法假设了数据库的稳定性和数据的完整性,而在现实环境中,这些问题可能存在。
为了进一步改进我们的算法,我们可以考虑采用更高效的索引结构和优化算法。
此外,我们还可以研究如何处理数据库的不稳定性和数据的不完整性等问题,以提高算法的鲁棒性。
skyline软件使用
Your site here
工程信息窗口:
左边区域显示出工程加载的数据,以及所处的参考窗口可 视/工作窗口可视/编辑状态
右边窗口显示出被编辑数据的属性信息
Your site here
TerraBuilder
Start New Project
Add Source Files
7、画箭头 8、画圆 9、画椭圆 10、画弧线 11、地面监控视频
Your site here
创建对象 -3D Objects
1 23 4 5
1、添加三维模型 2、添加点云模型 3、添加线云模型 4、新建建筑物 5、建3D多边形 6、建长方体
7、建圆柱 8、建球体 9、建锥体 10、建四棱锥 11、建3D箭头
http://ip adress/虚拟文件夹名称
❖ 将打包成网络地址的工程拷贝到虚拟路径下
1
2 3
❖ 在Pro中打开如下地址: http://ip adress/虚拟文件夹名称/name.fly
4
5
Your site here
TerraGate
Your site here
TerraGate
开启服务 打开TeraGate,在main标签面板中,选择 Service name下的TerraGate,点击开始按钮, 运行服务
Your site here
3、Convert source files
❖ 每种源文件必须转化为中间格式---MPU。 通过数据转换创建影像金字塔,这种MPU 格式通常要比源文件大,但是用起来比源文 件要快的多。 影像数据=〉*.Ii.mpu 高程数据=〉*.Ei.mpu 矢量数据=〉*.Vi.mpu
【软件学报】_策略优化_期刊发文热词逐年推荐_20140728
2011年 序号 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
53 54 55 56 57 58 59 60 61 62
分治策略 函数优化 全局优化 克隆选择算法 信息可视化 作业车间调度 人工智能 人工免疫 xml adhoc网络
1 1 1 1 1 1 1 1 1 1
53 54 55 56 57 58 59 60 61 62 63 64
2011年 科研热词 粒子群优化 重传 部署策略 遗传算法 进化方程 软件测试 跨边界 超大规模集成电路 计算复杂度 视知觉 行为记忆 蚁群优化 网络编码 网格计算 累积学习理论 策略评价 空间数据库 移动锚点选择 离散粒子群算法 相关性 电路划分 特征匹配 深度包检测 海量数据分析 正则表达式 概率干预策略 检查点 有穷自动机 最小割 最优化挖掘 无线广播 旅行商问题(tsp) 数据挖掘 敏感标记 收敛性 指针推进策略 拓扑连接 成对组合测试 异构系统 开销优化 带宽效率 层次聚类算法 容错 实时性 安全融合模型 多级安全 均匀分布 双目标优化 区域分片 匹配算法 分布式查询 分层移动ipv6网络 推荐指数 3 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1Байду номын сангаас1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
2012年 序号 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
【软件学报】_设备_期刊发文热词逐年推荐_20140728
推荐指数 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
2014年 序号 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
推荐指数 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
2011年 序号 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
2011年 科研热词 高级加密标准 顺序独立的透明现象 面向方面 随机伪造源地址 远程攻击 跨域授权 访问驱动 设计 认证 计算统一设备架构 网络安全 网络化软件 深度剥离 模型 标准模型 权限传播 手势界面 工具箱 嵌入式系统 密钥协商 实证研究 复杂网络 复杂性 基于身份 基于属性的委托 图形处理器 可靠性 可证明安全 原子操作 分布式拒绝服务攻击 信任管理 人机交互 交互技术 openssl cache计时攻击 bloom filter 推荐指数 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
推荐指数 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
2010年 序号 1 2 3 4 5 6 7 8 9 10 11 12 13 径 自适应 聚类算法 网络可靠性 类hoare逻辑系统 程序模块化验证 服务质量路由 最优解 曲边梯形网格表示 数据布局 字节码 多能量模板约束 多约束路由 图像显示适配 区域关系图 公平 一致hash
【软件学报】_组_期刊发文热词逐年推荐_20140727
2012年 序号 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
科研热词 推荐指数 高效能计算 1 隐私保护 1 自适应调度 1 组稀疏 1 组lasso 1 粒子群优化 1 竞争分析 1 特征选择 1 数据发布 1 多核学习 1 图像标注 1 取整划分函数 1 协同进化 1 匿名组规模上界 1 分组调度 1 分布式计算 1 众核处理器 1 主从模型 1 upper bound on size of anonymization 1 group rounded partition function 1 privacy preservation 1 k匿名算法 1 data publishing 1 algorithm for k-anonymity 1 agent 1
推荐指数 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
2009年 序号 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
推荐指数 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
ห้องสมุดไป่ตู้
科研热词 非齐次泊松过程 随机密钥预分配 错误引入率 软件可靠性增长模型 视频分块运动估计 蠕虫检测 网络安全 癌症识别 癌症组分量模型 特征提取 熵模型 水印最大嵌入强度 检查点 无线传感器网络 故障排错率 彩色编码 密钥管理 容错 多态蠕虫 基因表达谱 基于时间部署 全局分量模型 入侵检测 依赖跟踪 人类视觉系统(hvs) 不完美排错
《外包空间数据库中范围和移动k近邻skyline的查询验证》范文
《外包空间数据库中范围和移动k近邻skyline的查询验证》篇一一、引言随着大数据时代的来临,空间数据库的应用越来越广泛。
在处理空间数据时,范围查询和移动k近邻查询是两种常见的操作。
同时,Skyline查询作为一种多维度数据查询的重要手段,在空间数据库中也有着广泛的应用。
本文将重点探讨外包空间数据库中范围和移动k近邻Skyline的查询验证问题,为相关领域的研究提供理论支持和实践指导。
二、背景及意义外包空间数据库是指将空间数据的存储和处理任务交给第三方服务提供商的一种数据库模式。
在这种模式下,用户可以通过网络访问空间数据,并执行各种查询操作。
范围查询和移动k近邻查询是空间数据库中的两种基本操作,而Skyline查询则能够在多个维度上获取数据的概览信息。
因此,对这三种查询的验证对于保证空间数据库的准确性和可靠性具有重要意义。
三、范围查询的验证范围查询是指在空间数据库中查找满足特定空间范围的对象。
为了验证范围查询的准确性,可以采用以下方法:1. 设定标准的范围数据集,与查询结果进行比对。
通过比较两者的交集和并集,评估范围查询的准确性。
2. 利用已知的精确算法对范围查询进行验证。
通过比较精确算法和外包空间数据库中范围查询的结果,评估误差大小。
3. 考虑空间数据的分布和密度对范围查询的影响。
在不同区域和密度下进行范围查询,分析查询结果的稳定性和可靠性。
四、移动k近邻查询的验证移动k近邻查询是指在移动对象的数据集中查找离给定对象最近的k个对象。
为了验证移动k近邻查询的准确性,可以采取以下方法:1. 利用真实世界的移动轨迹数据进行验证。
通过将真实世界的移动轨迹数据与查询结果进行比对,评估移动k近邻查询的准确性。
2. 考虑移动速度和方向对查询结果的影响。
在不同速度和方向下进行移动k近邻查询,分析查询结果的稳定性和可靠性。
3. 采用多种算法对移动k近邻查询进行验证。
通过比较不同算法的查询结果,评估误差大小和算法的优劣。
《外包空间数据库中范围和移动k近邻skyline的查询验证》
《外包空间数据库中范围和移动k近邻skyline的查询验证》篇一一、引言随着空间数据库的广泛应用,对外包空间数据库中范围和移动k近邻查询的需求日益增长。
Skyline查询作为一种重要的空间查询技术,能够有效地找出给定空间范围内的多个目标对象,以构建多维度的轮廓(Skyline)进行信息可视化与挖掘。
本篇论文主要讨论如何对外包空间数据库中范围和移动k近邻的Skyline查询进行验证,以保障查询的准确性和高效性。
二、外包空间数据库与Skyline查询概述外包空间数据库(Outsourced Spatial Database)是一种将空间数据存储在云端或外部服务器上的数据库系统。
其优点在于可以充分利用云计算资源,提高数据处理和存储的效率。
Skyline查询则是一种基于空间对象的多维轮廓查询技术,它能够找出给定空间范围内的多个目标对象,并将它们根据一定规则组合成轮廓图谱。
这种查询技术常用于空间数据分析、地图生成等场景。
三、范围和移动k近邻Skyline查询范围和移动k近邻Skyline查询是外包空间数据库中常见的两种查询需求。
其中,范围k近邻查询是指在给定空间范围内,查找距离指定目标点最近的k个点;而移动k近邻查询则是指在一段时间内,找出离移动点最近的k个点。
这两种查询都需要利用Skyline技术来构建多维度的轮廓图谱,以支持后续的信息挖掘和可视化工作。
四、查询验证方法为了保障外包空间数据库中范围和移动k近邻Skyline查询的准确性和高效性,我们需要采用一系列的验证方法。
首先,我们可以通过设计合理的测试用例来验证查询的正确性。
这些测试用例应该涵盖不同的空间范围、目标点、距离等参数条件,以确保在各种情况下都能得到正确的结果。
其次,我们可以利用已有的数据集进行验证,通过将我们的查询结果与已知的正确结果进行比较,来评估我们的算法性能和准确性。
此外,我们还可以采用一些性能评估指标来衡量我们的算法在处理大规模数据时的效率。
不确定数据流上的并行Skyline查询算法
不确定数据流上的并行Skyline查询算法王广东;王意洁;李小勇;王媛【期刊名称】《计算机科学与探索》【年(卷),期】2012(6)12【摘要】不确定数据流上的Skyline查询技术逐步引起研究者的关注,传统的集中式流处理算法难以满足海量数据的查询需求,并且云计算所提供的海量计算资源和有效的存储管理模式,为研究并行Skyline查询技术提供了充足的条件.基于上述事实,提出了一种不确定数据流上的并行Skyline查询算法(parallel Skyline over uncertain data streams,PSUDS).该算法通过交叉划分滑动窗口的方式,将集中式流查询转化为并行处理,以并行执行的方式来解决集中式算法处理性能不足的问题.大量实验结果表明,该算法具有较好的并行可扩展性.%Skyline query processing over uncertain data streams has attracted considerable attention recently. The traditional centralized stream processing algorithms can hardly process Skyline query of massive data. On the other side, cloud computing provides great opportunities for distributed and parallel Skyline query processing with its massive computing resources and effective storage management manners. Motivated by the above facts, this paper proposes a parallel Skyline over uncertain data streams algorithm (PSUDS) by partitioning the sliding window. This algorithm is able to parallelize the Skyline processing over uncertain data streams to solve the performance problems within the traditional centralized stream processing algorithms.Massive experiments demonstrate that the proposed algorithm has good parallel scalability.【总页数】10页(P1116-1125)【作者】王广东;王意洁;李小勇;王媛【作者单位】国防科技大学计算机学院并行与分布处理国家重点实验室,长沙410073;国防科技大学计算机学院并行与分布处理国家重点实验室,长沙410073;国防科技大学计算机学院并行与分布处理国家重点实验室,长沙410073;国防科技大学计算机学院并行与分布处理国家重点实验室,长沙410073【正文语种】中文【中图分类】TP311.13【相关文献】1.改进的概率数据流上Skyline查询算法 [J], 杨艳艳;赵雷;杨季文2.概率数据流上Skyline查询处理算法 [J], 孙圣力;戴东波;黄震华;张齐勋;周立新3.不确定数据流上Top-k异常点查询算法 [J], 曹科研;王国仁;韩东红;李硕儒4.一种高效的不确定数据流并行Skyline查询处理方法 [J], 赵越;王意洁;王媛;李小勇5.不确定数据流上的并行反 Skyline 查询 [J], 张建荣;毛宇光因版权原因,仅展示原文概要,查看原文内容请购买。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
ISSN 1000-9825, CODEN RUXUEW E-mail: jos@Journal of Software, Vol.19, No.6, June 2008, pp.1386−1400 DOI: 10.3724/SP.J.1001.2008.01386 Tel/Fax: +86-10-62562563© 2008 by Journal of Software. All rights reserved.Skyline查询处理∗魏小娟1, 杨婧1, 李翠平1,2+, 陈红1,21(中国人民大学信息学院,北京 100872)2(数据工程与知识工程国家教育部重点实验室,北京 100872)Skyline Query ProcessingWEI Xiao-Juan1, YANG Jing1, LI Cui-Ping1,2+, CHEN Hong1,21(School of Information, Renmin University of China, Beijing 100872, China)2(Key Laboratory of Data Engineering and Knowledge Engineering of the Ministry of Education, Beijing 100872, China)+ Corresponding author: E-mail: cuiping_li@Wei XJ, Yang J, Li CP, Chen H. Skyline query processing. Journal of Software, 2008,19(6):1386−1400./1000-9825/19/1386.htmAbstract: This paper gives a survey on current Skyline queries techniques. It first introduces the background inwhich Skyline queries appear. Then it presents in-memory algorithms in Skyline query problem. Facing to thesituation of large data sets, it further presents the techniques about Skyline query processing by two cases, with orwithout indices respectively. Evaluations of Skyline query methods are discussed after that. This paper alsointroduces the novel query model-SKYCUBE which is applied to process multi-Skyline queries in varioussubspaces and related research based on it. Additionally, it introduces the efficient algorithm to solve Skylinequeries in various applicant environment and the extension of the Skyline query processing. Finally, this paperproposes several directions for further research on the topic of Skyline query processing.Key words: Skyline query; Skyline point; dominance; multi-objective optimization; SKYCUBE摘要: 对目前的Skyline查询方法进行分类和综述.首先介绍Skyline查询处理问题产生的背景,然后介绍Skyline查询处理的内存算法,并从带索引和不带索引两个方面对现有的外存Skyline查询处理方法进行分类介绍,在每组算法后,都对该组算法进行了性能评价,然后介绍不同子空间上的多Skyline查询处理模型——SKYCUBE的概念和相关研究.另外,还介绍了不同应用环境下解决Skyline查询处理的策略以及Skyline查询处理问题的扩展,最后归结出Skyline查询处理后续研究的几个方向.关键词: Skyline查询;SP;控制关系;多目标优化;SKYCUBE中图法分类号: TP311文献标识码: ASkyline查询[1]也称为Pareto(帕类托,在不损害他方利益的条件下,自身已达最优),在多目标的选取决策中∗ Supported by the National Natural Science Foundation of China under Grant Nos.60673138, 60603046 (国家自然科学基金); theProgram for New Century Excellent Talents in University of China (新世纪优秀人才支持计划); the Program for Excellent Talents inBeijing of China under Grant No.35607025, (北京市优秀人才培养资助项目)Received 2007-07-17; Accepted 2007-09-04魏小娟等:Skyline查询处理1387非常有用.它和Convex Hulls、Top-K查询、Nearest Neighbor查询等都有关系.具体地讲,Skyline查询处理是指从给定的一个D-维空间对象集合S中选择一个子集,该子集中的任意一个点都不能被S中的任意一个其他点所控制.所谓控制关系是指给定一个D-维空间中的多个对象(集合S),如果对象p至少在某一维上优于另一个对象q,而在其他维上都不比对象q差(p优于或等于q),则说p能够控制q.Skyline查询是一个典型的多目标优化的问题[2].对它的研究最早可以追溯到1975年.Kung在文献[3]中针对二维或三维数据提出了一种查询复杂度为O(n log2n)的算法,针对大于三维的数据,提出了查询复杂度为O(n(log2n)d−2)的算法.后来,Bentley在假定各维数据分布独立的情况下,提出了人们期望的线性查询算法[4].所有这些研究都假定数据集比较小,可以放入内存,所提出的算法也都是内存算法.数据库领域的研究人员对Skyline查询的研究始于2001年,最早由Borzsonyi等人提出[1].主要关注在数据量很大、无法放入内存的情况下,如何处理Skyline查询.最近几年,对Skyline查询的研究大体上可以分为4类:1) 单Skyline查询处理算法.该类算法假定所有的Skyline对象都处在某一个特定的D-维空间中,返回的结果集合只有1个.根据查询过程中是否借助索引,单Skyline查询处理算法又分为两类:不带索引算法和带索引算法.前者假定没有任何索引存在,通过扫描整个数据集(至少1次)来返回Skyline查询的结果;后者通过引入适当的索引结构,如R-树,来提高查询处理的效率.2) 多Skyline查询处理算法.针对现实生活中不同的用户可能有不同的兴趣和偏好,需要在不同的子空间中处理Skyline查询的需求,数据仓库和OLAP领域的研究者对在不同子空间上进行Skyline查询的研究产生了浓厚的兴趣,提出了SKYCUBE[5]的概念.SKYCUBE借用传统的Data Cube的多维层次结构,提出了有效的同时计算多个Skyline查询的思想.该类算法主要包含针对SKYCUBE的计算、维护和压缩等.3) 不同应用环境下的Skyline查询处理.主要包括Web信息系统中的Skyline查询处理、P2P网络环境下的Skyline查询处理、数据流环境下的Skyline查询处理、移动的公路网络环境下的Skyline查询处理等.4) Skyline查询处理问题的扩展.例如,文献[6]中首次扩展了空间数据库中不同数据点之间的控制关系的概念,将其用于经济学框架下的商业分析,提出了控制关系分析的概念;文献[7]针对高维空间下出现在Skyline查询结果中的点非常多,从而导致该结果在很多时候对用户失去意义的问题,提出了k-Dominant的概念,等等.可以看出,Skyline的查询处理问题已经引起了国内外研究者的高度重视,近几年,在SIGMOD,VLDB,KDD, PODS,ICDE,ICDM等相关的高水平国际会议上发表了许多高质量的论文,展示出大量的研究成果.在TKDE, TODS等期刊中也发表了大量成果.然而目前,国内和国际上还没有将Skyline查询处理的发展情况、核心技术和研究成果进行整体上的介绍.鉴于Skyline查询处理在多规则决策应用方面的重要价值和在实时在线服务方面的良好应用前景,为了捕捉Skyline查询处理的发展动态,对Skyline查询处理研究有一个总体上的把握,促进国内迅速跟上国际研究的步伐,综述这方面的工作十分有意义.本文在分析国内外相关研究工作的基础上对Skyline查询处理技术进行了综述.本文第1节介绍Skyline 查询处理问题产生的背景、动机和应用场景,并对问题的定义进行具体描述.第2节详述单Skyline的查询处理算法,包括内存处理算法和外存处理算法、带索引和不带索引的处理算法等.第3节具体介绍多Skyline的查询处理算法,包括SKYCUBE的计算、维护和压缩等.第4节介绍不同应用环境下Skyline的查询处理算法.第5节介绍Skyline查询处理问题的扩展.最后总结全文,并展望未来的研究工作.1 Skyline查询处理问题1.1 问题描述Skyline查询问题也称为Pareto最优或极大向量问题.它是指从给定的一个N-维空间的对象集合S中选择一个子集,该子集中的点都不能被S中的任意一个其他点所控制,满足这个条件的点称为SP(skyline point).这里的控制关系是指给定一个N-维空间中的多个对象(对象集S),若存在这样两个对象P=(p1,p2,…,p N)和Q=(q1, q2,…,q N),对象P在所有维上的属性值都不比对象Q差,且至少在一维上的属性值优于对象Q,则称P控制Q.先来看一个经典的例子——饭店的选择入住问题[1].假设某个旅客到Nassau旅游,他/她想找一家价格便宜1388 Journal of Software 软件学报 V ol.19, No.6, June 2008 且距海滨近的饭店入住.图1中的每个小圆点都代表一家饭店,X 轴表示饭店的价格,Y 轴表示饭店到海滨的距离.可以看出,该旅客只需要考虑位于折线上的那些点(饭店)就可以了.不在折线上的点(饭店)根本用不着考虑,因为总是可以在折线上找到一点(饭店),或者价格上更便宜,或者距海滨更近.这时,我们说,折线上的点控制了所有其他不在折线上的点,而折线上的点之间不存在控制关系.所有位于折线上的点构成Skyline 查询的结果集.Fig.1 Skyline of hotels in Nassau (Bahamas)图1 有关Nassau 饭店的Skyline 查询问题Borzsonyi 等人[1]提出用如下的一个SQL 查询来表达一个Skyline 查询:Select *, From Hotels , Skyline of Price min, Distance min其中,min 表示价格和距离两个属性值都取min 值的操作.这里的min 也可以换成其他条件,如max,joins, group-by 等等.1.2 Skyline 查询和Top-K 查询Skyline 查询与Top-K 查询不同,但它们之间又具有一定的相似性.实际上,它们都用于解决传统的多目标优化问题,只是采用的手段不同.解决传统的多目标优化问题通常有3种不同的方法[8].1) 转化成单目标优化的问题(Top-K 查询).主要思想是通过一个单调的加权函数将对象集合S 中每个对象的多个属性进行聚集,得到一个单一值,通常被称为Score 值,然后将所有的对象按照其Score 值进行排序,再选出前K 个最大或最小的对象,即为所要的查询结果.2) Pareto 方法(Skyline 查询).不是将问题转化为单目标优化的问题,而是直接采用多目标优化算法解决原始的多目标问题.多目标优化算法最终返回的结果集是一系列平行的、互不受控制的解(位于Skyline 上的多个SP).这里的“控制”是指一个数据点在每一维上都不比另一点“差”,而且必须至少在一维上比另一点要“好”.其中,“差”和“好”并无统一的定义,根据用户的查询和选择条件的语义而定.3) 词典序方法.即为不同的属性安排不同的优先级,然后按照优先级的高低来选择各个属性进行优化.按照优先级从高到低的顺序依次比较对象相应属性值的大小,若其属性值相同,则继续比较各个对象在下一个优先级上的属性值大小,直到比较出明确的优劣为止.2 单Skyline 查询处理算法2.1 内存处理算法文献[3,4]针对数据量小、可以放入内存时的求最大向量集问题的Skyline 查询提出了解决算法.根据向量间的控制关系的概念[4]:若P 的每个分量都大于等于Q 对应的分量,则称向量P 控制向量Q .这样,若一个向量不被组中的任何其他向量所控制,这个向量就是这个组中的最大向量.针对最大向量问题,Kung 在文献[3]中针对2维或三维数据提出了查询复杂度为O (n log 2n )的算法,针对大于三维的数据,提出了一种查询复杂度为O (n (log 2n )d −2)的算法.后来,Bentley 在假定数据在各维上的属性值独立且无重复的情况下,提出了人们期望的线性时间的查询算法[4].0.50.0D i s t a n c e t o t h e b e a c h (k m ) Price ($)魏小娟等:Skyline查询处理13892.2 外存处理算法这些算法关注的都是在数据量大、无法放入内存的情况下对Skyline查询问题的处理.从带索引和不带索引两个方面对现有的单Skyline查询处理算法进行分类.2.2.1 不带索引的算法:BNL/SFS/D&C/Bitmap/LESSBNL(block-nested-loops)算法[1]:该算法是对待测元组建立临时表T,T由一个个的临时表T i组成,要读取的第1组输入放在临时表T0中.然后在主存中维持一个窗口队列,以收集相互间不存在控制关系的Skyline元组,窗口队列初始化为空.算法开始时,第1个读取的元组自然地被放进窗口队列中.然后,每当从当前临时表队列T i 中读入一个元组p时,就用该元组和窗口队列中已有的所有元组依次进行比较,可能出现以下的3种情况:1) 窗口中存在元组控制元组p:p被删除,以后的迭代中也不再考虑p.2) 窗口中存在元组被元组p控制:从窗口队列中删除被p控制的元组,以后的迭代中也不再考虑这些元组,p插入窗口队列中.3) 元组p和窗口中所有元组都不存在控制关系:若窗口中有足够空间,则将p插入窗口队列中;若空间不够,则将p写入下一个临时队列T i+1中.每当算法扫描到T i队列的末尾时,就有一些Skyline元组被确定了.若T i+1队列为空,则算法终止,此时,所有窗口队列中的元组都是SP;否则,在第1个写入T i+1队列的元组产生前就已写入窗口队列中的元组是SP,其他窗口队列中的元组再进行下一轮的处理,重复这个比较的过程,新的当前处理队列是T i+1队列.每次迭代结束,都输出窗口队列中已和临时表中的所有元组比较过的元组.这些元组既不受控于其他元组,也不会控制还在考虑中的任何元组.其他的元组若在下一次迭代过程中没有被删除,则被输出.易知,一个元组越早被插入到窗口队列中,在下一次迭代中就越可能早地被输出.为了跟踪一个窗口队列中可能被输出的元组,算法为每个窗口队列中的元组和写入临时文件中的元组都设置了一个时间戳.这个时间戳实际上就是一个记录元组顺序的计数器,因此,若从临时文件中读入的元组的时间戳是t,则可输出窗口队列中所有时间戳小于t的元组.算法利用时间戳保证了不会出现两个元组重复比较的现象和算法能够有效地及时终止的条件.该算法的改进思想是将窗口队列变成一个能自动组织队列,替换窗口中的元组,替换策略是保证窗口队列中的元组尽可能控制更多的元组.SFS(sort-filter-skyline)算法[9]:该算法是在BNL算法的基础上对数据集进行了预排序.BNL算法的I/O开销依赖于迭代的次数和每次迭代要处理的数据集的大小.因为内存中窗口大小有限,不一定能装下所有的SP,所以对要处理的元组先排序,过滤掉一些受控元组,因此,便有了SFS算法.SFS算法的思想是,对临时表中的元组按照SP的选取规则先做一个拓扑排序,然后用BNL算法处理这些元组.故一旦有一个临时表T i中的元组被加入窗口中,它就一定是SP了.因为T i有序,所以它后面的元组不可能控制它,这样就不需要做替换的检查,减少了开销.D&C(divide-and-conquer)算法[1]:该算法将数据集划分为几部分,使得每部分都可以放入内存,然后使用内存算法分别计算每一部分的SP,最后通过合并每部分的SP去除其中受控的数据点来得到最终的SP集.该算法的具体流程是:1) 计算输入的点在某维d p上的中值(这里的中值可以指精确中值,也可以指模糊中值)m p,并按这个中值把输入的点集划分为两部分P1,P2.其中,P1集合包含所有在d p上的属性值优于m p的元组,P2集合包含其他剩余的元组.2) 分别计算P1的SP集合S1和P2中的SP集合S2.计算时,P1和P2不断地迭代划分,直到每个部分只包含一个或没有元组为止.3) 通过合并全部的集合S1和S2,得到最终的SP集合.具体地说,就是删去S2中被S1中的元组控制的元组.该算法最具挑战性的一步是第3步.如图2所示,该步的思想是用另一个维度d g(d g≠d p)上的中值进一步划分S1和S2集合.结果我们得到了4个部分:S1,1,S1,2,S2,1,S2,2.S1,i在d p上优于S2,i,S i,1在d g上优于S i,2(i=1,2).现在,我们只需合并S1,1和S2,1,S1,1和S2,2,S1,2和S2,2.这一步的先进性在于我们无须合并S1,2和S2,1,因为这两个集合中的元组是一定不会存在控制关系的.递归地调用归并函数来实现对S1,1和S2,1以及其他每两部分之间的合并,也1390 Journal of Software 软件学报 V ol.19, No.6, June 2008 就是说,S 1,1和S 2,1又被划分了.归并函数的迭代终止条件是所有的维都被考虑过了,或者有一个划分为空或只包含1个元组.Fig.2 Basic merge图2 基本合并算法的改进:(1) 划分的界限不一定必须是中值;(2) 将2-路划分改进为m -路划分;(3) 第3步的最初划分中的归并函数可以用一个Bushy-路归并.Bitmap 算法[10]:该算法是采用位图结构来判断一个点是否是SP,算法满足渐进性,无须遍历整个数据集,找到一个SP 便可以及时返回,因为按位操作计算速度很快,故可以很快地判断出一个点是否是SP.下面是对这一算法的描述及一些定义的说明:(1) 待测数据集为D ,包含的都是d 维空间的点;(2) 在第i 维上有k i 个不同的属性值(1≤i ≤d );(3) p ij 代表第i 维上的第j 个不同的属性值,不失一般性,不妨设p i 1>p i 2>…>i ik p ,所有维上属性值的范围都映射到[0…1];(4) 本算法考虑取大操作为优(MAX).算法基于的规则:一个点x =(x 1,x 2,…,x d )用一个m 位的向量表示,其中,x i 用k i 位表示,则m 为所有k i 的总和,即为点x 在所有维上不同属性值的个数之和,每位依次为p i 1,p i 2,…,如果x i 是i 维上的第p iq 个不同属性值,则x i 的k i 个位上的值分别为:第1位到第q −1位设置为0,第q 位到第k i 位设置为1.这样就把每个数据点转换为了相应的点阵结构.设BS ij 代表位片在第i 维上的第j 个不同的属性值.根据以下规则来判断一个点x =(x 1,x 2,…,x d )是否是SP: 让1212&&...&d q q dq A BS BS BS =,则当且仅当第n 个点在所有维上的属性值都优于(或等于)其他点x 在相应维上的属性值时,A 的第n 位置为1;让1211211&&...&d q q dq B BS BS BS −−−=,则当且仅当第n 个点在某些维上的属性值优于其他点x 在相应维上的属性值时,B 的第n 位置为1;让C =A &B , 则易得出:当且仅当第n 个点在每一维上的属性值都优于(或等于)其他点x 在相应维上的属性值,且在某些维上的属性值优于其他点x 在相应维上的属性值时(满足SP 的定义),C 的第n 位置为1.这样,无须遍历整个数据集,算法就能判断出一个点是否是SP,从而提前返回查询结果.LESS(linear elimination sort for skyline)算法[11]:该算法结合了SFS,BNL 和FLET 算法的某些方面,是SFS 算法的改进算法.它与SFS 算法最大的两个不同之处在于:1) 在第0步时,LESS 算法加入了一个消除过滤窗口(简记为EF 窗口)来对待测数据集先做一个外部排序,进而提前删除了一些不可能是SP 的待测数据;d pm m魏小娟等:Skyline查询处理13912) LESS算法结合了1)中的外部排序和SFS算法中第1步的过滤SP.值得一提的是,在LESS算法中,若EF窗口有剩余空间,就将输入记录的副本放进去;否则,若EF窗口已满并且有比输入记录熵值还小的记录,就把这个记录写入窗口,替换原窗口中的记录.除此之外,保持EF窗口不变.这样做,可以保证更有效地严格筛选.对于不带索引的多种算法的性能评价小结:BNL算法具有广泛的适用性,适用于任何维的数据,不满足渐进性,会出现误诊现象(把非SP在中间计算中误诊为SP的现象).SFS算法需要预处理过程(排序),可有效剪枝,加速计算,输出无阻塞,流水线式输出;D&C算法适用于数据集小的情况,数据集大时,划分过程I/O开销大,不满足渐进性,会出现误诊现象;Bitmap算法,需要预处理过程(创建bitmap),满足渐进性,响应时间短,不适于动态数据库和不同的查询条件;LESS算法,平均时间复杂度为O(kn),最好的时间复杂度为O(kn),最坏的时间复杂度为O(kn2).2.2.2 带索引的算法:Using B-trees/Using an R-tree/Index/NN/BBS/BBS+/SDC/SDC+Using B-trees算法[1]:该算法的基本思想是,对于二维空间上的Skyline查询问题,用B-tree对所有元组建立一个有序的索引,然后扫描整个索引,得到按序排列的元组.这样,仅仅需要比较一个元组和它的前驱元组中最近的是SP的前驱元组,即可判断出该元组是否是SP,从而先过滤出一些SP.基于这些元组在各个维上的索引排序,同时按序扫描两个维上的元组而不用扫描全部索引,就可以得到第1个SP.然后作出以下判断:1) 按索引序在这两个维上的属性值都在已找出的SP之后的元组一定受控于这个SP,因此一定不是SP;2) 其他的元组可能是SP,也可能不是SP.不过,该算法适用范围很有限,仅在数据集小、第1个匹配的SP很快能找到的情况下效率才会高.若在一个执行了join或group-by操作的结果集上进行Skyline查询,该算法就不适用了.Using an R-tree算法[1]:该算法的基本思想是,对于任意空间上的Skyline查询问题,用R-tree对所有元组建立一个有序的索引,然后深度优先遍历R-tree,每当遇到一个新的元组时就进行剪枝.可以采用最近邻居搜索的策略来分支定界提高算法效率.文献[1]还提出了在将来的工作中,可以探究不同的启发式规则来对R-tree先进行选枝,再做进一步的深度优先遍历.该算法仅适用于R-tree记录了Skyline查询语句中的所有维度上的属性信息的情况.当然,R-tree还可包含其他属性信息.像Using B-trees算法一样,仅当数据集小时,该算法具有优越性,一旦存在谓词判定,或针对高维空间下的Skyline查询问题,该算法性能则会变得很差.若在一个执行了join或group-by操作的结果集上进行Skyline查询,则该算法也不再适用.Index算法(a B+-tree-based algorithm)[10]:该索引方案采取的是将高维数据转换为一维数据处理的方式,然后对转换后的数据建立一个B+树索引.设待处理集为(x1,x2,…,x d),x max代表数据点在d-维空间中的最大属性值,这个属性值所在的维度记为d max,相应地,转换后的数据y=x max+d max.该算法的基本思想是,将各个维上的属性值按降序排列,基于各个维上的排序,同时按序扫描各维上的元组很容易得到第1个匹配的SP.第1个SP一定在某个维度上拥有最大的属性值,所以,在找第1个SP时,只要找那些在某维上的属性值为最大的点即可.而在各维上都排在已找出的SP之后的点,一定受控于那个SP,因此可以直接删除这样的点,节省I/O开销.NN(nearest neighbor)算法[12]:该算法的基本思想是利用搜索到的最近邻居来递归地划分数据空间.先对待测数据集建立一个R-tree索引,再找到距离当前枢轴点P最近的邻居节点I,然后根据点I进行空间划分,设现在进行的是d-维空间上的查询,点I的坐标是(n1,n2,…,n d),则空间被划分为[0,n1],[0,∞],[0,∞],…和[0,∞],[0,n2],…,[0,∞]和…和[0,∞],[0,∞],…,[0,n d],在找到一个SP后,这些划分空间放入到一个To-do list中,当To-do list非空时,就用NN算法从To-do list中拿出一个划分空间继续迭代划分.直到一个划分空间为空时,它就不再被划分,每个新找到的SP都会递归地调用d次NN算法.这里存在一个问题,当搜索空间维数大于二维时,会出现重复划分某些空间的问题.文献[12]提出了几种消除重复划分的方法:Laisser-faire,Propagate,Merge,Fine- grained partitioning.这里就不再一一介绍.1392 Journal of Software软件学报 V ol.19, No.6, June 2008BBS(branch-and-bound skyline)算法[13]:该算法也是基于最近邻居搜索策略.算法用R-Tree对待搜索数据集建立索引,每个上层的节点e i对应下层的一个最小边界矩形(MBR),叶子节点则对应一个数据点,规定每个点的最小距离(mindist)等于它在各维上属性值的坐标之和,一个MBR的mindist等于这个矩形的左下角的点在各维上属性值的坐标之和.算法从R-Tree的根节点入手,将其中所有的数据点根据它们的mindist序插入到一个堆中.然后从有着最小的mindist的点入手,对它进行扩展.即从堆中拿出这个点,把它的孩子节点插入到堆中(堆中仍然按mindist有序),以后仍然是选出堆中拥有最小的mindist的节点进行扩展.迭代就这样进行下去.当堆中被拿出的节点是叶子节点时,它就是找到的SP.在扩展节点时,要注意堆中相邻的两个节点是最近邻居关系,但即使是这样,前一个节点的mindist比后一个节点的mindist要小,也不能说明后一个节点被前一个节点控制而对后一个节点剪枝不再扩展,因为若后一个节点是一个非叶子节点,它的孩子节点中就有可能含有SP,只有被已找出的SP控制的孩子节点才能被剪枝不再继续扩展.算法终止的条件是堆为空.BBS+算法[14]:该算法是对BBS算法上的直接改进算法,改进算法与原算法的差别在于:1) BBS+算法中的R-Tree索引是建立在部分有序的属性值的转换值域∗之上的索引,因此,BBS算法中控制关系的比较在BBS+算法中变成了m-控制关系的比较;2) 因为BBS+算法计算的中间查询结果集可能会出现误诊现象,所以,BBS+算法中的UpdateSkylines()函数需要检测和去除误诊结果(即要比较每一个新找到的SP和已找出的中间SP集).SDC(stratification by dominance classification)算法[14]:文献[14]针对属性域部分有序的Skyline查询问题提出了一个基于控制关系分类的分层算法.该算法也是采用基于属性值的转换值域上的一个分层策略.为避免对不必要的控制关系的检查,通过探索域变换的特点,该算法把运行的中间结果集分成了两层:一层一定是Skyline 查询结果的点集;另一层是可能被误诊为Skyline查询结果的点集.具体做法是,对每一个由控制变换f i得到的部分有序的属性A i,由它的部分有序DAG G i=(D i,E i)得到一棵生成树ST i,这样,每一个D i中的点都有它的入度值和出度值.对于每个D i中的点v,若它在G i中的直接入径也在ST i中,则称它是完全被覆盖的;否则,称v部分被覆盖.类似地,每个D i中的点v,若它在G i中的直接出径也在ST i中,则称它是完全覆盖的;否则,称v为部分覆盖.在算法中找到的新的SP,若满足这里的完全覆盖关系,则属于第1层结果集,直接可以作为最终SP结果返回;若满足部分覆盖关系,则属于第2层结果集,还需要进一步比较以去除可能存在的误诊SP.然后,算法根据分类的控制关系,通过3个模块——①缩小控制比较,②优化控制比较,③有效计算,把计算的Skyline中间结果集分为4个子集,避免不必要的中间结果的比较和检查,以得到最终的SP集.SDC+算法[14]:这种算法比SDC算法表现出的先进性在于:在SDC算法中,Skyline的中间结果集被分为两层——一层是完全覆盖关系的中间SP集,另一层是部分覆盖关系的中间SP集,从而保证了前一个集合中出现的Skyline中间查询结果一定是最终的SP,而后一个则是可能被误诊的SP.这样虽然避免了BBS+算法中对每一个新找到的SP都需和已找到的SP集进行比较的开销,但是若找到的SP是第2层的中间SP,则仍需大量的比较和检测.而实验证明,前一层的中间结果点集只占很少的一部分,因此,SDC+算法提出的改进方案是将数据划分为更多层的策略.这种算法中,数据被划分为了两个以上的层,第i层的点都一定不能控制第i−1层的点.这样,找到第i−1层中的SP集后,无须检查第i层中的点的情况,这些查询结果就可以被返回了.算法的先进性表现在保证了只需层内比较,层间不会出现SP的误诊情况.对于待索引的多种算法的性能评价小结:Using B-trees算法适用于二维空间,但不具有普遍的适用性,需要一个预处理过程(为查询建立索引);Using an R-tree算法适用于高于二维的空间,但同样也不具有普遍的适用性,需要预处理过程(为查询建立索引);Index 算法需预处理过程(建索引),响应时间快,满足渐进性,但不适于不同查询条件和不同维的子空间查询;NN算法∗用一个域转换函数来完成属性值转换工作:将部分有序的属性进行转换.为了避免维数诅咒现象(即Skyline查询结果的数量随着维数的增加呈指数增长),文献并没有采用常用的从部分域到全域的变化方法,即将部分有序的属性值转换为布尔值来表示其之间的控制关系,而是构造一个同构变换f:对域D i上每个部分有序的属性值A i,构造一个一对一的域变化f i,它把每个v∈D i变换成一个间隔f i(v)∈N×N,其中,N代表自然数.这个域变化函数f i是这样定义的:对于任意两个不同的v,v′∈D i,若f i(v)包含f i(v′),则v控制v′.。