Κατέβασμα παρουσίασης
Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε
1
Αντικειμενοστραφή ΣΔΒΔ
Αδυναμία σχεσιακού μοντέλου Βασικές έννοιες αντικειμενοστραφών ΣΔΒΔ Πλεονεκτήματα και μειονεκτήματα
2
Αδυναμία Σχεσιακού Μοντέλου
Το σχεσιακό μοντέλο δεδομένων αποτελεί ακόμη και σήμερα το πιο διαδεδομένο μοντέλο που υποστηρίζει τις περισσότερες εφαρμογές διαχειριστικού τύπου (τραπεζικά συστήματα, συστήματα κράτησης θέσεων, κλπ). Ωστόσο, υπάρχουν σύγχρονες εφαρμογές που θέτουν μεγάλες απαιτήσεις με αποτέλεσμα η υποστήριξη των εφαρμογών αυτών από το σχεσιακό μοντέλο να είναι αρκετά δύσκολη. Παραδείγματα τέτοιων εφαρμογών είναι τα συστήματα CAD (computer-aided design), GIS (geographical information systems) και εφαρμογές πολυμέσων (multimedia applications).
3
Αδυναμία Σχεσιακού Μοντέλου
Οι εφαρμογές αυτές παρουσιάζουν αρκετές σημαντικές διαφορές σε σχέση με τις παραδοσιακές: τα δεδομένα χαρακτηρίζονται από μεγαλύτερο όγκο και μεγαλύτερη πολυπλοκότητα, η διαχείριση των δεδομένων απαιτεί την υλοποίηση πολύπλοκων αλγορίθμων (π.χ. την εύρεση της συντομότερης διαδρομής σε ένα χάρτη), τα ερωτήματα είναι πιο πολύπλοκα με αποτέλεσμα να απαιτούν περισσότερο χρόνο για την επεξεργασία τους
4
Αδυναμία Σχεσιακού Μοντέλου
Έχει επιβεβαιωθεί πολλές φορές ότι τα σχεσιακά ΣΔΒΔ δεν επαρκούν για την ικανοποίηση των σύγχρονων απαιτήσεων. Το ερώτημα που προκύπτει εύλογα είναι γιατί τα σχεσιακά ΣΔΒΔ αδυνατούν να καλύψουν τις ανάγκες των σύγχρονων εφαρμογών; Στη συνέχεια περιγράφονται μερικά από τα προβλήματα που εμφανίζονται χρησιμοποιώντας ένα σχεσιακό ΣΔΒΔ:
5
Αδυναμία Σχεσιακού Μοντέλου
Αδυναμία αναπαράστασης του πραγματικού κόσμου. Η διαδικασία της κανονικοποίησης οδηγεί στη δημιουργία σχέσεων (πινάκων), οι οποίες δεν αντιστοιχούν σε οντότητες του πραγματικού κόσμου. Ο διαμοιρασμός των δεδομένων σε πολλούς πίνακες οδηγεί στην εκτέλεση πολλών χρονοβόρων πράξεων σύνδεσης.
6
Αδυναμία Σχεσιακού Μοντέλου
Ομοιογένεια Το σχεσιακό μοντέλο ορίζει ότι κάθε γραμμή ενός πίνακα πρέπει να αποτελείται από τις ίδιες στήλες, και κάθε στήλη του πίνακα πρέπει να δέχεται τιμές από το ίδιο πεδίο ορισμού. Οι δύο αυτές ιδιότητες καλούνται οριζόντια και κάθετη ομοιογένεια. Η δομή αυτή του πίνακα είναι αρκετά περιοριστική για αντικείμενα του πραγματικού κόσμου τα οποία έχουν πολύπλοκη δομή.
7
Αδυναμία Σχεσιακού Μοντέλου
Περιορισμένες λειτουργίες Ένα σχεσιακό ΣΔΒΔ έχει ένα περιορισμένο σύνολο λειτουργιών που μπορούν να εφαρμοσθούν στα δεδομένα, το οποίο καθορίζεται από τη γλώσσα SQL. Στις σύγχρονες εφαρμογές το σύνολο των λειτουργιών αυτών δεν επαρκεί και επομένως απαιτείται η δυνατότητα ορισμού νέων τύπων δεδομένων και νέων λειτουργιών. Για παράδειγμα, μία εφαρμογή GIS χρειάζεται υποστήριξη για γεωμετρικά αντικείμενα (γραμμές, πολύγωνα) και πράξεις μεταξύ των γεωμετρικών αντικειμένων (επικάλυψη δύο πολυγώνων). Τα παραδοσιακά σχεσιακά ΣΔΒΔ δεν επιτρέπουν τον ορισμό νέων τύπων δεδομένων και νέων λειτουργιών, με αποτέλεσμα η διαχείριση των αντικειμένων να εμπεριέχεται στη λογική της εφαρμογής και όχι στο ΣΔΒΔ.
8
Αδυναμία Σχεσιακού Μοντέλου
Συναλλαγές μικρής διάρκειας Οι συναλλαγές στις παραδοσιακές εφαρμογές είναι συνήθως μικρής διάρκειας με αποτέλεσμα οι μηχανισμοί ταυτόχρονης εκτέλεσης, όπως το κλείδωμα δύο φάσεων, να είναι επαρκείς. Αν οι συναλλαγές έχουν μεγάλη διάρκεια, το οποίο παρατηρείται συνεχώς σε πολύπλοκα αντικείμενα, οι ανωτέρω μηχανισμοί δεν επαρκούν.
9
Αδυναμία Σχεσιακού Μοντέλου
Οι αλλαγές στο σχήμα της ΒΔ είναι χρονοβόρες Αν απαιτηθεί αλλαγή στο σχήμα της ΒΔ θα πρέπει ο διαχειριστής να διακόψει προσωρινά τη λειτουργία του συστήματος και επιπλέον τα προγράμματα εφαρμογής πρέπει να διαμορφωθούν αναλόγως.
10
Τάσεις Τα προαναφερθέντα προβλήματα οδήγησαν τους ερευνητές στη μελέτη νέων μεθόδων μοντελοποίησης και διαχείρισης έτσι ώστε η αποτελεσματική και αποδοτική διαχείριση των σύγχρονων δεδομένων να είναι εφικτή. Προς αυτήν την κατεύθυνση παρατηρούνται δύο τάσεις που στηρίζονται σε διαφορετική φιλοσοφία: Μελέτη εφαρμογής του αντικειμενοστραφούς μοντέλου δεδομένου (object-oriented data model) και την υλοποίηση αντικειμενοστραφών βάσεων δεδομένων (object-oriented databases), Μελέτη επέκτασης των σχεσιακών βάσεων δεδομένων έτσι ώστε μία σχεσιακή βάση να είναι σε θέση να διαχειρίζεται πολύπλοκα αντικείμενα. Η τάση αυτή οδήγησε στη δημιουργία των αντικειμενο-σχεσιακών βάσεων δεδομένων (object-relational databases)
11
Αντικειμενοστραφές Μοντέλο
Το αντικειμενοστραφές μοντέλο δεδομένων έχει εφαρμοσθεί με επιτυχία στις αντικειμενοστραφείς γλώσσες προγραμματισμού όπως Smalltalk, C++ και Java Η υλοποίηση μίας εφαρμογής με μία αντικειμενοστραφή γλώσσα προγραμματισμού διαφέρει σημαντικά από την υλοποίηση της ίδιας εφαρμογής σε μία διαδικαστική γλώσσα. Επιπλέον, οι μέθοδοι ανάλυσης και σχεδίασης διαφέρουν από τις αντίστοιχες κλασικές μεθόδους. Στη συνέχεια παρουσιάζονται οι βασικές έννοιες του αντικειμενοστραφούς μοντέλου δεδομένων.
12
Αντικειμενοστραφές Μοντέλο
Ένα αντικείμενο (object) αποτελεί μία οντότητα του πραγματικού κόσμου (σε αντιστοιχία με το μοντέλο ΟΣ). Κάθε αντικείμενο αποτελείται από χαρακτηριστικά (attributes). Το σύνολο των τιμών των χαρακτηριστικών καλείται κατάσταση (state) του αντικειμένου. Ένα αντικείμενο καθορίζει και τις επιτρεπτές ενέργειες που μπορούν να εφαρμοσθούν στο αντικείμενο. Αυτό πραγματοποιείται με τη βοήθεια μεθόδων (methods) με δυνατότητα προσπέλασης στα χαρακτηριστικά του αντικειμένου. Το σύνολο των μεθόδων καλείται συμπεριφορά (behavior) του αντικειμένου.
13
Αντικειμενοστραφές Μοντέλο
Στο σημείο αυτό παρατηρούμε την πρώτη σημαντική διαφορά σε σχέση με τις διαδικαστικές γλώσσες προγραμματισμού, όπου δεδομένα και μέθοδοι ορίζονται ξεχωριστά. Η ιδιότητα αυτή των αντικειμένων καλείται ενθυλάκωση (encapsulation). Η προσπέλαση των δεδομένων ενός αντικειμένου πραγματοποιείται μόνο μέσω των μεθόδων. Έτσι αποτρέπεται η αλλαγή των χαρακτηριστικών απ’ ευθείας από άλλο αντικείμενο και επιτυγχάνεται απόκρυψη πληροφοριών (information hiding).
14
Αντικειμενοστραφές Μοντέλο
Αντικείμενα με τα ίδια χαρακτηριστικά και μεθόδους σχηματίζουν μία κλάση αντικειμένων (object class). Το κάθε αντικείμενο αποτελεί ένα στιγμιότυπο της κλάσης όπου ανήκει. Η διάκριση των αντικειμένων μεταξύ τους πραγματοποιείται με τη χρήση της ταυτότητας αντικειμένου (object identifier) η οποία είναι μοναδική για κάθε αντικείμενο, και ποτέ δεν επαναχρησιμοποιείται.
15
Αντικειμενοστραφές Μοντέλο
16
Αντικειμενοστραφές Μοντέλο
Για τον ορισμό ενός σχήματος βάσης δεδομένων απαιτούνται συνήθως πολλές κλάσεις αντικειμένων. Αν και δύο ή περισσότερες κλάσεις μπορεί να είναι διαφορετικές μεταξύ τους, μπορούν να έχουν και αρκετά κοινά χαρακτηριστικά και μεθόδους. Η κληρονομικότητα (inheritance) επιτρέπει σε δύο κλάσεις να μοιράζονται κοινά χαρακτηριστικά και μεθόδους. Όταν μία κλάση Β κληρονομεί την κλάση Α, τότε το σύνολο των χαρακτηριστικών της Β είναι υπερσύνολο του συνόλου των χαρακτηριστικών της A (το ίδιο ισχύει και για τις μεθόδους).
17
Αντικειμενοστραφές Μοντέλο
Θεωρείστε για παράδειγμα τις κλάσεις Υπάλληλος, Πωλητής και Προγραμματιστής μίας ΒΔ που χρησιμοποιείται για την εσωτερική οργάνωση της εταιρείας. Είναι προφανές ότι ένας πωλητής είναι επίσης και υπάλληλος, και το ίδιο ισχύει για έναν προγραμματιστή. Αναμένουμε ότι οι κλάσεις Υπάλληλος (employee) και Πωλητής (salesperson) θα έχουν αρκετά κοινά χαρακτηριστικά και μεθόδους, και το ίδιο θα ισχύει για τις κλάσεις Υπάλληλος και Προγραμματιστής
18
Αντικειμενοστραφές Μοντέλο
19
Αντικειμενοστραφές Μοντέλο
Με τη χρήση της κληρονομικότητας μπορούμε να κατασκευάσουμε μία ιεραρχία εξειδίκευσης (specialization hierarchy) η οποία συνδέει τις κλάσεις ως προς την κληρονομικότητα. Για να δηλώσουμε ότι η κλάση B είναι ειδική περίπτωση της κλάσης A χρησιμοποιείται η λέξη ISA ( Β ISA A), όπως ακριβώς και στο μοντέλο ΟΣ.
20
Αντικειμενοστραφές Μοντέλο
21
Αντικειμενοστραφές Μοντέλο
Ένας άλλος τύπος ιεραρχικής δομής που χρησιμοποιείται συχνά για την αναπαράσταση του πραγματικού κόσμου είναιη ιεραρχία συμπερίληψης (containment hierarchy), η οποία ορίζει ότι ένα αντικείμενο αποτελεί τμήμα ενός άλλου αντικειμένου. Η σχέση αυτή μεταξύ των αντικειμένων δηλώνεται με το IS-PART-OF σε αντίθεση με τη σχέση εξειδίκευσης που δηλώνεται με το ISA. Η ιεραρχία συμπερίληψης οδηγεί σε σύνθετα αντικείμενα (complex objects) με αποτέλεσμα κάποια από τα χαρακτηριστικά ενός αντικειμένου να είναι και αυτά αντικείμενα.
22
Αντικειμενοστραφές Μοντέλο
23
Αντικειμενοστραφές ΣΔΒΔ
Ένα αντικειμενοστραφές ΣΔΒΔ (OODMBS) είναι ένα ΣΔΒΔ που χρησιμοποιεί ως βάση το αντικειμενοστραφές μοντέλο δεδομένων. Η έρευνα και η ανάπτυξη των συστημάτων αυτών έχει επηρεασθεί σε μεγάλο βαθμό από το χώρο των αντικειμενοστραφών γλωσσών προγραμματισμού. Η ανάπτυξη των αντικειμενοστραφών ΣΔΒΔ πραγματοποιείται με την προσθήκη της κατάλληλης λειτουργικότητας σε μία αντικειμενοστραφή γλώσσα προγραμματισμού.
24
Αντικειμενοστραφές ΣΔΒΔ
Οι βασικές δυνατότητες που πρέπει να έχει ένα αντικειμενοστραφές ΣΔΒΔ προσδιορίζονται σύμφωνα με δύο κριτήρια: α) το σύστημα πρέπει να είναι αντικειμενοστραφές και β) πρέπει να παρέχει όλες τις δυνατότητες ενός ΣΔΒΔ. Οι δυνατότητες αυτές (δεκατρείς στο σύνολό τους) αναλύονται στην αναφορά Atkinson Το σύνολο των δυνατοτήτων καλείται (object-oriented database system manifesto). Οι πρώτες οκτώ δυνατότητες αφορούν στην υποστήριξη του αντικειμενοστραφούς μοντέλου δεδομένων όπου αναφερθήκαμε προηγουμένως. Οι υπόλοιπες πέντε δυνατότητες αφορούν στη λειτουργικότητα του ΣΔΒΔ και έχουν ως εξής:
25
Αντικειμενοστραφές ΣΔΒΔ
αποθήκευση αντικειμένων διαχείριση μεγάλων ΒΔ (απαιτείται αποτελεσματική διαχείριση δευτερεύουσας μνήμης), επεξεργασία ερωτημάτων συγχρονισμός ταυτόχρονων προσπελάσεων σε αντικείμενα, επανάκτηση δεδομένων.
26
Αντικειμενοστραφές ΣΔΒΔ
Μία αντικειμενοστραφής γλώσσα προγραμματισμού δεν έχει δυνατότητα διατήρησης (persistence) των αντικειμένων. Αυτό σημαίνει ότι μετά τον τερματισμό της εφαρμογής τα αντικείμενα καταστρέφονται και δεν είναι διαθέσιμα σε άλλη εφαρμογή. Το γεγονός αυτό οδήγησε τους ερευνητές στη μελέτη διατηρήσιμων γλωσσών προγραμματισμού (persistent programming languages), οι οποίες έχουν τη δυνατότητα διατήρησης των αντικειμένων έτσι ώστε να είναι διαθέσιμα και μετά το τέλος της εφαρμογής. Αυτό επιτρέπει σε πολλές εφαρμογές να έχουν πρόσβαση στα ίδια αντικείμενα, επιτρέποντας την ανάπτυξη αντικειμενοστραφών ΣΔΒΔ.
27
Γλώσσες Αντικειμένων Η γλώσσα ορισμού αντικειμένων (object definition language, ODL) είναι μία γλώσσα για τον ορισμό των προδιαγραφών τύπων αντικειμένων για συστήματα τα οποία υποστηρίζουν τις δυνατότητες που έχει προτείνει η ODMG. Ο βασικός στόχος της γλώσσας είναι η επίτευξη της μεταφερσιμότητας (portability) ως προς το σχήμα της βάσης δεδομένων έτσι ώστε να είναι δυνατή η προσπέλαση των δεδομένων μεταξύ διαφορετικών αντικειμενοστραφών ΣΔΒΔ.
28
Γλώσσες Αντικειμένων
29
Γλώσσες Αντικειμένων Η γλώσσα ερωτημάτων αντικειμένων (object query language, OQL) είναι μία δηλωτική γλώσσα χειρισμού δεδομένων, η οποία μοιάζει κατά πολύ σε σύνταξη με τη γλώσσα SQL των σχεσιακών ΣΔΒΔ. Η OQL μπορεί να χρησιμοποιηθεί σαν αυτόνομη γλώσσα ερωτημάτων ή να ενσωματωθεί σε κάποια άλλη γλώσσα προγραμματισμού (C++, Java). Βασικός στόχος της OQL είναι η απλή διατύπωση ερωτημάτων προς την αντικειμενοστραφή ΒΔ με τρόπο παρόμοιο με αυτόν της SQL.
30
Γλώσσες Αντικειμένων Η OQL μπορεί να χρησιμοποιηθεί για συσχετιστική προσπέλαση (associative access) ή για πλοηγητική προσπέλαση (navigational access): Η συσχετιστική προσπέλαση επιστρέφει ένα σύνολο αντικειμένων της ΒΔ. Ο τρόπος εντοπισμού και επιστροφής των αντικειμένων ανήκει στην ευθύνη του αντικειμενοστραφούς ΣΔΒΔ. Κατά την πλοηγητική προσπέλαση πραγματοποιείται προσπέλαση σε ένα αντικείμενο κάθε φορά και χρησιμοποιούνται οι δεσμοί που υπάρχουν μεταξύ των αντικειμένων για μεταβούμε από ένα αντικείμενο σε άλλο.
31
Γλώσσες Αντικειμένων Στο επόμενο παράδειγμα η ομοιότητα της OQL με την SQL είναι σαφής. Έστω ότι ζητούμε τα ονόματα και τις οδούς για όλα τα υποκαταστήματα που βρίσκονται στη Θεσσαλονίκη. Το αντίστοιχο ερώτημα έχει ως εξής: SELECT b.name, b.address FROM b IN branches WHERE b.address.city = "Θεσσαλονίκη"
32
Γλώσσες Αντικειμένων Ας εξετάσουμε τέλος ένα παράδειγμα όπου συμμετέχουν περισσότερες από μία κλάσεις αντικειμένων. Έστω ότι αναζητούμε τα επίθετα των υπαλλήλων που εργάζονται σε όλα τα υποκαταστήματα της Αλεξανδρούπολης. Το αντίστοιχο ερώτημα έχει ως εξής: SELECT e.name.last-name FROM b IN branches, e IN branches.WorksAt WHERE b.address.city = "Αλεξανδρούπολη"
33
Δεσμεύσεις ODMG C++ Οι δεσμεύσεις (bindings) ορίζουν τον τρόπο με τον οποίο οι δομές της γλώσσας ορισμού αντικειμένων αντιστοιχούν σε δομές μίας συγκεκριμένης γλώσσας προγραμματισμού. Οι δεσμεύσεις διευκολύνουν τον προγραμματιστή εφαρμογών διότι με τον τρόπο αυτό χρησιμοποιεί μία γλώσσα προγραμματισμού και όχι δύο διαφορετικές. Οι γλώσσες για τις οποίες παρέχονται δεσμεύσεις από την ODMG είναι οι Smalltalk, C++ και Java. Εδώ εστιάζουμε στις δεσμεύσεις για τη γλώσσα C++.
34
Δεσμεύσεις ODMG C++ Παρέχεται μία βιβλιοθήκη κλάσεων C++, η οποία υλοποιεί τις δομές της ODMG ODL. Η βιβλιοθήκη αυτή χρησιμοποιείται από το πρόγραμμα εφαρμογής έτσι ώστε να προσπελασθούν τα αντικείμενα ανάλογα με τη λογική της εφαρμογής. Η χρήση της βιβλιοθήκης κλάσεων αποτρέπει τη σημαντική αλλαγή της δομής και του συντακτικού της γλώσσας C++ για την υποστήριξη της διατηρησιμότητας των αντικειμένων. Το πρόγραμμα εφαρμογής, το οποίο είναι γραμμένο σε C++, χρησιμοποιεί τη γλώσσα χειρισμού αντικειμένων (object manipulation language, OML) η οποία καθορίζει τον τρόπο προσπέλασης των αντικειμένων της ΒΔ.
35
Δεσμεύσεις ODMG C++
36
Δεσμεύσεις ODMG C++
37
Δεσμεύσεις ODMG C++
38
Πλεονεκτήματα Αντικειμενοστραφών ΣΔΒΔ
Ενισχυμένες δυνατότητες μοντελοποίησης. Το αντικειμενοστραφές μοντέλο δεδομένων επιτρέπει την αναπαράσταση του πραγματικού κόσμου με μεγαλύτερη ακρίβεια σε σχέση με το σχεσιακό μοντέλο. Η έννοια του αντικειμένου που περιλαμβάνει δεδομένα και μεθόδους ανταποκρίνεται περισσότερο στην πραγματικότητα. Με τις ιεραρχίες εξειδίκευσης και συμπερίληψης μοντελοποιούνται σχετικά εύκολα ακόμη και πολύπλοκες οντότητες του πραγματικού κόσμου.
39
Πλεονεκτήματα Αντικειμενοστραφών ΣΔΒΔ
Επεκτασιμότητα Σε ένα αντικειμενοστραφές ΣΔΒΔ μπορούμε να ορίσουμε νέες κλάσεις αντικειμένων χρησιμοποιώντας τις ήδη υπάρχουσες. Με τη χρήση της απλής και της πολλαπλής κληρονομικότητας και την εφαρμογή του πολυμορφισμού μπορούμε να παράγουμε νέες κλάσεις αντικειμένων που κληρονομούν χαρακτηριστικά και μεθόδους άλλων κλάσεων. Έτσι αποφεύγεται η επανάληψη του ορισμού χαρακτηριστικών και μεθόδων που έχουν ήδη ορισθεί σε άλλες κλάσεις.
40
Πλεονεκτήματα Αντικειμενοστραφών ΣΔΒΔ
Εξέλιξη σχήματος ΒΔ Οι δυνατότητες του αντικειμενοστραφούς μοντέλου δεδομένων και οι ευκολίες που παρέχει το ΣΔΒΔ μπορούν να χρησιμοποιηθούν για την εξέλιξη του σχήματος της ΒΔ (schema evolution). Η εξέλιξη του σχήματος είναι αρκετά δύσκολη στα σχεσιακά συστήματα διότι επιφέρει πολλές αλλαγές στη λογική των εφαρμογών.
41
Πλεονεκτήματα Αντικειμενοστραφών ΣΔΒΔ
Υποστήριξη συναλλαγών μεγάλης διάρκειας Ο τρόπος διαχείρισης κατά την εκτέλεση των ταυτόχρονων συναλλαγών από τα σχεσιακά συστήματα οδηγεί σε περιορισμένη απόδοση όταν οι συναλλαγές έχουν μεγάλη διάρκεια. Τα αντικειμενοστραφή συστήματα υλοποιούν διαφορετικούς μηχανισμούς με αποτέλεσμα οι συναλλαγές μεγάλης διάρκειας να εκτελούνται πιο αποδοτικά.
42
Μειονεκτήματα Αντικειμενοστραφών ΣΔΒΔ
Έλλειψη καθορισμένου μοντέλου Παρά τα πλεονεκτήματα του αντικειμενοστραφούς μοντέλου δεν υπάρχει κάποιο συγκεκριμένο πρότυπο που να ακολουθείται από όλους τους κατασκευαστές συστημάτων. Το μοντέλο που έχει προτείνει η ODMG έχει καθιερωθεί ως de facto πρότυπο.
43
Μειονεκτήματα Αντικειμενοστραφών ΣΔΒΔ
Πολυπλοκότητα Οι μηχανισμοί αποθήκευσης αντικειμένων, διαχείρισης συναλλαγών, εξέλιξης σχήματος της βάσης και επεξεργασίας ερωτημάτων είναι αρκετά πολύπλοκοι. Η πολυπλοκότητα αυτή οδηγεί στην υλοποίηση συστημάτων που είναι πιο απαιτητικά και δυσκολότερα στη διαχείρισή τους.
44
Μειονεκτήματα Αντικειμενοστραφών ΣΔΒΔ
Η βελτιστοποίηση ερωτημάτων βλάπτει την ενθυλάκωση Η διαδικασία της βελτιστοποίησης ερωτημάτων απαιτεί τη γνώση διαφόρων πληροφοριών σχετικά με τη φύση των αντικειμένων. Για να γίνουν οι πληροφορίες αυτές διαθέσιμες στο βελτιστοποιητή ερωτημάτων πρέπει να είναι δυνατή η απ’ευθείας προσπέλαση στα αντικείμενα, κάτι που καταστρατηγεί την ενθυλάκωση.
45
Μειονεκτήματα Αντικειμενοστραφών ΣΔΒΔ
Έλλειψη υποστήριξης όψεων Πολλά από τα σύγχρονα αντικειμενοστραφή συστήματα δεν υποστηρίζουν μηχανισμό όψεων, παρά τα πολλά πλεονεκτήματα που προσφέρουν.
46
Σύνοψη Η αδυναμία του σχεσιακού μοντέλου δεδομένων στην ακριβή αναπαράσταση του πραγματικού κόσμου και στην υποστήριξη των σύγχρονων εφαρμογών οδήγησε τους ερευνητές στην υιοθέτηση άλλων μοντέλων. Το αντικειμενοστραφές μοντέλο, γνωστό από τις αντικειμενοστραφείς γλώσσες προγραμματισμού, χρησιμοποιείται για τη μοντελοποίηση σύνθετων οντοτήτων του πραγματικού κόσμου. Τα αντικειμενοστραφή ΣΔΒΔ στηρίζουν το αντικειμενοστραφές μοντέλο δεδομένων και έχουν πολλές δυνατότητες οι οποίες απουσιάζουν από τα σχεσιακά ΣΔΒΔ. Ωστόσο, παρουσιάζουν και μερικά σοβαρά μειονεκτήματα που δυσκολεύουν την ευρεία χρήση τους: απουσία καθορισμένου μοντέλου, αυξημένη πολυπλοκότητα, η βελτιστοποίηση βλάπτει την ενθυλάκωση των αντικειμένων, απουσία υποστήριξης όψεων.
47
Αντικειμενο-Σχεσιακά ΣΔΒΔ
Κίνητρο Βασικές έννοιες αντικειμενο-σχεσιακών ΣΔΒΔ Σύγκριση συστημάτων
48
Κίνητρο Οι λόγοι που οδήγησαν τους ερευνητές προς αυτήν την κατεύθυνση είναι αφ’ ενός τα μειονεκτήματα που παρουσιάζουν τα αντικειμενοστραφή ΣΔΒΔ και αφ’ ετέρου το γεγονός ότι τα σχεσιακά ΣΔΒΔ έχουν λύσει πολλά προβλήματα που αφορούν στη διαχείριση δεδομένων, και επομένως αποτελούν μία καλή βάση για την κατασκευή νέων συστημάτων με περισσότερες δυνατότητες.
49
Εμφωλιασμένες Σχέσεις
Μία από τις απαιτήσεις του σχεσιακού μοντέλου είναι η ατομικότητα των τιμών σε μία στήλη. Ο κανόνας αυτός προσδιορίζει στην ουσία και την πρώτη κανονική μορφή (1NF). Για την υποστήριξη πολύπλοκων αντικειμένων θα πρέπει οι σχέσεις να επιτρέπουν σε ένα χαρακτηριστικό να δέχεται τιμές που δεν είναι κατ΄ανάγκη ατομικές. Αυτό οδηγεί σε εμφωλιασμένες σχέσεις (nested relations), όπου η τιμή ενός χαρακτηριστικού μίας σχέσης μπορεί να είναι μία άλλη σχέση. Στην περίπτωση αυτή η σχέση δεν ικανοποιεί την πρώτη κανονική μορφή (non-first normal form, N1NF). Το μοντέλο που προκύπτει από το σχεσιακό μοντέλο επιτρέποντας σχέσεις N1NF καλείται μοντέλο εμφωλιασμένων σχέσεων (nested-relational model) και αποτελεί μία πρώτη προσέγγιση επέκτασης του σχεσιακού μοντέλου για την υποστήριξη πολύπλοκων τύπων δεδομένων.
50
Εμφωλιασμένες Σχέσεις
51
SQL3 Η υποστήριξη αντικειμένων και πολύπλοκων τύπων δεδομένων από ένα σχεσιακό σύστημα επιβάλλει και την επέκταση της γλώσσας SQL έτσι ώστε να μπορούμε να εκμεταλλευτούμε τις επιπλέον λειτουργίες του συστήματος. Για το σκοπό αυτό δημιουργήθηκε ένα νέο πρότυπο της γλώσσας SQL με την ονομασία SQL3, το οποίο εμπλουτίζει τη γλώσσα SQL με νέα στοιχεία τα βασικότερα από τα οποία είναι:
52
SQL3 υποστήριξη τύπου γραμμής,
υποστήριξη αντικειμένων και εννοιών του αντικειμενοστραφούς μοντέλου, υποστήριξη αφαιρετικών τύπων δεδομένων, τύποι δεδομένων οριζόμενοι από το χρήστη, διαδικασίες και συναρτήσεις οριζόμενες από το χρήστη, υποστήριξη μεγάλων αντικειμένων, αυτόματη εκτέλεση εντολών μετά ή πριν από εισαγωγή, διαγραφή ή ενημέρωση δεδομένων.
53
SQL3 Υποστήριξη Τύπου Γραμμής
Θεωρείστε τον πίνακα Συνδρομητής ο οποίος περιέχει τα χαρακτηριστικά κωδικός, όνομα και διεύθυνση. Το χαρακτηριστικό διεύθυνση είναι σύνθετο και αποτελείται από τα πεδία οδός, αριθμός, πόλη, ταχυδρομικός-κώδικας και χώρα.
54
SQL3 Υποστήριξη Τύπου Γραμμής
Για την κατασκευή του πίνακα χρησιμοποιείται η εντολή CREATE TABLE της SQL3. Η δεσμευμένη λέξη ROW δηλώνει ότι ακολουθεί ο ορισμός γραμμής που αποτελεί την περιγραφή του χαρακτηριστικού διεύθυνση: CREATE TABLE Συνδρομητής (κωδικός INT, όνομα CHAR (50), διεύθυνση ROW (οδός CHAR(30), αριθμός CHAR(4), ταχυδρομικός-κώδικας CHAR(6), πόλη CHAR(30), χώρα CHAR(30)));
55
SQL3 Υποστήριξη Τύπου Γραμμής INSERT INTO Συνδρομητής
VALUES (1000, 'A. Παπαγεωργίου', ('Φιλύρων', '13', '56225', 'Θεσσαλονίκη', 'Ελλάδα'));
56
SQL3 Τύποι Οριζόμενοι από το Χρήστη (user-defined types)
Οι τύποι δεδομένων που υποστηρίζει ένα ΣΔΒΔ συνήθως δεν επαρκούν για την κάλυψη των απαιτήσεων όλων των εφαρμογών. Για το λόγο αυτό η SQL3 δίνει τη δυνατότητα να ορίζονται νέοι τύποι δεδομένων μέσω της εντολής CREATE TYPE. Η δημιουργία νέων τύπων δεδομένων προσφέρει σημαντική ευκολία στην υλοποίηση πολύπλοκων αντικειμένων με στόχο τη ρεαλιστική αναπαράσταση του πραγματικού κόσμου.
57
SQL3 Ας δούμε ένα παράδειγμα ορισμού ενός νέου τύπου
δεδομένων για τη διαχείριση ορθογωνίων γεωμετρικών σχημάτων: CREATE TYPE RectType AS ( x1 INT, x2 INT, y1 INT, y2 INT, FUNCTION getArea (r RectType) RETURNS FLOAT RETURN (x2-x1)*(y2-y1); END, FUNCTION getPerimeter (r RectType) RETURNS FLOAT RETURN 2*(x2-x1) + 2*(y2-y1); END ) REF IS SYSTEM GENERATED INSTANTIABLE NOT FINAL;
58
SQL3 Η χρήση ενός νέου τύπου δεδομένων ως πεδίο ορισμού μίας στήλης δεν διαφέρει από τη χρήση ενός απλού τύπου δεδομένων: CREATE TABLE κύκλωμαVLSI (κωδικός INT, περιοχή GeneralRectType);
59
SQL3 Η SQL3 επιτρέπει το σχηματισμό ιεραρχίας εξειδίκευσης μεταξύ των νέων τύπων δεδομένων μέσω απλής κληρονομικότητας (η πολλαπλή κληρονομικότητα δεν υποστηρίζεται από την SQL3). Θεωρείστε μία εφαρμογή που απαιτεί κάποια από τα γεωμετρικά αντικείμενα να έχουν ένα συγκεκριμένο χρώμα που δηλώνεται σε μορφή RGB. Μπορούμε να δημιουργήσουμε ένα νέο τύπο δεδομένων ColoredGeneralRectType, ο οποίος κληρονομεί τα χαρακτηριστικά και τις μεθόδους του τύπου GeneralRectType: CREATE TYPE ColoredGeneralRectType UNDER GeneralRectType AS (colorR INT, colorG INT, colorB INT, FUNCTION ..., ... );
60
SQL3 Διαδικασίες και Συναρτήσεις Οριζόμενες από το Χρήστη
(user-defined functions) Μία διαδικασία ή συνάρτηση μπορεί να ορισθεί είτε ως μέθοδος ενός τύπου δεδομένων είτε ως μέθοδος του σχήματος της ΒΔ, και μπορεί να υλοποιηθεί είτε εξωτερικά, με τη βοήθεια μίας γλώσσας προγραμματισμού (π.χ. C++), είτε εσωτερικά εξολοκλήρου με εντολές της SQL3.
61
SQL3 CREATE FUNCTION MyFunction (IN MyParameter) RETURNS FLOAT
EXTERNAL NAME MyFunctionFileName LANGUAGE C PARAMETER STYLE SQL DETERMINISTIC NO SQL;
62
SQL3 Πριν το πρότυπο SQL3 ο μόνος τρόπος να ορίσουμε συσχετισμό μεταξύ δύο πινάκων ήταν η χρήση του ξένου κλειδιού. Η SQL3 επιτρέπει τη χρήση τύπου αναφοράς (reference type) για τον ορισμό συσχετισμών μεταξύ γραμμών. Μία τιμή ενός τύπου αναφοράς μπορεί να αποθηκευθεί σε έναν πίνακα και να χρησιμοποιηθεί ως άμεση αναφορά σε μία συγκεκριμένη γραμμή ενός άλλου πίνακα. Παρατηρείστε την ομοιότητα μεταξύ του τύπου αναφοράς και των δεικτών στη γλώσσα C/C++. Η τιμή του τύπου αναφοράς χρησιμοποιείται όπως ακριβώς και οι δείκτες. Με τη χρήση των αναφορών μία γραμμή ενός πίνακα μπορεί να μοιρασθεί σε πολλούς πίνακες απλοποιώντας τη διατύπωση ερωτημάτων που περιέχουν πράξεις σύνδεσης.
63
SQL3 Μεγάλα Αντικείμενα
Πολλές φορές παρουσιάζεται η ανάγκη για την αποθήκευση δεδομένων με μεγάλο μέγεθος σχετικά με τα μεγέθη που υποστηρίζουν οι απλοί τύποι δεδομένων. Θεωρείστε για παράδειγμα ένα μεγάλο αρχείο κειμένου. Οι τύποι δεδομένων CHAR και VARCHAR έχουν περιορισμούς σχετικά με το μέγιστο μέγεθος μίας σειράς χαρακτήρων. Επομένως, είναι αδύνατο το κείμενο να αποθηκευθεί σε μία μεταβλητή τύπου CHAR ή VARCHAR. Η SQL3 παρέχει εναλλακτικές λύσεις για το πρόβλημα αυτό, καθώς υποστηρίζει μεγάλα αντικείμενα (large objects, LOBs).
64
SQL3 Μεγάλα Αντικείμενα CREATE TABLE Φοιτητής κωδικός INT NOT NULL,
όνομα VARCHAR(40), φωτογραφία BLOB(200K), βιογραφικό-σημείωμα CLOB(20K), PRIMARY KEY (κωδικός));
65
SQL3 Διατήρηση Τμημάτων Κώδικα
Η SQL3 έχει εμπλουτισθεί με πρόσθετες εντολές έτσι ώστε η γλώσσα να είναι υπολογιστικά πλήρης (computationally complete). Οι εντολές της γλώσσας μπορούν να ομοδοποιηθούν και να σχηματίσουν ένα τμήμα κώδικα με τις δικές του τοπικές μεταβλητές. Τα τμήματα κώδικα μπορούν να αποθηκευθούν στη ΒΔ και να είναι πάντοτε διαθέσιμα προς χρήση.
66
SQL3 Δηλώσεις μεταβλητών.
Η δήλωση μίας μεταβλητής πραγματοποιείται με την εντολή DECLARE ως εξής: DECLARE x INT; DECLARE p BLOB(100K); DECLARE flag BOOLEAN;
67
SQL3 Έλεγχος συνθηκών. Με τη χρήση των εντολών IF ... THEN ... ELSE ... END IF μπορούμε να εκτελέσουμε διαφορετικές εντολές ανάλογα με τη συνθήκη που υπάρχει στο IF. Το ίδιο υποστηρίζεται και με την εντολή CASE, η οποία χρησιμοποιείται ως εξής: CASE x WHEN 1 THEN y=100; WHEN 2 THEN y=200; WHEN default THEN SET y=0; END CASE;
68
SQL3 Ανακύκλωση. Με τη χρήση των εντολών FOR ... END FOR, WHILE ... END WHILE και REPEAT ... UNTIL μπορούμε να επαναλαμβάνουμε την εκτέλεση ενός τμήματος κώδικα μέχρι να ισχύσει η συνθήκη εξόδου.
69
SQL3 Ένας σκανδαλισμός (trigger) είναι ένα τμήμα κώδικα που εκτελείται όταν συμβεί ένα συγκεκριμένο γεγονός. Τα γεγονότα που ενεργοποιούν σκανδαλισμούς είναι εισαγωγές, διαγραφές και ενημερώσεις στα δεδομένα ενός πίνακα. Σε αντίθεση με τις διαδικασίες και τις συναρτήσεις, ένας σκανδαλισμός δεν δέχεται παραμέτρους και δεν μπορεί να κληθεί άμεσα από κάποιο τμήμα κώδικα προγράμματος εφαρμογής. Οι σκανδαλισμοί μπορούν να χρησιμοποιηθούν για τους ακόλουθους σκοπούς: διενέργεια ελέγχων πριν από την εισαγωγή δεδομένων, έτσι ώστε τα δεδομένα που εισάγονται να ικανοποιούν πολύπλοκους περιορισμούς ακεραιότητας, καταγραφή των ενεργειών που έχουν πραγματοποιηθεί σε έναν πίνακα (logging), υποστήριξη προειδοποιήσεων όταν εισαχθούν, διαγραφούν ή ενημερωθούν δεδομένα ενός πίνακα.
70
SQL3 CREATE TRIGGER όνομα-σκανδαλισμού
BEFORE | AFTER <γεγονός ενεργοποίησης> ON < όνομα-πινακα> [REFERENCING <ψευδώνυμα νέων και παλαιών τιμών>] [FOR EACH ROW | STATEMENT] [WHEN (συνθήκη-σκανδαλισμού)] BEGIN <σώμα σκανδαλισμού> END;
71
Σύγκριση Συστημάτων Σύμφωνα με τον Stonebraker οι εφαρμογές μπορούν να ομαδοποιηθούν σε τέσσερις κατηγορίες, ανάλογα με τις απαιτήσεις τους ως προς: α) απαιτήσεις αναζήτησης και υποστήριξη πολλών χρηστών και β) πολυπλοκότητα δεδομένων και επεκτασιμότητα. Οι κατηγορίες αυτές είναι:
72
Σύγκριση Συστημάτων Οι εφαρμογές με μικρή πολυπλοκότητα δεδομένων και μικρές απαιτήσεις αναζήτησης μπορούν να εξυπηρετηθούν απ’ευθείας από το λειτουργικό σύστημα, μέσω του συστήματος αρχείων. Παραδείγματα τέτοιων εφαρμογών είναι οι επεξεργαστές κειμένου και προγράμματα επεξεργασίας εικόνας.
73
Σύγκριση Συστημάτων Οι εφαρμογές με μικρή πολυπλοκότητα δεδομένων αλλά μεγάλες απαιτήσεις για αναζητήσεις και εξυπηρέτηση πολλών χρηστών, όπως εφαρμογές μηχανοργάνωσης εταιρείας, μπορούν να εξυπηρετηθούν από ένα σχεσιακό ΣΔΒΔ.
74
Σύγκριση Συστημάτων Οι εφαρμογές που διαχειρίζονται πολύπλοκα δεδομένα και έχουν μεγάλες απαιτήσεις σε επεκτασιμότητα αλλά δεν έχουν υψηλές απαιτήσεις ως προς την αναζήτηση μπορούν να στηριχθούν σε ένα αντικειμενοστραφές ΣΔΒΔ. Παραδείγματα εφαρμογών αυτής της κατηγορίας είναι οι εφαρμογές CAD.
75
Σύγκριση Συστημάτων Τέλος, οι εφαρμογές με υψηλές απαιτήσεις στην πολυπλοκότητα των δεδομένων, την αναζήτηση, την υποστήριξη πολλών χρηστών και την επεκτασιμότητα μπορούν να υποστηριχθούν από ένα αντικειμενο-σχεσιακό ΣΔΒΔ. Παραδείγματα εφαρμογών της κατηγορίας αυτής είναι τα συστήματα γεωγραφικών πληροφοριών και οι εφαρμογές πολυμέσων.
76
Σύγκριση Συστημάτων
77
Σύνοψη Τα αντικειμενο-σχεσιακά ΣΔΒΔ ακολουθούν μία διαφορετική προσέγγιση για την υποστήριξη των σύγχρονων εφαρμογών σε σχέση με τα αντικειμενοστραφή ΣΔΒΔ. Ένα αντικειμενο-σχεσιακό ΣΔΒΔ υποστηρίζει πλήρως το σχεσιακό μοντέλο δεδομένων, ενώ έχει εμπλουτισθεί με επιπλέον δυνατότητες με στόχο την υποστήριξη πολύπλοκων αντικειμένων. Οι λόγοι που οδήγησαν τους ερευνητές προς αυτήν την κατεύθυνση είναι αφ'ενός τα μειονεκτήματα που παρουσιάζουν τα αντικειμενοστραφή ΣΔΒΔ και αφ’ετέρου το γεγονός ότι τα σχεσιακά ΣΔΒΔ έχουν λύσει πολλά προβλήματα που αφορούν στη διαχείριση δεδομένων, και επομένως αποτελούν μία καλή βάση για την κατασκευή νέων συστημάτων με περισσότερες δυνατότητες. Πολλοί κατασκευαστές εμπορικά διαθέσιμων ΣΔΒΔ όπως η IBM, η Microsoft και η Oracle έχουν ήδη προχωρήσει στην επέκταση των συστημάτων τους σε αντικειμενο-σχεσιακά.
Παρόμοιες παρουσιάσεις
© 2024 SlidePlayer.gr Inc.
All rights reserved.