天际线运算

天际线运算（）属于最佳化问题的范畴。用来查询数据库中的结果，并保证返回的每一个结果至少在某一方面不劣于其他结果。

这个运算符是SQL的一个扩充，由德国的Börzsönyi等人于2001年提出。 论文中所用的酒店示例是天际线运算的一个经典示例。当用户希望酒店是既便宜又靠近海滩，但是靠近海滩的酒店通常又比较昂贵时，天際線運算符可以保证其查询结果中，对于任意两个酒店，每一个酒店都至少在与海滩的距离或者价格中，不比另一个劣。 

天际线运算返回的结果是数据库中一部分特殊的点，这些点构成了数据库的轮廓。这也是此运算得名的原因。

 拟议的语法 
Börzsönyi et al. 提供以下语句作为天际线运算的示例:SELECT ... FROM ... WHERE ...
GROUP BY ... HAVING ...
SKYLINE OF [DISTINCT] d1 [MIN | MAX | DIFF],
                 ..., dm [MIN | MAX | DIFF]
ORDER BY ...在d1,...dm 表示天际线运算所考量的维度。MIN MAX 与 DIFF 用来指定维度被考虑的方向。

 实现 
天际线运算可以直接使用SQL凭借目前SQL的结构实现，然而实践表明其实现效率低下。 目前提出的其他算法借助以下想法实现天际线运算：分而治之（divide and conquer）、索引（indices）、MapReduce 或 图形处理单元上的通用计算。 由于其可以在实时决策的问题和数据流的分析中广泛运用，天际线查询流（即连续的天际线查询）问题正在研究之中，其研究属于运用多核处理器实现并行Query处理（parallel query processing）的领域

 参见 

 帕累托最优
 多目标的优化
 凸包
 最邻近搜索
 选择算法

 参考文献 

Category:SQL
Category:数据查询语言
Category:数据管理
Category:数据库理论