Skip to content

Latest commit

 

History

History

README.md

Convex Hull & Skyline Operator (SQL Predicate) on Movies Dataset:

Αυτό το folder περιέχει υλοποίηση για τον υπολογισμό του Convex Hull και του Skyline Operator σε δισδιάστατα σημεία ταινιών μορφής (budget, popularity), καθώς και scripts για πειραματική αξιολόγηση:

  • υπολογισμός Convex Hull CH(P1) για το σύνολο σημείων P1 = {(budget, popularity)},
  • υλοποίηση SKYLINE OPERATOR για MIN budget και MAX popularity (σε Python και ως SQL predicate),
  • μέτρηση χρόνου εκτέλεσης με benchmarks για διαφορετικά μεγέθη δεδομένων (N) και πολλαπλές επαναλήψεις,
  • καταγραφή αποτελεσμάτων σε CSV (benchmarks και outputs των queries).

Requirements

  • Python 3.10+ (ή νεότερο)
  • Βιβλιοθήκες: pandas, openpyxl (για ανάγνωση Excel), και sqlite3 (ενσωματωμένη στην Python).
  • Dataset αρχείο (π.χ. data/Movies Dataset/movies_dataset_cleaned/movies_dataset.csv ή .xlsx).

Περιγραφή αρχείων

  • test.py
    Υλοποίηση Convex Hull & Python Skyline + benchmarking:

    • υπολογίζει το CH(P1) με Convex Hull,
    • υπολογίζει το Skyline (MIN budget, MAX popularity) με Python (sort-based),
    • τρέχει benchmarks για διάφορα N και γράφει αποτελέσματα σε CSV.
  • skyline_sql.py
    Υλοποίηση Skyline ως SQL predicate (SQLite in-memory) + benchmarking:

    • εκτελεί Skyline query με SQL (λογική τύπου NOT EXISTS),
    • τρέχει benchmarks για διάφορα N και γράφει αποτελέσματα σε CSV.
  • bench_python.csv
    Αποτελέσματα benchmark για την Python υλοποίηση (Convex Hull + Skyline).

  • bench_sql.csv
    Αποτελέσματα benchmark για την SQL υλοποίηση (Skyline ως SQL query/predicate).

  • out_convex_hull.csv
    Output αρχείο με τα σημεία (budget, popularity) που ανήκουν στο Convex Hull CH(P1).

  • out_skyline.csv
    Output αρχείο με τις ταινίες που ανήκουν στο Skyline (Python υλοποίηση).

  • out_skyline_sql.csv
    Output αρχείο με τις ταινίες που ανήκουν στο Skyline (SQL υλοποίηση).


Τι μετράνε τα αποτελέσματα (queries)

Για το σύνολο σημείων P1 = {(budget, popularity)}:

  • Convex Hull CH(P1): τα ακραία γεωμετρικά σημεία που περικλείουν όλα τα δεδομένα στο επίπεδο (budget, popularity).
  • Skyline (MIN budget, MAX popularity): οι ταινίες που δεν “κυριαρχούνται” από κάποια άλλη (δηλαδή δεν υπάρχει ταινία με μικρότερο ή ίσο budget και μεγαλύτερη ή ίση popularity, με τουλάχιστον μία αυστηρή βελτίωση).

Τα benchmarks μετρούν τον χρόνο εκτέλεσης καθώς αυξάνεται το N (και για πολλαπλές επαναλήψεις), ώστε να συγκριθεί η προσέγγιση Python vs SQL.


Εκτέλεση

Βεβαιώσου ότι το dataset υπάρχει στη διαδρομή που γράφει το script (ή δώσε το με --input) και τρέξε: python ./Query3/test.py