Ο σκοπός της διπλωματικής εργασίας ήταν η μελέτη της λήψης αποφάσεων με πολλαπλά κριτήρια σε βάσεις δεδομένων με τη βοήθεια του τελεστή κορυφογραμμής (skyline). Το skyline ενός συνόλου σημείων ορίζεται ως τα σημεία εκείνα που δεν κυριαρχούνται από κανένα άλλο, λαμβάνοντας υπόψη ένα σύνολο από τις διαστάσεις του. Έχουν προταθεί αρκετοί αλγόριθμοι υπολογισμού του skyline. Το βασικό πρόβλημα είναι ότι ένας skyline αλγόριθμος πρέπει να είναι υπολογιστικά αποτελεσματικός και να έχει μικρό κόστος εισόδου εξόδου (Ι/Ο). Ιδιαίτερο ενδιαφέρον παρουσιάζει επίσης η περίπτωση που το skyline μιας βάσης δεδομένων είναι μεγαλύτερο από τη διαθέσιμη μνήμη του συστήματος, φαινόμενο αρκετά συχνό λόγω της ραγδαίας αύξησης του μεγέθους των βάσεων δεδομένων τα τελευταία χρόνια.
Στην παρούσα διπλωματική, μελετήθηκαν και υλοποιήθηκαν δύο αλγόριθμοι για τον υπολογισμό του skyline στην εξωτερική μνήμη. Ο ένας αλγόριθμος είναι ο Sort and Limit Skyline Algorithm (SALSA) που αξιοποιεί την ιδέα της ταξινόμησης των δεδομένων εισόδου, έτσι ώστε να περιοριστεί άμεσα ο αριθμός των πλειάδων που θα διαβαστεί και θα λάβει μέρος σε ελέγχους κυριαρχίας (dominance checks). Ταξινομώντας τα σημεία με τη βοήθεια συμμετρικών συναρτήσεων, ο αριθμός των πλειάδων που πρέπει να διαβαστούν ελαχιστοποιείται. Ο δεύτερος αλγόριθμος είναι ο Object Space Partitioning (OSP), που βασίζεται στην ιδέα της οργάνωσης των skyline σημείων σε ένα δέντρο, που ορίζει έναν αναδρομικό κατακερματισμό του χώρου (space partitioning). Mε τη βοήθεια αυτού του skyline δέντρου κάθε υποψήφιο skyline σημείο χρειάζεται να ελεγχθεί για κυριαρχία μόνο με ένα μικρό σύνολο των ήδη υπάρχοντων skyline σημείων, το οποίο μειώνεται, όσο αυξάνεται η διάσταση των σημείων.
Καλούμενοι να λύσουμε το πρόβλημα της εύρεσης του skyline σε περιορισμένη κύρια μνήμη οι παραπάνω αλγόριθμοι υλοποιήθηκαν ως external αλγόριθμοι, χρησιμοποιώντας για την αποθήκευση των δεδομένων, αρχεία όπου τα δεδομένα αποθηκεύονται ανά μπλοκ (BlockFiles).
The scope of this thesis was to study the application of the skyline operator in multi-criteria decision making. A skyline query retrieves from a given data set, a set of tuples that are not dominated by any other tuples with respect to a set of dimensions. Numerous algorithms have been proposed for the skyline computation. The main challenge is to have a computationally efficient skyline algorithm with a low I/O cost. Considerable attention has been given to the fact that the skyline of a database grows larger than the available system memory, a common problem with today’s rapidly enlarging databases.
In this thesis, we study and develop two algorithms in order to tackle the problem of skyline computation in external memory. The Sort and Limit Skyline algorithm (SALSA) exploits the idea of presorting the input data so as to effectively limit the number of tuples to be read and compared. By sorting the data with symmetric monotonic functions, the number of tuples to be read is minimized. The second algorithm is the Object Space Partitioning algorithm (OSP), which is based on the idea of organizing the skyline points in a tree which defines a recursive space partitioning. With the help of this tree, each candidate skyline object only needs to be compared for dominance with a small subset of the existing skyline points, which decreases with the dimensionality of the problem.
In order to solve the skyline computation problem on bounded memory, the aforementioned algorithms were developed as external ones. As a result, files, where data can be stored as blocks of memory, were used (blockfiles).