The Skyline Operator

23
Ιόνιο Πανεπιςτήμιο Τμήμα Πληροφορικήσ – ΠΜΣ Προχωρημζνα θζματα Βάςεων Δεδομζνων Εαρινό Εξάμηνο: 2011 – 2012 The Skyline Operator Έφη Αποςτόλου Κων/νοσ Γιαννάκησ Βαρβάρα Γαρνέλη ΜΑΙΟ 2012

description

Παρουσίαση του άρθρου "The Skyline Operator"

Transcript of The Skyline Operator

Page 1: The Skyline Operator

Ιόνιο Πανεπιςτήμιο Τμήμα Πληροφορικήσ – ΠΜΣ Προχωρημζνα θζματα Βάςεων ΔεδομζνωνΕαρινό Εξάμηνο: 2011 – 2012

The Skyline Operator

Έφη ΑποςτόλουΚων/νοσ ΓιαννάκησΒαρβάρα Γαρνέλη

ΜΑΙΟ 2012

Page 2: The Skyline Operator

SKYLINE OF HOTELS

Δλδηαθεξόκαζηε γηα έλα

μελνδνρείν πνπ είλαη θνληά

ζηελ παξαιία θαη είλαη θαη

θζελό

Σν Skyline πεξηέρεη ηα

μελνδνρεία πνπ δελ

θπξηαξρνύληαη από θάπνην

άιιν

Page 3: The Skyline Operator

SKYLINE

Δπηζηξέθεη έλα ζύλνιν από ελδηαθέξνπζεο απαληήζεηο

γηα ηα ραξαθηεξηζηηθά πνπ καο ελδηαθέξνπλ.

Οξίδεηαη από εθείλα ηα ζεκεία πνπ δελ θπξηαξρνύληαη

από άιια

Έλα ζεκείν p θπξηαξρεί ελόο ζεκείνπ q αλ ην p δελ είλαη

ρεηξόηεξν ζε θακία δηάζηαζε από ην q θαη είλαη θαιύηεξν

ζε ηνπιάρηζηνλ κηα

Page 4: The Skyline Operator

SKYLINE EXERCISE

Example 2: List of restaurant in FoodGuide

• S = Service, F= food, and D=décor. Each

scored from 1-30, with 30 as the best.

• QUESTION: What restaurants are in

the Skyline if we want best for service,

food, decor and be the lowest priced ?

• ANSWER: No restaurant better than all others on every criterion individually

• While no one best restaurant, we want to eliminate restaurants which are worse

on all criteria than some other

Page 5: The Skyline Operator

RESULT

• Skyline Queryselect * from FoodGuide

skyline of S max, F max, D max, price min

• Can we write an SQL query without using Skyline operator?

Answer: Yes, but cumbersome, expensive to evaluate, huge result set

Page 6: The Skyline Operator

ΔΠEΚΣΑΗ ΣΗ SELECT (SQL) ΜΔ ΜΙΑ ΠΡΟΑΙΡΔΣΙΚΗ

SKYLINE OF CLAUSE

SELECT... FROM... WHERE...

GROUP BY ... HAVING...

SKYLINE OF [DISTINCT] d1 [MIN | MAX | DIFF]... dm [MIN | MAX | DIFF]

ORDER BY ...

d1, d2, …. , dm είλαη νη δηαζηάζεηο ηνπ skyline

ηα MAX, MIN, DIFF νξίδνπλ ζε πνην ζεκείν ε ηηκή κηαο δηάζηαζεο κεγηζηνπνηείηαη, ειαρηζηνπνηείηαη ή απιά είλαη δηαθνξεηηθή

Η επηινγή distinct θαζνξίδεη πώο λα αληηκεησπίζνπκε επαλαιήςεηο.

Δθηειείηαη κεηά από ην SELECT ... FROM ... WHERE ... GROUP BY ... HAVING... ηνπ query αιιά πξηλ από ην ORDER BY

Δπηιέγεη όιεο ηηο interesting πιεηάδεο, ηηο πιεηάδεο δειαδή πνπ δελ θπξηαξρνύληαη από άιιεο

Αλ ην p θπξηαξρεί ζην q θαη ην q ζην r ηόηε ην p θπξηαξρεί θαη ζην r. Η κεηαβαηηθόηεηα είλαη κηα ζεκαληηθή ηδηόηεηα ηνπ skyline.

Page 7: The Skyline Operator

