概念
Skyline query是多维度数据库中一种非常重要的点查询,它最初由 Börzsönyi 等人于2001年提出。一个数据库中的数据对象(也就是空间中的点)可能有成千上万个,但是我们往往对其中一些更感兴趣,Skyline就是定义这里的“更感兴趣”的一种方式。
举例
- 纽约曼哈顿区天际线
在曼哈顿地区有许多高大漂亮的建筑,但是站在海岸线眺望时能够看到的建筑要么是离海岸线近的建筑,要么是比较高大的建筑,这些建筑就构成了曼哈顿的轮廓天际线,英文称之为skyline,这也就是skyline名字的来源。Skyline query正是从这个想法出发提出的一种point query。 - Nassau旅馆
假设去Nassau海滩旅游,大多数游客先肯定是想找离海滩近价格又便宜的旅馆,这个例子就是基于“价格便宜”和“离海滩近”两个目标。但是一般离海滩近的旅馆价格高一些,所以不会有一个确定的结果,只能返回一系列的结果供用户选择。这些旅馆的距离和价格都不比其他旅馆“差”,也就是返回值的点在同一价格上没有在距离上更近的点了。
dominant:A dominant B代表A在任何坐标轴的值都小于等于B,且不能全相等。
a dominant b、e
k dominant e、l
skyline dominant:点集中不回被其他点dominant的点。
- (distance+price)最小的点一定是skyline point。
- 对于其他点v,判断已经是skyline point的能否dominant v,如果不能,任何点都无法dominant v。