Περίληψη:
Τα περισσότερα συστήματα βάσεων δεδομένων (SQL Server, Oracle, MySQL, MimerSQL, PostgreSQL) είναι σχεσιακά από τη φύση τους και έτσι αποθηκεύουν δεδομένα σε πίνακες ή λίστες με μη ιεραρχικούς τύπους συνδέσμων (ζεύγη τιμών), τις σχέσεις. Τα ιεραρχικά δεδομένα όμως έχουν συσχετίσεις τύπου γονέα-παιδιού οι οποίες δεν παριστάνονται εύκολα σε έναν σχεσιακό πίνακα της βάσης δεδομένων, καθιστώντας δύσκολη την διαχείριση των εγγραφών. Το πιο κοινό παράδειγμα μιας ιεραρχικής δομής δεδομένων είναι τα αρχεία ενός σκληρού δίσκου. Τα ιεραρχικά δεδομένα μπορούν να βρεθούν σε μία ποικιλία εφαρμογών βάσεων δεδομένων όπως οι εργαζόμενοι που κατατάσσονται σύμφωνα με τον προϊστάμενο τους, τα μηνύματα που περνούν σε ιεραρχίες προτεραιότητας στα φόρουμ και στις λίστες email, το οργανόγραμμα μιας εταιρίας, οι κατηγορίες και υποκατηγορίες των προϊόντων, η διαχείριση αντικειμένων μέσω περιεχομένου. Στην πτυχιακή εργασία θα χρησιμοποιηθεί το Adjacency List Model για τη μεταφορά των ιεραρχικών δομών δένδρου σε δομές του σχεσιακού μοντέλου δεδομένων. Για την αποτελεσματική διαχείριση αυτών θα χρησιμοποιηθούν οι Δηλωτικές/Διαδικαστικές επεκτάσεις της SQL-3 που υποστηρίζονται ήδη από αρκετά σύγχρονα συστήματα (Oracle, MimerSQL, SQL Server) και προσθέτουν την ισχύ μιας γλώσσας προγραμματισμού στην SQL μέσω εντολών ελέγχου ροής (If-then-else, Looping constructs, Exception handling, Case statement, Begin-End blocks) και μια ποικιλία άλλων προγραμματιστικών κατασκευών όπως δηλώσεις μεταβλητών, κέρσορες, εντολές Set για ανάθεση τιμών και πληροφορίες κατάστασης. Οι ίδιοι οι τύποι κλάσεων των αντικειμένων (π.χ. εργαζόμενοι) σε μία σχεσιακή βάση αποθηκεύονται σε έναν πίνακα που περιέχει το σύνολο των οντοτήτων. Μια βασική κλάση όμως είναι δυνατόν να περιέχει και παραγόμενες κλάσεις όπως (εργαζόμενοι με σύμβαση, μισθωτοί, εξωτερικοί συνεργάτες, μεταπτυχιακοί, προπτυχιακοί πρακτικής άσκησης, μεταδιδακτορικοί ερευνητές κ.α.). Όταν οι ίδιοι οι τύποι οντοτήτων είναι ιεραρχικά δομημένοι και ο κάθε ένας περιέχει και διαφορετικά γνωρίσματα μπορεί να χρησιμοποιηθεί το extended entity-relationship model (εκτεταμένο μοντέλο οντοτήτων συσχετίσεων) με ISA ιεραρχίες τύπων οντοτήτων και συσσώρευση (aggregation) τύπων συσχετίσεων για την μοντελοποίησή τους και κατασκευή της βάσης.