ΠΑΡΑΓΔΙΓΜΑΣΑ QUERIES

Page 8: The Skyline Operator

ΔΦΑΡΜΟΓΉ SKYLINE ΣΔΛΔΣΗ

Δπέθηαζε ελόο ζπζηήκαηνο ΒΓ κε έλα ινγηθό

ηειεζηή πνπ ηνλ αλαθέξνπκε σο skyline ηειεζηή

Ο ηειεζηήο απηόο ελζσκαηώλεη ηελ εθαξκνγή ηνπ

skyline of

Καη εθηειείηαη κεηά από ην scan, ην join θαη ην

group by ηειεζηή θαη πξηλ από ηνλ ηειηθό sort

ηειεζηή, αλ ην query πεξηέρεη order by.

Page 9: The Skyline Operator

SKYLINE ΣΔΛΔΣΗ ΓΤΟ ΓΙΑΣΑΔΩΝ

Έλαο skyline ηειεζηήο δπν δηαζηάζεσλ κπνξεί λα

ππνινγηζηεί κε ηαμηλόκεζε ησλ δεδνκέλσλ.

Ο έιεγρνο αλ κηα πιεηάδα αλήθεη ζην skyline είλαη

πνιύ εύθνινο: απιή ζύγθξηζε κηαο πιεηάδαο κε ηελ

πξνεγνύκελή ηεο

Η ηαμηλόκεζε ίζσο ρξεηάδεηαη λα γίλεη ζε πάλσ

από 1 πεξάζκαηα γηα λα ρσξάεη ζηελ θύξηα κλήκε

Η ηαμηλόκεζε δελ ιεηηνπξγεί ζε πάλσ από 2

δηαζηάζεηο

Page 10: The Skyline Operator

BLOCK-NESTED-LOOPS ΑΛΓΌΡΙΘΜΟΙ

Page 11: The Skyline Operator

BASIC BLOCK-NESTED-LOOPS ΑΛΓΌΡΙΘΜΟ

Γηαβάδεη ζπλέρεηα πιεηάδεο.

Κάζε πιεηάδα p πνπ δηαβάδεηαη από ηελ

είζνδν, ζπγθξίλεηαη κε όιεο ηηο πιεηάδεο ηνπ

παξαζύξνπ θαη κε βάζε ηε ζύγθξηζε ή αθαηξείηαη ή

ηνπνζεηείηαη ζην παξάζπξν ή ζε έλα πξνζσξηλό

αξρείν πνπ ζα ειεγρζεί ζηελ επόκελε εθηέιεζε ηνπ

αιγόξηζκνπ

Ο αιγόξηζκνο δνπιεύεη πνιύ θαιά αλ ην skyline

είλαη κηθξό.

Page 12: The Skyline Operator

MAINTAINING THE WINDOW AS A SELF-

ORGANIZING LIST

Οξγάλσζε ηνπ παξαζύξνπ ζαλ κηα απηννξγαλνύκελε

ιίζηα

Όηαλ κηα πιεηάδα w ηνπ παξαζύξνπ βξίζθεηαη λα

θπξηαξρεί ζε κηα πιεηάδα (θαη θαηά ζπλέπεηα λα ηελ

αθαηξεί) ηόηε πξνσζείηαη ζηελ αξρή ηνπ παξαζύξνπ

Απηή ε παξαιιαγή είλαη ηδηαίηεξα ρξήζηκε αλ ππάξρνπλ

κεξηθέο killer πιεηάδεο πνπ θπξηαξρνύλ ζε πνιιέο άιιεο

θαζώο θαη έλαο ζεκαληηθόο αξηζκόο από νπδέηεξεο

πιεηάδεο πνπ απνηεινύλ κέξνο ηνπ skyline αιιά δελ

θπξηαξρνύλ ζε άιιεο πιεηάδεο.

Page 13: The Skyline Operator

REPLACING TUPLES IN THE WINDOW

ηόρνο: λα θξαηήζνπκε ην επηθξαηέζηεξν ζύλνιν

πιεηάδσλ ζην παξάζπξν

Απαξαίηεηε κηα πνιηηηθή αληηθαηάζηαζεο

Δπηπιένλ θόζηε επεμεξγαζίαο γηα ηνλ ππνινγηζκό

ηεο λέαο αληηθαηάζηαζεο

Δίλαη πηζαλό δπν πιεηάδεο λα ζπγθξηζνύλ δπν

θνξέο

