Στα πλαίσια της γενικότερης ανάπτυξης του κοινωνικού διαδικτύου, του ηλεκτρονικού εμπορίου αλλά και της ψυχαγωγίας μέσω του διαδικτύου, προκύπτουν πολυάριθμα συστήματα τα οποία μπορούν να αξιοποιήσουν τις προτιμήσεις των χρηστών τους για να τους προσφέρουν μια καλύτερη εμπειρία. Στο επίπεδο της βάσης δεδομένων όμως, η εκφραστικότητα του απλού σχεσιακού μοντέλου και οι αυστηροί περιορισμοί που επιβάλλονται κατά τη διατύπωση των ερωτημάτων που το χρησιμοποιούν, δεν είναι επαρκείς για να ενσωματωθούν οι –πολλές φορές αβέβαιες και ποικίλης βαρύτητας- προτιμήσεις των χρηστών.
Το σχεσιακό μοντέλο λοιπόν χρειάζεται να επεκταθεί για να συμπεριλάβει την έννοια της προτίμησης. Μια προσέγγιση για αυτή την επέκταση αποτελεί το σύστημα PrefDB, το οποίο τρέχει πάνω σε μια οποιαδήποτε σχεσιακή βάση δεδομένων και επεκτείνει τις λειτουργίες της, ώστε να μπορούν να οριστούν σε αυτή προτιμήσεις και να εκτελεστούν ερωτήματα που τις χρησιμοποιούν. Τα αποτελέσματα που επιστρέφονται έχουν δύο επιπλέον παραμέτρους: Τη βαθμολογία του καθενός με βάση τις προτιμήσεις που χρησιμοποιήθηκαν και την εμπιστοσύνη , που είναι ένα μέτρο της βεβαιότητας πως αυτή η βαθμολογία ανταποκρίνεται όντως στις προτιμήσεις του χρήστη.
Ο σκοπός της διπλωματικής εργασίας ήταν η ανάπτυξη μιας διαπροσωπείας χρήστη με τη μορφή διαδικτυακής εφαρμογής για τη διαχείριση συστημάτων που ενσωματώνουν το PrefDB. Η διαπροσωπεία αυτή υλοποιήθηκε με στόχο να είναι χρήσιμη για διαχειριστές τέτοιων συστημάτων,καθώς και για προγραμματιστές που φτιάχνουν εφαρμογές που στηρίζονται σε τέτοια συστήματα. Οι βασικές δυνατότητες της διαπροσωπείας είναι: Προσθαφαίρεση και επεξεργασία προτιμήσεων και προφίλ (ομάδες προτιμήσεων), αποθήκευση και φόρτωση ερωτημάτων με προτιμήσεις, πλοήγηση στο σχήμα των βάσεων, εκτέλεση ερωτημάτων και διαχείριση των αποτελεσμάτων.
Στη διαδικάσία του σχεδιασμού, ξεκινώντας με πρότυπο τις εφαρμογές που παρέχουν τα ήδη υπάρχοντα συστήματα διαχείρισης βάσεων δεδομένων,καθορίστηκαν οι προδιαγραφές για το σύστημα. Στη συνέχεια, έγινε ανάπτυξη στο ευρέως διαδεδομένο περιβάλλον HTML/CSS/Javascript του πυρήνα της εφαρμογής, ενώ στη συνέχεια εμπλουτίστηκε με τη χρήση διαφόρων εργαλείων, ώστε να ικανοποιούνται όλες οι προδιαγραφές.
Considering the evolution of the social web, e-commerce and entertainment through the internet, a significant number of systems have emerged that can utilize user preferences to enhance the user experience. However, expressing preferences using the relational model is not practical or even possible, due to the strict restrictions that it applies to search criteria used in queries, which directly contrasts the uncertainty and variety in significance that user preferences can have.
It is therefore apparent that the relational model needs to be expanded in order to be able to express preferences. One of the approaches towards this direction is PrefDB, a system that can be installed on any relational database and expand its functionality to include defining preferences and using them in queries. The results of a query enhanced with preferences include two additional columns, the score of each result, a measure of how good a fit each particular result is according to the preferences used and the confidence of each result, a measure of how certain it is that the preferences used and assorted scores actually reflect what the user likes or dislikes.
The scope of this diploma thesis was to develop a user interface, in the form of a web-based application, in order to make managing applications that implement PrefDB easier. The interface was geared towards administrators of said databases, as well as developers utilizing them. The basic functions of the interface are: Creating and editing preferences and preference groups (profiles), executing queries, browsing results and browsing the database schema.
The design process used the already existing database management systems for relational databases as a starting point, continuing with the specification of the functional and non-functional requirements for the system. Implementation of said requirements was the next step, using HTML/CSS/Javascript as the core of the application and using a wide spectrum of tools and frameworks to enhance the look and feel, as well as the functionality of the system.