The Skyline Operator

Post on 04-Jul-2015

314 views 0 download

description

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

Transcript of The Skyline Operator

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

The Skyline Operator

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

ΜΑΙΟ 2012

SKYLINE OF HOTELS

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

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

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

θζελό

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

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

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

άιιν

SKYLINE

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

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

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

από άιια

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

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

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

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

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

ΔΠ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.

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

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

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

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

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

skyline of

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

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

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

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

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

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

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

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

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

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

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

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

δηαζηάζεηο

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

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

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

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

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

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

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

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

αιγόξηζκνπ

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

είλαη κηθξό.

MAINTAINING THE WINDOW AS A SELF-

ORGANIZING LIST

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

ιίζηα

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

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

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

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

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

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

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

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

REPLACING TUPLES IN THE WINDOW

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

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

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

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

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

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

θνξέο

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

M WAY PARTITIONING

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

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

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

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

EARLY SKYLINE

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

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

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

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

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

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

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

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

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

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

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

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

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

B-TREES

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

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

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

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

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

ΠΑΡΑΣΗΡΗΔΙ

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

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

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

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

δηαζηάζεσλ.

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

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

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

Η ΥΡΉΗ ΔΝΌ R-TREE

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

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

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

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

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

μελνδνρείν.

SKYLINE ΚΑΙ TOP N

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

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

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

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

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

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

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

Skyline ηειεζηέο

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

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

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

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

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

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

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

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

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

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

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

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