Page 14: The Skyline Operator

DIVIDE AND CONQUER ΑΛΓΌΡΙΘΜΟ

Θεσξεηηθά είλαη ν θαιύηεξνο αιγόξηζκνο γηα ηηο

δύζθνιεο πεξηπηώζεηο αιιά όρη θαη γηα ηηο απιέο

Page 15: The Skyline Operator

Ο ΒΑΙΚΟ ΑΛΓΟΡΙΘΜΟ

Τπνιόγηζε ην κέζν mp ησλ εηζόδσλ γηα κηα δηάζηαζε dp .

Γηαίξεζε ηελ είζνδν ζε δπν κέξε. Σν p1 πεξηέρεη όιεο ηηο

πιεηάδεο ησλ νπνίσλ νη ηηκέο γηα ην ραξαθηεξηζηηθό dp είλαη

θαιύηεξν από ην mp. Σν p2 πεξηέρεη ηηο ππόινηπεο.

Τπνιόγηζε ηα skylines S1 ηνπ p1 θαη S2 ηνπ p2. Απηό γίλεηαη

αλαδξνκηθά κε ηελ εθαξκνγή νιόθιεξνπ ηνπ αιγόξηζκνπ ζην

p1 θαη ζην p2. Έηζη ηα p1, p2 ρσξίδνληαη θαη πάιη. Ο

αλαδξνκηθόο δηαρσξηζκόο ζηακαηάεη αλ έλα ηκήκα πεξηέρεη

κία ή πνιύ ιίγεο πιεηάδεο.

Τπνιόγηζε όιν ην skyline ζαλ απνηέιεζκα ηεο ζπγρώλεπζεο

ησλ S1 , S2. Απηό ζεκαίλεη αθαίξεζε όισλ ησλ πιεηάδσλ ηνπ

S2 πνπ θπξηαξρνύληαη από κηα πιεηάδα ηνπ S1.

Page 16: The Skyline Operator

M WAY PARTITIONING

Αλ ε είζνδνο δελ ρσξάεη ζηελ θύξηα κλήκε ηόηε ν βαζηθόο αιγόξηζκνο δίλεη άζρεκα απνηειέζκαηα

Η I/O ζπκπεξηθνξά ηνπ αιγόξηζκνπ κπνξεί εύθνια λα βειηησζεί κε δηαίξεζε ζε ηκήκαηα πνπ ρσξάλε ζηε κλήκε. Γει. αληί γηα ηνλ κέζν πξνζδηνξίδνληαη ηα όξηα ηνπ ηκήκαηνο. Αλ θάπνην ηκήκα δελ ρσξάεη ζηε κλήκε μαλαρσξίδεηαη πάιη:

ηελ αξρή δεκηνπξγνύληαη m ηκήκαηα πνπ ρσξάλε ζηε κλήκε.

Δθαξκόδεηαη ε ζπλάξηεζε ζπγρώλεπζεο ζηα αξρηθά ηκήκαηα θαη έηζη ειαρηζηνπνηείηαη ν όγθνο ησλ δεδνκέλσλ πνπ πξέπεη λα μαλαδηαβαζηνύλ θαη λα μαλααπνζεθεπηνύλ αλάκεζα ζηα δηαθνξεηηθά ζηάδηα ζπγρώλεπζεο.

Page 17: The Skyline Operator

EARLY SKYLINE

Φόξησζε όζεο πεξηζζόηεξεο πιεηάδεο ρσξάλε ζηε

δηαζέζηκε κλήκε

Δθάξκνζε ηνλ βαζηθό δηαίξεη θαη βαζίιεπε αιγόξηζκν ζηηο

πιεηάδεο κε ζθνπό λα αθαηξέζεηο εθείλεο πνπ

θπξηαξρνύληαη από άιιεο.

Υώξηζε ηηο ππόινηπεο πιεηάδεο ζε m ηκήκαηα

Απαηηείηαη επηπιένλ θόζηνο επεμεξγαζίαο αιιά γίλεηαη

νηθνλνκία ζηελ I/O αθνύ ιηγόηεξεο πιεηάδεο ρξεηάδεηαη λα

γξαθηνύλ θαη λα μαλαδηαβαζηνύλ ζηα βήκαηα

δηαρσξηζκνύ.

πκθέξεη αλ ην skyline είλαη selective, αλ δειαδή ην

απνηέιεζκα ηνπ skyline είλαη κηθξό.

