## 2 Related Work
### Skyline Queries  
A skyline query is a multi-condition query algorithm [12; 13; 52; 53; 54; 55]. If users give the algorithm multiple conditions and a database, they will be able to identify all of the data points that meet at least one of their conditions from the database. Skyline queries are superior to top-\(k\) algorithms, which can produce solutions that meet none of the users' conditions.  
Past studies have mainly adopted two approaches to realize skyline queries: block nested loop algorithms [12] and branch-and-bound skyline algorithms [13]. The former [12] are the most intuitive method, starting with a set of candidate skyline results and then performing dominance checks for each data point \(p\). If \(p\) is found to be dominated by no other points, then \(p\) is likely to be a skyline point. Thus, \(p\) is placed in the skyline result set. If \(p\) is dominated by another point, then it is not a skyline point and must be removed. The algorithm does not terminate until dominance checks between all point pairs in the database have been performed and every point has been checked. The points within the skyline result set in the end are then the results of the skyline query. The greatest shortcoming of this approach is that dominance checks must be performed for every pair of points in the database, so when the amount of data increases, computation time increases exponentially. However, the algorithm is effective, simple, and suitable for databases with a limited number of data points or for a large number of appropriately grouped data points.  
Branch-and-bound skyline algorithms are based on data trees [13]. Before executing the query, this algorithm first constructs a tree structure to store the data points. Next, it uses an approximate feature to represent the data points in the same node in the tree. If this approximate feature is dominated by another point, then it is impossible for any of the data points in this node to become the skyline query results, and they are all deleted. With this method, the algorithm can swiftly remove large quantities of points that cannot be skyline points, making it much more efficient than block nested loop algorithms. However, an index tree structure of the dataset can only be established when all of the data point values have been calculated. Thus, it is not suitable for cases where the data point values require additional calculation. The selection of an appropriate skyline method depends on the characteristics of the target application.  
New skyline calculation frameworks are constantly being proposed, such as the multiple skyline layers algorithm, group-based skyline query, and representative G-skyline query. The multiple skyline layers algorithm can more swiftly divide the original dataset into the first \(i\) skyline layers than past methods. The group-based skyline framework divides multiple skyline layers into primary groups and subgroups. The representative G-skyline query remedies the shortcomings of too many groups in the group-based skyline framework [56]. Recently, [PERSON] et al. [57] proposed a skyline query methodology based on user preferences. This approach reduces redundant dimensions by (1) eliminating the dimensions that the user is not interested in and (2) prioritizing dimensions based on the degree of user interest. This ultimately reduces the size of the candidate set and makes the search results closer to user needs. Finally, the dynamic skyline query was proposed for online medical diagnostic systems [58]. This approach ensures the efficacy and privacy of the skyline method while searching through encrypted data and increases the applicability of the skyline query approach.