第 36 卷 第 7 期 自 动 化 学 报 Vol. 36, No. 7
2010 年 7 月 ACTA AUTOMATICA SINICA July, 2010
一种并行处理 Skyline 查询的有效方法
黄震华
1, 2
向 阳
1
薛永生
3
赵 杠
4
摘 要 Skyline 查询是近年来数据库领域的一个研究重点和热点, 这主要是因为 Skyline 查询在许多领域有着广泛的应
用. 现有的工作大都集中于单处理机环境, 然而, 由于 Skyline 查询是 CPU 敏感的, 因此, 在实际应用中, 现有的方法具有很
大的局限性. 基于此, 提出一种有效降低处理 Skyline 查询时间开销的并行算法 PAPSQ (Parallel algorithm for processing
skyline queries). 算法有机结合多维数据对象的自身特性和通用多处理机系统的实施优点, 以 Skyline 查询搜索偏序格为底层
结构, 利用多维数据对象的同胚评估值和偏序格加权技术来有效提高并行处理 Skyline 查询的效率. 实验评估表明, PAPSQ
算法具有有效性和实用性.
关键词 Skyline 查询, 并行处理, 搜索偏序格, 查询优化, 性能评估
DOI 10.3724/SP.J.1004.2010.00968
An Efficient Method for Parallel Processing of Skyline Queries
HUANG Zhen-Hua
1,2
XIANG Yang
1
XUE Yong-Sheng
3
ZHAO Gang
4
Abstract Skyline query processing has recently received a lot of attention in database community. Most related works
fo cus on the single processor environment. However, since skyline queries are CPU-sensitive and time costly, the existing
metho ds have prodigious limitations in real applications. Motivated by the ab ove fact, in this paper, we propose an efficient
metho d for parallel processing of skyline queries, called parallel algorithm for processing skyline queries (PAPSQ). The
PAPSQ algorithm seamlessly combines the speciality of multidimensional data objects and the implementary advantage
of universal multiprocessor systems. Specially, the PAPSQ algorithm takes the partial order lattice of skyline queries
as substrate structure, and utilizes the homeomorphism evaluation of multidimensional data objects and the weighted
technology to markedly improve the performance of parallel processing of skyline queries. Furthermore, detailed theoretical
analyses and extensive experiments are given to demonstrate that the algorithm is both efficient and effective.
Key words Skyline queries, parallel processing, search lattice, query optimization, performance evaluation
Skyline 查询处理技术是近年来数据库领域的
一个研究重点和热点. 这主要是因为 Skyline 查询
在许多领域有着广泛的应用, 如: 多标准决策支持
系统
[1]
, 城市导航系统
[2]
, 数据挖掘和可视化
[3]
以
及用户偏好查询
[4]
等. 给定有限规模的对象集合
收稿日期 2008-09-22 录用日期 2010-03-17
Manuscript received September 22 2008; accepted March 17,
2009
国家高技术研究发展计划 (863 计划) (2008AA04Z106), 国家自然科
学基金 (60903032), 教育部博士点基金 (20090072120056), 同济大学
青年优秀人才基金 (0800219093) 资助
Supported by National High Technology Research and De-
velopment Program of China (863 Program) (2008AA04Z106),
National Natural Science Foundation of China (60903032), the
Ph. D. Program Foundation of Ministry of Education of China
(20090072120056), and the Outstanding Young Foundation of
Tongji University (0800219093)
1. 同济大学电子与信息工程学院 上海 200092 2. 同济大学嵌入式
系统与服务计算教育部重点实验室 上海 200092 3. 厦门大学信息科
学与技术学院 厦门 361005 4. 复旦大学信息科学与工程学院 上海
200433
1. School of Electronics and Information, Tongji University,
Shanghai 200092 2. Key Laboratory of Embedded System
and Service Computing, Ministry of Education, Tongji Univer-
sity, Shanghai, 200092 3. School of Information Science and
Technology, Xiamen University, Xiamen 361005 4. School of
Information Science and Engineering, Fudan University, Shang-
hai 200433
SO = O
1
, · · · , O
n
, 其中 O
i
(i ∈ [0, n]) 具有 δ 维属
性, 每维属性衡量它的一个子特征 (比如距离、价格
等); Skyline 查询就是在 SO 中找出满足如下条件
的每个对象 p: 不存在 SO 中的某一对象 r, 使得 r
在所有 δ 维上的取值均不比 p 差, 并且至少在一个
维上的取值比 p 优. 显然, 不在 Skyline 查询结果中
的那些对象不影响用户的最终选择.
Skyline 查询最早由 Borzsonyi 等
[1]
引进到数
据库领域中, 并提出两个可行的查询算法: 块嵌套
循环 (Block nested loop, BNL) 算法以及分区回归
(Divide and conquer, DC) 算法. 随后, Chomicki
等
[2, 5]
在 BNL 算法的基础上提出一种先进行对象
排序, 再进行比较的查询方法, 即排序过滤 (Sort
filter skyline, SFS) 算法. 基于索引的方法最早由
Kossmann 等
[3]
提出. 在文中, 作者给出一种基于
R-树索引的计算方法, 即最邻近 (Nearest neighbor,
NN) 算法. 而 Papadias 等
[4, 6]
指出 NN 算法的缺
陷, 并提出一种基于排序 R-树节点的方法: 分支约
束 (Branch and bound skyline, BBS) 算法. BBS
算法克服了 NN 算法冗余比较节点的不足, 且比 NN
算法具有更强的剪枝能力. 实验评估表明, BBS 算
法具有最好的查询效率. Sharifzadeh 等
[7]
首次在空