Page 18: The Skyline Operator

ΆΛΛΟΙ ΑΛΓΌΡΙΘΜΟΙ SKYLINE

Page 19: The Skyline Operator

B-TREES

Έζησ ινηπόλ όηη έρνπκε 2 ηαμηλνκεκέλνπο δείθηεο.

αξώλνπκε ηαπηόρξνλα θαη ηνπο δύν δείθηεο θαη ζηακαηάκε κόιηο βξνύκε ην πξώην ηαίξηαζκα (h2).

Σν h2 είλαη νξηζηηθά ηκήκα ηνπ skyline

Καλέλα μελνδνρείν πνπ δελ έρεη αθόκα ειεγρζεί δελ απνηειεί κέξνο ηνπ skylineγηαηί θπξηαξρείηαη από ην h2

Μέξνο ηνπ skyline απνηεινύλ αθόκα ηα h1, h17, h25 ελώ ην h3 θπξηαξρείηαη από ην h1.

Page 20: The Skyline Operator

ΠΑΡΑΣΗΡΗΔΙ

Ο αιγόξηζκνο δίλεη θαιά απνηειέζκαηα αλ ην

skyline πνπ ζα πξνθύςεη είλαη πνιύ κηθξό θαη ην

πξώην ηαίξηαζκα κπνξεί λα βξεζεί πνύ γξήγνξα.

Μπνξεί λα γεληθεπζεί γηα skyline πεξηζζόηεξσλ

δηαζηάζεσλ.

Η δπλαηόηεηα εθαξκνγήο απηνύ ηνπ αιγόξηζκνπ

είλαη πεξηνξηζκέλε αλ πξέπεη λα ππνινγηζηεί ην

απνηέιεζκα ηνπ skyline κε έλα join ή έλα group by.

Page 21: The Skyline Operator

Η ΥΡΉΗ ΔΝΌ R-TREE

Γηα έλα μελνδνρείν h δελ ρξεηάδεηαη ςάμηκν ζηα θιαδηά

ηνπ R-tree πνπ εγγπεκέλα πεξηέρνπλ κόλν μελνδνρεία

πνπ θπξηαξρνύληαη από ην h.

πλεπώο δηαζρίδνπκε ην R-tree πξώηα ζε βάζνο θαη

θιαδεύνπκε ηα θιαδηά ηνπ R-tree γηα θάζε λέν

μελνδνρείν.

Page 22: The Skyline Operator

SKYLINE ΚΑΙ TOP N

Σαμηλόκεζε σο πξνο ην θξηηήξην ηνπ Top N

άξσζε ηελ ηαμηλνκεκέλε ιίζηα θαη έιεγμε αλ κηα

πιεηάδα παξνπζηάδεη ελδηαθέξνλ ζπγθξίλνληαο κε όιεο

ηηο πιεηάδεο πνπ έρνπλ ηελ ίδηα ή θαη ρακειόηεξε ηηκή.

ηακάηα κόιηο βξεηο Ν

Ο αιγόξηζκνο κπνξεί λα εθαξκνζηεί αλεμάξηεηα από ηηο

δηαζηάζεηο πνπ ρξεζηκνπνηνύληαη ζηνπο Top N θαη

Skyline ηειεζηέο

Απηή ε πξνζέγγηζε βνεζάεη ηδηαίηεξα ζηελ απνθπγή

ρακέλεο δνπιεηάο γηα ηαμηλόκεζε

Page 23: The Skyline Operator

ΑΠΟΣΔΛΈΜΑΣΑ ΠΔΙΡΑΜΆΣΩΝ

Σα απνηειέζκαηα ηνπ πεηξάκαηνο δείρλνπλ όηη είλαη θαιή

επηινγή ε εθαξκνγή ζε έλα ζύζηεκα ΒΓ ελόο block-

nested-loops αιγόξηζκνπ γηα ηηο θαιέο πεξηπηώζεηο θαη

ελόο divide-and-conquer αιγόξηζκνπ γηα ηηο δύζθνιεο.

Πην ζπγθεθξηκέλα πξνηείλεηαη ε εθαξκνγή ελόο block-

nested loops αιγόξηζκνπ κε έλα παξάζπξν πνπ είλαη

νξγαλσκέλν σο κηα self-organizing list θαη ελόο divide-

and-conquer αιγόξηζκνπ πνπ πινπνηεί m-way

partitioning θαη “Early Skyline” ππνινγηζκνύο.