SlideShare a Scribd company logo
1 of 109
Download to read offline
The Skyline Operator
Borzsony, S., The Skyline Operator,
In proc, IEEE Conf. on Data Engineering,
page 421-430, Heidelberg, Germany, Apr. 2001.
Lee, Woonghee
M.S. student at the Big Data Mining Lab.
Department of computer science and engineering at the Hanyang University
July 24th - August 07th, 2015
Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001.
Contents
● Introduction: What is the Skyline?
● SQL’s Extensions
● Implementation
β€’ Two dimensional dddddddd
β€’ Block-nested-loops algorithm
β€’ Divide-and-conquer algorithm
 Experiments and results
Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001.
Introduction
 Holiday to Nassau (Bahamas)
 To look for a hotel cheap and
close to the beach
 Two goals(distance, price) are
complementary as the hotels
near the beach tend to be
more expensive
Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001.
Introduction: Definition of the Skyline
 Interesting hotels are not
worse than any other hotels.
 The set of interesting hotels
are the Skyline.
Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001.
Introduction: Definition of the Skyline
 Interesting hotels are not
worse than any other hotels.
 The set of interesting hotels
are the Skyline.
A
This set is dominated
by A
ex) Hotel A <$80, 0.7 miles> dominates
Hotel B <$120, 1.0 miles>
B
Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001.
Introduction: Definition of the Skyline
β€’ Definition of the Skyline
𝐿𝑒𝑑 π‘£π‘’π‘π‘‘π‘œπ‘Ÿπ‘  β„Žπ‘–, β„Žπ‘— ∈ 𝑅 𝑛 𝑏𝑒 β„Žπ‘– =< π‘₯𝑖1, … , π‘₯𝑖𝑛 >, β„Žπ‘— =<
π‘₯𝑗1, … , π‘₯𝑗𝑛 >.
𝐼𝑓 π‘Žπ‘™π‘™ π‘₯π‘–π‘˜ π‘Žπ‘Ÿπ‘’ π‘π‘’π‘‘π‘‘π‘’π‘Ÿ π‘‘β„Žπ‘Žπ‘› π‘Žπ‘›π‘‘ π‘’π‘žπ‘’π‘Žπ‘™ π‘‘π‘œ π‘₯π‘—π‘˜,
π‘Žπ‘›π‘‘ π‘Žπ‘‘ π‘™π‘’π‘Žπ‘ π‘‘ π‘œπ‘›π‘’ π‘₯𝑖𝑙 𝑖𝑠 π‘π‘’π‘‘π‘‘π‘’π‘Ÿ π‘‘β„Žπ‘Žπ‘› π‘₯𝑗𝑙,
β„Žπ‘– ≻ β„Žπ‘—
Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001.
Introduction: Applied the Skyline
 To propose interesting hotels
 To find good salesperson which have low salary
 To derive database visualization
Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001.
SQL’s Extensions
 To propose to extend SQL’s SELECT statement by an
optional SKYLINE OF clause
Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001.
SQL’s Extensions
 Ex) The price of a hotel should be minimized
The rating should be maximized
dimension of the Skyline
To specify whether the value in each dimension should be
minimized, maximized or be different
Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001.
SQL’s Extensions: SKYLINE OF clause
 Tuple 𝑝 = (𝑝1, … , 𝑝 π‘˜, 𝑝 π‘˜+1, … , 𝑝𝑙, 𝑝𝑙+1, … , 𝑝 π‘š, 𝑝 π‘š+1, … , 𝑝 𝑛)dominates
tuple q = (π‘ž1, … , π‘ž π‘˜, π‘ž π‘˜+1, … , π‘žπ‘™, π‘žπ‘™+1, … , π‘ž π‘š, π‘ž π‘š+1, … , π‘ž 𝑛)for a Skyline
query
SKYLINE OF 𝑑1MIN, …, 𝑑 π‘˜MIN, 𝑑 π‘˜+1MAX, …, 𝑑𝑙MAX, 𝑑𝑙+1DIFF, …, 𝑑 π‘šDIFF
if the following three conditions hold:
𝑝𝑖 ≀ π‘žπ‘– π‘“π‘œπ‘Ÿ π‘Žπ‘™π‘™ 𝑖 = 1, … , π‘˜
𝑝𝑖 β‰₯ π‘žπ‘– π‘“π‘œπ‘Ÿ π‘Žπ‘™π‘™ 𝑖 = π‘˜ + 1 , … , 𝑙
𝑝𝑖 = π‘žπ‘– π‘“π‘œπ‘Ÿ π‘Žπ‘™π‘™ 𝑖 = (𝑙 + 1), … , π‘š
Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001.
SQL’s Extensions: SKYLINE OF clause
 If two tuples have the same values for all attributes and
are not dominated, both are part of the result (if no
distinct).
 A one dimensional Skyline is equivalent a min, max, or
distinct SQL query.
 Dominance is a transitive relation; if 𝑝 dominates π‘ž and
π‘ž dominates π‘Ÿ, then 𝑝 dominates π‘Ÿ.
Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001.
SQL’s Extensions: Example Skyline Queries
Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001.
Implementation of the Skyline Operation
 Nested SQL query
 Two dimensional sorting
 Three variants based on a block-nested-loops algorithm
 Three variants based on divide-and-conquer
Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001.
Implementation: Nested SQL query
Same with the SKYLINE OF clause but poor performance
Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001.
Implementation: Nested SQL query
The reasons why this approach shows very poor performance:
 This query cannot be unnested.
 If this query involves a π‘—π‘œπ‘–π‘› or π‘”π‘Ÿπ‘œπ‘’π‘ 𝑏𝑦, the π‘—π‘œπ‘–π‘› or π‘”π‘Ÿπ‘œπ‘’π‘ 𝑏𝑦
might execute as the outer query and as the subquery.
 Combining with other operations (e.g., π‘—π‘œπ‘–π‘› or π‘‡π‘œπ‘ 𝑁) might
cause additional cost to compute the Skyline.
Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001.
Implementation: Two Dimensional
 A one-dimensional Skyline is equivalent to computing the π‘šπ‘–π‘›,
π‘šπ‘Žπ‘₯, or 𝑑𝑖𝑠𝑑𝑖𝑛𝑐𝑑.
 Computing two-dimensional Skyline is also easy by sorting the
data (It just needs to compare with the last previous tuple).
Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001.
 A one-dimensional Skyline is equivalent to computing the π‘šπ‘–π‘›,
π‘šπ‘Žπ‘₯, or 𝑑𝑖𝑠𝑑𝑖𝑛𝑐𝑑.
 Computing two-dimensional Skyline is also easy by sorting the
data (It just needs to compare with the last previous tuple).
Implementation: Two Dimensional
Skyline
Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001.
 Definition the Skyline at 2-dimensional
𝐿𝑒𝑑 𝐴, 𝐡 𝑏𝑒 π‘£π‘’π‘π‘‘π‘œπ‘Ÿπ‘  𝑖𝑛 𝑅2,
π‘Žπ‘›π‘‘ 𝐴𝑖 =< π‘₯𝑖, 𝑦𝑖 >, 𝐡𝑗 =< π‘₯𝑗, 𝑦𝑗 > π‘“π‘œπ‘Ÿ π‘Žπ‘™π‘™ 𝑖, 𝑗.
𝐴 ∝ 𝐡 π‘€β„Žπ‘’π‘› π‘₯𝑖 < π‘₯𝑗 π‘Žπ‘›π‘‘ 𝑦𝑖 ≀ 𝑦𝑗
π‘œπ‘Ÿ π‘₯𝑖 ≀ π‘₯𝑗 π‘Žπ‘›π‘‘ 𝑦𝑖 < 𝑦𝑗
π‘œπ‘Ÿ π‘₯𝑖 < π‘₯𝑗 π‘Žπ‘›π‘‘ 𝑦𝑖 < 𝑦𝑗.
Implementation: Two Dimensional
Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001.
i
j
k
dominate
no dominate
 To prove 2-dimensional Skyline Algorithm
π‘π‘Ÿπ‘’π‘šπ‘–π‘ π‘’ 1: 𝑖 < π‘˜, β„Žπ‘– ∝ β„Ž π‘˜.
π‘π‘Ÿπ‘’π‘šπ‘–π‘ π‘’ 2: β„Žπ‘– ≻ β„Žπ‘—.
π‘π‘Ÿπ‘’π‘šπ‘–π‘ π‘’ 3: π‘Ž < 𝑏, π‘“π‘œπ‘Ÿ π‘Žπ‘™π‘™ β„Ž π‘Ž, β„Ž 𝑏, π‘₯ π‘Ž < π‘₯ 𝑏.
π‘π‘Ÿπ‘œπ‘π‘œπ‘ π‘–π‘‘π‘–π‘œπ‘›:
βˆ€
π‘˜ < 𝑗, β„Ž π‘˜ ≻ β„Žπ‘—.
Implementation: Two Dimensional
Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001.
 To prove 2-dimensional Skyline Algorithm
𝐿𝑒𝑑 π‘’π‘Žπ‘β„Ž π‘£π‘’π‘π‘‘π‘œπ‘Ÿπ‘  π‘π‘œπ‘›π‘ π‘–π‘ π‘‘ π‘œπ‘“ π‘’π‘™π‘’π‘šπ‘’π‘›π‘‘π‘  < π‘₯, 𝑦 >.
π‘†π‘–π‘šπ‘–π‘™π‘Žπ‘Ÿπ‘™π‘¦ π‘ƒπ‘Ÿπ‘’π‘šπ‘–π‘ π‘’ 2, π‘“π‘œπ‘Ÿ π‘Žπ‘™π‘™ β„Žπ‘–, β„Žπ‘— β†’ 𝑦𝑖 > 𝑦𝑗
∡ 2 βˆ’ 𝐷 π‘†π‘˜π‘¦π‘™π‘–π‘›π‘’ π‘‘π‘’π‘“π‘–π‘›π‘’π‘‘π‘–π‘œπ‘› π‘Žπ‘›π‘‘ π‘ƒπ‘Ÿπ‘’π‘šπ‘–π‘ π‘’ 3 .
𝐿𝑒𝑑 𝑒𝑠 π‘π‘Žπ‘™π‘™ 𝑖𝑑 𝑖𝑠 π‘π‘Ÿπ‘’π‘šπ‘–π‘ π‘’ 4.
Implementation: Two Dimensional
Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001.
 To prove 2-dimensional Skyline Algorithm
𝐿𝑒𝑑 π‘Žπ‘ π‘ π‘’π‘šπ‘’ β„Ž π‘˜ ∝ β„Žπ‘—, 𝑖. 𝑒. , 𝑦 π‘˜ ≀ 𝑦𝑗. π΅π‘’π‘π‘Žπ‘’π‘ π‘’ π‘œπ‘“ π‘₯ π‘˜ < π‘₯𝑗(∡
Implementation: Two Dimensional
Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001.
Implementation: Two Dimensional
 However, more than two-dimensions does not work to get the
Skyline by sorting the data.
β„Ž1 is not β„Ž3’s direct predecessor.
rating (star)
Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001.
Implementation: BNL Algorithms
Basic Block-nested-loops Algorithm Idea
β€’ reads repeatedly the set of tuples like the naive nested-
loops algorithm.
β€’ keeps a π‘€π‘–π‘›π‘‘π‘œπ‘€ of incomparable tuples in main memory.
1. BNL-basic
2. BNL-sol
3. BNL-solrep
Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001.
Implementation: BNL Algorithms
Basic Block-nested-loops Algorithm Steps:
1. A tuple 𝑝 is read from the input.
2. 𝑝 is compared to all tuples of the π‘€π‘–π‘›π‘‘π‘œπ‘€.
3. Based on step 2, 𝑝 is either eliminated, placed into the
π‘€π‘–π‘›π‘‘π‘œπ‘€ or into a π‘‘π‘’π‘šπ‘π‘œπ‘Ÿπ‘Žπ‘Ÿπ‘¦ 𝑓𝑖𝑙𝑒.
1. BNL-basic
2. BNL-sol
3. BNL-solrep
Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001.
Implementation: BNL Algorithms
Basic Block-nested-loops Algorithm
β€’ After an iteration, three cases can occur:
1. 𝑝 is dominated by a tuple within the π‘€π‘–π‘›π‘‘π‘œπ‘€.
2. 𝑝 dominates one or more tuples in the π‘€π‘–π‘›π‘‘π‘œπ‘€.
3. 𝑝 is incomparable with all tuples in the π‘€π‘–π‘›π‘‘π‘œπ‘€.
Complexity: The best case is O(𝑛). The worst case is 𝑂(𝑛2
).
1. BNL-basic
2. BNL-sol
3. BNL-solrep
Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001.
Implementation: BNL Algorithms
Demonstration BNL-basic1. BNL-basic
2. BNL-sol
3. BNL-solrep
<h1, $50, 0.9 miles>
<h2, $50, 1.0 miles>
<h3, $55, 1.0 miles>
<h4, $52, 0.7 miles>
<h5, $49, 1.0 miles>
<h6, $51, 0.7 miles>
Data set Window
Temporary file
…
Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001.
Implementation: BNL Algorithms
Demonstration BNL-basic1. BNL-basic
2. BNL-sol
3. BNL-solrep
<h1, $50, 0.9 miles> t = 1
<h1, $50, 0.9 miles>
<h2, $50, 1.0 miles>
<h3, $55, 1.0 miles>
<h4, $52, 0.7 miles>
<h5, $49, 1.0 miles>
<h6, $51, 0.7 miles>
Data set Window
Temporary file
time stamp t
to do not compare two
tuples are never
compared twice
…
Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001.
Implementation: BNL Algorithms
Demonstration BNL-basic1. BNL-basic
2. BNL-sol
3. BNL-solrep
<h1, $50, 0.9 miles> t = 1
<h1, $50, 0.9 miles>
<h2, $50, 1.0 miles>
<h3, $55, 1.0 miles>
<h4, $52, 0.7 miles>
<h5, $49, 1.0 miles>
<h6, $51, 0.7 miles>
Data set Window
Temporary file
compare
…
Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001.
Implementation: BNL Algorithms
Demonstration BNL-basic1. BNL-basic
2. BNL-sol
3. BNL-solrep
<h1, $50, 0.9 miles> t = 1
<h1, $50, 0.9 miles>
<h2, $50, 1.0 miles>
<h3, $55, 1.0 miles>
<h4, $52, 0.7 miles>
<h5, $49, 1.0 miles>
<h6, $51, 0.7 miles>
Data set Window
Temporary file
dominated
…
Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001.
Implementation: BNL Algorithms
Demonstration BNL-basic1. BNL-basic
2. BNL-sol
3. BNL-solrep
<h1, $50, 0.9 miles> t = 1
<h1, $50, 0.9 miles>
<h2, $50, 1.0 miles>
<h3, $55, 1.0 miles>
<h4, $52, 0.7 miles>
<h5, $49, 1.0 miles>
<h6, $51, 0.7 miles>
Data set Window
Temporary file
dominated
…
Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001.
Implementation: BNL Algorithms
Demonstration BNL-basic1. BNL-basic
2. BNL-sol
3. BNL-solrep
<h1, $50, 0.9 miles> t = 1
<h1, $50, 0.9 miles>
<h2, $50, 1.0 miles>
<h3, $55, 1.0 miles>
<h4, $52, 0.7 miles>
<h5, $49, 1.0 miles>
<h6, $51, 0.7 miles>
Data set Window
Temporary file
incomparable
…
Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001.
Implementation: BNL Algorithms
Demonstration BNL-basic1. BNL-basic
2. BNL-sol
3. BNL-solrep
<h1, $50, 0.9 miles> t = 1
<h4, $52, 0.7 miles> t = 2<h1, $50, 0.9 miles>
<h2, $50, 1.0 miles>
<h3, $55, 1.0 miles>
<h4, $52, 0.7 miles>
<h5, $49, 1.0 miles>
<h6, $51, 0.7 miles>
Data set Window
Temporary file
incomparable
…
Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001.
Implementation: BNL Algorithms
Demonstration BNL-basic1. BNL-basic
2. BNL-sol
3. BNL-solrep
<h1, $50, 0.9 miles> t = 1
<h4, $52, 0.7 miles> t = 2<h1, $50, 0.9 miles>
<h2, $50, 1.0 miles>
<h3, $55, 1.0 miles>
<h4, $52, 0.7 miles>
<h5, $49, 1.0 miles>
<h6, $51, 0.7 miles>
Data set Window
Temporary file
incomparable
…
Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001.
Implementation: BNL Algorithms
Demonstration BNL-basic1. BNL-basic
2. BNL-sol
3. BNL-solrep
<h1, $50, 0.9 miles> t = 1
<h4, $52, 0.7 miles> t = 2<h1, $50, 0.9 miles>
<h2, $50, 1.0 miles>
<h3, $55, 1.0 miles>
<h4, $52, 0.7 miles>
<h5, $49, 1.0 miles>
<h6, $51, 0.7 miles> <h5, $49, 1.0 miles> t = 3
Data set Window
Temporary file
…
Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001.
Implementation: BNL Algorithms
Demonstration BNL-basic1. BNL-basic
2. BNL-sol
3. BNL-solrep
<h1, $50, 0.9 miles> t = 1
<h4, $52, 0.7 miles> t = 2<h1, $50, 0.9 miles>
<h2, $50, 1.0 miles>
<h3, $55, 1.0 miles>
<h4, $52, 0.7 miles>
<h5, $49, 1.0 miles>
<h6, $51, 0.7 miles> <h5, $49, 1.0 miles> t = 3
Data set Window
Temporary file
compare
dominated
…
Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001.
Implementation: BNL Algorithms
Demonstration BNL-basic1. BNL-basic
2. BNL-sol
3. BNL-solrep
<h1, $50, 0.9 miles> t = 1
<h4, $52, 0.7 miles> t = 2<h1, $50, 0.9 miles>
<h2, $50, 1.0 miles>
<h3, $55, 1.0 miles>
<h4, $52, 0.7 miles>
<h5, $49, 1.0 miles>
<h6, $51, 0.7 miles> <h5, $49, 1.0 miles> t = 3
Data set Window
Temporary file
removed
…
Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001.
Implementation: BNL Algorithms
Demonstration BNL-basic1. BNL-basic
2. BNL-sol
3. BNL-solrep
<h1, $50, 0.9 miles> t = 1
<h6, $51, 0.7 miles> t = 4<h1, $50, 0.9 miles>
<h2, $50, 1.0 miles>
<h3, $55, 1.0 miles>
<h4, $52, 0.7 miles>
<h5, $49, 1.0 miles>
<h6, $51, 0.7 miles> <h5, $49, 1.0 miles> t = 3
Data set Window
Temporary file
replace
…
Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001.
Implementation: BNL Algorithms
Demonstration BNL-basic1. BNL-basic
2. BNL-sol
3. BNL-solrep
<h1, $50, 0.9 miles> t = 1
<h6, $51, 0.7 miles> t = 4<h1, $50, 0.9 miles>
<h2, $50, 1.0 miles>
<h3, $55, 1.0 miles>
<h4, $52, 0.7 miles>
<h5, $49, 1.0 miles>
<h6, $51, 0.7 miles> <h5, $49, 1.0 miles> t = 3
…
Data set Window
Temporary file
output
window at
the end of
the iteration
…
iterate until EOF
Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001.
Implementation: BNL Algorithms
Demonstration BNL-basic1. BNL-basic
2. BNL-sol
3. BNL-solrep
<h1, $50, 0.9 miles>
<h2, $50, 1.0 miles>
<h3, $55, 1.0 miles>
<h4, $52, 0.7 miles>
<h5, $49, 1.0 miles>
<h6, $51, 0.7 miles> <h5, $49, 1.0 miles> t = 3
…
Data set Window
Temporary file
next
iteration
…
Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001.
Implementation: BNL Algorithms
Basic Block-nested-loops Algorithm
β€’ It works well if the Skyline fits into the window.
β€’ The best case complexity is 𝑂(𝑛).
β€’ The worst case complexity is 𝑂(𝑛2).
β€’ It is better I/O behavior than the naive nested-loops
algorithm(Haas, Carey, Livny and Shukla 1997).
1. BNL-basic
2. BNL-sol
3. BNL-solrep
Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001.
Implementation: BNL Algorithms
Maintaining the Window as a Self-organizing List
β€’ To speed up comparison a tuple in the window
β€’ To move up a tuple in the window which dominates
another tuple in input
1. BNL-basic
2. BNL-sol
3. BNL-solrep
…
<h2, $50, 0.8 miles> t = 2
<h5, $49, 1.0 miles> t = 3
Window
…
<h7, $49, 1.2 miles>
…
Data set
dominates
move up to the first line of the window
Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001.
Implementation: BNL Algorithms
Maintaining the Window as a Self-organizing List
β€’ Attractive if the data is skewed
(i.e. better performance if there are a couple of π‘˜π‘–π‘™π‘™π‘’π‘Ÿ tuples
which dominate many other tuples, and better performance
if there are many π‘›π‘’π‘’π‘‘π‘Ÿπ‘Žπ‘™ tuples in the Skyline.)
1. BNL-basic
2. BNL-sol
3. BNL-solrep
killer tuple
dominated by
killer tuple
neutral tuples
neutral tuples
Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001.
Implementation: BNL Algorithms
Replacing Tuples in the Window1. BNL-basic
2. BNL-sol
3. BNL-solrep
<h1, $50, 1.0 miles> t = 1
<h2, $59, 0.9 miles> t = 2
Window
…
<h3, $60, 0.1 miles>
…
Data set
incomparable no memory
Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001.
Implementation: BNL Algorithms
Replacing Tuples in the Window1. BNL-basic
2. BNL-sol
3. BNL-solrep
<h1, $50, 1.0 miles> t = 1
<h2, $59, 0.9 miles> t = 2
Window
…
<h3, $60, 0.1 miles>
…
Data set
replacing
0
0.2
0.4
0.6
0.8
1
1.2
48 50 52 54 56 58 60 62
h1 h2
h3
Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001.
Implementation: BNL Algorithms
Replacing Tuples in the Window1. BNL-basic
2. BNL-sol
3. BNL-solrep
<h1, $50, 1.0 miles> t = 1
<h3, $60, 0.1 miles> t = 3
Window
…
<h3, $60, 0.1 miles>
…
Data set
replacing
0
0.2
0.4
0.6
0.8
1
1.2
48 50 52 54 56 58 60 62
h1 h2
h3
Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001.
Implementation: BNL Algorithms
Replacing Tuples in the Window
β€’ Replacing when new tuple can dominate more tuples
β€’ Many replacement policies; π‘π‘Ÿπ‘–π‘π‘’ βˆ— π‘‘π‘–π‘ π‘‘π‘Žπ‘›π‘π‘’
β€’ Additional CPU cost needed
β€’ Two tuples in the temporary file might be compared twice.
1. BNL-basic
2. BNL-sol
3. BNL-solrep
<h1, $50, 1.0 miles> t = 1
<h3, $60, 0.1 miles> t = 3
Window
…
<h3, $60, 0.1 miles>
…
Data set
Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001.
Implementation: D&C Algorithm
The worst case and best case complexity is
𝑂 𝑛 βˆ— log 𝑛 π‘‘βˆ’2 + 𝑂(𝑛 βˆ— log 𝑛)
where 𝑛 is the number of input tuples and 𝑑 is the number of
dimensions (Kung, Luccio and Preparata 1975).
(unlikely for the BNL, the best case is O 𝑛 and the worst
case is O(𝑛2
))
1. D&C-basic
2. D&C-mpt
3. D&C-mptesk
Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001.
Implementation: D&C Algorithm
Basic Divide and Conquer Algorithm Steps:
1. Compute the approximate median π‘š 𝑝 of the input for
some dimension 𝑑 𝑝. Divide the input two partitions by π‘š 𝑝.
2. Compute the Skyline 𝑆1 of 𝑃1 and 𝑆2 of 𝑃2. 𝑃1 and 𝑃2 are
recursively partitioned until a partition has one or few
tuples. Then computing the Skyline is trivial.
3. Compute the overall Skyline as merging 𝑆1 and 𝑆2.
1. D&C-basic
2. D&C-mpt
3. D&C-mptesk
Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001.
Implementation: D&C Algorithm
Basic Divide and Conquer Algorithm Steps:
At the step 3, partition both 𝑆1 and 𝑆2 by approximate
median π‘š 𝑔 for dimension 𝑑 𝑔(β‰  𝑑 𝑝). Then we obtain
partition 𝑆1,1, 𝑆1,2, 𝑆2,1 and 𝑆2,2
1. D&C-basic
2. D&C-mpt
3. D&C-mptesk
Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001.
Implementation: D&C Algorithm
Pseudo-code1. D&C-basic
2. D&C-mpt
3. D&C-mptesk
𝑴: input of the Skyline operation; a set of 𝑑-
dimensional points
𝑹: output of the Skyline operation; a set of 𝑑-
dimensional points
𝒑 β‰Ί 𝒒: point 𝒑 is dominated by point 𝒒
function SkylineBasic M, Dimension
begin
if 𝑀 = 1 then return 𝑀
π‘ƒπ‘–π‘£π‘œπ‘‘ ≔ Median π‘š π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› π‘š ∈ 𝑀
𝑃1, 𝑃2 ≔ Partition 𝑀, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›, π‘ƒπ‘–π‘£π‘œπ‘‘
𝑆1 ≔ SkylineBasic(𝑃1, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›)
𝑆2 ≔ SkylineBasic 𝑃2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›
return 𝑆1 ⋃ MergeBasic(𝑆1, 𝑆2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›)
end
function MergeBasic(𝑆1, 𝑆2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›)
begin
if 𝑆1 = {𝑝} then 𝑅 ≔ π‘ž ∈ 𝑆2 𝑝 ≻ π‘ž
else if 𝑆2 = π‘ž then begin
for each 𝑝 ∈ 𝑆1 do if 𝑝 β‰Ί π‘ž then 𝑅 ≔ πœ™
end else if π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› = 2 then begin
𝑀𝑖𝑛 ≔ Minimum{𝑝1|𝑝 ∈ 𝑆1}
𝑅 ≔ π‘ž ∈ 𝑆2 π‘ž1 < 𝑀𝑖𝑛
end else begin
π‘ƒπ‘–π‘£π‘œπ‘‘ ≔ Median 𝑝 π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›βˆ’1 𝑝 ∈ 𝑆1
𝑆1,1, 𝑆1,2 ≔ Partition 𝑆1, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› βˆ’ 1, π‘ƒπ‘–π‘£π‘œπ‘‘
𝑆2,1, 𝑆2,2 ≔ Partition 𝑆2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› βˆ’ 1, π‘ƒπ‘–π‘£π‘œπ‘‘
𝑅1 ≔ MergeBasic 𝑆1,1, 𝑆2,1, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›
𝑅2 ≔ MergeBasic 𝑆1,2, 𝑆2,2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›
𝑅3 ≔ MergeBasic 𝑆1,1, 𝑅2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› βˆ’ 1
𝑅 ≔ 𝑅1 βˆͺ 𝑅3
end
return R
end
See also Preparata et al. (1993), Computational Geometry, pp. 161-164,
Springer.
Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001.
Implementation: D&C Algorithm
At the merge basic function:1. D&C-basic
2. D&C-mpt
3. D&C-mptesk
𝑆1,1
𝑆1,2
𝑆2,1
𝑆2,2
π‘šπ‘’π‘‘π‘–π‘Žπ‘› 𝑝
π‘šπ‘’π‘‘π‘–π‘Žπ‘› 𝑔
Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001.
Implementation: D&C Algorithm
At the merge basic function:1. D&C-basic
2. D&C-mpt
3. D&C-mptesk
𝑆1,1
𝑆1,2
𝑆2,1
𝑆2,2
π‘šπ‘’π‘‘π‘–π‘Žπ‘› 𝑝
π‘šπ‘’π‘‘π‘–π‘Žπ‘› 𝑔
Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001.
Implementation: D&C Algorithm
At the merge basic function:1. D&C-basic
2. D&C-mpt
3. D&C-mptesk
𝑆1,1
𝑆1,2
𝑆2,1
𝑆2,2
π‘šπ‘’π‘‘π‘–π‘Žπ‘› 𝑝
π‘šπ‘’π‘‘π‘–π‘Žπ‘› 𝑔
Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001.
Implementation: D&C Algorithm
At the merge basic function:1. D&C-basic
2. D&C-mpt
3. D&C-mptesk
𝑆1,1
𝑆1,2
𝑆2,1
𝑆2,2
π‘šπ‘’π‘‘π‘–π‘Žπ‘› 𝑝
π‘šπ‘’π‘‘π‘–π‘Žπ‘› 𝑔
Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001.
Implementation: D&C Algorithm
Pseudo-code1. D&C-basic
2. D&C-mpt
3. D&C-mptesk
𝑴: input of the Skyline operation; a set of 𝑑-dimensional points
𝑹: output of the Skyline operation; a set of 𝑑-dimensional points
𝒑 β‰Ί 𝒒: point 𝒑 is dominated by point 𝒒
function SkylineBasic M, Dimension
begin
if 𝑀 = 1 then return 𝑀
π‘ƒπ‘–π‘£π‘œπ‘‘ ≔ Median π‘š π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› π‘š ∈ 𝑀
𝑃1, 𝑃2 ≔ Partition 𝑀, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›, π‘ƒπ‘–π‘£π‘œπ‘‘
𝑆1 ≔ SkylineBasic(𝑃1, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›)
𝑆2 ≔ SkylineBasic 𝑃2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›
return 𝑆1 ⋃ MergeBasic(𝑆1, 𝑆2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›)
end
function MergeBasic(𝑆1, 𝑆2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›)
begin
if 𝑆1 = {𝑝} then 𝑅 ≔ π‘ž ∈ 𝑆2 𝑝 ≻ π‘ž
else if 𝑆2 = π‘ž then begin
for each 𝑝 ∈ 𝑆1 do if 𝑝 β‰Ί π‘ž then 𝑅 ≔ πœ™
end else if π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› = 2 then begin
𝑀𝑖𝑛 ≔ Minimum{𝑝1|𝑝 ∈ 𝑆1}
𝑅 ≔ π‘ž ∈ 𝑆2 π‘ž1 < 𝑀𝑖𝑛
end else begin
π‘ƒπ‘–π‘£π‘œπ‘‘ ≔ Median 𝑝 π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›βˆ’1 𝑝 ∈ 𝑆1
𝑆1,1, 𝑆1,2 ≔ Partition 𝑆1, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› βˆ’ 1, π‘ƒπ‘–π‘£π‘œπ‘‘
𝑆2,1, 𝑆2,2 ≔ Partition 𝑆2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› βˆ’ 1, π‘ƒπ‘–π‘£π‘œπ‘‘
𝑅1 ≔ MergeBasic 𝑆1,1, 𝑆2,1, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›
𝑅2 ≔ MergeBasic 𝑆1,2, 𝑆2,2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›
𝑅3 ≔ MergeBasic 𝑆1,1, 𝑅2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› βˆ’ 1
𝑅 ≔ 𝑅1 βˆͺ 𝑅3
end
return R
end
See also Preparata et al. (1993), Computational Geometry, pp. 161-164,
Springer.
Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001.
Implementation: D&C Algorithm
Pseudo-code1. D&C-basic
2. D&C-mpt
3. D&C-mptesk
𝑴: input of the Skyline operation; a set of 𝑑-dimensional points
𝑹: output of the Skyline operation; a set of 𝑑-dimensional points
𝒑 β‰Ί 𝒒: point 𝒑 is dominated by point 𝒒
function SkylineBasic M, Dimension
begin
if 𝑀 = 1 then return 𝑀
π‘ƒπ‘–π‘£π‘œπ‘‘ ≔ Median π‘š π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› π‘š ∈ 𝑀
𝑃1, 𝑃2 ≔ Partition 𝑀, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›, π‘ƒπ‘–π‘£π‘œπ‘‘
𝑆1 ≔ SkylineBasic(𝑃1, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›)
𝑆2 ≔ SkylineBasic 𝑃2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›
return 𝑆1 ⋃ MergeBasic(𝑆1, 𝑆2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›)
end
Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001.
Implementation: D&C Algorithm
Pseudo-code1. D&C-basic
2. D&C-mpt
3. D&C-mptesk
𝑴: input of the Skyline operation; a set of 𝑑-dimensional points
𝑹: output of the Skyline operation; a set of 𝑑-dimensional points
𝒑 β‰Ί 𝒒: point 𝒑 is dominated by point 𝒒
function SkylineBasic M, Dimension
begin
if 𝑀 = 1 then return 𝑀
π‘ƒπ‘–π‘£π‘œπ‘‘ ≔ Median π‘š π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› π‘š ∈ 𝑀
𝑃1, 𝑃2 ≔ Partition 𝑀, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›, π‘ƒπ‘–π‘£π‘œπ‘‘
𝑆1 ≔ SkylineBasic(𝑃1, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›)
𝑆2 ≔ SkylineBasic 𝑃2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›
return 𝑆1 ⋃ MergeBasic(𝑆1, 𝑆2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›)
end
Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001.
Implementation: D&C Algorithm
Pseudo-code1. D&C-basic
2. D&C-mpt
3. D&C-mptesk
𝑴: input of the Skyline operation; a set of 𝑑-dimensional points
𝑹: output of the Skyline operation; a set of 𝑑-dimensional points
𝒑 β‰Ί 𝒒: point 𝒑 is dominated by point 𝒒
function SkylineBasic M, Dimension
begin
if 𝑀 = 1 then return 𝑀
π‘ƒπ‘–π‘£π‘œπ‘‘ ≔ Median π‘š π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› π‘š ∈ 𝑀
𝑃1, 𝑃2 ≔ Partition 𝑀, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›, π‘ƒπ‘–π‘£π‘œπ‘‘
𝑆1 ≔ SkylineBasic(𝑃1, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›)
𝑆2 ≔ SkylineBasic 𝑃2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›
return 𝑆1 ⋃ MergeBasic(𝑆1, 𝑆2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›)
end
Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001.
Implementation: D&C Algorithm
Pseudo-code1. D&C-basic
2. D&C-mpt
3. D&C-mptesk
𝑴: input of the Skyline operation; a set of 𝑑-dimensional points
𝑹: output of the Skyline operation; a set of 𝑑-dimensional points
𝒑 β‰Ί 𝒒: point 𝒑 is dominated by point 𝒒
function SkylineBasic M, Dimension
begin
if 𝑀 = 1 then return 𝑀
π‘ƒπ‘–π‘£π‘œπ‘‘ ≔ Median π‘š π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› π‘š ∈ 𝑀
𝑃1, 𝑃2 ≔ Partition 𝑀, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›, π‘ƒπ‘–π‘£π‘œπ‘‘
𝑆1 ≔ SkylineBasic(𝑃1, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›)
𝑆2 ≔ SkylineBasic 𝑃2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›
return 𝑆1 ⋃ MergeBasic(𝑆1, 𝑆2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›)
end
Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001.
Implementation: D&C Algorithm
Pseudo-code1. D&C-basic
2. D&C-mpt
3. D&C-mptesk
𝑴: input of the Skyline operation; a set of 𝑑-dimensional points
𝑹: output of the Skyline operation; a set of 𝑑-dimensional points
𝒑 β‰Ί 𝒒: point 𝒑 is dominated by point 𝒒
function SkylineBasic M, Dimension
begin
if 𝑀 = 1 then return 𝑀
π‘ƒπ‘–π‘£π‘œπ‘‘ ≔ Median π‘š π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› π‘š ∈ 𝑀
𝑃1, 𝑃2 ≔ Partition 𝑀, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›, π‘ƒπ‘–π‘£π‘œπ‘‘
𝑆1 ≔ SkylineBasic(𝑃1, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›)
𝑆2 ≔ SkylineBasic 𝑃2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›
return 𝑆1 ⋃ MergeBasic(𝑆1, 𝑆2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›)
end
Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001.
Implementation: D&C Algorithm
Pseudo-code1. D&C-basic
2. D&C-mpt
3. D&C-mptesk
𝑴: input of the Skyline operation; a set of 𝑑-dimensional points
𝑹: output of the Skyline operation; a set of 𝑑-dimensional points
𝒑 β‰Ί 𝒒: point 𝒑 is dominated by point 𝒒
function SkylineBasic M, Dimension
begin
if 𝑀 = 1 then return 𝑀
π‘ƒπ‘–π‘£π‘œπ‘‘ ≔ Median π‘š π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› π‘š ∈ 𝑀
𝑃1, 𝑃2 ≔ Partition 𝑀, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›, π‘ƒπ‘–π‘£π‘œπ‘‘
𝑆1 ≔ SkylineBasic(𝑃1, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›)
𝑆2 ≔ SkylineBasic 𝑃2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›
return 𝑆1 ⋃ MergeBasic(𝑆1, 𝑆2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›)
end
Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001.
Implementation: D&C Algorithm
Pseudo-code1. D&C-basic
2. D&C-mpt
3. D&C-mptesk
𝑴: input of the Skyline operation; a set of 𝑑-dimensional points
𝑹: output of the Skyline operation; a set of 𝑑-dimensional points
𝒑 β‰Ί 𝒒: point 𝒑 is dominated by point 𝒒
function SkylineBasic M, Dimension
begin
if 𝑀 = 1 then return 𝑀
π‘ƒπ‘–π‘£π‘œπ‘‘ ≔ Median π‘š π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› π‘š ∈ 𝑀
𝑃1, 𝑃2 ≔ Partition 𝑀, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›, π‘ƒπ‘–π‘£π‘œπ‘‘
𝑆1 ≔ SkylineBasic(𝑃1, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›)
𝑆2 ≔ SkylineBasic 𝑃2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›
return 𝑆1 ⋃ MergeBasic(𝑆1, 𝑆2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›)
end
Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001.
Implementation: D&C Algorithm
Pseudo-code1. D&C-basic
2. D&C-mpt
3. D&C-mptesk
𝑴: input of the Skyline operation; a set of 𝑑-dimensional points
𝑹: output of the Skyline operation; a set of 𝑑-dimensional points
𝒑 β‰Ί 𝒒: point 𝒑 is dominated by point 𝒒
function SkylineBasic M, Dimension
begin
if 𝑀 = 1 then return 𝑀
π‘ƒπ‘–π‘£π‘œπ‘‘ ≔ Median π‘š π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› π‘š ∈ 𝑀
𝑃1, 𝑃2 ≔ Partition 𝑀, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›, π‘ƒπ‘–π‘£π‘œπ‘‘
𝑆1 ≔ SkylineBasic(𝑃1, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›)
𝑆2 ≔ SkylineBasic 𝑃2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›
return 𝑆1 ⋃ MergeBasic(𝑆1, 𝑆2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›)
end
Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001.
Implementation: D&C Algorithm
1. D&C-basic
2. D&C-mpt
3. D&C-mptesk
function MergeBasic(𝑆1, 𝑆2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›)
begin
if 𝑆1 = {𝑝} then 𝑅 ≔ π‘ž ∈ 𝑆2 𝑝 ≻ π‘ž
else if 𝑆2 = π‘ž then begin
for each 𝑝 ∈ 𝑆1 do if 𝑝 β‰Ί π‘ž then 𝑅 ≔ πœ™
end else if π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› = 2 then begin
𝑀𝑖𝑛 ≔ Minimum{𝑝1|𝑝 ∈ 𝑆1}
𝑅 ≔ π‘ž ∈ 𝑆2 π‘ž1 < 𝑀𝑖𝑛
end else begin
π‘ƒπ‘–π‘£π‘œπ‘‘ ≔ Median 𝑝 π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›βˆ’1 𝑝 ∈ 𝑆1
𝑆1,1, 𝑆1,2 ≔ Partition 𝑆1, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› βˆ’ 1, π‘ƒπ‘–π‘£π‘œπ‘‘
𝑆2,1, 𝑆2,2 ≔ Partition 𝑆2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› βˆ’ 1, π‘ƒπ‘–π‘£π‘œπ‘‘
𝑅1 ≔ MergeBasic 𝑆1,1, 𝑆2,1, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›
𝑅2 ≔ MergeBasic 𝑆1,2, 𝑆2,2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›
𝑅3 ≔ MergeBasic 𝑆1,1, 𝑅2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› βˆ’ 1
𝑅 ≔ 𝑅1 βˆͺ 𝑅3
end
return R
end
See also Preparata et al. (1993), Computational Geometry, pp. 161-164,
Springer.
Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001.
Implementation: D&C Algorithm
1. D&C-basic
2. D&C-mpt
3. D&C-mptesk
function MergeBasic(𝑆1, 𝑆2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›)
begin
if 𝑆1 = {𝑝} then 𝑅 ≔ π‘ž ∈ 𝑆2 𝑝 ≻ π‘ž
else if 𝑆2 = π‘ž then begin
for each 𝑝 ∈ 𝑆1 do if 𝑝 β‰Ί π‘ž then 𝑅 ≔ πœ™
end else if π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› = 2 then begin
𝑀𝑖𝑛 ≔ Minimum{𝑝1|𝑝 ∈ 𝑆1}
𝑅 ≔ π‘ž ∈ 𝑆2 π‘ž1 < 𝑀𝑖𝑛
end else begin
π‘ƒπ‘–π‘£π‘œπ‘‘ ≔ Median 𝑝 π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›βˆ’1 𝑝 ∈ 𝑆1
𝑆1,1, 𝑆1,2 ≔ Partition 𝑆1, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› βˆ’ 1, π‘ƒπ‘–π‘£π‘œπ‘‘
𝑆2,1, 𝑆2,2 ≔ Partition 𝑆2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› βˆ’ 1, π‘ƒπ‘–π‘£π‘œπ‘‘
𝑅1 ≔ MergeBasic 𝑆1,1, 𝑆2,1, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›
𝑅2 ≔ MergeBasic 𝑆1,2, 𝑆2,2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›
𝑅3 ≔ MergeBasic 𝑆1,1, 𝑅2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› βˆ’ 1
𝑅 ≔ 𝑅1 βˆͺ 𝑅3
end
return R
end
See also Preparata et al. (1993), Computational Geometry, pp. 161-164,
Springer.
Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001.
Implementation: D&C Algorithm
1. D&C-basic
2. D&C-mpt
3. D&C-mptesk
function MergeBasic(𝑆1, 𝑆2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›)
begin
if 𝑆1 = {𝑝} then 𝑅 ≔ π‘ž ∈ 𝑆2 𝑝 ≻ π‘ž
else if 𝑆2 = π‘ž then begin
for each 𝑝 ∈ 𝑆1 do if 𝑝 β‰Ί π‘ž then 𝑅 ≔ πœ™
end else if π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› = 2 then begin
𝑀𝑖𝑛 ≔ Minimum{𝑝1|𝑝 ∈ 𝑆1}
𝑅 ≔ π‘ž ∈ 𝑆2 π‘ž1 < 𝑀𝑖𝑛
end else begin
π‘ƒπ‘–π‘£π‘œπ‘‘ ≔ Median 𝑝 π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›βˆ’1 𝑝 ∈ 𝑆1
𝑆1,1, 𝑆1,2 ≔ Partition 𝑆1, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› βˆ’ 1, π‘ƒπ‘–π‘£π‘œπ‘‘
𝑆2,1, 𝑆2,2 ≔ Partition 𝑆2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› βˆ’ 1, π‘ƒπ‘–π‘£π‘œπ‘‘
𝑅1 ≔ MergeBasic 𝑆1,1, 𝑆2,1, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›
𝑅2 ≔ MergeBasic 𝑆1,2, 𝑆2,2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›
𝑅3 ≔ MergeBasic 𝑆1,1, 𝑅2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› βˆ’ 1
𝑅 ≔ 𝑅1 βˆͺ 𝑅3
end
return R
end
See also Preparata et al. (1993), Computational Geometry, pp. 161-164,
Springer.
Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001.
Implementation: D&C Algorithm
1. D&C-basic
2. D&C-mpt
3. D&C-mptesk
function MergeBasic(𝑆1, 𝑆2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›)
begin
if 𝑆1 = {𝑝} then 𝑅 ≔ π‘ž ∈ 𝑆2 𝑝 ≻ π‘ž
else if 𝑆2 = π‘ž then begin
for each 𝑝 ∈ 𝑆1 do if 𝑝 β‰Ί π‘ž then 𝑅 ≔ πœ™
end else if π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› = 2 then begin
𝑀𝑖𝑛 ≔ Minimum{𝑝1|𝑝 ∈ 𝑆1}
𝑅 ≔ π‘ž ∈ 𝑆2 π‘ž1 < 𝑀𝑖𝑛
end else begin
π‘ƒπ‘–π‘£π‘œπ‘‘ ≔ Median 𝑝 π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›βˆ’1 𝑝 ∈ 𝑆1
𝑆1,1, 𝑆1,2 ≔ Partition 𝑆1, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› βˆ’ 1, π‘ƒπ‘–π‘£π‘œπ‘‘
𝑆2,1, 𝑆2,2 ≔ Partition 𝑆2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› βˆ’ 1, π‘ƒπ‘–π‘£π‘œπ‘‘
𝑅1 ≔ MergeBasic 𝑆1,1, 𝑆2,1, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›
𝑅2 ≔ MergeBasic 𝑆1,2, 𝑆2,2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›
𝑅3 ≔ MergeBasic 𝑆1,1, 𝑅2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› βˆ’ 1
𝑅 ≔ 𝑅1 βˆͺ 𝑅3
end
return R
end
See also Preparata et al. (1993), Computational Geometry, pp. 161-164,
Springer.
Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001.
Implementation: D&C Algorithm
1. D&C-basic
2. D&C-mpt
3. D&C-mptesk
function MergeBasic(𝑆1, 𝑆2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›)
begin
if 𝑆1 = {𝑝} then 𝑅 ≔ π‘ž ∈ 𝑆2 𝑝 ≻ π‘ž
else if 𝑆2 = π‘ž then begin
for each 𝑝 ∈ 𝑆1 do if 𝑝 β‰Ί π‘ž then 𝑅 ≔ πœ™
end else if π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› = 2 then begin
𝑀𝑖𝑛 ≔ Minimum{𝑝1|𝑝 ∈ 𝑆1}
𝑅 ≔ π‘ž ∈ 𝑆2 π‘ž1 < 𝑀𝑖𝑛
end else begin
π‘ƒπ‘–π‘£π‘œπ‘‘ ≔ Median 𝑝 π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›βˆ’1 𝑝 ∈ 𝑆1
𝑆1,1, 𝑆1,2 ≔ Partition 𝑆1, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› βˆ’ 1, π‘ƒπ‘–π‘£π‘œπ‘‘
𝑆2,1, 𝑆2,2 ≔ Partition 𝑆2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› βˆ’ 1, π‘ƒπ‘–π‘£π‘œπ‘‘
𝑅1 ≔ MergeBasic 𝑆1,1, 𝑆2,1, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›
𝑅2 ≔ MergeBasic 𝑆1,2, 𝑆2,2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›
𝑅3 ≔ MergeBasic 𝑆1,1, 𝑅2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› βˆ’ 1
𝑅 ≔ 𝑅1 βˆͺ 𝑅3
end
return R
end
See also Preparata et al. (1993), Computational Geometry, pp. 161-164,
Springer.
Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001.
Implementation: D&C Algorithm
1. D&C-basic
2. D&C-mpt
3. D&C-mptesk
function MergeBasic(𝑆1, 𝑆2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›)
begin
if 𝑆1 = {𝑝} then 𝑅 ≔ π‘ž ∈ 𝑆2 𝑝 ≻ π‘ž
else if 𝑆2 = π‘ž then begin
for each 𝑝 ∈ 𝑆1 do if 𝑝 β‰Ί π‘ž then 𝑅 ≔ πœ™
end else if π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› = 2 then begin
𝑀𝑖𝑛 ≔ Minimum{𝑝1|𝑝 ∈ 𝑆1}
𝑅 ≔ π‘ž ∈ 𝑆2 π‘ž1 < 𝑀𝑖𝑛
end else begin
π‘ƒπ‘–π‘£π‘œπ‘‘ ≔ Median 𝑝 π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›βˆ’1 𝑝 ∈ 𝑆1
𝑆1,1, 𝑆1,2 ≔ Partition 𝑆1, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› βˆ’ 1, π‘ƒπ‘–π‘£π‘œπ‘‘
𝑆2,1, 𝑆2,2 ≔ Partition 𝑆2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› βˆ’ 1, π‘ƒπ‘–π‘£π‘œπ‘‘
𝑅1 ≔ MergeBasic 𝑆1,1, 𝑆2,1, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›
𝑅2 ≔ MergeBasic 𝑆1,2, 𝑆2,2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›
𝑅3 ≔ MergeBasic 𝑆1,1, 𝑅2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› βˆ’ 1
𝑅 ≔ 𝑅1 βˆͺ 𝑅3
end
return R
end
See also Preparata et al. (1993), Computational Geometry, pp. 161-164,
Springer.
Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001.
Implementation: D&C Algorithm
1. D&C-basic
2. D&C-mpt
3. D&C-mptesk
function MergeBasic(𝑆1, 𝑆2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›)
begin
if 𝑆1 = {𝑝} then 𝑅 ≔ π‘ž ∈ 𝑆2 𝑝 ≻ π‘ž
else if 𝑆2 = π‘ž then begin
for each 𝑝 ∈ 𝑆1 do if 𝑝 β‰Ί π‘ž then 𝑅 ≔ πœ™
end else if π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› = 2 then begin
𝑀𝑖𝑛 ≔ Minimum{𝑝1|𝑝 ∈ 𝑆1}
𝑅 ≔ π‘ž ∈ 𝑆2 π‘ž1 < 𝑀𝑖𝑛
end else begin
π‘ƒπ‘–π‘£π‘œπ‘‘ ≔ Median 𝑝 π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›βˆ’1 𝑝 ∈ 𝑆1
𝑆1,1, 𝑆1,2 ≔ Partition 𝑆1, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› βˆ’ 1, π‘ƒπ‘–π‘£π‘œπ‘‘
𝑆2,1, 𝑆2,2 ≔ Partition 𝑆2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› βˆ’ 1, π‘ƒπ‘–π‘£π‘œπ‘‘
𝑅1 ≔ MergeBasic 𝑆1,1, 𝑆2,1, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›
𝑅2 ≔ MergeBasic 𝑆1,2, 𝑆2,2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›
𝑅3 ≔ MergeBasic 𝑆1,1, 𝑅2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› βˆ’ 1
𝑅 ≔ 𝑅1 βˆͺ 𝑅3
end
return R
end
See also Preparata et al. (1993), Computational Geometry, pp. 161-164,
Springer.
Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001.
Implementation: D&C Algorithm
1. D&C-basic
2. D&C-mpt
3. D&C-mptesk
function MergeBasic(𝑆1, 𝑆2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›)
begin
if 𝑆1 = {𝑝} then 𝑅 ≔ π‘ž ∈ 𝑆2 𝑝 ≻ π‘ž
else if 𝑆2 = π‘ž then begin
for each 𝑝 ∈ 𝑆1 do if 𝑝 β‰Ί π‘ž then 𝑅 ≔ πœ™
end else if π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› = 2 then begin
𝑀𝑖𝑛 ≔ Minimum{𝑝1|𝑝 ∈ 𝑆1}
𝑅 ≔ π‘ž ∈ 𝑆2 π‘ž1 < 𝑀𝑖𝑛
end else begin
π‘ƒπ‘–π‘£π‘œπ‘‘ ≔ Median 𝑝 π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›βˆ’1 𝑝 ∈ 𝑆1
𝑆1,1, 𝑆1,2 ≔ Partition 𝑆1, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› βˆ’ 1, π‘ƒπ‘–π‘£π‘œπ‘‘
𝑆2,1, 𝑆2,2 ≔ Partition 𝑆2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› βˆ’ 1, π‘ƒπ‘–π‘£π‘œπ‘‘
𝑅1 ≔ MergeBasic 𝑆1,1, 𝑆2,1, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›
𝑅2 ≔ MergeBasic 𝑆1,2, 𝑆2,2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›
𝑅3 ≔ MergeBasic 𝑆1,1, 𝑅2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› βˆ’ 1
𝑅 ≔ 𝑅1 βˆͺ 𝑅3
end
return R
end
See also Preparata et al. (1993), Computational Geometry, pp. 161-164,
Springer.
Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001.
Implementation: D&C Algorithm
1. D&C-basic
2. D&C-mpt
3. D&C-mptesk
function MergeBasic(𝑆1, 𝑆2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›)
begin
if 𝑆1 = {𝑝} then 𝑅 ≔ π‘ž ∈ 𝑆2 𝑝 ≻ π‘ž
else if 𝑆2 = π‘ž then begin
for each 𝑝 ∈ 𝑆1 do if 𝑝 β‰Ί π‘ž then 𝑅 ≔ πœ™
end else if π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› = 2 then begin
𝑀𝑖𝑛 ≔ Minimum{𝑝1|𝑝 ∈ 𝑆1}
𝑅 ≔ π‘ž ∈ 𝑆2 π‘ž1 < 𝑀𝑖𝑛
end else begin
π‘ƒπ‘–π‘£π‘œπ‘‘ ≔ Median 𝑝 π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›βˆ’1 𝑝 ∈ 𝑆1
𝑆1,1, 𝑆1,2 ≔ Partition 𝑆1, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› βˆ’ 1, π‘ƒπ‘–π‘£π‘œπ‘‘
𝑆2,1, 𝑆2,2 ≔ Partition 𝑆2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› βˆ’ 1, π‘ƒπ‘–π‘£π‘œπ‘‘
𝑅1 ≔ MergeBasic 𝑆1,1, 𝑆2,1, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›
𝑅2 ≔ MergeBasic 𝑆1,2, 𝑆2,2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›
𝑅3 ≔ MergeBasic 𝑆1,1, 𝑅2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› βˆ’ 1
𝑅 ≔ 𝑅1 βˆͺ 𝑅3
end
return R
end
See also Preparata et al. (1993), Computational Geometry, pp. 161-164,
Springer.
Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001.
Implementation: D&C Algorithm
1. D&C-basic
2. D&C-mpt
3. D&C-mptesk
function MergeBasic(𝑆1, 𝑆2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›)
begin
if 𝑆1 = {𝑝} then 𝑅 ≔ π‘ž ∈ 𝑆2 𝑝 ≻ π‘ž
else if 𝑆2 = π‘ž then begin
for each 𝑝 ∈ 𝑆1 do if 𝑝 β‰Ί π‘ž then 𝑅 ≔ πœ™
end else if π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› = 2 then begin
𝑀𝑖𝑛 ≔ Minimum{𝑝1|𝑝 ∈ 𝑆1}
𝑅 ≔ π‘ž ∈ 𝑆2 π‘ž1 < 𝑀𝑖𝑛
end else begin
π‘ƒπ‘–π‘£π‘œπ‘‘ ≔ Median 𝑝 π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›βˆ’1 𝑝 ∈ 𝑆1
𝑆1,1, 𝑆1,2 ≔ Partition 𝑆1, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› βˆ’ 1, π‘ƒπ‘–π‘£π‘œπ‘‘
𝑆2,1, 𝑆2,2 ≔ Partition 𝑆2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› βˆ’ 1, π‘ƒπ‘–π‘£π‘œπ‘‘
𝑅1 ≔ MergeBasic 𝑆1,1, 𝑆2,1, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›
𝑅2 ≔ MergeBasic 𝑆1,2, 𝑆2,2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›
𝑅3 ≔ MergeBasic 𝑆1,1, 𝑅2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› βˆ’ 1
𝑅 ≔ 𝑅1 βˆͺ 𝑅3
end
return R
end
See also Preparata et al. (1993), Computational Geometry, pp. 161-164,
Springer.
Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001.
Implementation: D&C Algorithm
1. D&C-basic
2. D&C-mpt
3. D&C-mptesk
function MergeBasic(𝑆1, 𝑆2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›)
begin
if 𝑆1 = {𝑝} then 𝑅 ≔ π‘ž ∈ 𝑆2 𝑝 ≻ π‘ž
else if 𝑆2 = π‘ž then begin
for each 𝑝 ∈ 𝑆1 do if 𝑝 β‰Ί π‘ž then 𝑅 ≔ πœ™
end else if π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› = 2 then begin
𝑀𝑖𝑛 ≔ Minimum{𝑝1|𝑝 ∈ 𝑆1}
𝑅 ≔ π‘ž ∈ 𝑆2 π‘ž1 < 𝑀𝑖𝑛
end else begin
π‘ƒπ‘–π‘£π‘œπ‘‘ ≔ Median 𝑝 π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›βˆ’1 𝑝 ∈ 𝑆1
𝑆1,1, 𝑆1,2 ≔ Partition 𝑆1, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› βˆ’ 1, π‘ƒπ‘–π‘£π‘œπ‘‘
𝑆2,1, 𝑆2,2 ≔ Partition 𝑆2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› βˆ’ 1, π‘ƒπ‘–π‘£π‘œπ‘‘
𝑅1 ≔ MergeBasic 𝑆1,1, 𝑆2,1, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›
𝑅2 ≔ MergeBasic 𝑆1,2, 𝑆2,2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›
𝑅3 ≔ MergeBasic 𝑆1,1, 𝑅2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› βˆ’ 1
𝑅 ≔ 𝑅1 βˆͺ 𝑅3
end
return R
end
See also Preparata et al. (1993), Computational Geometry, pp. 161-164,
Springer.
Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001.
Implementation: D&C Algorithm
1. D&C-basic
2. D&C-mpt
3. D&C-mptesk
function MergeBasic(𝑆1, 𝑆2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›)
begin
if 𝑆1 = {𝑝} then 𝑅 ≔ π‘ž ∈ 𝑆2 𝑝 ≻ π‘ž
else if 𝑆2 = π‘ž then begin
for each 𝑝 ∈ 𝑆1 do if 𝑝 β‰Ί π‘ž then 𝑅 ≔ πœ™
end else if π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› = 2 then begin
𝑀𝑖𝑛 ≔ Minimum{𝑝1|𝑝 ∈ 𝑆1}
𝑅 ≔ π‘ž ∈ 𝑆2 π‘ž1 < 𝑀𝑖𝑛
end else begin
π‘ƒπ‘–π‘£π‘œπ‘‘ ≔ Median 𝑝 π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›βˆ’1 𝑝 ∈ 𝑆1
𝑆1,1, 𝑆1,2 ≔ Partition 𝑆1, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› βˆ’ 1, π‘ƒπ‘–π‘£π‘œπ‘‘
𝑆2,1, 𝑆2,2 ≔ Partition 𝑆2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› βˆ’ 1, π‘ƒπ‘–π‘£π‘œπ‘‘
𝑅1 ≔ MergeBasic 𝑆1,1, 𝑆2,1, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›
𝑅2 ≔ MergeBasic 𝑆1,2, 𝑆2,2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›
𝑅3 ≔ MergeBasic 𝑆1,1, 𝑅2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› βˆ’ 1
𝑅 ≔ 𝑅1 βˆͺ 𝑅3
end
return R
end
See also Preparata et al. (1993), Computational Geometry, pp. 161-164,
Springer.
Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001.
Implementation: D&C Algorithm
1. D&C-basic
2. D&C-mpt
3. D&C-mptesk
function MergeBasic(𝑆1, 𝑆2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›)
begin
if 𝑆1 = {𝑝} then 𝑅 ≔ π‘ž ∈ 𝑆2 𝑝 ≻ π‘ž
else if 𝑆2 = π‘ž then begin
for each 𝑝 ∈ 𝑆1 do if 𝑝 β‰Ί π‘ž then 𝑅 ≔ πœ™
end else if π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› = 2 then begin
𝑀𝑖𝑛 ≔ Minimum{𝑝1|𝑝 ∈ 𝑆1}
𝑅 ≔ π‘ž ∈ 𝑆2 π‘ž1 < 𝑀𝑖𝑛
end else begin
π‘ƒπ‘–π‘£π‘œπ‘‘ ≔ Median 𝑝 π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›βˆ’1 𝑝 ∈ 𝑆1
𝑆1,1, 𝑆1,2 ≔ Partition 𝑆1, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› βˆ’ 1, π‘ƒπ‘–π‘£π‘œπ‘‘
𝑆2,1, 𝑆2,2 ≔ Partition 𝑆2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› βˆ’ 1, π‘ƒπ‘–π‘£π‘œπ‘‘
𝑅1 ≔ MergeBasic 𝑆1,1, 𝑆2,1, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›
𝑅2 ≔ MergeBasic 𝑆1,2, 𝑆2,2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›
𝑅3 ≔ MergeBasic 𝑆1,1, 𝑅2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› βˆ’ 1
𝑅 ≔ 𝑅1 βˆͺ 𝑅3
end
return R
end
See also Preparata et al. (1993), Computational Geometry, pp. 161-164,
Springer.
Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001.
Implementation: D&C Algorithm
1. D&C-basic
2. D&C-mpt
3. D&C-mptesk
function MergeBasic(𝑆1, 𝑆2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›)
begin
if 𝑆1 = {𝑝} then 𝑅 ≔ π‘ž ∈ 𝑆2 𝑝 ≻ π‘ž
else if 𝑆2 = π‘ž then begin
for each 𝑝 ∈ 𝑆1 do if 𝑝 β‰Ί π‘ž then 𝑅 ≔ πœ™
end else if π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› = 2 then begin
𝑀𝑖𝑛 ≔ Minimum{𝑝1|𝑝 ∈ 𝑆1}
𝑅 ≔ π‘ž ∈ 𝑆2 π‘ž1 < 𝑀𝑖𝑛
end else begin
π‘ƒπ‘–π‘£π‘œπ‘‘ ≔ Median 𝑝 π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›βˆ’1 𝑝 ∈ 𝑆1
𝑆1,1, 𝑆1,2 ≔ Partition 𝑆1, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› βˆ’ 1, π‘ƒπ‘–π‘£π‘œπ‘‘
𝑆2,1, 𝑆2,2 ≔ Partition 𝑆2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› βˆ’ 1, π‘ƒπ‘–π‘£π‘œπ‘‘
𝑅1 ≔ MergeBasic 𝑆1,1, 𝑆2,1, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›
𝑅2 ≔ MergeBasic 𝑆1,2, 𝑆2,2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›
𝑅3 ≔ MergeBasic 𝑆1,1, 𝑅2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› βˆ’ 1
𝑅 ≔ 𝑅1 βˆͺ 𝑅3
end
return R
end
See also Preparata et al. (1993), Computational Geometry, pp. 161-164,
Springer.
Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001.
Implementation: D&C Algorithm
1. D&C-basic
2. D&C-mpt
3. D&C-mptesk
function MergeBasic(𝑆1, 𝑆2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›)
begin
if 𝑆1 = {𝑝} then 𝑅 ≔ π‘ž ∈ 𝑆2 𝑝 ≻ π‘ž
else if 𝑆2 = π‘ž then begin
for each 𝑝 ∈ 𝑆1 do if 𝑝 β‰Ί π‘ž then 𝑅 ≔ πœ™
end else if π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› = 2 then begin
𝑀𝑖𝑛 ≔ Minimum{𝑝1|𝑝 ∈ 𝑆1}
𝑅 ≔ π‘ž ∈ 𝑆2 π‘ž1 < 𝑀𝑖𝑛
end else begin
π‘ƒπ‘–π‘£π‘œπ‘‘ ≔ Median 𝑝 π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›βˆ’1 𝑝 ∈ 𝑆1
𝑆1,1, 𝑆1,2 ≔ Partition 𝑆1, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› βˆ’ 1, π‘ƒπ‘–π‘£π‘œπ‘‘
𝑆2,1, 𝑆2,2 ≔ Partition 𝑆2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› βˆ’ 1, π‘ƒπ‘–π‘£π‘œπ‘‘
𝑅1 ≔ MergeBasic 𝑆1,1, 𝑆2,1, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›
𝑅2 ≔ MergeBasic 𝑆1,2, 𝑆2,2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›
𝑅3 ≔ MergeBasic 𝑆1,1, 𝑅2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› βˆ’ 1
𝑅 ≔ 𝑅1 βˆͺ 𝑅3
end
return R
end
See also Preparata et al. (1993), Computational Geometry, pp. 161-164,
Springer.
Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001.
Implementation: D&C Algorithm
1. D&C-basic
2. D&C-mpt
3. D&C-mptesk
function MergeBasic(𝑆1, 𝑆2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›)
begin
if 𝑆1 = {𝑝} then 𝑅 ≔ π‘ž ∈ 𝑆2 𝑝 ≻ π‘ž
else if 𝑆2 = π‘ž then begin
for each 𝑝 ∈ 𝑆1 do if 𝑝 β‰Ί π‘ž then 𝑅 ≔ πœ™
end else if π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› = 2 then begin
𝑀𝑖𝑛 ≔ Minimum{𝑝1|𝑝 ∈ 𝑆1}
𝑅 ≔ π‘ž ∈ 𝑆2 π‘ž1 < 𝑀𝑖𝑛
end else begin
π‘ƒπ‘–π‘£π‘œπ‘‘ ≔ Median 𝑝 π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›βˆ’1 𝑝 ∈ 𝑆1
𝑆1,1, 𝑆1,2 ≔ Partition 𝑆1, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› βˆ’ 1, π‘ƒπ‘–π‘£π‘œπ‘‘
𝑆2,1, 𝑆2,2 ≔ Partition 𝑆2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› βˆ’ 1, π‘ƒπ‘–π‘£π‘œπ‘‘
𝑅1 ≔ MergeBasic 𝑆1,1, 𝑆2,1, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›
𝑅2 ≔ MergeBasic 𝑆1,2, 𝑆2,2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›
𝑅3 ≔ MergeBasic 𝑆1,1, 𝑅2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› βˆ’ 1
𝑅 ≔ 𝑅1 βˆͺ 𝑅3
end
return R
end
See also Preparata et al. (1993), Computational Geometry, pp. 161-164,
Springer.
Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001.
Implementation: D&C Algorithm
1. D&C-basic
2. D&C-mpt
3. D&C-mptesk
function MergeBasic(𝑆1, 𝑆2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›)
begin
if 𝑆1 = {𝑝} then 𝑅 ≔ π‘ž ∈ 𝑆2 𝑝 ≻ π‘ž
else if 𝑆2 = π‘ž then begin
for each 𝑝 ∈ 𝑆1 do if 𝑝 β‰Ί π‘ž then 𝑅 ≔ πœ™
end else if π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› = 2 then begin
𝑀𝑖𝑛 ≔ Minimum{𝑝1|𝑝 ∈ 𝑆1}
𝑅 ≔ π‘ž ∈ 𝑆2 π‘ž1 < 𝑀𝑖𝑛
end else begin
π‘ƒπ‘–π‘£π‘œπ‘‘ ≔ Median 𝑝 π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›βˆ’1 𝑝 ∈ 𝑆1
𝑆1,1, 𝑆1,2 ≔ Partition 𝑆1, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› βˆ’ 1, π‘ƒπ‘–π‘£π‘œπ‘‘
𝑆2,1, 𝑆2,2 ≔ Partition 𝑆2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› βˆ’ 1, π‘ƒπ‘–π‘£π‘œπ‘‘
𝑅1 ≔ MergeBasic 𝑆1,1, 𝑆2,1, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›
𝑅2 ≔ MergeBasic 𝑆1,2, 𝑆2,2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›
𝑅3 ≔ MergeBasic 𝑆1,1, 𝑅2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› βˆ’ 1
𝑅 ≔ 𝑅1 βˆͺ 𝑅3
end
return R
end
See also Preparata et al. (1993), Computational Geometry, pp. 161-164,
Springer.
Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001.
Implementation: D&C Algorithm
1. D&C-basic
2. D&C-mpt
3. D&C-mptesk
𝑴: input of the Skyline operation; a set of 𝑑-dimensional points
𝑹: output of the Skyline operation; a set of 𝑑-dimensional points
𝒑 β‰Ί 𝒒: point 𝒑 is dominated by point 𝒒
function SkylineBasic M, Dimension
begin
if 𝑀 = 1 then return 𝑀
π‘ƒπ‘–π‘£π‘œπ‘‘ ≔ Median π‘š π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› π‘š ∈ 𝑀
𝑃1, 𝑃2 ≔ Partition 𝑀, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›, π‘ƒπ‘–π‘£π‘œπ‘‘
𝑆1 ≔ SkylineBasic(𝑃1, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›)
𝑆2 ≔ SkylineBasic 𝑃2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›
return 𝑆1 ⋃ MergeBasic(𝑆1, 𝑆2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›)
end
Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001.
Implementation: D&C Algorithm
M-way Partitioning
β€’ To get better performance by I/O behavior than the basic
algorithm
β€’ To divide into π‘š partitions to fit into memory
β€’ To be used in the first step and third step of the basic
algorithm
β€’ Partition by quantile rather than median
1. D&C-basic
2. D&C-mpt
3. D&C-mptesk
Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001.
Implementation: D&C Algorithm
M-way Partitioning
β€’ To be applied the basic algorithm at the first step, π‘š-way
partitioning produces π‘š partitions 𝑃1, … , π‘ƒπ‘š to each 𝑃𝑖
fits into memory.
β€’ At the third step of the basic algorithm, the π‘š-way
partitioning is applied.
β€’ All sub-partitions should occupy at most half of the
memory.
1. D&C-basic
2. D&C-mpt
3. D&C-mptesk
Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001.
function π‘€π‘’π‘Ÿπ‘”π‘’π‘€π‘€π‘Žπ‘¦ 𝑆1, 𝑆2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›
begin
if 𝑆1 = {𝑝} then 𝑅 ≔ {π‘ž ∈ 𝑆2|𝑝 ≻ π‘ž}
else if 𝑆2 = {π‘ž} then begin
foreach 𝑝 ∈ 𝑆1 do if 𝑝 β‰Ί π‘ž then 𝑅 ≔ πœ™
end else if 𝑆1 + 𝑆2 < |π•Š| then 𝑅 ≔ π‘€π‘’π‘Ÿπ‘”π‘’π΅π‘Žπ‘ π‘–π‘(𝑆1, 𝑆2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›)
else if π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› = 2 then begin
𝑀𝑖𝑛 ≔ π‘€π‘–π‘›π‘–π‘šπ‘’π‘š 𝑝1 𝑝 ∈ 𝑆1
𝑅 ≔ π‘ž ∈ 𝑆2 π‘ž1 < 𝑀𝑖𝑛
end else begin
π‘ƒπ‘Žπ‘Ÿπ‘‘π‘–π‘‘π‘–π‘œπ‘›π‘  ≔ π‘€π‘Žπ‘₯π‘–π‘šπ‘’π‘š{
𝑆1
π•Š 2
,
𝑆2
π•Š 2
}
π‘„π‘’π‘Žπ‘›π‘‘π‘–π‘™π‘’π‘  ≔ 𝛼 βˆ’ π‘„π‘’π‘Žπ‘›π‘‘π‘–π‘™π‘’π‘ (𝑆1, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› βˆ’ 1, π‘ƒπ‘Žπ‘Ÿπ‘‘π‘–π‘–π‘œπ‘›π‘ )
𝑆1,1, … , 𝑆1,π‘ƒπ‘Žπ‘Ÿπ‘‘π‘–π‘‘π‘–π‘œπ‘›π‘  ≔ π‘ƒπ‘Žπ‘Ÿπ‘‘π‘–π‘‘π‘–π‘œπ‘›π‘ (𝑆1, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› βˆ’ 1, π‘„π‘’π‘Žπ‘›π‘‘π‘–π‘™π‘’π‘ )
𝑆2,1, … , 𝑆2,π‘ƒπ‘Žπ‘Ÿπ‘‘π‘–π‘‘π‘–π‘œπ‘›π‘  ≔ π‘ƒπ‘Žπ‘Ÿπ‘‘π‘–π‘‘π‘–π‘œπ‘›π‘ (𝑆2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› βˆ’ 1, π‘„π‘’π‘Žπ‘›π‘‘π‘–π‘™π‘’π‘ )
𝑅 ≔ πœ™
for 𝑗 ≔ 1 to π‘ƒπ‘Žπ‘Ÿπ‘‘π‘–π‘‘π‘–π‘œπ‘›π‘  do begin
for 𝑖 ≔ 1 to 𝑗 do
if 𝑖 < 𝑗 then 𝑆2,𝑗 ≔ π‘€π‘’π‘Ÿπ‘”π‘’π‘€π‘€π‘Žπ‘¦ 𝑆1,𝑖, 𝑆2,𝑗, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› βˆ’ 1
else 𝑆2,𝑗 ≔ π‘€π‘’π‘Ÿπ‘”π‘’π‘€π‘€π‘Žπ‘¦ 𝑆1,𝑖, 𝑆2,𝑗, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›
π‘Žπ‘π‘π‘’π‘›π‘‘(𝑅, 𝑆2,𝑗)
end
end
return 𝑅
end
Implementation: D&C Algorithm
Pseudo-code1. D&C-basic
2. D&C-mpt
3. D&C-mptesk
𝑴: input of the Skyline operation; a set of 𝑑-dimensional points
𝑹: output of the Skyline operation; a set of 𝑑-dimensional points
π•Š: main memory; a set of 𝑑-dimensional points
𝒑 β‰Ί 𝒒: point 𝑝 is dominated by point π‘ž
function SkylineMway(𝑀, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›)
begin
π‘ƒπ‘Žπ‘Ÿπ‘‘π‘–π‘‘π‘–π‘œπ‘›π‘  ≔ Minimum 2 𝑛 𝑛 ∈ 𝑁⋀ π•Š βˆ™ 2 𝑛 > 𝑀
π‘„π‘’π‘Žπ‘›π‘‘π‘–π‘™π‘’π‘  ≔ 𝛼 βˆ’ Quantiles 𝑀, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›, π‘ƒπ‘Žπ‘Ÿπ‘‘π‘–π‘‘π‘–π‘œπ‘›π‘ 
𝑃1, … , π‘ƒπ‘ƒπ‘Žπ‘Ÿπ‘‘π‘–π‘‘π‘–π‘œπ‘›π‘  ≔ Partition 𝑀, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›, π‘„π‘’π‘Žπ‘›π‘‘π‘–π‘™π‘’π‘ 
for 𝑖 ≔ 1 to π‘ƒπ‘Žπ‘Ÿπ‘‘π‘–π‘‘π‘–π‘œπ‘›π‘  do
if 𝑃𝑖 < |π•Š| then 𝑆𝑖 ≔ SkylineBasic 𝑃𝑖, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›
else 𝑆𝑖 ≔ SkylineMway 𝑃𝑖, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›
while π‘ƒπ‘Žπ‘Ÿπ‘‘π‘–π‘‘π‘–π‘œπ‘›π‘  > 1 do begin
for 𝑖 ≔ 1 to
π‘ƒπ‘Žπ‘Ÿπ‘‘π‘–π‘‘π‘–π‘œπ‘›π‘ 
2
do 𝑆𝑖 ≔ 𝑆𝑖 βˆͺ MergeMway 𝑆2π‘–βˆ’1, 𝑆2𝑖, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›
π‘ƒπ‘Žπ‘Ÿπ‘‘π‘–π‘‘π‘–π‘œπ‘›π‘  ≔
π‘ƒπ‘Žπ‘Ÿπ‘‘π‘–π‘‘π‘–π‘œπ‘›π‘ 
2
end
return 𝑆1
end
Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001.
Implementation: D&C Algorithm
1. D&C-basic
2. D&C-mpt
3. D&C-mptesk
𝑆1,1 𝑆2,1
𝑆1,2 𝑆2,2
𝑆1,3
𝑆2,3
𝑆1,4 𝑆2,4
𝑗 = 1, 𝑖 = 1 π‘‘β„Žπ‘’π‘› π‘€π‘’π‘Ÿπ‘”π‘’π‘€π‘€π‘Žπ‘¦ 𝑆1,1 𝑆2,1
Partition to be fitted into the
memory size
π‘žπ‘’π‘Žπ‘›π‘‘π‘–π‘™π‘’ 𝛼
π‘žπ‘’π‘Žπ‘›π‘‘π‘–π‘™π‘’ 𝛼1
π‘žπ‘’π‘Žπ‘›π‘‘π‘–π‘™π‘’ 𝛼2
π‘žπ‘’π‘Žπ‘›π‘‘π‘–π‘™π‘’ 𝛼3
for 𝑗 ≔ 1 to π‘ƒπ‘Žπ‘Ÿπ‘‘π‘–π‘‘π‘–π‘œπ‘›π‘  do begin
for 𝑖 ≔ 1 to 𝑗 do
if 𝑖 < 𝑗 then 𝑆2,𝑗 ≔ π‘€π‘’π‘Ÿπ‘”π‘’π‘€π‘€π‘Žπ‘¦ 𝑆1,𝑖, 𝑆2,𝑗, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› βˆ’ 1
else 𝑆2,𝑗 ≔ π‘€π‘’π‘Ÿπ‘”π‘’π‘€π‘€π‘Žπ‘¦ 𝑆1,𝑖, 𝑆2,𝑗, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›
π‘Žπ‘π‘π‘’π‘›π‘‘(𝑅, 𝑆2,𝑗)
end
Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001.
Implementation: D&C Algorithm
1. D&C-basic
2. D&C-mpt
3. D&C-mptesk
𝑆1,1 𝑆2,1
𝑆1,2 𝑆2,2
𝑆1,3
𝑆2,3
𝑆1,4 𝑆2,4
𝑗 = 1, 𝑖 = 1 π‘‘β„Žπ‘’π‘› π‘€π‘’π‘Ÿπ‘”π‘’π‘€π‘€π‘Žπ‘¦ 𝑆1,1 𝑆2,1
𝑗 = 2, 𝑖 = 1 π‘‘β„Žπ‘’π‘› π‘€π‘’π‘Ÿπ‘”π‘’π‘€π‘€π‘Žπ‘¦ 𝑆1,1 𝑆2,2
π‘žπ‘’π‘Žπ‘›π‘‘π‘–π‘™π‘’ 𝛼
π‘žπ‘’π‘Žπ‘›π‘‘π‘–π‘™π‘’ 𝛼1
π‘žπ‘’π‘Žπ‘›π‘‘π‘–π‘™π‘’ 𝛼2
π‘žπ‘’π‘Žπ‘›π‘‘π‘–π‘™π‘’ 𝛼3
for 𝑗 ≔ 1 to π‘ƒπ‘Žπ‘Ÿπ‘‘π‘–π‘‘π‘–π‘œπ‘›π‘  do begin
for 𝑖 ≔ 1 to 𝑗 do
if 𝑖 < 𝑗 then 𝑆2,𝑗 ≔ π‘€π‘’π‘Ÿπ‘”π‘’π‘€π‘€π‘Žπ‘¦ 𝑆1,𝑖, 𝑆2,𝑗, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› βˆ’ 1
else 𝑆2,𝑗 ≔ π‘€π‘’π‘Ÿπ‘”π‘’π‘€π‘€π‘Žπ‘¦ 𝑆1,𝑖, 𝑆2,𝑗, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›
π‘Žπ‘π‘π‘’π‘›π‘‘(𝑅, 𝑆2,𝑗)
end
Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001.
Implementation: D&C Algorithm
1. D&C-basic
2. D&C-mpt
3. D&C-mptesk
𝑆1,1 𝑆2,1
𝑆1,2 𝑆2,2
𝑆1,3
𝑆2,3
𝑆1,4 𝑆2,4
𝑗 = 1, 𝑖 = 1 π‘‘β„Žπ‘’π‘› π‘€π‘’π‘Ÿπ‘”π‘’π‘€π‘€π‘Žπ‘¦ 𝑆1,1 𝑆2,1
𝑗 = 2, 𝑖 = 1 π‘‘β„Žπ‘’π‘› π‘€π‘’π‘Ÿπ‘”π‘’π‘€π‘€π‘Žπ‘¦ 𝑆1,1 𝑆2,2
𝑖 = 2 π‘‘β„Žπ‘’π‘› π‘€π‘’π‘Ÿπ‘”π‘’π‘€π‘€π‘Žπ‘¦ 𝑆1,2 𝑆2,2
π‘žπ‘’π‘Žπ‘›π‘‘π‘–π‘™π‘’ 𝛼
π‘žπ‘’π‘Žπ‘›π‘‘π‘–π‘™π‘’ 𝛼1
π‘žπ‘’π‘Žπ‘›π‘‘π‘–π‘™π‘’ 𝛼2
π‘žπ‘’π‘Žπ‘›π‘‘π‘–π‘™π‘’ 𝛼3
for 𝑗 ≔ 1 to π‘ƒπ‘Žπ‘Ÿπ‘‘π‘–π‘‘π‘–π‘œπ‘›π‘  do begin
for 𝑖 ≔ 1 to 𝑗 do
if 𝑖 < 𝑗 then 𝑆2,𝑗 ≔ π‘€π‘’π‘Ÿπ‘”π‘’π‘€π‘€π‘Žπ‘¦ 𝑆1,𝑖, 𝑆2,𝑗, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› βˆ’ 1
else 𝑆2,𝑗 ≔ π‘€π‘’π‘Ÿπ‘”π‘’π‘€π‘€π‘Žπ‘¦ 𝑆1,𝑖, 𝑆2,𝑗, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›
π‘Žπ‘π‘π‘’π‘›π‘‘(𝑅, 𝑆2,𝑗)
end
Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001.
Implementation: D&C Algorithm
1. D&C-basic
2. D&C-mpt
3. D&C-mptesk
𝑆1,1 𝑆2,1
𝑆1,2 𝑆2,2
𝑆1,3
𝑆2,3
𝑆1,4 𝑆2,4
𝑗 = 1, 𝑖 = 1 π‘‘β„Žπ‘’π‘› π‘€π‘’π‘Ÿπ‘”π‘’π‘€π‘€π‘Žπ‘¦ 𝑆1,1 𝑆2,1
𝑗 = 2, 𝑖 = 1 π‘‘β„Žπ‘’π‘› π‘€π‘’π‘Ÿπ‘”π‘’π‘€π‘€π‘Žπ‘¦ 𝑆1,1 𝑆2,2
𝑖 = 2 π‘‘β„Žπ‘’π‘› π‘€π‘’π‘Ÿπ‘”π‘’π‘€π‘€π‘Žπ‘¦ 𝑆1,2 𝑆2,2
𝑗 = 3, 𝑖 = 1 π‘‘β„Žπ‘’π‘› π‘€π‘’π‘Ÿπ‘”π‘’π‘€π‘€π‘Žπ‘¦ 𝑆1,1 𝑆2,3
π‘žπ‘’π‘Žπ‘›π‘‘π‘–π‘™π‘’ 𝛼
π‘žπ‘’π‘Žπ‘›π‘‘π‘–π‘™π‘’ 𝛼1
π‘žπ‘’π‘Žπ‘›π‘‘π‘–π‘™π‘’ 𝛼2
π‘žπ‘’π‘Žπ‘›π‘‘π‘–π‘™π‘’ 𝛼3
for 𝑗 ≔ 1 to π‘ƒπ‘Žπ‘Ÿπ‘‘π‘–π‘‘π‘–π‘œπ‘›π‘  do begin
for 𝑖 ≔ 1 to 𝑗 do
if 𝑖 < 𝑗 then 𝑆2,𝑗 ≔ π‘€π‘’π‘Ÿπ‘”π‘’π‘€π‘€π‘Žπ‘¦ 𝑆1,𝑖, 𝑆2,𝑗, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› βˆ’ 1
else 𝑆2,𝑗 ≔ π‘€π‘’π‘Ÿπ‘”π‘’π‘€π‘€π‘Žπ‘¦ 𝑆1,𝑖, 𝑆2,𝑗, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›
π‘Žπ‘π‘π‘’π‘›π‘‘(𝑅, 𝑆2,𝑗)
end
Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001.
Implementation: D&C Algorithm
1. D&C-basic
2. D&C-mpt
3. D&C-mptesk
𝑆1,1 𝑆2,1
𝑆1,2 𝑆2,2
𝑆1,3
𝑆2,3
𝑆1,4 𝑆2,4
𝑗 = 1, 𝑖 = 1 π‘‘β„Žπ‘’π‘› π‘€π‘’π‘Ÿπ‘”π‘’π‘€π‘€π‘Žπ‘¦ 𝑆1,1 𝑆2,1
𝑗 = 2, 𝑖 = 1 π‘‘β„Žπ‘’π‘› π‘€π‘’π‘Ÿπ‘”π‘’π‘€π‘€π‘Žπ‘¦ 𝑆1,1 𝑆2,2
𝑖 = 2 π‘‘β„Žπ‘’π‘› π‘€π‘’π‘Ÿπ‘”π‘’π‘€π‘€π‘Žπ‘¦ 𝑆1,2 𝑆2,2
𝑗 = 3, 𝑖 = 1 π‘‘β„Žπ‘’π‘› π‘€π‘’π‘Ÿπ‘”π‘’π‘€π‘€π‘Žπ‘¦ 𝑆1,1 𝑆2,3
𝑖 = 2 π‘‘β„Žπ‘’π‘› π‘€π‘’π‘Ÿπ‘”π‘’π‘€π‘€π‘Žπ‘¦ 𝑆1,2 𝑆2,3
π‘žπ‘’π‘Žπ‘›π‘‘π‘–π‘™π‘’ 𝛼
π‘žπ‘’π‘Žπ‘›π‘‘π‘–π‘™π‘’ 𝛼1
π‘žπ‘’π‘Žπ‘›π‘‘π‘–π‘™π‘’ 𝛼2
π‘žπ‘’π‘Žπ‘›π‘‘π‘–π‘™π‘’ 𝛼3
for 𝑗 ≔ 1 to π‘ƒπ‘Žπ‘Ÿπ‘‘π‘–π‘‘π‘–π‘œπ‘›π‘  do begin
for 𝑖 ≔ 1 to 𝑗 do
if 𝑖 < 𝑗 then 𝑆2,𝑗 ≔ π‘€π‘’π‘Ÿπ‘”π‘’π‘€π‘€π‘Žπ‘¦ 𝑆1,𝑖, 𝑆2,𝑗, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› βˆ’ 1
else 𝑆2,𝑗 ≔ π‘€π‘’π‘Ÿπ‘”π‘’π‘€π‘€π‘Žπ‘¦ 𝑆1,𝑖, 𝑆2,𝑗, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›
π‘Žπ‘π‘π‘’π‘›π‘‘(𝑅, 𝑆2,𝑗)
end
Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001.
Implementation: D&C Algorithm
1. D&C-basic
2. D&C-mpt
3. D&C-mptesk
𝑆1,1 𝑆2,1
𝑆1,2 𝑆2,2
𝑆1,3
𝑆2,3
𝑆1,4 𝑆2,4
𝑗 = 1, 𝑖 = 1 π‘‘β„Žπ‘’π‘› π‘€π‘’π‘Ÿπ‘”π‘’π‘€π‘€π‘Žπ‘¦ 𝑆1,1 𝑆2,1
𝑗 = 2, 𝑖 = 1 π‘‘β„Žπ‘’π‘› π‘€π‘’π‘Ÿπ‘”π‘’π‘€π‘€π‘Žπ‘¦ 𝑆1,1 𝑆2,2
𝑖 = 2 π‘‘β„Žπ‘’π‘› π‘€π‘’π‘Ÿπ‘”π‘’π‘€π‘€π‘Žπ‘¦ 𝑆1,2 𝑆2,2
𝑗 = 3, 𝑖 = 1 π‘‘β„Žπ‘’π‘› π‘€π‘’π‘Ÿπ‘”π‘’π‘€π‘€π‘Žπ‘¦ 𝑆1,1 𝑆2,3
𝑖 = 2 π‘‘β„Žπ‘’π‘› π‘€π‘’π‘Ÿπ‘”π‘’π‘€π‘€π‘Žπ‘¦ 𝑆1,2 𝑆2,3
𝑖 = 3 π‘‘β„Žπ‘’π‘› π‘€π‘’π‘Ÿπ‘”π‘’π‘€π‘€π‘Žπ‘¦ 𝑆1,3 𝑆2,3
π‘žπ‘’π‘Žπ‘›π‘‘π‘–π‘™π‘’ 𝛼
π‘žπ‘’π‘Žπ‘›π‘‘π‘–π‘™π‘’ 𝛼1
π‘žπ‘’π‘Žπ‘›π‘‘π‘–π‘™π‘’ 𝛼2
π‘žπ‘’π‘Žπ‘›π‘‘π‘–π‘™π‘’ 𝛼3
for 𝑗 ≔ 1 to π‘ƒπ‘Žπ‘Ÿπ‘‘π‘–π‘‘π‘–π‘œπ‘›π‘  do begin
for 𝑖 ≔ 1 to 𝑗 do
if 𝑖 < 𝑗 then 𝑆2,𝑗 ≔ π‘€π‘’π‘Ÿπ‘”π‘’π‘€π‘€π‘Žπ‘¦ 𝑆1,𝑖, 𝑆2,𝑗, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› βˆ’ 1
else 𝑆2,𝑗 ≔ π‘€π‘’π‘Ÿπ‘”π‘’π‘€π‘€π‘Žπ‘¦ 𝑆1,𝑖, 𝑆2,𝑗, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›
π‘Žπ‘π‘π‘’π‘›π‘‘(𝑅, 𝑆2,𝑗)
end
Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001.
Implementation: D&C Algorithm
1. D&C-basic
2. D&C-mpt
3. D&C-mptesk
𝑆1,1 𝑆2,1
𝑆1,2 𝑆2,2
𝑆1,3
𝑆2,3
𝑆1,4 𝑆2,4
𝑗 = 1, 𝑖 = 1 π‘‘β„Žπ‘’π‘› π‘€π‘’π‘Ÿπ‘”π‘’π‘€π‘€π‘Žπ‘¦ 𝑆1,1 𝑆2,1
𝑗 = 2, 𝑖 = 1 π‘‘β„Žπ‘’π‘› π‘€π‘’π‘Ÿπ‘”π‘’π‘€π‘€π‘Žπ‘¦ 𝑆1,1 𝑆2,2
𝑖 = 2 π‘‘β„Žπ‘’π‘› π‘€π‘’π‘Ÿπ‘”π‘’π‘€π‘€π‘Žπ‘¦ 𝑆1,2 𝑆2,2
𝑗 = 3, 𝑖 = 1 π‘‘β„Žπ‘’π‘› π‘€π‘’π‘Ÿπ‘”π‘’π‘€π‘€π‘Žπ‘¦ 𝑆1,1 𝑆2,3
𝑖 = 2 π‘‘β„Žπ‘’π‘› π‘€π‘’π‘Ÿπ‘”π‘’π‘€π‘€π‘Žπ‘¦ 𝑆1,2 𝑆2,3
𝑖 = 3 π‘‘β„Žπ‘’π‘› π‘€π‘’π‘Ÿπ‘”π‘’π‘€π‘€π‘Žπ‘¦ 𝑆1,3 𝑆2,3
𝑗 = 4, 𝑖 = 1 π‘‘β„Žπ‘’π‘› π‘€π‘’π‘Ÿπ‘”π‘’π‘€π‘€π‘Žπ‘¦ 𝑆1,1 𝑆2,4
𝑖 = 2 π‘‘β„Žπ‘’π‘› π‘€π‘’π‘Ÿπ‘”π‘’π‘€π‘€π‘Žπ‘¦ 𝑆1,2 𝑆2,3
𝑖 = 3 π‘‘β„Žπ‘’π‘› π‘€π‘’π‘Ÿπ‘”π‘’π‘€π‘€π‘Žπ‘¦ 𝑆1,3 𝑆2,3
𝑖 = 3 π‘‘β„Žπ‘’π‘› π‘€π‘’π‘Ÿπ‘”π‘’π‘€π‘€π‘Žπ‘¦ 𝑆1,3 𝑆2,3
π‘žπ‘’π‘Žπ‘›π‘‘π‘–π‘™π‘’ 𝛼
π‘žπ‘’π‘Žπ‘›π‘‘π‘–π‘™π‘’ 𝛼1
π‘žπ‘’π‘Žπ‘›π‘‘π‘–π‘™π‘’ 𝛼2
π‘žπ‘’π‘Žπ‘›π‘‘π‘–π‘™π‘’ 𝛼3
for 𝑗 ≔ 1 to π‘ƒπ‘Žπ‘Ÿπ‘‘π‘–π‘‘π‘–π‘œπ‘›π‘  do begin
for 𝑖 ≔ 1 to 𝑗 do
if 𝑖 < 𝑗 then 𝑆2,𝑗 ≔ π‘€π‘’π‘Ÿπ‘”π‘’π‘€π‘€π‘Žπ‘¦ 𝑆1,𝑖, 𝑆2,𝑗, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› βˆ’ 1
else 𝑆2,𝑗 ≔ π‘€π‘’π‘Ÿπ‘”π‘’π‘€π‘€π‘Žπ‘¦ 𝑆1,𝑖, 𝑆2,𝑗, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›
π‘Žπ‘π‘π‘’π‘›π‘‘(𝑅, 𝑆2,𝑗)
end
Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001.
Implementation: D&C Algorithm
1. D&C-basic
2. D&C-mpt
3. D&C-mptesk
𝑆1,1 𝑆2,1
𝑆1,2 𝑆2,2
𝑆1,3
𝑆2,3
𝑆1,4 𝑆2,4
𝑗 = 1, 𝑖 = 1 π‘‘β„Žπ‘’π‘› π‘€π‘’π‘Ÿπ‘”π‘’π‘€π‘€π‘Žπ‘¦ 𝑆1,1 𝑆2,1
𝑗 = 2, 𝑖 = 1 π‘‘β„Žπ‘’π‘› π‘€π‘’π‘Ÿπ‘”π‘’π‘€π‘€π‘Žπ‘¦ 𝑆1,1 𝑆2,2
𝑖 = 2 π‘‘β„Žπ‘’π‘› π‘€π‘’π‘Ÿπ‘”π‘’π‘€π‘€π‘Žπ‘¦ 𝑆1,2 𝑆2,2
𝑗 = 3, 𝑖 = 1 π‘‘β„Žπ‘’π‘› π‘€π‘’π‘Ÿπ‘”π‘’π‘€π‘€π‘Žπ‘¦ 𝑆1,1 𝑆2,3
𝑖 = 2 π‘‘β„Žπ‘’π‘› π‘€π‘’π‘Ÿπ‘”π‘’π‘€π‘€π‘Žπ‘¦ 𝑆1,2 𝑆2,3
𝑖 = 3 π‘‘β„Žπ‘’π‘› π‘€π‘’π‘Ÿπ‘”π‘’π‘€π‘€π‘Žπ‘¦ 𝑆1,3 𝑆2,3
𝑗 = 4, 𝑖 = 1 π‘‘β„Žπ‘’π‘› π‘€π‘’π‘Ÿπ‘”π‘’π‘€π‘€π‘Žπ‘¦ 𝑆1,1 𝑆2,4
𝑖 = 2 π‘‘β„Žπ‘’π‘› π‘€π‘’π‘Ÿπ‘”π‘’π‘€π‘€π‘Žπ‘¦ 𝑆1,2 𝑆2,4
𝑖 = 3 π‘‘β„Žπ‘’π‘› π‘€π‘’π‘Ÿπ‘”π‘’π‘€π‘€π‘Žπ‘¦ 𝑆1,3 𝑆2,3
𝑖 = 3 π‘‘β„Žπ‘’π‘› π‘€π‘’π‘Ÿπ‘”π‘’π‘€π‘€π‘Žπ‘¦ 𝑆1,3 𝑆2,3
π‘žπ‘’π‘Žπ‘›π‘‘π‘–π‘™π‘’ 𝛼
π‘žπ‘’π‘Žπ‘›π‘‘π‘–π‘™π‘’ 𝛼1
π‘žπ‘’π‘Žπ‘›π‘‘π‘–π‘™π‘’ 𝛼2
π‘žπ‘’π‘Žπ‘›π‘‘π‘–π‘™π‘’ 𝛼3
for 𝑗 ≔ 1 to π‘ƒπ‘Žπ‘Ÿπ‘‘π‘–π‘‘π‘–π‘œπ‘›π‘  do begin
for 𝑖 ≔ 1 to 𝑗 do
if 𝑖 < 𝑗 then 𝑆2,𝑗 ≔ π‘€π‘’π‘Ÿπ‘”π‘’π‘€π‘€π‘Žπ‘¦ 𝑆1,𝑖, 𝑆2,𝑗, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› βˆ’ 1
else 𝑆2,𝑗 ≔ π‘€π‘’π‘Ÿπ‘”π‘’π‘€π‘€π‘Žπ‘¦ 𝑆1,𝑖, 𝑆2,𝑗, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›
π‘Žπ‘π‘π‘’π‘›π‘‘(𝑅, 𝑆2,𝑗)
end
Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001.
Implementation: D&C Algorithm
1. D&C-basic
2. D&C-mpt
3. D&C-mptesk
𝑆1,1 𝑆2,1
𝑆1,2 𝑆2,2
𝑆1,3
𝑆2,3
𝑆1,4 𝑆2,4
𝑗 = 1, 𝑖 = 1 π‘‘β„Žπ‘’π‘› π‘€π‘’π‘Ÿπ‘”π‘’π‘€π‘€π‘Žπ‘¦ 𝑆1,1 𝑆2,1
𝑗 = 2, 𝑖 = 1 π‘‘β„Žπ‘’π‘› π‘€π‘’π‘Ÿπ‘”π‘’π‘€π‘€π‘Žπ‘¦ 𝑆1,1 𝑆2,2
𝑖 = 2 π‘‘β„Žπ‘’π‘› π‘€π‘’π‘Ÿπ‘”π‘’π‘€π‘€π‘Žπ‘¦ 𝑆1,2 𝑆2,2
𝑗 = 3, 𝑖 = 1 π‘‘β„Žπ‘’π‘› π‘€π‘’π‘Ÿπ‘”π‘’π‘€π‘€π‘Žπ‘¦ 𝑆1,1 𝑆2,3
𝑖 = 2 π‘‘β„Žπ‘’π‘› π‘€π‘’π‘Ÿπ‘”π‘’π‘€π‘€π‘Žπ‘¦ 𝑆1,2 𝑆2,3
𝑖 = 3 π‘‘β„Žπ‘’π‘› π‘€π‘’π‘Ÿπ‘”π‘’π‘€π‘€π‘Žπ‘¦ 𝑆1,3 𝑆2,3
𝑗 = 4, 𝑖 = 1 π‘‘β„Žπ‘’π‘› π‘€π‘’π‘Ÿπ‘”π‘’π‘€π‘€π‘Žπ‘¦ 𝑆1,1 𝑆2,4
𝑖 = 2 π‘‘β„Žπ‘’π‘› π‘€π‘’π‘Ÿπ‘”π‘’π‘€π‘€π‘Žπ‘¦ 𝑆1,2 𝑆2,4
𝑖 = 3 π‘‘β„Žπ‘’π‘› π‘€π‘’π‘Ÿπ‘”π‘’π‘€π‘€π‘Žπ‘¦ 𝑆1,3 𝑆2,4
𝑖 = 3 π‘‘β„Žπ‘’π‘› π‘€π‘’π‘Ÿπ‘”π‘’π‘€π‘€π‘Žπ‘¦ 𝑆1,3 𝑆2,3
π‘žπ‘’π‘Žπ‘›π‘‘π‘–π‘™π‘’ 𝛼
π‘žπ‘’π‘Žπ‘›π‘‘π‘–π‘™π‘’ 𝛼1
π‘žπ‘’π‘Žπ‘›π‘‘π‘–π‘™π‘’ 𝛼2
π‘žπ‘’π‘Žπ‘›π‘‘π‘–π‘™π‘’ 𝛼3
for 𝑗 ≔ 1 to π‘ƒπ‘Žπ‘Ÿπ‘‘π‘–π‘‘π‘–π‘œπ‘›π‘  do begin
for 𝑖 ≔ 1 to 𝑗 do
if 𝑖 < 𝑗 then 𝑆2,𝑗 ≔ π‘€π‘’π‘Ÿπ‘”π‘’π‘€π‘€π‘Žπ‘¦ 𝑆1,𝑖, 𝑆2,𝑗, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› βˆ’ 1
else 𝑆2,𝑗 ≔ π‘€π‘’π‘Ÿπ‘”π‘’π‘€π‘€π‘Žπ‘¦ 𝑆1,𝑖, 𝑆2,𝑗, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›
π‘Žπ‘π‘π‘’π‘›π‘‘(𝑅, 𝑆2,𝑗)
end
Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001.
Implementation: D&C Algorithm
1. D&C-basic
2. D&C-mpt
3. D&C-mptesk
𝑆1,1 𝑆2,1
𝑆1,2 𝑆2,2
𝑆1,3
𝑆2,3
𝑆1,4 𝑆2,4
𝑗 = 1, 𝑖 = 1 π‘‘β„Žπ‘’π‘› π‘€π‘’π‘Ÿπ‘”π‘’π‘€π‘€π‘Žπ‘¦ 𝑆1,1 𝑆2,1
𝑗 = 2, 𝑖 = 1 π‘‘β„Žπ‘’π‘› π‘€π‘’π‘Ÿπ‘”π‘’π‘€π‘€π‘Žπ‘¦ 𝑆1,1 𝑆2,2
𝑖 = 2 π‘‘β„Žπ‘’π‘› π‘€π‘’π‘Ÿπ‘”π‘’π‘€π‘€π‘Žπ‘¦ 𝑆1,2 𝑆2,2
𝑗 = 3, 𝑖 = 1 π‘‘β„Žπ‘’π‘› π‘€π‘’π‘Ÿπ‘”π‘’π‘€π‘€π‘Žπ‘¦ 𝑆1,1 𝑆2,3
𝑖 = 2 π‘‘β„Žπ‘’π‘› π‘€π‘’π‘Ÿπ‘”π‘’π‘€π‘€π‘Žπ‘¦ 𝑆1,2 𝑆2,3
𝑖 = 3 π‘‘β„Žπ‘’π‘› π‘€π‘’π‘Ÿπ‘”π‘’π‘€π‘€π‘Žπ‘¦ 𝑆1,3 𝑆2,3
𝑗 = 4, 𝑖 = 1 π‘‘β„Žπ‘’π‘› π‘€π‘’π‘Ÿπ‘”π‘’π‘€π‘€π‘Žπ‘¦ 𝑆1,1 𝑆2,4
𝑖 = 2 π‘‘β„Žπ‘’π‘› π‘€π‘’π‘Ÿπ‘”π‘’π‘€π‘€π‘Žπ‘¦ 𝑆1,2 𝑆2,4
𝑖 = 3 π‘‘β„Žπ‘’π‘› π‘€π‘’π‘Ÿπ‘”π‘’π‘€π‘€π‘Žπ‘¦ 𝑆1,3 𝑆2,4
𝑖 = 3 π‘‘β„Žπ‘’π‘› π‘€π‘’π‘Ÿπ‘”π‘’π‘€π‘€π‘Žπ‘¦ 𝑆1,4 𝑆2,4
π‘žπ‘’π‘Žπ‘›π‘‘π‘–π‘™π‘’ 𝛼
π‘žπ‘’π‘Žπ‘›π‘‘π‘–π‘™π‘’ 𝛼1
π‘žπ‘’π‘Žπ‘›π‘‘π‘–π‘™π‘’ 𝛼2
π‘žπ‘’π‘Žπ‘›π‘‘π‘–π‘™π‘’ 𝛼3
for 𝑗 ≔ 1 to π‘ƒπ‘Žπ‘Ÿπ‘‘π‘–π‘‘π‘–π‘œπ‘›π‘  do begin
for 𝑖 ≔ 1 to 𝑗 do
if 𝑖 < 𝑗 then 𝑆2,𝑗 ≔ π‘€π‘’π‘Ÿπ‘”π‘’π‘€π‘€π‘Žπ‘¦ 𝑆1,𝑖, 𝑆2,𝑗, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› βˆ’ 1
else 𝑆2,𝑗 ≔ π‘€π‘’π‘Ÿπ‘”π‘’π‘€π‘€π‘Žπ‘¦ 𝑆1,𝑖, 𝑆2,𝑗, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›
π‘Žπ‘π‘π‘’π‘›π‘‘(𝑅, 𝑆2,𝑗)
end
Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001.
Implementation: D&C Algorithm
1. D&C-basic
2. D&C-mpt
3. D&C-mptesk
To Propose Bushy Merge Tree
β€’ To minimize different merge steps
β€’ In the below figure the tuples of 𝑆1 are only involved in
log π‘š merge steps (where π‘š is the number of the
partitions)
Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001.
Implementation: D&C Algorithm
1. D&C-basic
2. D&C-mpt
3. D&C-mptesk
Early Skyline
At the first step of the M-way partitioning;
1. Load as many tuples as fit into the available main-
memory buffers.
2. Applying the basic divide-and-conquer algorithm in
order to immediately eliminate the tuples which are
dominated by others.
3. Partition the remaining tuples into π‘š partitions.
Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001.
Implementation: D&C Algorithm
1. D&C-basic
2. D&C-mpt
3. D&C-mptesk
Early Skyline
β€’ incurs additional CPU.
β€’ saves I/O, because less tuples need to be written and
reread in the partitioning steps.
β€’ is attractive if the Skyline is selective (i.e., if the Skyline
is small).
Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001.
Experiments and Results
Experiments Environment
β€’ Processor: 333 MHz
β€’ Main memory: 128 MB
β€’ Operating system: Solaris 7
β€’ Disk drive: 9GB Seagate with 7200 rpm and 512K disk cache
Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001.
Experiments and Results
Implemented C++ Algorithms
β€’ Sort: Only for two-dimensional Skylines
β€’ BNL-basic: the basic block-nested-loops algorithm
β€’ BNL-sol: BNL and the window is organized as a self-organizing list
β€’ BNL-solrep: BNL-sol and tuples in the window are replaced
β€’ D&C-basic: basic divide-and-conquer algorithm
β€’ D&C-mpt: D&C-basic with m-way partitioning
β€’ D&C-mptesk: D&C-mpt and β€œEarly Skylline”
Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001.
Experiments and Results
Generated Database Condition
β€’ Each benchmark database contains 100,000 tuples (10MB).
β€’ The values of doubles of a tuple are generated randomly in [0,1).
Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001.
Experiments and Results
Three Generated Database
β€’ indep: all attribute values are generated independently
β€’ corr: all attribute values have correlation with each dimension
β€’ anti: all attribute values have anti-correlation with each dimension
indep corr anti
Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001.
Experiments and Results
indep corr anti
Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001.
Experiments and Results
Skyline Sizes
Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001.
Experiments and Results
2-d Skylines running times (in seconds) and amount of disk I/O (in
MB)
β€’ BNL is the winner. Because of
large enough memory, BNL
terminates after one iteration.
β€’ β€œEarly Skyline” is the winner
among D&C variants, because
after applying β€œEarly Skyline”, the
partitions are very small and the
rest of the algorithm can be
completed very quickly.
Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001.
Experiments and Results
Multi-dimensional Skylines
winner at the corr
BNL is good up to 5-D
D&C-mpt and D&C-mptesk
outperform BNL after 5-D
Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001.
Experiments and Results
Multi-dimensional Skylines
At the anti, BEP is earlier than the corr.
Finally D&C outperforms BNL.
Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001.
Experiments and Results
Conclusion of the Experiments: BNL
β€’ The BNL variants are good if the size of the Skyline is small.
β€’ Performance of the BNL’s performance depends on the number of
dimension and correlation.
β€’ BNL-sol is the winner among the BNL variants, but not great.
β€’ Replacement is bad if the Skyline is very large. It incurs additional
overhead without benefits.
Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001.
Experiments and Results
Conclusion of the Experiments: D&C
β€’ D&C variants’ performance less depends on the number of
dimension and correlation than BNL.
β€’ D&C-mptesk is winner among the D&C variants.
Thank you for listening

More Related Content

What's hot

12 mf3im15
12 mf3im1512 mf3im15
12 mf3im15Sumit Kumar
Β 
(slides 3) Visual Computing: Geometry, Graphics, and Vision
(slides 3)  Visual Computing: Geometry, Graphics, and Vision(slides 3)  Visual Computing: Geometry, Graphics, and Vision
(slides 3) Visual Computing: Geometry, Graphics, and VisionFrank Nielsen
Β 
S6 l04 analytical and numerical methods of structural analysis
S6 l04 analytical and numerical methods of structural analysisS6 l04 analytical and numerical methods of structural analysis
S6 l04 analytical and numerical methods of structural analysisShaikh Mohsin
Β 
Finding Maximum Edge Biclique in Bipartite Networks by Integer Programming
Finding Maximum Edge Biclique in Bipartite Networks by Integer ProgrammingFinding Maximum Edge Biclique in Bipartite Networks by Integer Programming
Finding Maximum Edge Biclique in Bipartite Networks by Integer ProgrammingMelih SΓΆzdinler
Β 
System architecture
System architectureSystem architecture
System architectureSanjay Raj
Β 
DESIGN OF SIMULATION DIFFERENT 8-BIT MULTIPLIERS USING VERILOG CODE BY SAIKIR...
DESIGN OF SIMULATION DIFFERENT 8-BIT MULTIPLIERS USING VERILOG CODE BY SAIKIR...DESIGN OF SIMULATION DIFFERENT 8-BIT MULTIPLIERS USING VERILOG CODE BY SAIKIR...
DESIGN OF SIMULATION DIFFERENT 8-BIT MULTIPLIERS USING VERILOG CODE BY SAIKIR...Saikiran perfect
Β 
Mathematical Analysis of Half Volume DRA with Performance Evaluation for High...
Mathematical Analysis of Half Volume DRA with Performance Evaluation for High...Mathematical Analysis of Half Volume DRA with Performance Evaluation for High...
Mathematical Analysis of Half Volume DRA with Performance Evaluation for High...rahulmonikasharma
Β 

What's hot (8)

12 mf3im15
12 mf3im1512 mf3im15
12 mf3im15
Β 
(slides 3) Visual Computing: Geometry, Graphics, and Vision
(slides 3)  Visual Computing: Geometry, Graphics, and Vision(slides 3)  Visual Computing: Geometry, Graphics, and Vision
(slides 3) Visual Computing: Geometry, Graphics, and Vision
Β 
post119s1-file3
post119s1-file3post119s1-file3
post119s1-file3
Β 
S6 l04 analytical and numerical methods of structural analysis
S6 l04 analytical and numerical methods of structural analysisS6 l04 analytical and numerical methods of structural analysis
S6 l04 analytical and numerical methods of structural analysis
Β 
Finding Maximum Edge Biclique in Bipartite Networks by Integer Programming
Finding Maximum Edge Biclique in Bipartite Networks by Integer ProgrammingFinding Maximum Edge Biclique in Bipartite Networks by Integer Programming
Finding Maximum Edge Biclique in Bipartite Networks by Integer Programming
Β 
System architecture
System architectureSystem architecture
System architecture
Β 
DESIGN OF SIMULATION DIFFERENT 8-BIT MULTIPLIERS USING VERILOG CODE BY SAIKIR...
DESIGN OF SIMULATION DIFFERENT 8-BIT MULTIPLIERS USING VERILOG CODE BY SAIKIR...DESIGN OF SIMULATION DIFFERENT 8-BIT MULTIPLIERS USING VERILOG CODE BY SAIKIR...
DESIGN OF SIMULATION DIFFERENT 8-BIT MULTIPLIERS USING VERILOG CODE BY SAIKIR...
Β 
Mathematical Analysis of Half Volume DRA with Performance Evaluation for High...
Mathematical Analysis of Half Volume DRA with Performance Evaluation for High...Mathematical Analysis of Half Volume DRA with Performance Evaluation for High...
Mathematical Analysis of Half Volume DRA with Performance Evaluation for High...
Β 

Viewers also liked

Region filling and object removal by exemplar based image inpainting
Region filling and object removal by exemplar based image inpaintingRegion filling and object removal by exemplar based image inpainting
Region filling and object removal by exemplar based image inpaintingWoonghee Lee
Β 
인곡 신경망 κ΅¬ν˜„μ— κ΄€ν•œ κ°„λ‹¨ν•œ μ„€λͺ…
인곡 신경망 κ΅¬ν˜„μ— κ΄€ν•œ κ°„λ‹¨ν•œ μ„€λͺ…인곡 신경망 κ΅¬ν˜„μ— κ΄€ν•œ κ°„λ‹¨ν•œ μ„€λͺ…
인곡 신경망 κ΅¬ν˜„μ— κ΄€ν•œ κ°„λ‹¨ν•œ μ„€λͺ…Woonghee Lee
Β 
Real Escape in Korea proposal completed version.
Real Escape in Korea proposal completed version.Real Escape in Korea proposal completed version.
Real Escape in Korea proposal completed version.Woonghee Lee
Β 
문자 λ‹¨μœ„μ˜ Neural Machine Translation
문자 λ‹¨μœ„μ˜ Neural Machine Translation문자 λ‹¨μœ„μ˜ Neural Machine Translation
문자 λ‹¨μœ„μ˜ Neural Machine TranslationNAVER LABS
Β 
Convolution codes and turbo codes
Convolution codes and turbo codesConvolution codes and turbo codes
Convolution codes and turbo codesManish Srivastava
Β 
[224] backend α„€α…’α„‡α…‘α†―α„Œα…‘α„‹α…΄ neural machine translation ᄀᅒᄇᅑᆯ가 감ᄉᅑᆼ경
[224] backend α„€α…’α„‡α…‘α†―α„Œα…‘α„‹α…΄ neural machine translation ᄀᅒᄇᅑᆯ가 감ᄉᅑᆼ경[224] backend α„€α…’α„‡α…‘α†―α„Œα…‘α„‹α…΄ neural machine translation ᄀᅒᄇᅑᆯ가 감ᄉᅑᆼ경
[224] backend α„€α…’α„‡α…‘α†―α„Œα…‘α„‹α…΄ neural machine translation ᄀᅒᄇᅑᆯ가 감ᄉᅑᆼ경NAVER D2
Β 
[216]답ᄅα…₯α„‚α…΅α†Όα„‹α…¨α„Œα…¦α„…α…©α„‡α…©α„‚α…³α†«α„€α…’α„‡α…‘α†―α„Œα…‘α„…α…³α†―α„‹α…±α„’α…‘α†«α„α…©α†Όα„€α…¨ α„Žα…¬α„Œα…’α„€α…₯α†―
[216]답ᄅα…₯α„‚α…΅α†Όα„‹α…¨α„Œα…¦α„…α…©α„‡α…©α„‚α…³α†«α„€α…’α„‡α…‘α†―α„Œα…‘α„…α…³α†―α„‹α…±α„’α…‘α†«α„α…©α†Όα„€α…¨ α„Žα…¬α„Œα…’α„€α…₯α†―[216]답ᄅα…₯α„‚α…΅α†Όα„‹α…¨α„Œα…¦α„…α…©α„‡α…©α„‚α…³α†«α„€α…’α„‡α…‘α†―α„Œα…‘α„…α…³α†―α„‹α…±α„’α…‘α†«α„α…©α†Όα„€α…¨ α„Žα…¬α„Œα…’α„€α…₯α†―
[216]답ᄅα…₯α„‚α…΅α†Όα„‹α…¨α„Œα…¦α„…α…©α„‡α…©α„‚α…³α†«α„€α…’α„‡α…‘α†―α„Œα…‘α„…α…³α†―α„‹α…±α„’α…‘α†«α„α…©α†Όα„€α…¨ α„Žα…¬α„Œα…’α„€α…₯α†―NAVER D2
Β 
Qr code ppt
Qr code pptQr code ppt
Qr code pptmrudula14
Β 
[2A4]DeepLearningAtNAVER
[2A4]DeepLearningAtNAVER[2A4]DeepLearningAtNAVER
[2A4]DeepLearningAtNAVERNAVER D2
Β 
Deview deep learning-α„€α…΅α†·α„Œα…₯α†Όα„’α…΄
Deview deep learning-α„€α…΅α†·α„Œα…₯α†Όα„’α…΄Deview deep learning-α„€α…΅α†·α„Œα…₯α†Όα„’α…΄
Deview deep learning-α„€α…΅α†·α„Œα…₯α†Όα„’α…΄NAVER D2
Β 
Turbo codes.ppt
Turbo codes.pptTurbo codes.ppt
Turbo codes.pptPrasant Barik
Β 

Viewers also liked (11)

Region filling and object removal by exemplar based image inpainting
Region filling and object removal by exemplar based image inpaintingRegion filling and object removal by exemplar based image inpainting
Region filling and object removal by exemplar based image inpainting
Β 
인곡 신경망 κ΅¬ν˜„μ— κ΄€ν•œ κ°„λ‹¨ν•œ μ„€λͺ…
인곡 신경망 κ΅¬ν˜„μ— κ΄€ν•œ κ°„λ‹¨ν•œ μ„€λͺ…인곡 신경망 κ΅¬ν˜„μ— κ΄€ν•œ κ°„λ‹¨ν•œ μ„€λͺ…
인곡 신경망 κ΅¬ν˜„μ— κ΄€ν•œ κ°„λ‹¨ν•œ μ„€λͺ…
Β 
Real Escape in Korea proposal completed version.
Real Escape in Korea proposal completed version.Real Escape in Korea proposal completed version.
Real Escape in Korea proposal completed version.
Β 
문자 λ‹¨μœ„μ˜ Neural Machine Translation
문자 λ‹¨μœ„μ˜ Neural Machine Translation문자 λ‹¨μœ„μ˜ Neural Machine Translation
문자 λ‹¨μœ„μ˜ Neural Machine Translation
Β 
Convolution codes and turbo codes
Convolution codes and turbo codesConvolution codes and turbo codes
Convolution codes and turbo codes
Β 
[224] backend α„€α…’α„‡α…‘α†―α„Œα…‘α„‹α…΄ neural machine translation ᄀᅒᄇᅑᆯ가 감ᄉᅑᆼ경
[224] backend α„€α…’α„‡α…‘α†―α„Œα…‘α„‹α…΄ neural machine translation ᄀᅒᄇᅑᆯ가 감ᄉᅑᆼ경[224] backend α„€α…’α„‡α…‘α†―α„Œα…‘α„‹α…΄ neural machine translation ᄀᅒᄇᅑᆯ가 감ᄉᅑᆼ경
[224] backend α„€α…’α„‡α…‘α†―α„Œα…‘α„‹α…΄ neural machine translation ᄀᅒᄇᅑᆯ가 감ᄉᅑᆼ경
Β 
[216]답ᄅα…₯α„‚α…΅α†Όα„‹α…¨α„Œα…¦α„…α…©α„‡α…©α„‚α…³α†«α„€α…’α„‡α…‘α†―α„Œα…‘α„…α…³α†―α„‹α…±α„’α…‘α†«α„α…©α†Όα„€α…¨ α„Žα…¬α„Œα…’α„€α…₯α†―
[216]답ᄅα…₯α„‚α…΅α†Όα„‹α…¨α„Œα…¦α„…α…©α„‡α…©α„‚α…³α†«α„€α…’α„‡α…‘α†―α„Œα…‘α„…α…³α†―α„‹α…±α„’α…‘α†«α„α…©α†Όα„€α…¨ α„Žα…¬α„Œα…’α„€α…₯α†―[216]답ᄅα…₯α„‚α…΅α†Όα„‹α…¨α„Œα…¦α„…α…©α„‡α…©α„‚α…³α†«α„€α…’α„‡α…‘α†―α„Œα…‘α„…α…³α†―α„‹α…±α„’α…‘α†«α„α…©α†Όα„€α…¨ α„Žα…¬α„Œα…’α„€α…₯α†―
[216]답ᄅα…₯α„‚α…΅α†Όα„‹α…¨α„Œα…¦α„…α…©α„‡α…©α„‚α…³α†«α„€α…’α„‡α…‘α†―α„Œα…‘α„…α…³α†―α„‹α…±α„’α…‘α†«α„α…©α†Όα„€α…¨ α„Žα…¬α„Œα…’α„€α…₯α†―
Β 
Qr code ppt
Qr code pptQr code ppt
Qr code ppt
Β 
[2A4]DeepLearningAtNAVER
[2A4]DeepLearningAtNAVER[2A4]DeepLearningAtNAVER
[2A4]DeepLearningAtNAVER
Β 
Deview deep learning-α„€α…΅α†·α„Œα…₯α†Όα„’α…΄
Deview deep learning-α„€α…΅α†·α„Œα…₯α†Όα„’α…΄Deview deep learning-α„€α…΅α†·α„Œα…₯α†Όα„’α…΄
Deview deep learning-α„€α…΅α†·α„Œα…₯α†Όα„’α…΄
Β 
Turbo codes.ppt
Turbo codes.pptTurbo codes.ppt
Turbo codes.ppt
Β 

Similar to The skyline operator lee, woonghee

Research Sruti
Research SrutiResearch Sruti
Research Srutisrutin
Β 
Design of high speed adders for efficient digital design blocks
Design of high speed adders for efficient digital design blocksDesign of high speed adders for efficient digital design blocks
Design of high speed adders for efficient digital design blocksBharath Chary
Β 
Compressing Graphs and Indexes with Recursive Graph Bisection
Compressing Graphs and Indexes with Recursive Graph Bisection Compressing Graphs and Indexes with Recursive Graph Bisection
Compressing Graphs and Indexes with Recursive Graph Bisection aftab alam
Β 
E132833
E132833E132833
E132833irjes
Β 
Curve Fitting - Linear Algebra
Curve Fitting - Linear AlgebraCurve Fitting - Linear Algebra
Curve Fitting - Linear AlgebraGowtham Cr
Β 
Analysis and Design of Mid-Rise Building_2023.docx
Analysis and Design of Mid-Rise Building_2023.docxAnalysis and Design of Mid-Rise Building_2023.docx
Analysis and Design of Mid-Rise Building_2023.docxAdnan Lazem
Β 
High –Speed Implementation of Design and Analysis by Using Parallel Prefix Ad...
High –Speed Implementation of Design and Analysis by Using Parallel Prefix Ad...High –Speed Implementation of Design and Analysis by Using Parallel Prefix Ad...
High –Speed Implementation of Design and Analysis by Using Parallel Prefix Ad...IOSRJECE
Β 
Architecture Design for Deep Neural Networks I
Architecture Design for Deep Neural Networks IArchitecture Design for Deep Neural Networks I
Architecture Design for Deep Neural Networks IWanjin Yu
Β 
Petrel - Auto Merge 2D Seismic Interpretation.pdf
Petrel - Auto Merge 2D Seismic Interpretation.pdfPetrel - Auto Merge 2D Seismic Interpretation.pdf
Petrel - Auto Merge 2D Seismic Interpretation.pdfMiguelGuzman99772
Β 
Energy efficient reverse skyline query processing over wireless sensor networks
Energy efficient reverse skyline query processing over wireless sensor networksEnergy efficient reverse skyline query processing over wireless sensor networks
Energy efficient reverse skyline query processing over wireless sensor networksFinalyear Projects
Β 
Inspirational applications of deep learning
Inspirational applications of deep learningInspirational applications of deep learning
Inspirational applications of deep learningssh1
Β 
Winner of EY NextWave Data Science Challenge 2019
Winner of EY NextWave Data Science Challenge 2019Winner of EY NextWave Data Science Challenge 2019
Winner of EY NextWave Data Science Challenge 2019ByungEunJeon
Β 
1st Place in EY Data Science Challenge
1st Place in EY Data Science Challenge 1st Place in EY Data Science Challenge
1st Place in EY Data Science Challenge Hyunju Shim
Β 
Finite Element Analysis
Finite Element Analysis Finite Element Analysis
Finite Element Analysis Yousef Abujubba
Β 
duoliu-resume-Oct7
duoliu-resume-Oct7duoliu-resume-Oct7
duoliu-resume-Oct7Duo Liu
Β 
Convolutional Deep Belief Networks for Scalable Unsupervised Learning of Hier...
Convolutional Deep Belief Networks for Scalable Unsupervised Learning of Hier...Convolutional Deep Belief Networks for Scalable Unsupervised Learning of Hier...
Convolutional Deep Belief Networks for Scalable Unsupervised Learning of Hier...Mad Scientists
Β 
2014 IEEE JAVA DATA MINING PROJECT Mining weakly labeled web facial images fo...
2014 IEEE JAVA DATA MINING PROJECT Mining weakly labeled web facial images fo...2014 IEEE JAVA DATA MINING PROJECT Mining weakly labeled web facial images fo...
2014 IEEE JAVA DATA MINING PROJECT Mining weakly labeled web facial images fo...IEEEFINALYEARSTUDENTPROJECT
Β 

Similar to The skyline operator lee, woonghee (20)

Research Sruti
Research SrutiResearch Sruti
Research Sruti
Β 
Design of high speed adders for efficient digital design blocks
Design of high speed adders for efficient digital design blocksDesign of high speed adders for efficient digital design blocks
Design of high speed adders for efficient digital design blocks
Β 
Compressing Graphs and Indexes with Recursive Graph Bisection
Compressing Graphs and Indexes with Recursive Graph Bisection Compressing Graphs and Indexes with Recursive Graph Bisection
Compressing Graphs and Indexes with Recursive Graph Bisection
Β 
PointNet
PointNetPointNet
PointNet
Β 
E132833
E132833E132833
E132833
Β 
Curve Fitting - Linear Algebra
Curve Fitting - Linear AlgebraCurve Fitting - Linear Algebra
Curve Fitting - Linear Algebra
Β 
Analysis and Design of Mid-Rise Building_2023.docx
Analysis and Design of Mid-Rise Building_2023.docxAnalysis and Design of Mid-Rise Building_2023.docx
Analysis and Design of Mid-Rise Building_2023.docx
Β 
High –Speed Implementation of Design and Analysis by Using Parallel Prefix Ad...
High –Speed Implementation of Design and Analysis by Using Parallel Prefix Ad...High –Speed Implementation of Design and Analysis by Using Parallel Prefix Ad...
High –Speed Implementation of Design and Analysis by Using Parallel Prefix Ad...
Β 
Ds36715716
Ds36715716Ds36715716
Ds36715716
Β 
Architecture Design for Deep Neural Networks I
Architecture Design for Deep Neural Networks IArchitecture Design for Deep Neural Networks I
Architecture Design for Deep Neural Networks I
Β 
Petrel - Auto Merge 2D Seismic Interpretation.pdf
Petrel - Auto Merge 2D Seismic Interpretation.pdfPetrel - Auto Merge 2D Seismic Interpretation.pdf
Petrel - Auto Merge 2D Seismic Interpretation.pdf
Β 
Energy efficient reverse skyline query processing over wireless sensor networks
Energy efficient reverse skyline query processing over wireless sensor networksEnergy efficient reverse skyline query processing over wireless sensor networks
Energy efficient reverse skyline query processing over wireless sensor networks
Β 
Inspirational applications of deep learning
Inspirational applications of deep learningInspirational applications of deep learning
Inspirational applications of deep learning
Β 
Winner of EY NextWave Data Science Challenge 2019
Winner of EY NextWave Data Science Challenge 2019Winner of EY NextWave Data Science Challenge 2019
Winner of EY NextWave Data Science Challenge 2019
Β 
1st Place in EY Data Science Challenge
1st Place in EY Data Science Challenge 1st Place in EY Data Science Challenge
1st Place in EY Data Science Challenge
Β 
Finite Element Analysis
Finite Element Analysis Finite Element Analysis
Finite Element Analysis
Β 
duoliu-resume-Oct7
duoliu-resume-Oct7duoliu-resume-Oct7
duoliu-resume-Oct7
Β 
Convolutional Deep Belief Networks for Scalable Unsupervised Learning of Hier...
Convolutional Deep Belief Networks for Scalable Unsupervised Learning of Hier...Convolutional Deep Belief Networks for Scalable Unsupervised Learning of Hier...
Convolutional Deep Belief Networks for Scalable Unsupervised Learning of Hier...
Β 
res1
res1res1
res1
Β 
2014 IEEE JAVA DATA MINING PROJECT Mining weakly labeled web facial images fo...
2014 IEEE JAVA DATA MINING PROJECT Mining weakly labeled web facial images fo...2014 IEEE JAVA DATA MINING PROJECT Mining weakly labeled web facial images fo...
2014 IEEE JAVA DATA MINING PROJECT Mining weakly labeled web facial images fo...
Β 

Recently uploaded

BabyOno dropshipping via API with DroFx.pptx
BabyOno dropshipping via API with DroFx.pptxBabyOno dropshipping via API with DroFx.pptx
BabyOno dropshipping via API with DroFx.pptxolyaivanovalion
Β 
Unveiling Insights: The Role of a Data Analyst
Unveiling Insights: The Role of a Data AnalystUnveiling Insights: The Role of a Data Analyst
Unveiling Insights: The Role of a Data AnalystSamantha Rae Coolbeth
Β 
Dubai Call Girls Wifey O52&786472 Call Girls Dubai
Dubai Call Girls Wifey O52&786472 Call Girls DubaiDubai Call Girls Wifey O52&786472 Call Girls Dubai
Dubai Call Girls Wifey O52&786472 Call Girls Dubaihf8803863
Β 
B2 Creative Industry Response Evaluation.docx
B2 Creative Industry Response Evaluation.docxB2 Creative Industry Response Evaluation.docx
B2 Creative Industry Response Evaluation.docxStephen266013
Β 
꧁❀ Greater Noida Call Girls Delhi ❀꧂ 9711199171 ☎️ Hard And Sexy Vip Call
꧁❀ Greater Noida Call Girls Delhi ❀꧂ 9711199171 ☎️ Hard And Sexy Vip Call꧁❀ Greater Noida Call Girls Delhi ❀꧂ 9711199171 ☎️ Hard And Sexy Vip Call
꧁❀ Greater Noida Call Girls Delhi ❀꧂ 9711199171 ☎️ Hard And Sexy Vip Callshivangimorya083
Β 
Customer Service Analytics - Make Sense of All Your Data.pptx
Customer Service Analytics - Make Sense of All Your Data.pptxCustomer Service Analytics - Make Sense of All Your Data.pptx
Customer Service Analytics - Make Sense of All Your Data.pptxEmmanuel Dauda
Β 
VIP High Class Call Girls Jamshedpur Anushka 8250192130 Independent Escort Se...
VIP High Class Call Girls Jamshedpur Anushka 8250192130 Independent Escort Se...VIP High Class Call Girls Jamshedpur Anushka 8250192130 Independent Escort Se...
VIP High Class Call Girls Jamshedpur Anushka 8250192130 Independent Escort Se...Suhani Kapoor
Β 
VidaXL dropshipping via API with DroFx.pptx
VidaXL dropshipping via API with DroFx.pptxVidaXL dropshipping via API with DroFx.pptx
VidaXL dropshipping via API with DroFx.pptxolyaivanovalion
Β 
Ukraine War presentation: KNOW THE BASICS
Ukraine War presentation: KNOW THE BASICSUkraine War presentation: KNOW THE BASICS
Ukraine War presentation: KNOW THE BASICSAishani27
Β 
Invezz.com - Grow your wealth with trading signals
Invezz.com - Grow your wealth with trading signalsInvezz.com - Grow your wealth with trading signals
Invezz.com - Grow your wealth with trading signalsInvezz1
Β 
CebaBaby dropshipping via API with DroFX.pptx
CebaBaby dropshipping via API with DroFX.pptxCebaBaby dropshipping via API with DroFX.pptx
CebaBaby dropshipping via API with DroFX.pptxolyaivanovalion
Β 
Beautiful Sapna Vip Call Girls Hauz Khas 9711199012 Call /Whatsapps
Beautiful Sapna Vip  Call Girls Hauz Khas 9711199012 Call /WhatsappsBeautiful Sapna Vip  Call Girls Hauz Khas 9711199012 Call /Whatsapps
Beautiful Sapna Vip Call Girls Hauz Khas 9711199012 Call /Whatsappssapnasaifi408
Β 
Midocean dropshipping via API with DroFx
Midocean dropshipping via API with DroFxMidocean dropshipping via API with DroFx
Midocean dropshipping via API with DroFxolyaivanovalion
Β 
VIP Call Girls in Amravati Aarohi 8250192130 Independent Escort Service Amravati
VIP Call Girls in Amravati Aarohi 8250192130 Independent Escort Service AmravatiVIP Call Girls in Amravati Aarohi 8250192130 Independent Escort Service Amravati
VIP Call Girls in Amravati Aarohi 8250192130 Independent Escort Service AmravatiSuhani Kapoor
Β 
Low Rate Call Girls Bhilai Anika 8250192130 Independent Escort Service Bhilai
Low Rate Call Girls Bhilai Anika 8250192130 Independent Escort Service BhilaiLow Rate Call Girls Bhilai Anika 8250192130 Independent Escort Service Bhilai
Low Rate Call Girls Bhilai Anika 8250192130 Independent Escort Service BhilaiSuhani Kapoor
Β 
Ravak dropshipping via API with DroFx.pptx
Ravak dropshipping via API with DroFx.pptxRavak dropshipping via API with DroFx.pptx
Ravak dropshipping via API with DroFx.pptxolyaivanovalion
Β 
Brighton SEO | April 2024 | Data Storytelling
Brighton SEO | April 2024 | Data StorytellingBrighton SEO | April 2024 | Data Storytelling
Brighton SEO | April 2024 | Data StorytellingNeil Barnes
Β 
VIP Call Girls Service Miyapur Hyderabad Call +91-8250192130
VIP Call Girls Service Miyapur Hyderabad Call +91-8250192130VIP Call Girls Service Miyapur Hyderabad Call +91-8250192130
VIP Call Girls Service Miyapur Hyderabad Call +91-8250192130Suhani Kapoor
Β 
Smarteg dropshipping via API with DroFx.pptx
Smarteg dropshipping via API with DroFx.pptxSmarteg dropshipping via API with DroFx.pptx
Smarteg dropshipping via API with DroFx.pptxolyaivanovalion
Β 

Recently uploaded (20)

BabyOno dropshipping via API with DroFx.pptx
BabyOno dropshipping via API with DroFx.pptxBabyOno dropshipping via API with DroFx.pptx
BabyOno dropshipping via API with DroFx.pptx
Β 
Unveiling Insights: The Role of a Data Analyst
Unveiling Insights: The Role of a Data AnalystUnveiling Insights: The Role of a Data Analyst
Unveiling Insights: The Role of a Data Analyst
Β 
Delhi 99530 vip 56974 Genuine Escort Service Call Girls in Kishangarh
Delhi 99530 vip 56974 Genuine Escort Service Call Girls in  KishangarhDelhi 99530 vip 56974 Genuine Escort Service Call Girls in  Kishangarh
Delhi 99530 vip 56974 Genuine Escort Service Call Girls in Kishangarh
Β 
Dubai Call Girls Wifey O52&786472 Call Girls Dubai
Dubai Call Girls Wifey O52&786472 Call Girls DubaiDubai Call Girls Wifey O52&786472 Call Girls Dubai
Dubai Call Girls Wifey O52&786472 Call Girls Dubai
Β 
B2 Creative Industry Response Evaluation.docx
B2 Creative Industry Response Evaluation.docxB2 Creative Industry Response Evaluation.docx
B2 Creative Industry Response Evaluation.docx
Β 
꧁❀ Greater Noida Call Girls Delhi ❀꧂ 9711199171 ☎️ Hard And Sexy Vip Call
꧁❀ Greater Noida Call Girls Delhi ❀꧂ 9711199171 ☎️ Hard And Sexy Vip Call꧁❀ Greater Noida Call Girls Delhi ❀꧂ 9711199171 ☎️ Hard And Sexy Vip Call
꧁❀ Greater Noida Call Girls Delhi ❀꧂ 9711199171 ☎️ Hard And Sexy Vip Call
Β 
Customer Service Analytics - Make Sense of All Your Data.pptx
Customer Service Analytics - Make Sense of All Your Data.pptxCustomer Service Analytics - Make Sense of All Your Data.pptx
Customer Service Analytics - Make Sense of All Your Data.pptx
Β 
VIP High Class Call Girls Jamshedpur Anushka 8250192130 Independent Escort Se...
VIP High Class Call Girls Jamshedpur Anushka 8250192130 Independent Escort Se...VIP High Class Call Girls Jamshedpur Anushka 8250192130 Independent Escort Se...
VIP High Class Call Girls Jamshedpur Anushka 8250192130 Independent Escort Se...
Β 
VidaXL dropshipping via API with DroFx.pptx
VidaXL dropshipping via API with DroFx.pptxVidaXL dropshipping via API with DroFx.pptx
VidaXL dropshipping via API with DroFx.pptx
Β 
Ukraine War presentation: KNOW THE BASICS
Ukraine War presentation: KNOW THE BASICSUkraine War presentation: KNOW THE BASICS
Ukraine War presentation: KNOW THE BASICS
Β 
Invezz.com - Grow your wealth with trading signals
Invezz.com - Grow your wealth with trading signalsInvezz.com - Grow your wealth with trading signals
Invezz.com - Grow your wealth with trading signals
Β 
CebaBaby dropshipping via API with DroFX.pptx
CebaBaby dropshipping via API with DroFX.pptxCebaBaby dropshipping via API with DroFX.pptx
CebaBaby dropshipping via API with DroFX.pptx
Β 
Beautiful Sapna Vip Call Girls Hauz Khas 9711199012 Call /Whatsapps
Beautiful Sapna Vip  Call Girls Hauz Khas 9711199012 Call /WhatsappsBeautiful Sapna Vip  Call Girls Hauz Khas 9711199012 Call /Whatsapps
Beautiful Sapna Vip Call Girls Hauz Khas 9711199012 Call /Whatsapps
Β 
Midocean dropshipping via API with DroFx
Midocean dropshipping via API with DroFxMidocean dropshipping via API with DroFx
Midocean dropshipping via API with DroFx
Β 
VIP Call Girls in Amravati Aarohi 8250192130 Independent Escort Service Amravati
VIP Call Girls in Amravati Aarohi 8250192130 Independent Escort Service AmravatiVIP Call Girls in Amravati Aarohi 8250192130 Independent Escort Service Amravati
VIP Call Girls in Amravati Aarohi 8250192130 Independent Escort Service Amravati
Β 
Low Rate Call Girls Bhilai Anika 8250192130 Independent Escort Service Bhilai
Low Rate Call Girls Bhilai Anika 8250192130 Independent Escort Service BhilaiLow Rate Call Girls Bhilai Anika 8250192130 Independent Escort Service Bhilai
Low Rate Call Girls Bhilai Anika 8250192130 Independent Escort Service Bhilai
Β 
Ravak dropshipping via API with DroFx.pptx
Ravak dropshipping via API with DroFx.pptxRavak dropshipping via API with DroFx.pptx
Ravak dropshipping via API with DroFx.pptx
Β 
Brighton SEO | April 2024 | Data Storytelling
Brighton SEO | April 2024 | Data StorytellingBrighton SEO | April 2024 | Data Storytelling
Brighton SEO | April 2024 | Data Storytelling
Β 
VIP Call Girls Service Miyapur Hyderabad Call +91-8250192130
VIP Call Girls Service Miyapur Hyderabad Call +91-8250192130VIP Call Girls Service Miyapur Hyderabad Call +91-8250192130
VIP Call Girls Service Miyapur Hyderabad Call +91-8250192130
Β 
Smarteg dropshipping via API with DroFx.pptx
Smarteg dropshipping via API with DroFx.pptxSmarteg dropshipping via API with DroFx.pptx
Smarteg dropshipping via API with DroFx.pptx
Β 

The skyline operator lee, woonghee

  • 1. The Skyline Operator Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001. Lee, Woonghee M.S. student at the Big Data Mining Lab. Department of computer science and engineering at the Hanyang University July 24th - August 07th, 2015
  • 2. Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001. Contents ● Introduction: What is the Skyline? ● SQL’s Extensions ● Implementation β€’ Two dimensional dddddddd β€’ Block-nested-loops algorithm β€’ Divide-and-conquer algorithm  Experiments and results
  • 3. Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001. Introduction  Holiday to Nassau (Bahamas)  To look for a hotel cheap and close to the beach  Two goals(distance, price) are complementary as the hotels near the beach tend to be more expensive
  • 4. Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001. Introduction: Definition of the Skyline  Interesting hotels are not worse than any other hotels.  The set of interesting hotels are the Skyline.
  • 5. Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001. Introduction: Definition of the Skyline  Interesting hotels are not worse than any other hotels.  The set of interesting hotels are the Skyline. A This set is dominated by A ex) Hotel A <$80, 0.7 miles> dominates Hotel B <$120, 1.0 miles> B
  • 6. Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001. Introduction: Definition of the Skyline β€’ Definition of the Skyline 𝐿𝑒𝑑 π‘£π‘’π‘π‘‘π‘œπ‘Ÿπ‘  β„Žπ‘–, β„Žπ‘— ∈ 𝑅 𝑛 𝑏𝑒 β„Žπ‘– =< π‘₯𝑖1, … , π‘₯𝑖𝑛 >, β„Žπ‘— =< π‘₯𝑗1, … , π‘₯𝑗𝑛 >. 𝐼𝑓 π‘Žπ‘™π‘™ π‘₯π‘–π‘˜ π‘Žπ‘Ÿπ‘’ π‘π‘’π‘‘π‘‘π‘’π‘Ÿ π‘‘β„Žπ‘Žπ‘› π‘Žπ‘›π‘‘ π‘’π‘žπ‘’π‘Žπ‘™ π‘‘π‘œ π‘₯π‘—π‘˜, π‘Žπ‘›π‘‘ π‘Žπ‘‘ π‘™π‘’π‘Žπ‘ π‘‘ π‘œπ‘›π‘’ π‘₯𝑖𝑙 𝑖𝑠 π‘π‘’π‘‘π‘‘π‘’π‘Ÿ π‘‘β„Žπ‘Žπ‘› π‘₯𝑗𝑙, β„Žπ‘– ≻ β„Žπ‘—
  • 7. Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001. Introduction: Applied the Skyline  To propose interesting hotels  To find good salesperson which have low salary  To derive database visualization
  • 8. Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001. SQL’s Extensions  To propose to extend SQL’s SELECT statement by an optional SKYLINE OF clause
  • 9. Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001. SQL’s Extensions  Ex) The price of a hotel should be minimized The rating should be maximized dimension of the Skyline To specify whether the value in each dimension should be minimized, maximized or be different
  • 10. Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001. SQL’s Extensions: SKYLINE OF clause  Tuple 𝑝 = (𝑝1, … , 𝑝 π‘˜, 𝑝 π‘˜+1, … , 𝑝𝑙, 𝑝𝑙+1, … , 𝑝 π‘š, 𝑝 π‘š+1, … , 𝑝 𝑛)dominates tuple q = (π‘ž1, … , π‘ž π‘˜, π‘ž π‘˜+1, … , π‘žπ‘™, π‘žπ‘™+1, … , π‘ž π‘š, π‘ž π‘š+1, … , π‘ž 𝑛)for a Skyline query SKYLINE OF 𝑑1MIN, …, 𝑑 π‘˜MIN, 𝑑 π‘˜+1MAX, …, 𝑑𝑙MAX, 𝑑𝑙+1DIFF, …, 𝑑 π‘šDIFF if the following three conditions hold: 𝑝𝑖 ≀ π‘žπ‘– π‘“π‘œπ‘Ÿ π‘Žπ‘™π‘™ 𝑖 = 1, … , π‘˜ 𝑝𝑖 β‰₯ π‘žπ‘– π‘“π‘œπ‘Ÿ π‘Žπ‘™π‘™ 𝑖 = π‘˜ + 1 , … , 𝑙 𝑝𝑖 = π‘žπ‘– π‘“π‘œπ‘Ÿ π‘Žπ‘™π‘™ 𝑖 = (𝑙 + 1), … , π‘š
  • 11. Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001. SQL’s Extensions: SKYLINE OF clause  If two tuples have the same values for all attributes and are not dominated, both are part of the result (if no distinct).  A one dimensional Skyline is equivalent a min, max, or distinct SQL query.  Dominance is a transitive relation; if 𝑝 dominates π‘ž and π‘ž dominates π‘Ÿ, then 𝑝 dominates π‘Ÿ.
  • 12. Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001. SQL’s Extensions: Example Skyline Queries
  • 13. Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001. Implementation of the Skyline Operation  Nested SQL query  Two dimensional sorting  Three variants based on a block-nested-loops algorithm  Three variants based on divide-and-conquer
  • 14. Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001. Implementation: Nested SQL query Same with the SKYLINE OF clause but poor performance
  • 15. Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001. Implementation: Nested SQL query The reasons why this approach shows very poor performance:  This query cannot be unnested.  If this query involves a π‘—π‘œπ‘–π‘› or π‘”π‘Ÿπ‘œπ‘’π‘ 𝑏𝑦, the π‘—π‘œπ‘–π‘› or π‘”π‘Ÿπ‘œπ‘’π‘ 𝑏𝑦 might execute as the outer query and as the subquery.  Combining with other operations (e.g., π‘—π‘œπ‘–π‘› or π‘‡π‘œπ‘ 𝑁) might cause additional cost to compute the Skyline.
  • 16. Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001. Implementation: Two Dimensional  A one-dimensional Skyline is equivalent to computing the π‘šπ‘–π‘›, π‘šπ‘Žπ‘₯, or 𝑑𝑖𝑠𝑑𝑖𝑛𝑐𝑑.  Computing two-dimensional Skyline is also easy by sorting the data (It just needs to compare with the last previous tuple).
  • 17. Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001.  A one-dimensional Skyline is equivalent to computing the π‘šπ‘–π‘›, π‘šπ‘Žπ‘₯, or 𝑑𝑖𝑠𝑑𝑖𝑛𝑐𝑑.  Computing two-dimensional Skyline is also easy by sorting the data (It just needs to compare with the last previous tuple). Implementation: Two Dimensional Skyline
  • 18. Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001.  Definition the Skyline at 2-dimensional 𝐿𝑒𝑑 𝐴, 𝐡 𝑏𝑒 π‘£π‘’π‘π‘‘π‘œπ‘Ÿπ‘  𝑖𝑛 𝑅2, π‘Žπ‘›π‘‘ 𝐴𝑖 =< π‘₯𝑖, 𝑦𝑖 >, 𝐡𝑗 =< π‘₯𝑗, 𝑦𝑗 > π‘“π‘œπ‘Ÿ π‘Žπ‘™π‘™ 𝑖, 𝑗. 𝐴 ∝ 𝐡 π‘€β„Žπ‘’π‘› π‘₯𝑖 < π‘₯𝑗 π‘Žπ‘›π‘‘ 𝑦𝑖 ≀ 𝑦𝑗 π‘œπ‘Ÿ π‘₯𝑖 ≀ π‘₯𝑗 π‘Žπ‘›π‘‘ 𝑦𝑖 < 𝑦𝑗 π‘œπ‘Ÿ π‘₯𝑖 < π‘₯𝑗 π‘Žπ‘›π‘‘ 𝑦𝑖 < 𝑦𝑗. Implementation: Two Dimensional
  • 19. Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001. i j k dominate no dominate  To prove 2-dimensional Skyline Algorithm π‘π‘Ÿπ‘’π‘šπ‘–π‘ π‘’ 1: 𝑖 < π‘˜, β„Žπ‘– ∝ β„Ž π‘˜. π‘π‘Ÿπ‘’π‘šπ‘–π‘ π‘’ 2: β„Žπ‘– ≻ β„Žπ‘—. π‘π‘Ÿπ‘’π‘šπ‘–π‘ π‘’ 3: π‘Ž < 𝑏, π‘“π‘œπ‘Ÿ π‘Žπ‘™π‘™ β„Ž π‘Ž, β„Ž 𝑏, π‘₯ π‘Ž < π‘₯ 𝑏. π‘π‘Ÿπ‘œπ‘π‘œπ‘ π‘–π‘‘π‘–π‘œπ‘›: βˆ€ π‘˜ < 𝑗, β„Ž π‘˜ ≻ β„Žπ‘—. Implementation: Two Dimensional
  • 20. Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001.  To prove 2-dimensional Skyline Algorithm 𝐿𝑒𝑑 π‘’π‘Žπ‘β„Ž π‘£π‘’π‘π‘‘π‘œπ‘Ÿπ‘  π‘π‘œπ‘›π‘ π‘–π‘ π‘‘ π‘œπ‘“ π‘’π‘™π‘’π‘šπ‘’π‘›π‘‘π‘  < π‘₯, 𝑦 >. π‘†π‘–π‘šπ‘–π‘™π‘Žπ‘Ÿπ‘™π‘¦ π‘ƒπ‘Ÿπ‘’π‘šπ‘–π‘ π‘’ 2, π‘“π‘œπ‘Ÿ π‘Žπ‘™π‘™ β„Žπ‘–, β„Žπ‘— β†’ 𝑦𝑖 > 𝑦𝑗 ∡ 2 βˆ’ 𝐷 π‘†π‘˜π‘¦π‘™π‘–π‘›π‘’ π‘‘π‘’π‘“π‘–π‘›π‘’π‘‘π‘–π‘œπ‘› π‘Žπ‘›π‘‘ π‘ƒπ‘Ÿπ‘’π‘šπ‘–π‘ π‘’ 3 . 𝐿𝑒𝑑 𝑒𝑠 π‘π‘Žπ‘™π‘™ 𝑖𝑑 𝑖𝑠 π‘π‘Ÿπ‘’π‘šπ‘–π‘ π‘’ 4. Implementation: Two Dimensional
  • 21. Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001.  To prove 2-dimensional Skyline Algorithm 𝐿𝑒𝑑 π‘Žπ‘ π‘ π‘’π‘šπ‘’ β„Ž π‘˜ ∝ β„Žπ‘—, 𝑖. 𝑒. , 𝑦 π‘˜ ≀ 𝑦𝑗. π΅π‘’π‘π‘Žπ‘’π‘ π‘’ π‘œπ‘“ π‘₯ π‘˜ < π‘₯𝑗(∡ Implementation: Two Dimensional
  • 22. Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001. Implementation: Two Dimensional  However, more than two-dimensions does not work to get the Skyline by sorting the data. β„Ž1 is not β„Ž3’s direct predecessor. rating (star)
  • 23. Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001. Implementation: BNL Algorithms Basic Block-nested-loops Algorithm Idea β€’ reads repeatedly the set of tuples like the naive nested- loops algorithm. β€’ keeps a π‘€π‘–π‘›π‘‘π‘œπ‘€ of incomparable tuples in main memory. 1. BNL-basic 2. BNL-sol 3. BNL-solrep
  • 24. Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001. Implementation: BNL Algorithms Basic Block-nested-loops Algorithm Steps: 1. A tuple 𝑝 is read from the input. 2. 𝑝 is compared to all tuples of the π‘€π‘–π‘›π‘‘π‘œπ‘€. 3. Based on step 2, 𝑝 is either eliminated, placed into the π‘€π‘–π‘›π‘‘π‘œπ‘€ or into a π‘‘π‘’π‘šπ‘π‘œπ‘Ÿπ‘Žπ‘Ÿπ‘¦ 𝑓𝑖𝑙𝑒. 1. BNL-basic 2. BNL-sol 3. BNL-solrep
  • 25. Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001. Implementation: BNL Algorithms Basic Block-nested-loops Algorithm β€’ After an iteration, three cases can occur: 1. 𝑝 is dominated by a tuple within the π‘€π‘–π‘›π‘‘π‘œπ‘€. 2. 𝑝 dominates one or more tuples in the π‘€π‘–π‘›π‘‘π‘œπ‘€. 3. 𝑝 is incomparable with all tuples in the π‘€π‘–π‘›π‘‘π‘œπ‘€. Complexity: The best case is O(𝑛). The worst case is 𝑂(𝑛2 ). 1. BNL-basic 2. BNL-sol 3. BNL-solrep
  • 26. Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001. Implementation: BNL Algorithms Demonstration BNL-basic1. BNL-basic 2. BNL-sol 3. BNL-solrep <h1, $50, 0.9 miles> <h2, $50, 1.0 miles> <h3, $55, 1.0 miles> <h4, $52, 0.7 miles> <h5, $49, 1.0 miles> <h6, $51, 0.7 miles> Data set Window Temporary file …
  • 27. Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001. Implementation: BNL Algorithms Demonstration BNL-basic1. BNL-basic 2. BNL-sol 3. BNL-solrep <h1, $50, 0.9 miles> t = 1 <h1, $50, 0.9 miles> <h2, $50, 1.0 miles> <h3, $55, 1.0 miles> <h4, $52, 0.7 miles> <h5, $49, 1.0 miles> <h6, $51, 0.7 miles> Data set Window Temporary file time stamp t to do not compare two tuples are never compared twice …
  • 28. Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001. Implementation: BNL Algorithms Demonstration BNL-basic1. BNL-basic 2. BNL-sol 3. BNL-solrep <h1, $50, 0.9 miles> t = 1 <h1, $50, 0.9 miles> <h2, $50, 1.0 miles> <h3, $55, 1.0 miles> <h4, $52, 0.7 miles> <h5, $49, 1.0 miles> <h6, $51, 0.7 miles> Data set Window Temporary file compare …
  • 29. Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001. Implementation: BNL Algorithms Demonstration BNL-basic1. BNL-basic 2. BNL-sol 3. BNL-solrep <h1, $50, 0.9 miles> t = 1 <h1, $50, 0.9 miles> <h2, $50, 1.0 miles> <h3, $55, 1.0 miles> <h4, $52, 0.7 miles> <h5, $49, 1.0 miles> <h6, $51, 0.7 miles> Data set Window Temporary file dominated …
  • 30. Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001. Implementation: BNL Algorithms Demonstration BNL-basic1. BNL-basic 2. BNL-sol 3. BNL-solrep <h1, $50, 0.9 miles> t = 1 <h1, $50, 0.9 miles> <h2, $50, 1.0 miles> <h3, $55, 1.0 miles> <h4, $52, 0.7 miles> <h5, $49, 1.0 miles> <h6, $51, 0.7 miles> Data set Window Temporary file dominated …
  • 31. Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001. Implementation: BNL Algorithms Demonstration BNL-basic1. BNL-basic 2. BNL-sol 3. BNL-solrep <h1, $50, 0.9 miles> t = 1 <h1, $50, 0.9 miles> <h2, $50, 1.0 miles> <h3, $55, 1.0 miles> <h4, $52, 0.7 miles> <h5, $49, 1.0 miles> <h6, $51, 0.7 miles> Data set Window Temporary file incomparable …
  • 32. Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001. Implementation: BNL Algorithms Demonstration BNL-basic1. BNL-basic 2. BNL-sol 3. BNL-solrep <h1, $50, 0.9 miles> t = 1 <h4, $52, 0.7 miles> t = 2<h1, $50, 0.9 miles> <h2, $50, 1.0 miles> <h3, $55, 1.0 miles> <h4, $52, 0.7 miles> <h5, $49, 1.0 miles> <h6, $51, 0.7 miles> Data set Window Temporary file incomparable …
  • 33. Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001. Implementation: BNL Algorithms Demonstration BNL-basic1. BNL-basic 2. BNL-sol 3. BNL-solrep <h1, $50, 0.9 miles> t = 1 <h4, $52, 0.7 miles> t = 2<h1, $50, 0.9 miles> <h2, $50, 1.0 miles> <h3, $55, 1.0 miles> <h4, $52, 0.7 miles> <h5, $49, 1.0 miles> <h6, $51, 0.7 miles> Data set Window Temporary file incomparable …
  • 34. Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001. Implementation: BNL Algorithms Demonstration BNL-basic1. BNL-basic 2. BNL-sol 3. BNL-solrep <h1, $50, 0.9 miles> t = 1 <h4, $52, 0.7 miles> t = 2<h1, $50, 0.9 miles> <h2, $50, 1.0 miles> <h3, $55, 1.0 miles> <h4, $52, 0.7 miles> <h5, $49, 1.0 miles> <h6, $51, 0.7 miles> <h5, $49, 1.0 miles> t = 3 Data set Window Temporary file …
  • 35. Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001. Implementation: BNL Algorithms Demonstration BNL-basic1. BNL-basic 2. BNL-sol 3. BNL-solrep <h1, $50, 0.9 miles> t = 1 <h4, $52, 0.7 miles> t = 2<h1, $50, 0.9 miles> <h2, $50, 1.0 miles> <h3, $55, 1.0 miles> <h4, $52, 0.7 miles> <h5, $49, 1.0 miles> <h6, $51, 0.7 miles> <h5, $49, 1.0 miles> t = 3 Data set Window Temporary file compare dominated …
  • 36. Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001. Implementation: BNL Algorithms Demonstration BNL-basic1. BNL-basic 2. BNL-sol 3. BNL-solrep <h1, $50, 0.9 miles> t = 1 <h4, $52, 0.7 miles> t = 2<h1, $50, 0.9 miles> <h2, $50, 1.0 miles> <h3, $55, 1.0 miles> <h4, $52, 0.7 miles> <h5, $49, 1.0 miles> <h6, $51, 0.7 miles> <h5, $49, 1.0 miles> t = 3 Data set Window Temporary file removed …
  • 37. Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001. Implementation: BNL Algorithms Demonstration BNL-basic1. BNL-basic 2. BNL-sol 3. BNL-solrep <h1, $50, 0.9 miles> t = 1 <h6, $51, 0.7 miles> t = 4<h1, $50, 0.9 miles> <h2, $50, 1.0 miles> <h3, $55, 1.0 miles> <h4, $52, 0.7 miles> <h5, $49, 1.0 miles> <h6, $51, 0.7 miles> <h5, $49, 1.0 miles> t = 3 Data set Window Temporary file replace …
  • 38. Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001. Implementation: BNL Algorithms Demonstration BNL-basic1. BNL-basic 2. BNL-sol 3. BNL-solrep <h1, $50, 0.9 miles> t = 1 <h6, $51, 0.7 miles> t = 4<h1, $50, 0.9 miles> <h2, $50, 1.0 miles> <h3, $55, 1.0 miles> <h4, $52, 0.7 miles> <h5, $49, 1.0 miles> <h6, $51, 0.7 miles> <h5, $49, 1.0 miles> t = 3 … Data set Window Temporary file output window at the end of the iteration … iterate until EOF
  • 39. Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001. Implementation: BNL Algorithms Demonstration BNL-basic1. BNL-basic 2. BNL-sol 3. BNL-solrep <h1, $50, 0.9 miles> <h2, $50, 1.0 miles> <h3, $55, 1.0 miles> <h4, $52, 0.7 miles> <h5, $49, 1.0 miles> <h6, $51, 0.7 miles> <h5, $49, 1.0 miles> t = 3 … Data set Window Temporary file next iteration …
  • 40. Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001. Implementation: BNL Algorithms Basic Block-nested-loops Algorithm β€’ It works well if the Skyline fits into the window. β€’ The best case complexity is 𝑂(𝑛). β€’ The worst case complexity is 𝑂(𝑛2). β€’ It is better I/O behavior than the naive nested-loops algorithm(Haas, Carey, Livny and Shukla 1997). 1. BNL-basic 2. BNL-sol 3. BNL-solrep
  • 41. Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001. Implementation: BNL Algorithms Maintaining the Window as a Self-organizing List β€’ To speed up comparison a tuple in the window β€’ To move up a tuple in the window which dominates another tuple in input 1. BNL-basic 2. BNL-sol 3. BNL-solrep … <h2, $50, 0.8 miles> t = 2 <h5, $49, 1.0 miles> t = 3 Window … <h7, $49, 1.2 miles> … Data set dominates move up to the first line of the window
  • 42. Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001. Implementation: BNL Algorithms Maintaining the Window as a Self-organizing List β€’ Attractive if the data is skewed (i.e. better performance if there are a couple of π‘˜π‘–π‘™π‘™π‘’π‘Ÿ tuples which dominate many other tuples, and better performance if there are many π‘›π‘’π‘’π‘‘π‘Ÿπ‘Žπ‘™ tuples in the Skyline.) 1. BNL-basic 2. BNL-sol 3. BNL-solrep killer tuple dominated by killer tuple neutral tuples neutral tuples
  • 43. Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001. Implementation: BNL Algorithms Replacing Tuples in the Window1. BNL-basic 2. BNL-sol 3. BNL-solrep <h1, $50, 1.0 miles> t = 1 <h2, $59, 0.9 miles> t = 2 Window … <h3, $60, 0.1 miles> … Data set incomparable no memory
  • 44. Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001. Implementation: BNL Algorithms Replacing Tuples in the Window1. BNL-basic 2. BNL-sol 3. BNL-solrep <h1, $50, 1.0 miles> t = 1 <h2, $59, 0.9 miles> t = 2 Window … <h3, $60, 0.1 miles> … Data set replacing 0 0.2 0.4 0.6 0.8 1 1.2 48 50 52 54 56 58 60 62 h1 h2 h3
  • 45. Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001. Implementation: BNL Algorithms Replacing Tuples in the Window1. BNL-basic 2. BNL-sol 3. BNL-solrep <h1, $50, 1.0 miles> t = 1 <h3, $60, 0.1 miles> t = 3 Window … <h3, $60, 0.1 miles> … Data set replacing 0 0.2 0.4 0.6 0.8 1 1.2 48 50 52 54 56 58 60 62 h1 h2 h3
  • 46. Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001. Implementation: BNL Algorithms Replacing Tuples in the Window β€’ Replacing when new tuple can dominate more tuples β€’ Many replacement policies; π‘π‘Ÿπ‘–π‘π‘’ βˆ— π‘‘π‘–π‘ π‘‘π‘Žπ‘›π‘π‘’ β€’ Additional CPU cost needed β€’ Two tuples in the temporary file might be compared twice. 1. BNL-basic 2. BNL-sol 3. BNL-solrep <h1, $50, 1.0 miles> t = 1 <h3, $60, 0.1 miles> t = 3 Window … <h3, $60, 0.1 miles> … Data set
  • 47. Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001. Implementation: D&C Algorithm The worst case and best case complexity is 𝑂 𝑛 βˆ— log 𝑛 π‘‘βˆ’2 + 𝑂(𝑛 βˆ— log 𝑛) where 𝑛 is the number of input tuples and 𝑑 is the number of dimensions (Kung, Luccio and Preparata 1975). (unlikely for the BNL, the best case is O 𝑛 and the worst case is O(𝑛2 )) 1. D&C-basic 2. D&C-mpt 3. D&C-mptesk
  • 48. Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001. Implementation: D&C Algorithm Basic Divide and Conquer Algorithm Steps: 1. Compute the approximate median π‘š 𝑝 of the input for some dimension 𝑑 𝑝. Divide the input two partitions by π‘š 𝑝. 2. Compute the Skyline 𝑆1 of 𝑃1 and 𝑆2 of 𝑃2. 𝑃1 and 𝑃2 are recursively partitioned until a partition has one or few tuples. Then computing the Skyline is trivial. 3. Compute the overall Skyline as merging 𝑆1 and 𝑆2. 1. D&C-basic 2. D&C-mpt 3. D&C-mptesk
  • 49. Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001. Implementation: D&C Algorithm Basic Divide and Conquer Algorithm Steps: At the step 3, partition both 𝑆1 and 𝑆2 by approximate median π‘š 𝑔 for dimension 𝑑 𝑔(β‰  𝑑 𝑝). Then we obtain partition 𝑆1,1, 𝑆1,2, 𝑆2,1 and 𝑆2,2 1. D&C-basic 2. D&C-mpt 3. D&C-mptesk
  • 50. Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001. Implementation: D&C Algorithm Pseudo-code1. D&C-basic 2. D&C-mpt 3. D&C-mptesk 𝑴: input of the Skyline operation; a set of 𝑑- dimensional points 𝑹: output of the Skyline operation; a set of 𝑑- dimensional points 𝒑 β‰Ί 𝒒: point 𝒑 is dominated by point 𝒒 function SkylineBasic M, Dimension begin if 𝑀 = 1 then return 𝑀 π‘ƒπ‘–π‘£π‘œπ‘‘ ≔ Median π‘š π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› π‘š ∈ 𝑀 𝑃1, 𝑃2 ≔ Partition 𝑀, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›, π‘ƒπ‘–π‘£π‘œπ‘‘ 𝑆1 ≔ SkylineBasic(𝑃1, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›) 𝑆2 ≔ SkylineBasic 𝑃2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› return 𝑆1 ⋃ MergeBasic(𝑆1, 𝑆2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›) end function MergeBasic(𝑆1, 𝑆2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›) begin if 𝑆1 = {𝑝} then 𝑅 ≔ π‘ž ∈ 𝑆2 𝑝 ≻ π‘ž else if 𝑆2 = π‘ž then begin for each 𝑝 ∈ 𝑆1 do if 𝑝 β‰Ί π‘ž then 𝑅 ≔ πœ™ end else if π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› = 2 then begin 𝑀𝑖𝑛 ≔ Minimum{𝑝1|𝑝 ∈ 𝑆1} 𝑅 ≔ π‘ž ∈ 𝑆2 π‘ž1 < 𝑀𝑖𝑛 end else begin π‘ƒπ‘–π‘£π‘œπ‘‘ ≔ Median 𝑝 π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›βˆ’1 𝑝 ∈ 𝑆1 𝑆1,1, 𝑆1,2 ≔ Partition 𝑆1, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› βˆ’ 1, π‘ƒπ‘–π‘£π‘œπ‘‘ 𝑆2,1, 𝑆2,2 ≔ Partition 𝑆2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› βˆ’ 1, π‘ƒπ‘–π‘£π‘œπ‘‘ 𝑅1 ≔ MergeBasic 𝑆1,1, 𝑆2,1, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› 𝑅2 ≔ MergeBasic 𝑆1,2, 𝑆2,2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› 𝑅3 ≔ MergeBasic 𝑆1,1, 𝑅2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› βˆ’ 1 𝑅 ≔ 𝑅1 βˆͺ 𝑅3 end return R end See also Preparata et al. (1993), Computational Geometry, pp. 161-164, Springer.
  • 51. Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001. Implementation: D&C Algorithm At the merge basic function:1. D&C-basic 2. D&C-mpt 3. D&C-mptesk 𝑆1,1 𝑆1,2 𝑆2,1 𝑆2,2 π‘šπ‘’π‘‘π‘–π‘Žπ‘› 𝑝 π‘šπ‘’π‘‘π‘–π‘Žπ‘› 𝑔
  • 52. Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001. Implementation: D&C Algorithm At the merge basic function:1. D&C-basic 2. D&C-mpt 3. D&C-mptesk 𝑆1,1 𝑆1,2 𝑆2,1 𝑆2,2 π‘šπ‘’π‘‘π‘–π‘Žπ‘› 𝑝 π‘šπ‘’π‘‘π‘–π‘Žπ‘› 𝑔
  • 53. Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001. Implementation: D&C Algorithm At the merge basic function:1. D&C-basic 2. D&C-mpt 3. D&C-mptesk 𝑆1,1 𝑆1,2 𝑆2,1 𝑆2,2 π‘šπ‘’π‘‘π‘–π‘Žπ‘› 𝑝 π‘šπ‘’π‘‘π‘–π‘Žπ‘› 𝑔
  • 54. Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001. Implementation: D&C Algorithm At the merge basic function:1. D&C-basic 2. D&C-mpt 3. D&C-mptesk 𝑆1,1 𝑆1,2 𝑆2,1 𝑆2,2 π‘šπ‘’π‘‘π‘–π‘Žπ‘› 𝑝 π‘šπ‘’π‘‘π‘–π‘Žπ‘› 𝑔
  • 55. Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001. Implementation: D&C Algorithm Pseudo-code1. D&C-basic 2. D&C-mpt 3. D&C-mptesk 𝑴: input of the Skyline operation; a set of 𝑑-dimensional points 𝑹: output of the Skyline operation; a set of 𝑑-dimensional points 𝒑 β‰Ί 𝒒: point 𝒑 is dominated by point 𝒒 function SkylineBasic M, Dimension begin if 𝑀 = 1 then return 𝑀 π‘ƒπ‘–π‘£π‘œπ‘‘ ≔ Median π‘š π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› π‘š ∈ 𝑀 𝑃1, 𝑃2 ≔ Partition 𝑀, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›, π‘ƒπ‘–π‘£π‘œπ‘‘ 𝑆1 ≔ SkylineBasic(𝑃1, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›) 𝑆2 ≔ SkylineBasic 𝑃2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› return 𝑆1 ⋃ MergeBasic(𝑆1, 𝑆2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›) end function MergeBasic(𝑆1, 𝑆2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›) begin if 𝑆1 = {𝑝} then 𝑅 ≔ π‘ž ∈ 𝑆2 𝑝 ≻ π‘ž else if 𝑆2 = π‘ž then begin for each 𝑝 ∈ 𝑆1 do if 𝑝 β‰Ί π‘ž then 𝑅 ≔ πœ™ end else if π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› = 2 then begin 𝑀𝑖𝑛 ≔ Minimum{𝑝1|𝑝 ∈ 𝑆1} 𝑅 ≔ π‘ž ∈ 𝑆2 π‘ž1 < 𝑀𝑖𝑛 end else begin π‘ƒπ‘–π‘£π‘œπ‘‘ ≔ Median 𝑝 π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›βˆ’1 𝑝 ∈ 𝑆1 𝑆1,1, 𝑆1,2 ≔ Partition 𝑆1, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› βˆ’ 1, π‘ƒπ‘–π‘£π‘œπ‘‘ 𝑆2,1, 𝑆2,2 ≔ Partition 𝑆2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› βˆ’ 1, π‘ƒπ‘–π‘£π‘œπ‘‘ 𝑅1 ≔ MergeBasic 𝑆1,1, 𝑆2,1, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› 𝑅2 ≔ MergeBasic 𝑆1,2, 𝑆2,2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› 𝑅3 ≔ MergeBasic 𝑆1,1, 𝑅2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› βˆ’ 1 𝑅 ≔ 𝑅1 βˆͺ 𝑅3 end return R end See also Preparata et al. (1993), Computational Geometry, pp. 161-164, Springer.
  • 56. Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001. Implementation: D&C Algorithm Pseudo-code1. D&C-basic 2. D&C-mpt 3. D&C-mptesk 𝑴: input of the Skyline operation; a set of 𝑑-dimensional points 𝑹: output of the Skyline operation; a set of 𝑑-dimensional points 𝒑 β‰Ί 𝒒: point 𝒑 is dominated by point 𝒒 function SkylineBasic M, Dimension begin if 𝑀 = 1 then return 𝑀 π‘ƒπ‘–π‘£π‘œπ‘‘ ≔ Median π‘š π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› π‘š ∈ 𝑀 𝑃1, 𝑃2 ≔ Partition 𝑀, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›, π‘ƒπ‘–π‘£π‘œπ‘‘ 𝑆1 ≔ SkylineBasic(𝑃1, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›) 𝑆2 ≔ SkylineBasic 𝑃2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› return 𝑆1 ⋃ MergeBasic(𝑆1, 𝑆2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›) end
  • 57. Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001. Implementation: D&C Algorithm Pseudo-code1. D&C-basic 2. D&C-mpt 3. D&C-mptesk 𝑴: input of the Skyline operation; a set of 𝑑-dimensional points 𝑹: output of the Skyline operation; a set of 𝑑-dimensional points 𝒑 β‰Ί 𝒒: point 𝒑 is dominated by point 𝒒 function SkylineBasic M, Dimension begin if 𝑀 = 1 then return 𝑀 π‘ƒπ‘–π‘£π‘œπ‘‘ ≔ Median π‘š π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› π‘š ∈ 𝑀 𝑃1, 𝑃2 ≔ Partition 𝑀, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›, π‘ƒπ‘–π‘£π‘œπ‘‘ 𝑆1 ≔ SkylineBasic(𝑃1, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›) 𝑆2 ≔ SkylineBasic 𝑃2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› return 𝑆1 ⋃ MergeBasic(𝑆1, 𝑆2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›) end
  • 58. Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001. Implementation: D&C Algorithm Pseudo-code1. D&C-basic 2. D&C-mpt 3. D&C-mptesk 𝑴: input of the Skyline operation; a set of 𝑑-dimensional points 𝑹: output of the Skyline operation; a set of 𝑑-dimensional points 𝒑 β‰Ί 𝒒: point 𝒑 is dominated by point 𝒒 function SkylineBasic M, Dimension begin if 𝑀 = 1 then return 𝑀 π‘ƒπ‘–π‘£π‘œπ‘‘ ≔ Median π‘š π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› π‘š ∈ 𝑀 𝑃1, 𝑃2 ≔ Partition 𝑀, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›, π‘ƒπ‘–π‘£π‘œπ‘‘ 𝑆1 ≔ SkylineBasic(𝑃1, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›) 𝑆2 ≔ SkylineBasic 𝑃2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› return 𝑆1 ⋃ MergeBasic(𝑆1, 𝑆2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›) end
  • 59. Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001. Implementation: D&C Algorithm Pseudo-code1. D&C-basic 2. D&C-mpt 3. D&C-mptesk 𝑴: input of the Skyline operation; a set of 𝑑-dimensional points 𝑹: output of the Skyline operation; a set of 𝑑-dimensional points 𝒑 β‰Ί 𝒒: point 𝒑 is dominated by point 𝒒 function SkylineBasic M, Dimension begin if 𝑀 = 1 then return 𝑀 π‘ƒπ‘–π‘£π‘œπ‘‘ ≔ Median π‘š π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› π‘š ∈ 𝑀 𝑃1, 𝑃2 ≔ Partition 𝑀, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›, π‘ƒπ‘–π‘£π‘œπ‘‘ 𝑆1 ≔ SkylineBasic(𝑃1, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›) 𝑆2 ≔ SkylineBasic 𝑃2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› return 𝑆1 ⋃ MergeBasic(𝑆1, 𝑆2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›) end
  • 60. Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001. Implementation: D&C Algorithm Pseudo-code1. D&C-basic 2. D&C-mpt 3. D&C-mptesk 𝑴: input of the Skyline operation; a set of 𝑑-dimensional points 𝑹: output of the Skyline operation; a set of 𝑑-dimensional points 𝒑 β‰Ί 𝒒: point 𝒑 is dominated by point 𝒒 function SkylineBasic M, Dimension begin if 𝑀 = 1 then return 𝑀 π‘ƒπ‘–π‘£π‘œπ‘‘ ≔ Median π‘š π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› π‘š ∈ 𝑀 𝑃1, 𝑃2 ≔ Partition 𝑀, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›, π‘ƒπ‘–π‘£π‘œπ‘‘ 𝑆1 ≔ SkylineBasic(𝑃1, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›) 𝑆2 ≔ SkylineBasic 𝑃2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› return 𝑆1 ⋃ MergeBasic(𝑆1, 𝑆2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›) end
  • 61. Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001. Implementation: D&C Algorithm Pseudo-code1. D&C-basic 2. D&C-mpt 3. D&C-mptesk 𝑴: input of the Skyline operation; a set of 𝑑-dimensional points 𝑹: output of the Skyline operation; a set of 𝑑-dimensional points 𝒑 β‰Ί 𝒒: point 𝒑 is dominated by point 𝒒 function SkylineBasic M, Dimension begin if 𝑀 = 1 then return 𝑀 π‘ƒπ‘–π‘£π‘œπ‘‘ ≔ Median π‘š π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› π‘š ∈ 𝑀 𝑃1, 𝑃2 ≔ Partition 𝑀, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›, π‘ƒπ‘–π‘£π‘œπ‘‘ 𝑆1 ≔ SkylineBasic(𝑃1, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›) 𝑆2 ≔ SkylineBasic 𝑃2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› return 𝑆1 ⋃ MergeBasic(𝑆1, 𝑆2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›) end
  • 62. Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001. Implementation: D&C Algorithm Pseudo-code1. D&C-basic 2. D&C-mpt 3. D&C-mptesk 𝑴: input of the Skyline operation; a set of 𝑑-dimensional points 𝑹: output of the Skyline operation; a set of 𝑑-dimensional points 𝒑 β‰Ί 𝒒: point 𝒑 is dominated by point 𝒒 function SkylineBasic M, Dimension begin if 𝑀 = 1 then return 𝑀 π‘ƒπ‘–π‘£π‘œπ‘‘ ≔ Median π‘š π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› π‘š ∈ 𝑀 𝑃1, 𝑃2 ≔ Partition 𝑀, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›, π‘ƒπ‘–π‘£π‘œπ‘‘ 𝑆1 ≔ SkylineBasic(𝑃1, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›) 𝑆2 ≔ SkylineBasic 𝑃2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› return 𝑆1 ⋃ MergeBasic(𝑆1, 𝑆2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›) end
  • 63. Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001. Implementation: D&C Algorithm Pseudo-code1. D&C-basic 2. D&C-mpt 3. D&C-mptesk 𝑴: input of the Skyline operation; a set of 𝑑-dimensional points 𝑹: output of the Skyline operation; a set of 𝑑-dimensional points 𝒑 β‰Ί 𝒒: point 𝒑 is dominated by point 𝒒 function SkylineBasic M, Dimension begin if 𝑀 = 1 then return 𝑀 π‘ƒπ‘–π‘£π‘œπ‘‘ ≔ Median π‘š π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› π‘š ∈ 𝑀 𝑃1, 𝑃2 ≔ Partition 𝑀, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›, π‘ƒπ‘–π‘£π‘œπ‘‘ 𝑆1 ≔ SkylineBasic(𝑃1, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›) 𝑆2 ≔ SkylineBasic 𝑃2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› return 𝑆1 ⋃ MergeBasic(𝑆1, 𝑆2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›) end
  • 64. Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001. Implementation: D&C Algorithm 1. D&C-basic 2. D&C-mpt 3. D&C-mptesk function MergeBasic(𝑆1, 𝑆2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›) begin if 𝑆1 = {𝑝} then 𝑅 ≔ π‘ž ∈ 𝑆2 𝑝 ≻ π‘ž else if 𝑆2 = π‘ž then begin for each 𝑝 ∈ 𝑆1 do if 𝑝 β‰Ί π‘ž then 𝑅 ≔ πœ™ end else if π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› = 2 then begin 𝑀𝑖𝑛 ≔ Minimum{𝑝1|𝑝 ∈ 𝑆1} 𝑅 ≔ π‘ž ∈ 𝑆2 π‘ž1 < 𝑀𝑖𝑛 end else begin π‘ƒπ‘–π‘£π‘œπ‘‘ ≔ Median 𝑝 π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›βˆ’1 𝑝 ∈ 𝑆1 𝑆1,1, 𝑆1,2 ≔ Partition 𝑆1, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› βˆ’ 1, π‘ƒπ‘–π‘£π‘œπ‘‘ 𝑆2,1, 𝑆2,2 ≔ Partition 𝑆2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› βˆ’ 1, π‘ƒπ‘–π‘£π‘œπ‘‘ 𝑅1 ≔ MergeBasic 𝑆1,1, 𝑆2,1, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› 𝑅2 ≔ MergeBasic 𝑆1,2, 𝑆2,2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› 𝑅3 ≔ MergeBasic 𝑆1,1, 𝑅2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› βˆ’ 1 𝑅 ≔ 𝑅1 βˆͺ 𝑅3 end return R end See also Preparata et al. (1993), Computational Geometry, pp. 161-164, Springer.
  • 65. Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001. Implementation: D&C Algorithm 1. D&C-basic 2. D&C-mpt 3. D&C-mptesk function MergeBasic(𝑆1, 𝑆2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›) begin if 𝑆1 = {𝑝} then 𝑅 ≔ π‘ž ∈ 𝑆2 𝑝 ≻ π‘ž else if 𝑆2 = π‘ž then begin for each 𝑝 ∈ 𝑆1 do if 𝑝 β‰Ί π‘ž then 𝑅 ≔ πœ™ end else if π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› = 2 then begin 𝑀𝑖𝑛 ≔ Minimum{𝑝1|𝑝 ∈ 𝑆1} 𝑅 ≔ π‘ž ∈ 𝑆2 π‘ž1 < 𝑀𝑖𝑛 end else begin π‘ƒπ‘–π‘£π‘œπ‘‘ ≔ Median 𝑝 π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›βˆ’1 𝑝 ∈ 𝑆1 𝑆1,1, 𝑆1,2 ≔ Partition 𝑆1, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› βˆ’ 1, π‘ƒπ‘–π‘£π‘œπ‘‘ 𝑆2,1, 𝑆2,2 ≔ Partition 𝑆2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› βˆ’ 1, π‘ƒπ‘–π‘£π‘œπ‘‘ 𝑅1 ≔ MergeBasic 𝑆1,1, 𝑆2,1, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› 𝑅2 ≔ MergeBasic 𝑆1,2, 𝑆2,2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› 𝑅3 ≔ MergeBasic 𝑆1,1, 𝑅2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› βˆ’ 1 𝑅 ≔ 𝑅1 βˆͺ 𝑅3 end return R end See also Preparata et al. (1993), Computational Geometry, pp. 161-164, Springer.
  • 66. Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001. Implementation: D&C Algorithm 1. D&C-basic 2. D&C-mpt 3. D&C-mptesk function MergeBasic(𝑆1, 𝑆2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›) begin if 𝑆1 = {𝑝} then 𝑅 ≔ π‘ž ∈ 𝑆2 𝑝 ≻ π‘ž else if 𝑆2 = π‘ž then begin for each 𝑝 ∈ 𝑆1 do if 𝑝 β‰Ί π‘ž then 𝑅 ≔ πœ™ end else if π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› = 2 then begin 𝑀𝑖𝑛 ≔ Minimum{𝑝1|𝑝 ∈ 𝑆1} 𝑅 ≔ π‘ž ∈ 𝑆2 π‘ž1 < 𝑀𝑖𝑛 end else begin π‘ƒπ‘–π‘£π‘œπ‘‘ ≔ Median 𝑝 π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›βˆ’1 𝑝 ∈ 𝑆1 𝑆1,1, 𝑆1,2 ≔ Partition 𝑆1, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› βˆ’ 1, π‘ƒπ‘–π‘£π‘œπ‘‘ 𝑆2,1, 𝑆2,2 ≔ Partition 𝑆2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› βˆ’ 1, π‘ƒπ‘–π‘£π‘œπ‘‘ 𝑅1 ≔ MergeBasic 𝑆1,1, 𝑆2,1, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› 𝑅2 ≔ MergeBasic 𝑆1,2, 𝑆2,2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› 𝑅3 ≔ MergeBasic 𝑆1,1, 𝑅2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› βˆ’ 1 𝑅 ≔ 𝑅1 βˆͺ 𝑅3 end return R end See also Preparata et al. (1993), Computational Geometry, pp. 161-164, Springer.
  • 67. Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001. Implementation: D&C Algorithm 1. D&C-basic 2. D&C-mpt 3. D&C-mptesk function MergeBasic(𝑆1, 𝑆2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›) begin if 𝑆1 = {𝑝} then 𝑅 ≔ π‘ž ∈ 𝑆2 𝑝 ≻ π‘ž else if 𝑆2 = π‘ž then begin for each 𝑝 ∈ 𝑆1 do if 𝑝 β‰Ί π‘ž then 𝑅 ≔ πœ™ end else if π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› = 2 then begin 𝑀𝑖𝑛 ≔ Minimum{𝑝1|𝑝 ∈ 𝑆1} 𝑅 ≔ π‘ž ∈ 𝑆2 π‘ž1 < 𝑀𝑖𝑛 end else begin π‘ƒπ‘–π‘£π‘œπ‘‘ ≔ Median 𝑝 π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›βˆ’1 𝑝 ∈ 𝑆1 𝑆1,1, 𝑆1,2 ≔ Partition 𝑆1, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› βˆ’ 1, π‘ƒπ‘–π‘£π‘œπ‘‘ 𝑆2,1, 𝑆2,2 ≔ Partition 𝑆2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› βˆ’ 1, π‘ƒπ‘–π‘£π‘œπ‘‘ 𝑅1 ≔ MergeBasic 𝑆1,1, 𝑆2,1, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› 𝑅2 ≔ MergeBasic 𝑆1,2, 𝑆2,2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› 𝑅3 ≔ MergeBasic 𝑆1,1, 𝑅2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› βˆ’ 1 𝑅 ≔ 𝑅1 βˆͺ 𝑅3 end return R end See also Preparata et al. (1993), Computational Geometry, pp. 161-164, Springer.
  • 68. Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001. Implementation: D&C Algorithm 1. D&C-basic 2. D&C-mpt 3. D&C-mptesk function MergeBasic(𝑆1, 𝑆2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›) begin if 𝑆1 = {𝑝} then 𝑅 ≔ π‘ž ∈ 𝑆2 𝑝 ≻ π‘ž else if 𝑆2 = π‘ž then begin for each 𝑝 ∈ 𝑆1 do if 𝑝 β‰Ί π‘ž then 𝑅 ≔ πœ™ end else if π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› = 2 then begin 𝑀𝑖𝑛 ≔ Minimum{𝑝1|𝑝 ∈ 𝑆1} 𝑅 ≔ π‘ž ∈ 𝑆2 π‘ž1 < 𝑀𝑖𝑛 end else begin π‘ƒπ‘–π‘£π‘œπ‘‘ ≔ Median 𝑝 π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›βˆ’1 𝑝 ∈ 𝑆1 𝑆1,1, 𝑆1,2 ≔ Partition 𝑆1, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› βˆ’ 1, π‘ƒπ‘–π‘£π‘œπ‘‘ 𝑆2,1, 𝑆2,2 ≔ Partition 𝑆2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› βˆ’ 1, π‘ƒπ‘–π‘£π‘œπ‘‘ 𝑅1 ≔ MergeBasic 𝑆1,1, 𝑆2,1, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› 𝑅2 ≔ MergeBasic 𝑆1,2, 𝑆2,2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› 𝑅3 ≔ MergeBasic 𝑆1,1, 𝑅2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› βˆ’ 1 𝑅 ≔ 𝑅1 βˆͺ 𝑅3 end return R end See also Preparata et al. (1993), Computational Geometry, pp. 161-164, Springer.
  • 69. Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001. Implementation: D&C Algorithm 1. D&C-basic 2. D&C-mpt 3. D&C-mptesk function MergeBasic(𝑆1, 𝑆2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›) begin if 𝑆1 = {𝑝} then 𝑅 ≔ π‘ž ∈ 𝑆2 𝑝 ≻ π‘ž else if 𝑆2 = π‘ž then begin for each 𝑝 ∈ 𝑆1 do if 𝑝 β‰Ί π‘ž then 𝑅 ≔ πœ™ end else if π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› = 2 then begin 𝑀𝑖𝑛 ≔ Minimum{𝑝1|𝑝 ∈ 𝑆1} 𝑅 ≔ π‘ž ∈ 𝑆2 π‘ž1 < 𝑀𝑖𝑛 end else begin π‘ƒπ‘–π‘£π‘œπ‘‘ ≔ Median 𝑝 π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›βˆ’1 𝑝 ∈ 𝑆1 𝑆1,1, 𝑆1,2 ≔ Partition 𝑆1, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› βˆ’ 1, π‘ƒπ‘–π‘£π‘œπ‘‘ 𝑆2,1, 𝑆2,2 ≔ Partition 𝑆2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› βˆ’ 1, π‘ƒπ‘–π‘£π‘œπ‘‘ 𝑅1 ≔ MergeBasic 𝑆1,1, 𝑆2,1, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› 𝑅2 ≔ MergeBasic 𝑆1,2, 𝑆2,2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› 𝑅3 ≔ MergeBasic 𝑆1,1, 𝑅2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› βˆ’ 1 𝑅 ≔ 𝑅1 βˆͺ 𝑅3 end return R end See also Preparata et al. (1993), Computational Geometry, pp. 161-164, Springer.
  • 70. Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001. Implementation: D&C Algorithm 1. D&C-basic 2. D&C-mpt 3. D&C-mptesk function MergeBasic(𝑆1, 𝑆2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›) begin if 𝑆1 = {𝑝} then 𝑅 ≔ π‘ž ∈ 𝑆2 𝑝 ≻ π‘ž else if 𝑆2 = π‘ž then begin for each 𝑝 ∈ 𝑆1 do if 𝑝 β‰Ί π‘ž then 𝑅 ≔ πœ™ end else if π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› = 2 then begin 𝑀𝑖𝑛 ≔ Minimum{𝑝1|𝑝 ∈ 𝑆1} 𝑅 ≔ π‘ž ∈ 𝑆2 π‘ž1 < 𝑀𝑖𝑛 end else begin π‘ƒπ‘–π‘£π‘œπ‘‘ ≔ Median 𝑝 π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›βˆ’1 𝑝 ∈ 𝑆1 𝑆1,1, 𝑆1,2 ≔ Partition 𝑆1, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› βˆ’ 1, π‘ƒπ‘–π‘£π‘œπ‘‘ 𝑆2,1, 𝑆2,2 ≔ Partition 𝑆2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› βˆ’ 1, π‘ƒπ‘–π‘£π‘œπ‘‘ 𝑅1 ≔ MergeBasic 𝑆1,1, 𝑆2,1, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› 𝑅2 ≔ MergeBasic 𝑆1,2, 𝑆2,2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› 𝑅3 ≔ MergeBasic 𝑆1,1, 𝑅2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› βˆ’ 1 𝑅 ≔ 𝑅1 βˆͺ 𝑅3 end return R end See also Preparata et al. (1993), Computational Geometry, pp. 161-164, Springer.
  • 71. Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001. Implementation: D&C Algorithm 1. D&C-basic 2. D&C-mpt 3. D&C-mptesk function MergeBasic(𝑆1, 𝑆2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›) begin if 𝑆1 = {𝑝} then 𝑅 ≔ π‘ž ∈ 𝑆2 𝑝 ≻ π‘ž else if 𝑆2 = π‘ž then begin for each 𝑝 ∈ 𝑆1 do if 𝑝 β‰Ί π‘ž then 𝑅 ≔ πœ™ end else if π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› = 2 then begin 𝑀𝑖𝑛 ≔ Minimum{𝑝1|𝑝 ∈ 𝑆1} 𝑅 ≔ π‘ž ∈ 𝑆2 π‘ž1 < 𝑀𝑖𝑛 end else begin π‘ƒπ‘–π‘£π‘œπ‘‘ ≔ Median 𝑝 π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›βˆ’1 𝑝 ∈ 𝑆1 𝑆1,1, 𝑆1,2 ≔ Partition 𝑆1, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› βˆ’ 1, π‘ƒπ‘–π‘£π‘œπ‘‘ 𝑆2,1, 𝑆2,2 ≔ Partition 𝑆2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› βˆ’ 1, π‘ƒπ‘–π‘£π‘œπ‘‘ 𝑅1 ≔ MergeBasic 𝑆1,1, 𝑆2,1, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› 𝑅2 ≔ MergeBasic 𝑆1,2, 𝑆2,2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› 𝑅3 ≔ MergeBasic 𝑆1,1, 𝑅2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› βˆ’ 1 𝑅 ≔ 𝑅1 βˆͺ 𝑅3 end return R end See also Preparata et al. (1993), Computational Geometry, pp. 161-164, Springer.
  • 72. Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001. Implementation: D&C Algorithm 1. D&C-basic 2. D&C-mpt 3. D&C-mptesk function MergeBasic(𝑆1, 𝑆2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›) begin if 𝑆1 = {𝑝} then 𝑅 ≔ π‘ž ∈ 𝑆2 𝑝 ≻ π‘ž else if 𝑆2 = π‘ž then begin for each 𝑝 ∈ 𝑆1 do if 𝑝 β‰Ί π‘ž then 𝑅 ≔ πœ™ end else if π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› = 2 then begin 𝑀𝑖𝑛 ≔ Minimum{𝑝1|𝑝 ∈ 𝑆1} 𝑅 ≔ π‘ž ∈ 𝑆2 π‘ž1 < 𝑀𝑖𝑛 end else begin π‘ƒπ‘–π‘£π‘œπ‘‘ ≔ Median 𝑝 π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›βˆ’1 𝑝 ∈ 𝑆1 𝑆1,1, 𝑆1,2 ≔ Partition 𝑆1, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› βˆ’ 1, π‘ƒπ‘–π‘£π‘œπ‘‘ 𝑆2,1, 𝑆2,2 ≔ Partition 𝑆2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› βˆ’ 1, π‘ƒπ‘–π‘£π‘œπ‘‘ 𝑅1 ≔ MergeBasic 𝑆1,1, 𝑆2,1, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› 𝑅2 ≔ MergeBasic 𝑆1,2, 𝑆2,2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› 𝑅3 ≔ MergeBasic 𝑆1,1, 𝑅2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› βˆ’ 1 𝑅 ≔ 𝑅1 βˆͺ 𝑅3 end return R end See also Preparata et al. (1993), Computational Geometry, pp. 161-164, Springer.
  • 73. Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001. Implementation: D&C Algorithm 1. D&C-basic 2. D&C-mpt 3. D&C-mptesk function MergeBasic(𝑆1, 𝑆2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›) begin if 𝑆1 = {𝑝} then 𝑅 ≔ π‘ž ∈ 𝑆2 𝑝 ≻ π‘ž else if 𝑆2 = π‘ž then begin for each 𝑝 ∈ 𝑆1 do if 𝑝 β‰Ί π‘ž then 𝑅 ≔ πœ™ end else if π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› = 2 then begin 𝑀𝑖𝑛 ≔ Minimum{𝑝1|𝑝 ∈ 𝑆1} 𝑅 ≔ π‘ž ∈ 𝑆2 π‘ž1 < 𝑀𝑖𝑛 end else begin π‘ƒπ‘–π‘£π‘œπ‘‘ ≔ Median 𝑝 π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›βˆ’1 𝑝 ∈ 𝑆1 𝑆1,1, 𝑆1,2 ≔ Partition 𝑆1, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› βˆ’ 1, π‘ƒπ‘–π‘£π‘œπ‘‘ 𝑆2,1, 𝑆2,2 ≔ Partition 𝑆2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› βˆ’ 1, π‘ƒπ‘–π‘£π‘œπ‘‘ 𝑅1 ≔ MergeBasic 𝑆1,1, 𝑆2,1, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› 𝑅2 ≔ MergeBasic 𝑆1,2, 𝑆2,2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› 𝑅3 ≔ MergeBasic 𝑆1,1, 𝑅2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› βˆ’ 1 𝑅 ≔ 𝑅1 βˆͺ 𝑅3 end return R end See also Preparata et al. (1993), Computational Geometry, pp. 161-164, Springer.
  • 74. Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001. Implementation: D&C Algorithm 1. D&C-basic 2. D&C-mpt 3. D&C-mptesk function MergeBasic(𝑆1, 𝑆2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›) begin if 𝑆1 = {𝑝} then 𝑅 ≔ π‘ž ∈ 𝑆2 𝑝 ≻ π‘ž else if 𝑆2 = π‘ž then begin for each 𝑝 ∈ 𝑆1 do if 𝑝 β‰Ί π‘ž then 𝑅 ≔ πœ™ end else if π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› = 2 then begin 𝑀𝑖𝑛 ≔ Minimum{𝑝1|𝑝 ∈ 𝑆1} 𝑅 ≔ π‘ž ∈ 𝑆2 π‘ž1 < 𝑀𝑖𝑛 end else begin π‘ƒπ‘–π‘£π‘œπ‘‘ ≔ Median 𝑝 π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›βˆ’1 𝑝 ∈ 𝑆1 𝑆1,1, 𝑆1,2 ≔ Partition 𝑆1, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› βˆ’ 1, π‘ƒπ‘–π‘£π‘œπ‘‘ 𝑆2,1, 𝑆2,2 ≔ Partition 𝑆2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› βˆ’ 1, π‘ƒπ‘–π‘£π‘œπ‘‘ 𝑅1 ≔ MergeBasic 𝑆1,1, 𝑆2,1, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› 𝑅2 ≔ MergeBasic 𝑆1,2, 𝑆2,2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› 𝑅3 ≔ MergeBasic 𝑆1,1, 𝑅2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› βˆ’ 1 𝑅 ≔ 𝑅1 βˆͺ 𝑅3 end return R end See also Preparata et al. (1993), Computational Geometry, pp. 161-164, Springer.
  • 75. Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001. Implementation: D&C Algorithm 1. D&C-basic 2. D&C-mpt 3. D&C-mptesk function MergeBasic(𝑆1, 𝑆2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›) begin if 𝑆1 = {𝑝} then 𝑅 ≔ π‘ž ∈ 𝑆2 𝑝 ≻ π‘ž else if 𝑆2 = π‘ž then begin for each 𝑝 ∈ 𝑆1 do if 𝑝 β‰Ί π‘ž then 𝑅 ≔ πœ™ end else if π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› = 2 then begin 𝑀𝑖𝑛 ≔ Minimum{𝑝1|𝑝 ∈ 𝑆1} 𝑅 ≔ π‘ž ∈ 𝑆2 π‘ž1 < 𝑀𝑖𝑛 end else begin π‘ƒπ‘–π‘£π‘œπ‘‘ ≔ Median 𝑝 π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›βˆ’1 𝑝 ∈ 𝑆1 𝑆1,1, 𝑆1,2 ≔ Partition 𝑆1, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› βˆ’ 1, π‘ƒπ‘–π‘£π‘œπ‘‘ 𝑆2,1, 𝑆2,2 ≔ Partition 𝑆2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› βˆ’ 1, π‘ƒπ‘–π‘£π‘œπ‘‘ 𝑅1 ≔ MergeBasic 𝑆1,1, 𝑆2,1, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› 𝑅2 ≔ MergeBasic 𝑆1,2, 𝑆2,2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› 𝑅3 ≔ MergeBasic 𝑆1,1, 𝑅2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› βˆ’ 1 𝑅 ≔ 𝑅1 βˆͺ 𝑅3 end return R end See also Preparata et al. (1993), Computational Geometry, pp. 161-164, Springer.
  • 76. Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001. Implementation: D&C Algorithm 1. D&C-basic 2. D&C-mpt 3. D&C-mptesk function MergeBasic(𝑆1, 𝑆2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›) begin if 𝑆1 = {𝑝} then 𝑅 ≔ π‘ž ∈ 𝑆2 𝑝 ≻ π‘ž else if 𝑆2 = π‘ž then begin for each 𝑝 ∈ 𝑆1 do if 𝑝 β‰Ί π‘ž then 𝑅 ≔ πœ™ end else if π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› = 2 then begin 𝑀𝑖𝑛 ≔ Minimum{𝑝1|𝑝 ∈ 𝑆1} 𝑅 ≔ π‘ž ∈ 𝑆2 π‘ž1 < 𝑀𝑖𝑛 end else begin π‘ƒπ‘–π‘£π‘œπ‘‘ ≔ Median 𝑝 π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›βˆ’1 𝑝 ∈ 𝑆1 𝑆1,1, 𝑆1,2 ≔ Partition 𝑆1, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› βˆ’ 1, π‘ƒπ‘–π‘£π‘œπ‘‘ 𝑆2,1, 𝑆2,2 ≔ Partition 𝑆2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› βˆ’ 1, π‘ƒπ‘–π‘£π‘œπ‘‘ 𝑅1 ≔ MergeBasic 𝑆1,1, 𝑆2,1, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› 𝑅2 ≔ MergeBasic 𝑆1,2, 𝑆2,2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› 𝑅3 ≔ MergeBasic 𝑆1,1, 𝑅2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› βˆ’ 1 𝑅 ≔ 𝑅1 βˆͺ 𝑅3 end return R end See also Preparata et al. (1993), Computational Geometry, pp. 161-164, Springer.
  • 77. Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001. Implementation: D&C Algorithm 1. D&C-basic 2. D&C-mpt 3. D&C-mptesk function MergeBasic(𝑆1, 𝑆2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›) begin if 𝑆1 = {𝑝} then 𝑅 ≔ π‘ž ∈ 𝑆2 𝑝 ≻ π‘ž else if 𝑆2 = π‘ž then begin for each 𝑝 ∈ 𝑆1 do if 𝑝 β‰Ί π‘ž then 𝑅 ≔ πœ™ end else if π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› = 2 then begin 𝑀𝑖𝑛 ≔ Minimum{𝑝1|𝑝 ∈ 𝑆1} 𝑅 ≔ π‘ž ∈ 𝑆2 π‘ž1 < 𝑀𝑖𝑛 end else begin π‘ƒπ‘–π‘£π‘œπ‘‘ ≔ Median 𝑝 π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›βˆ’1 𝑝 ∈ 𝑆1 𝑆1,1, 𝑆1,2 ≔ Partition 𝑆1, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› βˆ’ 1, π‘ƒπ‘–π‘£π‘œπ‘‘ 𝑆2,1, 𝑆2,2 ≔ Partition 𝑆2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› βˆ’ 1, π‘ƒπ‘–π‘£π‘œπ‘‘ 𝑅1 ≔ MergeBasic 𝑆1,1, 𝑆2,1, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› 𝑅2 ≔ MergeBasic 𝑆1,2, 𝑆2,2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› 𝑅3 ≔ MergeBasic 𝑆1,1, 𝑅2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› βˆ’ 1 𝑅 ≔ 𝑅1 βˆͺ 𝑅3 end return R end See also Preparata et al. (1993), Computational Geometry, pp. 161-164, Springer.
  • 78. Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001. Implementation: D&C Algorithm 1. D&C-basic 2. D&C-mpt 3. D&C-mptesk function MergeBasic(𝑆1, 𝑆2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›) begin if 𝑆1 = {𝑝} then 𝑅 ≔ π‘ž ∈ 𝑆2 𝑝 ≻ π‘ž else if 𝑆2 = π‘ž then begin for each 𝑝 ∈ 𝑆1 do if 𝑝 β‰Ί π‘ž then 𝑅 ≔ πœ™ end else if π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› = 2 then begin 𝑀𝑖𝑛 ≔ Minimum{𝑝1|𝑝 ∈ 𝑆1} 𝑅 ≔ π‘ž ∈ 𝑆2 π‘ž1 < 𝑀𝑖𝑛 end else begin π‘ƒπ‘–π‘£π‘œπ‘‘ ≔ Median 𝑝 π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›βˆ’1 𝑝 ∈ 𝑆1 𝑆1,1, 𝑆1,2 ≔ Partition 𝑆1, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› βˆ’ 1, π‘ƒπ‘–π‘£π‘œπ‘‘ 𝑆2,1, 𝑆2,2 ≔ Partition 𝑆2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› βˆ’ 1, π‘ƒπ‘–π‘£π‘œπ‘‘ 𝑅1 ≔ MergeBasic 𝑆1,1, 𝑆2,1, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› 𝑅2 ≔ MergeBasic 𝑆1,2, 𝑆2,2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› 𝑅3 ≔ MergeBasic 𝑆1,1, 𝑅2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› βˆ’ 1 𝑅 ≔ 𝑅1 βˆͺ 𝑅3 end return R end See also Preparata et al. (1993), Computational Geometry, pp. 161-164, Springer.
  • 79. Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001. Implementation: D&C Algorithm 1. D&C-basic 2. D&C-mpt 3. D&C-mptesk function MergeBasic(𝑆1, 𝑆2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›) begin if 𝑆1 = {𝑝} then 𝑅 ≔ π‘ž ∈ 𝑆2 𝑝 ≻ π‘ž else if 𝑆2 = π‘ž then begin for each 𝑝 ∈ 𝑆1 do if 𝑝 β‰Ί π‘ž then 𝑅 ≔ πœ™ end else if π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› = 2 then begin 𝑀𝑖𝑛 ≔ Minimum{𝑝1|𝑝 ∈ 𝑆1} 𝑅 ≔ π‘ž ∈ 𝑆2 π‘ž1 < 𝑀𝑖𝑛 end else begin π‘ƒπ‘–π‘£π‘œπ‘‘ ≔ Median 𝑝 π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›βˆ’1 𝑝 ∈ 𝑆1 𝑆1,1, 𝑆1,2 ≔ Partition 𝑆1, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› βˆ’ 1, π‘ƒπ‘–π‘£π‘œπ‘‘ 𝑆2,1, 𝑆2,2 ≔ Partition 𝑆2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› βˆ’ 1, π‘ƒπ‘–π‘£π‘œπ‘‘ 𝑅1 ≔ MergeBasic 𝑆1,1, 𝑆2,1, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› 𝑅2 ≔ MergeBasic 𝑆1,2, 𝑆2,2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› 𝑅3 ≔ MergeBasic 𝑆1,1, 𝑅2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› βˆ’ 1 𝑅 ≔ 𝑅1 βˆͺ 𝑅3 end return R end See also Preparata et al. (1993), Computational Geometry, pp. 161-164, Springer.
  • 80. Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001. Implementation: D&C Algorithm 1. D&C-basic 2. D&C-mpt 3. D&C-mptesk function MergeBasic(𝑆1, 𝑆2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›) begin if 𝑆1 = {𝑝} then 𝑅 ≔ π‘ž ∈ 𝑆2 𝑝 ≻ π‘ž else if 𝑆2 = π‘ž then begin for each 𝑝 ∈ 𝑆1 do if 𝑝 β‰Ί π‘ž then 𝑅 ≔ πœ™ end else if π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› = 2 then begin 𝑀𝑖𝑛 ≔ Minimum{𝑝1|𝑝 ∈ 𝑆1} 𝑅 ≔ π‘ž ∈ 𝑆2 π‘ž1 < 𝑀𝑖𝑛 end else begin π‘ƒπ‘–π‘£π‘œπ‘‘ ≔ Median 𝑝 π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›βˆ’1 𝑝 ∈ 𝑆1 𝑆1,1, 𝑆1,2 ≔ Partition 𝑆1, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› βˆ’ 1, π‘ƒπ‘–π‘£π‘œπ‘‘ 𝑆2,1, 𝑆2,2 ≔ Partition 𝑆2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› βˆ’ 1, π‘ƒπ‘–π‘£π‘œπ‘‘ 𝑅1 ≔ MergeBasic 𝑆1,1, 𝑆2,1, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› 𝑅2 ≔ MergeBasic 𝑆1,2, 𝑆2,2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› 𝑅3 ≔ MergeBasic 𝑆1,1, 𝑅2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› βˆ’ 1 𝑅 ≔ 𝑅1 βˆͺ 𝑅3 end return R end See also Preparata et al. (1993), Computational Geometry, pp. 161-164, Springer.
  • 81. Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001. Implementation: D&C Algorithm 1. D&C-basic 2. D&C-mpt 3. D&C-mptesk 𝑴: input of the Skyline operation; a set of 𝑑-dimensional points 𝑹: output of the Skyline operation; a set of 𝑑-dimensional points 𝒑 β‰Ί 𝒒: point 𝒑 is dominated by point 𝒒 function SkylineBasic M, Dimension begin if 𝑀 = 1 then return 𝑀 π‘ƒπ‘–π‘£π‘œπ‘‘ ≔ Median π‘š π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› π‘š ∈ 𝑀 𝑃1, 𝑃2 ≔ Partition 𝑀, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›, π‘ƒπ‘–π‘£π‘œπ‘‘ 𝑆1 ≔ SkylineBasic(𝑃1, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›) 𝑆2 ≔ SkylineBasic 𝑃2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› return 𝑆1 ⋃ MergeBasic(𝑆1, 𝑆2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›) end
  • 82. Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001. Implementation: D&C Algorithm M-way Partitioning β€’ To get better performance by I/O behavior than the basic algorithm β€’ To divide into π‘š partitions to fit into memory β€’ To be used in the first step and third step of the basic algorithm β€’ Partition by quantile rather than median 1. D&C-basic 2. D&C-mpt 3. D&C-mptesk
  • 83. Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001. Implementation: D&C Algorithm M-way Partitioning β€’ To be applied the basic algorithm at the first step, π‘š-way partitioning produces π‘š partitions 𝑃1, … , π‘ƒπ‘š to each 𝑃𝑖 fits into memory. β€’ At the third step of the basic algorithm, the π‘š-way partitioning is applied. β€’ All sub-partitions should occupy at most half of the memory. 1. D&C-basic 2. D&C-mpt 3. D&C-mptesk
  • 84. Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001. function π‘€π‘’π‘Ÿπ‘”π‘’π‘€π‘€π‘Žπ‘¦ 𝑆1, 𝑆2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› begin if 𝑆1 = {𝑝} then 𝑅 ≔ {π‘ž ∈ 𝑆2|𝑝 ≻ π‘ž} else if 𝑆2 = {π‘ž} then begin foreach 𝑝 ∈ 𝑆1 do if 𝑝 β‰Ί π‘ž then 𝑅 ≔ πœ™ end else if 𝑆1 + 𝑆2 < |π•Š| then 𝑅 ≔ π‘€π‘’π‘Ÿπ‘”π‘’π΅π‘Žπ‘ π‘–π‘(𝑆1, 𝑆2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›) else if π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› = 2 then begin 𝑀𝑖𝑛 ≔ π‘€π‘–π‘›π‘–π‘šπ‘’π‘š 𝑝1 𝑝 ∈ 𝑆1 𝑅 ≔ π‘ž ∈ 𝑆2 π‘ž1 < 𝑀𝑖𝑛 end else begin π‘ƒπ‘Žπ‘Ÿπ‘‘π‘–π‘‘π‘–π‘œπ‘›π‘  ≔ π‘€π‘Žπ‘₯π‘–π‘šπ‘’π‘š{ 𝑆1 π•Š 2 , 𝑆2 π•Š 2 } π‘„π‘’π‘Žπ‘›π‘‘π‘–π‘™π‘’π‘  ≔ 𝛼 βˆ’ π‘„π‘’π‘Žπ‘›π‘‘π‘–π‘™π‘’π‘ (𝑆1, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› βˆ’ 1, π‘ƒπ‘Žπ‘Ÿπ‘‘π‘–π‘–π‘œπ‘›π‘ ) 𝑆1,1, … , 𝑆1,π‘ƒπ‘Žπ‘Ÿπ‘‘π‘–π‘‘π‘–π‘œπ‘›π‘  ≔ π‘ƒπ‘Žπ‘Ÿπ‘‘π‘–π‘‘π‘–π‘œπ‘›π‘ (𝑆1, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› βˆ’ 1, π‘„π‘’π‘Žπ‘›π‘‘π‘–π‘™π‘’π‘ ) 𝑆2,1, … , 𝑆2,π‘ƒπ‘Žπ‘Ÿπ‘‘π‘–π‘‘π‘–π‘œπ‘›π‘  ≔ π‘ƒπ‘Žπ‘Ÿπ‘‘π‘–π‘‘π‘–π‘œπ‘›π‘ (𝑆2, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› βˆ’ 1, π‘„π‘’π‘Žπ‘›π‘‘π‘–π‘™π‘’π‘ ) 𝑅 ≔ πœ™ for 𝑗 ≔ 1 to π‘ƒπ‘Žπ‘Ÿπ‘‘π‘–π‘‘π‘–π‘œπ‘›π‘  do begin for 𝑖 ≔ 1 to 𝑗 do if 𝑖 < 𝑗 then 𝑆2,𝑗 ≔ π‘€π‘’π‘Ÿπ‘”π‘’π‘€π‘€π‘Žπ‘¦ 𝑆1,𝑖, 𝑆2,𝑗, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› βˆ’ 1 else 𝑆2,𝑗 ≔ π‘€π‘’π‘Ÿπ‘”π‘’π‘€π‘€π‘Žπ‘¦ 𝑆1,𝑖, 𝑆2,𝑗, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› π‘Žπ‘π‘π‘’π‘›π‘‘(𝑅, 𝑆2,𝑗) end end return 𝑅 end Implementation: D&C Algorithm Pseudo-code1. D&C-basic 2. D&C-mpt 3. D&C-mptesk 𝑴: input of the Skyline operation; a set of 𝑑-dimensional points 𝑹: output of the Skyline operation; a set of 𝑑-dimensional points π•Š: main memory; a set of 𝑑-dimensional points 𝒑 β‰Ί 𝒒: point 𝑝 is dominated by point π‘ž function SkylineMway(𝑀, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›) begin π‘ƒπ‘Žπ‘Ÿπ‘‘π‘–π‘‘π‘–π‘œπ‘›π‘  ≔ Minimum 2 𝑛 𝑛 ∈ 𝑁⋀ π•Š βˆ™ 2 𝑛 > 𝑀 π‘„π‘’π‘Žπ‘›π‘‘π‘–π‘™π‘’π‘  ≔ 𝛼 βˆ’ Quantiles 𝑀, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›, π‘ƒπ‘Žπ‘Ÿπ‘‘π‘–π‘‘π‘–π‘œπ‘›π‘  𝑃1, … , π‘ƒπ‘ƒπ‘Žπ‘Ÿπ‘‘π‘–π‘‘π‘–π‘œπ‘›π‘  ≔ Partition 𝑀, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘›, π‘„π‘’π‘Žπ‘›π‘‘π‘–π‘™π‘’π‘  for 𝑖 ≔ 1 to π‘ƒπ‘Žπ‘Ÿπ‘‘π‘–π‘‘π‘–π‘œπ‘›π‘  do if 𝑃𝑖 < |π•Š| then 𝑆𝑖 ≔ SkylineBasic 𝑃𝑖, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› else 𝑆𝑖 ≔ SkylineMway 𝑃𝑖, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› while π‘ƒπ‘Žπ‘Ÿπ‘‘π‘–π‘‘π‘–π‘œπ‘›π‘  > 1 do begin for 𝑖 ≔ 1 to π‘ƒπ‘Žπ‘Ÿπ‘‘π‘–π‘‘π‘–π‘œπ‘›π‘  2 do 𝑆𝑖 ≔ 𝑆𝑖 βˆͺ MergeMway 𝑆2π‘–βˆ’1, 𝑆2𝑖, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› π‘ƒπ‘Žπ‘Ÿπ‘‘π‘–π‘‘π‘–π‘œπ‘›π‘  ≔ π‘ƒπ‘Žπ‘Ÿπ‘‘π‘–π‘‘π‘–π‘œπ‘›π‘  2 end return 𝑆1 end
  • 85. Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001. Implementation: D&C Algorithm 1. D&C-basic 2. D&C-mpt 3. D&C-mptesk 𝑆1,1 𝑆2,1 𝑆1,2 𝑆2,2 𝑆1,3 𝑆2,3 𝑆1,4 𝑆2,4 𝑗 = 1, 𝑖 = 1 π‘‘β„Žπ‘’π‘› π‘€π‘’π‘Ÿπ‘”π‘’π‘€π‘€π‘Žπ‘¦ 𝑆1,1 𝑆2,1 Partition to be fitted into the memory size π‘žπ‘’π‘Žπ‘›π‘‘π‘–π‘™π‘’ 𝛼 π‘žπ‘’π‘Žπ‘›π‘‘π‘–π‘™π‘’ 𝛼1 π‘žπ‘’π‘Žπ‘›π‘‘π‘–π‘™π‘’ 𝛼2 π‘žπ‘’π‘Žπ‘›π‘‘π‘–π‘™π‘’ 𝛼3 for 𝑗 ≔ 1 to π‘ƒπ‘Žπ‘Ÿπ‘‘π‘–π‘‘π‘–π‘œπ‘›π‘  do begin for 𝑖 ≔ 1 to 𝑗 do if 𝑖 < 𝑗 then 𝑆2,𝑗 ≔ π‘€π‘’π‘Ÿπ‘”π‘’π‘€π‘€π‘Žπ‘¦ 𝑆1,𝑖, 𝑆2,𝑗, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› βˆ’ 1 else 𝑆2,𝑗 ≔ π‘€π‘’π‘Ÿπ‘”π‘’π‘€π‘€π‘Žπ‘¦ 𝑆1,𝑖, 𝑆2,𝑗, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› π‘Žπ‘π‘π‘’π‘›π‘‘(𝑅, 𝑆2,𝑗) end
  • 86. Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001. Implementation: D&C Algorithm 1. D&C-basic 2. D&C-mpt 3. D&C-mptesk 𝑆1,1 𝑆2,1 𝑆1,2 𝑆2,2 𝑆1,3 𝑆2,3 𝑆1,4 𝑆2,4 𝑗 = 1, 𝑖 = 1 π‘‘β„Žπ‘’π‘› π‘€π‘’π‘Ÿπ‘”π‘’π‘€π‘€π‘Žπ‘¦ 𝑆1,1 𝑆2,1 𝑗 = 2, 𝑖 = 1 π‘‘β„Žπ‘’π‘› π‘€π‘’π‘Ÿπ‘”π‘’π‘€π‘€π‘Žπ‘¦ 𝑆1,1 𝑆2,2 π‘žπ‘’π‘Žπ‘›π‘‘π‘–π‘™π‘’ 𝛼 π‘žπ‘’π‘Žπ‘›π‘‘π‘–π‘™π‘’ 𝛼1 π‘žπ‘’π‘Žπ‘›π‘‘π‘–π‘™π‘’ 𝛼2 π‘žπ‘’π‘Žπ‘›π‘‘π‘–π‘™π‘’ 𝛼3 for 𝑗 ≔ 1 to π‘ƒπ‘Žπ‘Ÿπ‘‘π‘–π‘‘π‘–π‘œπ‘›π‘  do begin for 𝑖 ≔ 1 to 𝑗 do if 𝑖 < 𝑗 then 𝑆2,𝑗 ≔ π‘€π‘’π‘Ÿπ‘”π‘’π‘€π‘€π‘Žπ‘¦ 𝑆1,𝑖, 𝑆2,𝑗, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› βˆ’ 1 else 𝑆2,𝑗 ≔ π‘€π‘’π‘Ÿπ‘”π‘’π‘€π‘€π‘Žπ‘¦ 𝑆1,𝑖, 𝑆2,𝑗, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› π‘Žπ‘π‘π‘’π‘›π‘‘(𝑅, 𝑆2,𝑗) end
  • 87. Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001. Implementation: D&C Algorithm 1. D&C-basic 2. D&C-mpt 3. D&C-mptesk 𝑆1,1 𝑆2,1 𝑆1,2 𝑆2,2 𝑆1,3 𝑆2,3 𝑆1,4 𝑆2,4 𝑗 = 1, 𝑖 = 1 π‘‘β„Žπ‘’π‘› π‘€π‘’π‘Ÿπ‘”π‘’π‘€π‘€π‘Žπ‘¦ 𝑆1,1 𝑆2,1 𝑗 = 2, 𝑖 = 1 π‘‘β„Žπ‘’π‘› π‘€π‘’π‘Ÿπ‘”π‘’π‘€π‘€π‘Žπ‘¦ 𝑆1,1 𝑆2,2 𝑖 = 2 π‘‘β„Žπ‘’π‘› π‘€π‘’π‘Ÿπ‘”π‘’π‘€π‘€π‘Žπ‘¦ 𝑆1,2 𝑆2,2 π‘žπ‘’π‘Žπ‘›π‘‘π‘–π‘™π‘’ 𝛼 π‘žπ‘’π‘Žπ‘›π‘‘π‘–π‘™π‘’ 𝛼1 π‘žπ‘’π‘Žπ‘›π‘‘π‘–π‘™π‘’ 𝛼2 π‘žπ‘’π‘Žπ‘›π‘‘π‘–π‘™π‘’ 𝛼3 for 𝑗 ≔ 1 to π‘ƒπ‘Žπ‘Ÿπ‘‘π‘–π‘‘π‘–π‘œπ‘›π‘  do begin for 𝑖 ≔ 1 to 𝑗 do if 𝑖 < 𝑗 then 𝑆2,𝑗 ≔ π‘€π‘’π‘Ÿπ‘”π‘’π‘€π‘€π‘Žπ‘¦ 𝑆1,𝑖, 𝑆2,𝑗, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› βˆ’ 1 else 𝑆2,𝑗 ≔ π‘€π‘’π‘Ÿπ‘”π‘’π‘€π‘€π‘Žπ‘¦ 𝑆1,𝑖, 𝑆2,𝑗, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› π‘Žπ‘π‘π‘’π‘›π‘‘(𝑅, 𝑆2,𝑗) end
  • 88. Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001. Implementation: D&C Algorithm 1. D&C-basic 2. D&C-mpt 3. D&C-mptesk 𝑆1,1 𝑆2,1 𝑆1,2 𝑆2,2 𝑆1,3 𝑆2,3 𝑆1,4 𝑆2,4 𝑗 = 1, 𝑖 = 1 π‘‘β„Žπ‘’π‘› π‘€π‘’π‘Ÿπ‘”π‘’π‘€π‘€π‘Žπ‘¦ 𝑆1,1 𝑆2,1 𝑗 = 2, 𝑖 = 1 π‘‘β„Žπ‘’π‘› π‘€π‘’π‘Ÿπ‘”π‘’π‘€π‘€π‘Žπ‘¦ 𝑆1,1 𝑆2,2 𝑖 = 2 π‘‘β„Žπ‘’π‘› π‘€π‘’π‘Ÿπ‘”π‘’π‘€π‘€π‘Žπ‘¦ 𝑆1,2 𝑆2,2 𝑗 = 3, 𝑖 = 1 π‘‘β„Žπ‘’π‘› π‘€π‘’π‘Ÿπ‘”π‘’π‘€π‘€π‘Žπ‘¦ 𝑆1,1 𝑆2,3 π‘žπ‘’π‘Žπ‘›π‘‘π‘–π‘™π‘’ 𝛼 π‘žπ‘’π‘Žπ‘›π‘‘π‘–π‘™π‘’ 𝛼1 π‘žπ‘’π‘Žπ‘›π‘‘π‘–π‘™π‘’ 𝛼2 π‘žπ‘’π‘Žπ‘›π‘‘π‘–π‘™π‘’ 𝛼3 for 𝑗 ≔ 1 to π‘ƒπ‘Žπ‘Ÿπ‘‘π‘–π‘‘π‘–π‘œπ‘›π‘  do begin for 𝑖 ≔ 1 to 𝑗 do if 𝑖 < 𝑗 then 𝑆2,𝑗 ≔ π‘€π‘’π‘Ÿπ‘”π‘’π‘€π‘€π‘Žπ‘¦ 𝑆1,𝑖, 𝑆2,𝑗, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› βˆ’ 1 else 𝑆2,𝑗 ≔ π‘€π‘’π‘Ÿπ‘”π‘’π‘€π‘€π‘Žπ‘¦ 𝑆1,𝑖, 𝑆2,𝑗, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› π‘Žπ‘π‘π‘’π‘›π‘‘(𝑅, 𝑆2,𝑗) end
  • 89. Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001. Implementation: D&C Algorithm 1. D&C-basic 2. D&C-mpt 3. D&C-mptesk 𝑆1,1 𝑆2,1 𝑆1,2 𝑆2,2 𝑆1,3 𝑆2,3 𝑆1,4 𝑆2,4 𝑗 = 1, 𝑖 = 1 π‘‘β„Žπ‘’π‘› π‘€π‘’π‘Ÿπ‘”π‘’π‘€π‘€π‘Žπ‘¦ 𝑆1,1 𝑆2,1 𝑗 = 2, 𝑖 = 1 π‘‘β„Žπ‘’π‘› π‘€π‘’π‘Ÿπ‘”π‘’π‘€π‘€π‘Žπ‘¦ 𝑆1,1 𝑆2,2 𝑖 = 2 π‘‘β„Žπ‘’π‘› π‘€π‘’π‘Ÿπ‘”π‘’π‘€π‘€π‘Žπ‘¦ 𝑆1,2 𝑆2,2 𝑗 = 3, 𝑖 = 1 π‘‘β„Žπ‘’π‘› π‘€π‘’π‘Ÿπ‘”π‘’π‘€π‘€π‘Žπ‘¦ 𝑆1,1 𝑆2,3 𝑖 = 2 π‘‘β„Žπ‘’π‘› π‘€π‘’π‘Ÿπ‘”π‘’π‘€π‘€π‘Žπ‘¦ 𝑆1,2 𝑆2,3 π‘žπ‘’π‘Žπ‘›π‘‘π‘–π‘™π‘’ 𝛼 π‘žπ‘’π‘Žπ‘›π‘‘π‘–π‘™π‘’ 𝛼1 π‘žπ‘’π‘Žπ‘›π‘‘π‘–π‘™π‘’ 𝛼2 π‘žπ‘’π‘Žπ‘›π‘‘π‘–π‘™π‘’ 𝛼3 for 𝑗 ≔ 1 to π‘ƒπ‘Žπ‘Ÿπ‘‘π‘–π‘‘π‘–π‘œπ‘›π‘  do begin for 𝑖 ≔ 1 to 𝑗 do if 𝑖 < 𝑗 then 𝑆2,𝑗 ≔ π‘€π‘’π‘Ÿπ‘”π‘’π‘€π‘€π‘Žπ‘¦ 𝑆1,𝑖, 𝑆2,𝑗, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› βˆ’ 1 else 𝑆2,𝑗 ≔ π‘€π‘’π‘Ÿπ‘”π‘’π‘€π‘€π‘Žπ‘¦ 𝑆1,𝑖, 𝑆2,𝑗, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› π‘Žπ‘π‘π‘’π‘›π‘‘(𝑅, 𝑆2,𝑗) end
  • 90. Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001. Implementation: D&C Algorithm 1. D&C-basic 2. D&C-mpt 3. D&C-mptesk 𝑆1,1 𝑆2,1 𝑆1,2 𝑆2,2 𝑆1,3 𝑆2,3 𝑆1,4 𝑆2,4 𝑗 = 1, 𝑖 = 1 π‘‘β„Žπ‘’π‘› π‘€π‘’π‘Ÿπ‘”π‘’π‘€π‘€π‘Žπ‘¦ 𝑆1,1 𝑆2,1 𝑗 = 2, 𝑖 = 1 π‘‘β„Žπ‘’π‘› π‘€π‘’π‘Ÿπ‘”π‘’π‘€π‘€π‘Žπ‘¦ 𝑆1,1 𝑆2,2 𝑖 = 2 π‘‘β„Žπ‘’π‘› π‘€π‘’π‘Ÿπ‘”π‘’π‘€π‘€π‘Žπ‘¦ 𝑆1,2 𝑆2,2 𝑗 = 3, 𝑖 = 1 π‘‘β„Žπ‘’π‘› π‘€π‘’π‘Ÿπ‘”π‘’π‘€π‘€π‘Žπ‘¦ 𝑆1,1 𝑆2,3 𝑖 = 2 π‘‘β„Žπ‘’π‘› π‘€π‘’π‘Ÿπ‘”π‘’π‘€π‘€π‘Žπ‘¦ 𝑆1,2 𝑆2,3 𝑖 = 3 π‘‘β„Žπ‘’π‘› π‘€π‘’π‘Ÿπ‘”π‘’π‘€π‘€π‘Žπ‘¦ 𝑆1,3 𝑆2,3 π‘žπ‘’π‘Žπ‘›π‘‘π‘–π‘™π‘’ 𝛼 π‘žπ‘’π‘Žπ‘›π‘‘π‘–π‘™π‘’ 𝛼1 π‘žπ‘’π‘Žπ‘›π‘‘π‘–π‘™π‘’ 𝛼2 π‘žπ‘’π‘Žπ‘›π‘‘π‘–π‘™π‘’ 𝛼3 for 𝑗 ≔ 1 to π‘ƒπ‘Žπ‘Ÿπ‘‘π‘–π‘‘π‘–π‘œπ‘›π‘  do begin for 𝑖 ≔ 1 to 𝑗 do if 𝑖 < 𝑗 then 𝑆2,𝑗 ≔ π‘€π‘’π‘Ÿπ‘”π‘’π‘€π‘€π‘Žπ‘¦ 𝑆1,𝑖, 𝑆2,𝑗, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› βˆ’ 1 else 𝑆2,𝑗 ≔ π‘€π‘’π‘Ÿπ‘”π‘’π‘€π‘€π‘Žπ‘¦ 𝑆1,𝑖, 𝑆2,𝑗, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› π‘Žπ‘π‘π‘’π‘›π‘‘(𝑅, 𝑆2,𝑗) end
  • 91. Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001. Implementation: D&C Algorithm 1. D&C-basic 2. D&C-mpt 3. D&C-mptesk 𝑆1,1 𝑆2,1 𝑆1,2 𝑆2,2 𝑆1,3 𝑆2,3 𝑆1,4 𝑆2,4 𝑗 = 1, 𝑖 = 1 π‘‘β„Žπ‘’π‘› π‘€π‘’π‘Ÿπ‘”π‘’π‘€π‘€π‘Žπ‘¦ 𝑆1,1 𝑆2,1 𝑗 = 2, 𝑖 = 1 π‘‘β„Žπ‘’π‘› π‘€π‘’π‘Ÿπ‘”π‘’π‘€π‘€π‘Žπ‘¦ 𝑆1,1 𝑆2,2 𝑖 = 2 π‘‘β„Žπ‘’π‘› π‘€π‘’π‘Ÿπ‘”π‘’π‘€π‘€π‘Žπ‘¦ 𝑆1,2 𝑆2,2 𝑗 = 3, 𝑖 = 1 π‘‘β„Žπ‘’π‘› π‘€π‘’π‘Ÿπ‘”π‘’π‘€π‘€π‘Žπ‘¦ 𝑆1,1 𝑆2,3 𝑖 = 2 π‘‘β„Žπ‘’π‘› π‘€π‘’π‘Ÿπ‘”π‘’π‘€π‘€π‘Žπ‘¦ 𝑆1,2 𝑆2,3 𝑖 = 3 π‘‘β„Žπ‘’π‘› π‘€π‘’π‘Ÿπ‘”π‘’π‘€π‘€π‘Žπ‘¦ 𝑆1,3 𝑆2,3 𝑗 = 4, 𝑖 = 1 π‘‘β„Žπ‘’π‘› π‘€π‘’π‘Ÿπ‘”π‘’π‘€π‘€π‘Žπ‘¦ 𝑆1,1 𝑆2,4 𝑖 = 2 π‘‘β„Žπ‘’π‘› π‘€π‘’π‘Ÿπ‘”π‘’π‘€π‘€π‘Žπ‘¦ 𝑆1,2 𝑆2,3 𝑖 = 3 π‘‘β„Žπ‘’π‘› π‘€π‘’π‘Ÿπ‘”π‘’π‘€π‘€π‘Žπ‘¦ 𝑆1,3 𝑆2,3 𝑖 = 3 π‘‘β„Žπ‘’π‘› π‘€π‘’π‘Ÿπ‘”π‘’π‘€π‘€π‘Žπ‘¦ 𝑆1,3 𝑆2,3 π‘žπ‘’π‘Žπ‘›π‘‘π‘–π‘™π‘’ 𝛼 π‘žπ‘’π‘Žπ‘›π‘‘π‘–π‘™π‘’ 𝛼1 π‘žπ‘’π‘Žπ‘›π‘‘π‘–π‘™π‘’ 𝛼2 π‘žπ‘’π‘Žπ‘›π‘‘π‘–π‘™π‘’ 𝛼3 for 𝑗 ≔ 1 to π‘ƒπ‘Žπ‘Ÿπ‘‘π‘–π‘‘π‘–π‘œπ‘›π‘  do begin for 𝑖 ≔ 1 to 𝑗 do if 𝑖 < 𝑗 then 𝑆2,𝑗 ≔ π‘€π‘’π‘Ÿπ‘”π‘’π‘€π‘€π‘Žπ‘¦ 𝑆1,𝑖, 𝑆2,𝑗, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› βˆ’ 1 else 𝑆2,𝑗 ≔ π‘€π‘’π‘Ÿπ‘”π‘’π‘€π‘€π‘Žπ‘¦ 𝑆1,𝑖, 𝑆2,𝑗, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› π‘Žπ‘π‘π‘’π‘›π‘‘(𝑅, 𝑆2,𝑗) end
  • 92. Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001. Implementation: D&C Algorithm 1. D&C-basic 2. D&C-mpt 3. D&C-mptesk 𝑆1,1 𝑆2,1 𝑆1,2 𝑆2,2 𝑆1,3 𝑆2,3 𝑆1,4 𝑆2,4 𝑗 = 1, 𝑖 = 1 π‘‘β„Žπ‘’π‘› π‘€π‘’π‘Ÿπ‘”π‘’π‘€π‘€π‘Žπ‘¦ 𝑆1,1 𝑆2,1 𝑗 = 2, 𝑖 = 1 π‘‘β„Žπ‘’π‘› π‘€π‘’π‘Ÿπ‘”π‘’π‘€π‘€π‘Žπ‘¦ 𝑆1,1 𝑆2,2 𝑖 = 2 π‘‘β„Žπ‘’π‘› π‘€π‘’π‘Ÿπ‘”π‘’π‘€π‘€π‘Žπ‘¦ 𝑆1,2 𝑆2,2 𝑗 = 3, 𝑖 = 1 π‘‘β„Žπ‘’π‘› π‘€π‘’π‘Ÿπ‘”π‘’π‘€π‘€π‘Žπ‘¦ 𝑆1,1 𝑆2,3 𝑖 = 2 π‘‘β„Žπ‘’π‘› π‘€π‘’π‘Ÿπ‘”π‘’π‘€π‘€π‘Žπ‘¦ 𝑆1,2 𝑆2,3 𝑖 = 3 π‘‘β„Žπ‘’π‘› π‘€π‘’π‘Ÿπ‘”π‘’π‘€π‘€π‘Žπ‘¦ 𝑆1,3 𝑆2,3 𝑗 = 4, 𝑖 = 1 π‘‘β„Žπ‘’π‘› π‘€π‘’π‘Ÿπ‘”π‘’π‘€π‘€π‘Žπ‘¦ 𝑆1,1 𝑆2,4 𝑖 = 2 π‘‘β„Žπ‘’π‘› π‘€π‘’π‘Ÿπ‘”π‘’π‘€π‘€π‘Žπ‘¦ 𝑆1,2 𝑆2,4 𝑖 = 3 π‘‘β„Žπ‘’π‘› π‘€π‘’π‘Ÿπ‘”π‘’π‘€π‘€π‘Žπ‘¦ 𝑆1,3 𝑆2,3 𝑖 = 3 π‘‘β„Žπ‘’π‘› π‘€π‘’π‘Ÿπ‘”π‘’π‘€π‘€π‘Žπ‘¦ 𝑆1,3 𝑆2,3 π‘žπ‘’π‘Žπ‘›π‘‘π‘–π‘™π‘’ 𝛼 π‘žπ‘’π‘Žπ‘›π‘‘π‘–π‘™π‘’ 𝛼1 π‘žπ‘’π‘Žπ‘›π‘‘π‘–π‘™π‘’ 𝛼2 π‘žπ‘’π‘Žπ‘›π‘‘π‘–π‘™π‘’ 𝛼3 for 𝑗 ≔ 1 to π‘ƒπ‘Žπ‘Ÿπ‘‘π‘–π‘‘π‘–π‘œπ‘›π‘  do begin for 𝑖 ≔ 1 to 𝑗 do if 𝑖 < 𝑗 then 𝑆2,𝑗 ≔ π‘€π‘’π‘Ÿπ‘”π‘’π‘€π‘€π‘Žπ‘¦ 𝑆1,𝑖, 𝑆2,𝑗, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› βˆ’ 1 else 𝑆2,𝑗 ≔ π‘€π‘’π‘Ÿπ‘”π‘’π‘€π‘€π‘Žπ‘¦ 𝑆1,𝑖, 𝑆2,𝑗, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› π‘Žπ‘π‘π‘’π‘›π‘‘(𝑅, 𝑆2,𝑗) end
  • 93. Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001. Implementation: D&C Algorithm 1. D&C-basic 2. D&C-mpt 3. D&C-mptesk 𝑆1,1 𝑆2,1 𝑆1,2 𝑆2,2 𝑆1,3 𝑆2,3 𝑆1,4 𝑆2,4 𝑗 = 1, 𝑖 = 1 π‘‘β„Žπ‘’π‘› π‘€π‘’π‘Ÿπ‘”π‘’π‘€π‘€π‘Žπ‘¦ 𝑆1,1 𝑆2,1 𝑗 = 2, 𝑖 = 1 π‘‘β„Žπ‘’π‘› π‘€π‘’π‘Ÿπ‘”π‘’π‘€π‘€π‘Žπ‘¦ 𝑆1,1 𝑆2,2 𝑖 = 2 π‘‘β„Žπ‘’π‘› π‘€π‘’π‘Ÿπ‘”π‘’π‘€π‘€π‘Žπ‘¦ 𝑆1,2 𝑆2,2 𝑗 = 3, 𝑖 = 1 π‘‘β„Žπ‘’π‘› π‘€π‘’π‘Ÿπ‘”π‘’π‘€π‘€π‘Žπ‘¦ 𝑆1,1 𝑆2,3 𝑖 = 2 π‘‘β„Žπ‘’π‘› π‘€π‘’π‘Ÿπ‘”π‘’π‘€π‘€π‘Žπ‘¦ 𝑆1,2 𝑆2,3 𝑖 = 3 π‘‘β„Žπ‘’π‘› π‘€π‘’π‘Ÿπ‘”π‘’π‘€π‘€π‘Žπ‘¦ 𝑆1,3 𝑆2,3 𝑗 = 4, 𝑖 = 1 π‘‘β„Žπ‘’π‘› π‘€π‘’π‘Ÿπ‘”π‘’π‘€π‘€π‘Žπ‘¦ 𝑆1,1 𝑆2,4 𝑖 = 2 π‘‘β„Žπ‘’π‘› π‘€π‘’π‘Ÿπ‘”π‘’π‘€π‘€π‘Žπ‘¦ 𝑆1,2 𝑆2,4 𝑖 = 3 π‘‘β„Žπ‘’π‘› π‘€π‘’π‘Ÿπ‘”π‘’π‘€π‘€π‘Žπ‘¦ 𝑆1,3 𝑆2,4 𝑖 = 3 π‘‘β„Žπ‘’π‘› π‘€π‘’π‘Ÿπ‘”π‘’π‘€π‘€π‘Žπ‘¦ 𝑆1,3 𝑆2,3 π‘žπ‘’π‘Žπ‘›π‘‘π‘–π‘™π‘’ 𝛼 π‘žπ‘’π‘Žπ‘›π‘‘π‘–π‘™π‘’ 𝛼1 π‘žπ‘’π‘Žπ‘›π‘‘π‘–π‘™π‘’ 𝛼2 π‘žπ‘’π‘Žπ‘›π‘‘π‘–π‘™π‘’ 𝛼3 for 𝑗 ≔ 1 to π‘ƒπ‘Žπ‘Ÿπ‘‘π‘–π‘‘π‘–π‘œπ‘›π‘  do begin for 𝑖 ≔ 1 to 𝑗 do if 𝑖 < 𝑗 then 𝑆2,𝑗 ≔ π‘€π‘’π‘Ÿπ‘”π‘’π‘€π‘€π‘Žπ‘¦ 𝑆1,𝑖, 𝑆2,𝑗, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› βˆ’ 1 else 𝑆2,𝑗 ≔ π‘€π‘’π‘Ÿπ‘”π‘’π‘€π‘€π‘Žπ‘¦ 𝑆1,𝑖, 𝑆2,𝑗, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› π‘Žπ‘π‘π‘’π‘›π‘‘(𝑅, 𝑆2,𝑗) end
  • 94. Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001. Implementation: D&C Algorithm 1. D&C-basic 2. D&C-mpt 3. D&C-mptesk 𝑆1,1 𝑆2,1 𝑆1,2 𝑆2,2 𝑆1,3 𝑆2,3 𝑆1,4 𝑆2,4 𝑗 = 1, 𝑖 = 1 π‘‘β„Žπ‘’π‘› π‘€π‘’π‘Ÿπ‘”π‘’π‘€π‘€π‘Žπ‘¦ 𝑆1,1 𝑆2,1 𝑗 = 2, 𝑖 = 1 π‘‘β„Žπ‘’π‘› π‘€π‘’π‘Ÿπ‘”π‘’π‘€π‘€π‘Žπ‘¦ 𝑆1,1 𝑆2,2 𝑖 = 2 π‘‘β„Žπ‘’π‘› π‘€π‘’π‘Ÿπ‘”π‘’π‘€π‘€π‘Žπ‘¦ 𝑆1,2 𝑆2,2 𝑗 = 3, 𝑖 = 1 π‘‘β„Žπ‘’π‘› π‘€π‘’π‘Ÿπ‘”π‘’π‘€π‘€π‘Žπ‘¦ 𝑆1,1 𝑆2,3 𝑖 = 2 π‘‘β„Žπ‘’π‘› π‘€π‘’π‘Ÿπ‘”π‘’π‘€π‘€π‘Žπ‘¦ 𝑆1,2 𝑆2,3 𝑖 = 3 π‘‘β„Žπ‘’π‘› π‘€π‘’π‘Ÿπ‘”π‘’π‘€π‘€π‘Žπ‘¦ 𝑆1,3 𝑆2,3 𝑗 = 4, 𝑖 = 1 π‘‘β„Žπ‘’π‘› π‘€π‘’π‘Ÿπ‘”π‘’π‘€π‘€π‘Žπ‘¦ 𝑆1,1 𝑆2,4 𝑖 = 2 π‘‘β„Žπ‘’π‘› π‘€π‘’π‘Ÿπ‘”π‘’π‘€π‘€π‘Žπ‘¦ 𝑆1,2 𝑆2,4 𝑖 = 3 π‘‘β„Žπ‘’π‘› π‘€π‘’π‘Ÿπ‘”π‘’π‘€π‘€π‘Žπ‘¦ 𝑆1,3 𝑆2,4 𝑖 = 3 π‘‘β„Žπ‘’π‘› π‘€π‘’π‘Ÿπ‘”π‘’π‘€π‘€π‘Žπ‘¦ 𝑆1,4 𝑆2,4 π‘žπ‘’π‘Žπ‘›π‘‘π‘–π‘™π‘’ 𝛼 π‘žπ‘’π‘Žπ‘›π‘‘π‘–π‘™π‘’ 𝛼1 π‘žπ‘’π‘Žπ‘›π‘‘π‘–π‘™π‘’ 𝛼2 π‘žπ‘’π‘Žπ‘›π‘‘π‘–π‘™π‘’ 𝛼3 for 𝑗 ≔ 1 to π‘ƒπ‘Žπ‘Ÿπ‘‘π‘–π‘‘π‘–π‘œπ‘›π‘  do begin for 𝑖 ≔ 1 to 𝑗 do if 𝑖 < 𝑗 then 𝑆2,𝑗 ≔ π‘€π‘’π‘Ÿπ‘”π‘’π‘€π‘€π‘Žπ‘¦ 𝑆1,𝑖, 𝑆2,𝑗, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› βˆ’ 1 else 𝑆2,𝑗 ≔ π‘€π‘’π‘Ÿπ‘”π‘’π‘€π‘€π‘Žπ‘¦ 𝑆1,𝑖, 𝑆2,𝑗, π·π‘–π‘šπ‘’π‘›π‘ π‘–π‘œπ‘› π‘Žπ‘π‘π‘’π‘›π‘‘(𝑅, 𝑆2,𝑗) end
  • 95. Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001. Implementation: D&C Algorithm 1. D&C-basic 2. D&C-mpt 3. D&C-mptesk To Propose Bushy Merge Tree β€’ To minimize different merge steps β€’ In the below figure the tuples of 𝑆1 are only involved in log π‘š merge steps (where π‘š is the number of the partitions)
  • 96. Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001. Implementation: D&C Algorithm 1. D&C-basic 2. D&C-mpt 3. D&C-mptesk Early Skyline At the first step of the M-way partitioning; 1. Load as many tuples as fit into the available main- memory buffers. 2. Applying the basic divide-and-conquer algorithm in order to immediately eliminate the tuples which are dominated by others. 3. Partition the remaining tuples into π‘š partitions.
  • 97. Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001. Implementation: D&C Algorithm 1. D&C-basic 2. D&C-mpt 3. D&C-mptesk Early Skyline β€’ incurs additional CPU. β€’ saves I/O, because less tuples need to be written and reread in the partitioning steps. β€’ is attractive if the Skyline is selective (i.e., if the Skyline is small).
  • 98. Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001. Experiments and Results Experiments Environment β€’ Processor: 333 MHz β€’ Main memory: 128 MB β€’ Operating system: Solaris 7 β€’ Disk drive: 9GB Seagate with 7200 rpm and 512K disk cache
  • 99. Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001. Experiments and Results Implemented C++ Algorithms β€’ Sort: Only for two-dimensional Skylines β€’ BNL-basic: the basic block-nested-loops algorithm β€’ BNL-sol: BNL and the window is organized as a self-organizing list β€’ BNL-solrep: BNL-sol and tuples in the window are replaced β€’ D&C-basic: basic divide-and-conquer algorithm β€’ D&C-mpt: D&C-basic with m-way partitioning β€’ D&C-mptesk: D&C-mpt and β€œEarly Skylline”
  • 100. Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001. Experiments and Results Generated Database Condition β€’ Each benchmark database contains 100,000 tuples (10MB). β€’ The values of doubles of a tuple are generated randomly in [0,1).
  • 101. Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001. Experiments and Results Three Generated Database β€’ indep: all attribute values are generated independently β€’ corr: all attribute values have correlation with each dimension β€’ anti: all attribute values have anti-correlation with each dimension indep corr anti
  • 102. Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001. Experiments and Results indep corr anti
  • 103. Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001. Experiments and Results Skyline Sizes
  • 104. Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001. Experiments and Results 2-d Skylines running times (in seconds) and amount of disk I/O (in MB) β€’ BNL is the winner. Because of large enough memory, BNL terminates after one iteration. β€’ β€œEarly Skyline” is the winner among D&C variants, because after applying β€œEarly Skyline”, the partitions are very small and the rest of the algorithm can be completed very quickly.
  • 105. Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001. Experiments and Results Multi-dimensional Skylines winner at the corr BNL is good up to 5-D D&C-mpt and D&C-mptesk outperform BNL after 5-D
  • 106. Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001. Experiments and Results Multi-dimensional Skylines At the anti, BEP is earlier than the corr. Finally D&C outperforms BNL.
  • 107. Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001. Experiments and Results Conclusion of the Experiments: BNL β€’ The BNL variants are good if the size of the Skyline is small. β€’ Performance of the BNL’s performance depends on the number of dimension and correlation. β€’ BNL-sol is the winner among the BNL variants, but not great. β€’ Replacement is bad if the Skyline is very large. It incurs additional overhead without benefits.
  • 108. Borzsony, S., The Skyline Operator, In proc, IEEE Conf. on Data Engineering, page 421-430, Heidelberg, Germany, Apr. 2001. Experiments and Results Conclusion of the Experiments: D&C β€’ D&C variants’ performance less depends on the number of dimension and correlation than BNL. β€’ D&C-mptesk is winner among the D&C variants.
  • 109. Thank you for listening