Έννοιες Διαχείρισης Βάσεων Δεδομένων και Αρχιτεκτονική Αρχιτεκτονική ANSI-SPARC, Επίπεδα Αρχιτεκτονικής (Εξωτερικό, Εννοιολογικό, Εσωτερικό), Παραδοσιακή Προσέγγιση (Μειονεκτήματα, Παράδειγμα), Προσέγγιση Βάσεων Δεδομένων (Πλεονεκτήματα, Παράδειγμα), Ένα Παράδειγμα Βάσης Δεδομένων, Παράδειγμα Χρήσης SQL (Ορισμός, Εισαγωγή, Στιγμιότυπο, Ερώτημα) 1
Αρχιτεκτονική 1 Ανάγκη για τον ορισμό μίας κοινά αποδεκτής ορολογίας και αρχιτεκτονικής για τα ΣΔΒΔ Πρόταση της Ομάδας Εργασίας Βάσεων Δεδομένων (Data Base Task Group) στο συνέδριο CODASYL για αρχιτεκτονική δύο επιπέδων (1971). Η επιτροπή ANSI-SPARC (American National Standards Institute - Standards Planning and Require-ments Committee) πρότεινε την αρχιτεκτονική τριών επιπέδων (1975). Αν και η αρχιτεκτονική ANSI-SPARC δεν προτυποποιήθηκε, αποτελεί μία καλή αφετηρία για την κατανόηση της λειτουργικότητας ενός ΣΔΒΔ. 2
Αρχιτεκτονική 2 Εξωτερική Όψη 1 Εξωτερική Όψη 2... Εννοιολογικό Σχήμα Εσωτερικό Σχήμα Εξωτερική Όψη n ΕΞΩΤΕΡΙΚΟ ΕΠΙΠΕΔΟ Μετατροπή μεταξύ εξωτερικού και εννοιολογικού ΕΝΝΟΙΛΟΓΙΚΟ ΕΠΙΠΕΔΟ Μετατροπή μεταξύ εσωτερικού και εννοιολογικού ΕΣΩΤΕΡΙΚΟ ΕΠΙΠΕΔΟ ΒΔ 3
Εξωτερικό Επίπεδο Αναφέρεται στον τρόπο ορισμού των όψεων των χρηστών προς τα δεδομένα. Περιλαμβάνει ένα σύνολο διαφορετικών εξωτερικών όψεων (views), καθώς κάθε χρήστης έχει μία δική του όψη του πραγματικού κόσμου που περιλαμβάνει τις οντότητες του πραγματικού κόσμου και τις μεταξύ τους συσχετίσεις που ενδιαφέρουν τον κάθε χρήστη. 4
Εννοιολογικό Επίπεδο Περιγράφει τη λογική δομή όλων των δεδομένων της βάσης. Εδώ περιγράφεται το σύνολο των οντοτήτων του πραγματικού κόσμου καθώς και το σύνολο των συσχετίσεων μεταξύ τους. Επίσης, περιγράφονται οι περιορισμοί που υπάρχουν στα δεδομένα και οι συσχετίσεις μεταξύ τους. Το εννοιολογικό επίπεδο αποκρύπτει τη φυσική οργάνωση των δεδομένων και δεν επηρεάζεται από κάποιο συγκεκριμένο τρόπο αποθήκευσης. 5
Εσωτερικό Επίπεδο Περιγράφει τη φυσική οργάνωση του συνόλου των δεδομένων της βάσης. Εδώ καθορίζεται ο τρόπος αποθήκευσης των δεδομένων στο φυσικό μέσο αποθήκευσης καθώς και ο τρόπος προσπέλασης στα δεδομένα. 6
Παραδοσιακή Προσέγγιση - Μειονεκτήματα 1 Δυσκινησία σε αναζήτηση και τροποποίηση δεδομένων Ο προγραμματιστής της εφαρμογής είναι υπεύθυνος για τη σωστή ενημέρωση των αρχείων των δεδομένων, ανάλογα με τις εισαγωγές και διαγραφές που πραγματοποιούνται. Επίσης, κατά την αναζήτηση στοιχείων θα πρέπει σε πρώτο στάδιο να προσδιοριστούν τα αρχεία που απαιτούνται και σε δεύτερο στάδιο να γίνει προσεκτική ανάγνωση των δεδομένων, συνδυάζοντας κατάλληλα τις πληροφορίες που περιέχουν τα διαφορετικά αρχεία. Η κατάσταση δυσκολεύει όσο αυξάνεται ο αριθμός των αρχείων δεδομένων και όσο αυξάνεται η πολυπλοκότητα των ερωτημάτων. 7
Παραδοσιακή Προσέγγιση - Μειονεκτήματα 2 Καθορισμός της δομής των αρχείων δεδομένων από την εφαρμογή Η δομή των αρχείων καθορίζεται από την εφαρμογή. Αυτό έχει ως αποτέλεσμα να είναι δύσκολη η αλλαγή της δομής ενός αρχείου. Πολλές φορές παρουσιάζεται η ανάγκη να προστεθεί ένα νέο χαρακτηριστικό στα δεδομένα. Σε μια τέτοια περίπτωση πρέπει αφ ενός να μεταβληθεί η δομή του αρχείου έτσι ώστε να δημιουργηθεί χώρος για το νέο πεδίο, και αφ ετέρου να μεταβληθεί η λογική της εφαρμογής ώστε να ληφθεί το νέο πεδίο υπόψη κατά την αναζήτηση, εισαγωγή και διαγραφή δεδομένων. Οι αλλαγές αυτές είναι χρονοβόρες και επικίνδυνες για την ακεραιότητα των δεδομένων. 8
Παραδοσιακή Προσέγγιση - Μειονεκτήματα 3 Αδυναμία χρήσης των δεδομένων από άλλες εφαρμογές ανεπτυγμένες σε άλλες γλώσσες προγραμματισμού Εφ όσον ο τρόπος δημιουργίας των αρχείων καθορίζεται από την εφαρμογή, η μορφοποίηση των αρχείων εξαρτάται από την εκάστοτε γλώσσα προγραμματισμού. Το γεγονός αυτό δημιουργεί δυσκολίες όταν απαιτείται η χρήση των αρχείων από διαφορετικές εφαρμογές ή όταν απαιτείται η κατασκευή των αρχείων από διαφορετικούς προγραμματιστές που χρησιμοποιούν διαφορετικές γλώσσες προγραμματισμού σε διαφορετικά λειτουργικά συστήματα. Το πρόβλημα είναι ιδιαίτερα έντονο όταν τα δεδομένα αποθηκεύονται σε δυαδική (binary) μορφή και όχι σε αλφαριθμητική (alphanumeric, text) μορφή. 9
Παραδοσιακή Προσέγγιση - Μειονεκτήματα 4 Περίπλοκη η διασφάλιση της προστασίας και της ακεραιότητας των δεδομένων Σε πολλές περιπτώσεις η εφαρμογή εξυπηρετεί πολλούς χρήστες ταυτόχρονα. Η διασφάλιση της προστασίας και της ακεραιότητας των δεδομένων κατά την ταυτόχρονη αναζήτηση, εισαγωγή και διαγραφή στοιχείων είναι αρκετά περίπλοκη. Επίσης, σε συγκεκριμένες λειτουργίες πρέπει να διασφαλίζεται η ατομικότητα της εκτέλεσης. 10
Παραδοσιακή Προσέγγιση - Μειονεκτήματα 5 Επισφαλή δικαιώματα χρηστών και ανεπαρκής προστασία των δεδομένων Στη γενική περίπτωση, κάθε χρήστης της εφαρμογής έχει διαφορετικά δικαιώματα σχετικά με την προσπέλαση των δεδομένων. Η εφαρμογή των κανόνων προστασίας των δεδομένων ώστε να αποφεύγονται δυσάρεστες καταστάσεις απώλειας δεδομένων (είτε κατά λάθος, είτε εσκεμμένα) στηριζόμενοι στα εργαλεία του λειτουργικού συστήματος είναι δύσκολα κατορθωτό. Επιπλέον, είναι πολύ δύσκολο να ορίσουμε διαφορετικά δικαιώματα μέσα στο ίδιο αρχείο. 11
Παραδοσιακή Προσέγγιση - Μειονεκτήματα 6 Περιορισμένες δυνατότητες εφαρμογής ερωτημάτων Εφ όσον η λογική της αναζήτησης στοιχείων από τα αρχεία δεδομένων υλοποιείται στον κώδικα της εφαρμογής, οι διαφορετικοί τύποι ερωτημάτων που μπορεί να δεχθεί η εφαρμογή είναι περιορισμένοι και πρέπει να υλοποιηθούν εκ των προτέρων. Αυτό αποτελεί αρκετά δεσμευτικό παράγοντα λαμβάνοντας υπόψη ότι είναι σχεδόν αδύνατο να προβλέψουμε όλα τα δυνατά ερωτήματα που μπορεί να επιθυμεί να θέσει ένας χρήστης. 12
Παραδοσιακή Προσέγγιση - Παράδειγμα 1 κάθε χρήστης ορίζει και διατηρεί τα δικά του αρχεία, που χρειάζεται για μια συγκεκριμένη εφαρμογή και οι δύο χρήστες ενδιαφέρονται για τα δεδομένα του κτηματολογίου κάθε χρήστης τηρεί ξεχωριστά αρχεία Υ.ΠΕ.ΧΩ.Δ.Ε. Ο.Κ.Χ.Ε. ΥΠ.ΕΘ.Ο. ΕΦΟΡΙΑ ΠΡΟΓΡΑΜΜΑΤΑ ΕΦΑΡΜΟΓΗΣ ΠΡΟΓΡΑΜΜΑΤΑ ΕΦΑΡΜΟΓΗΣ ΑΡΧΕΙΑ ΚΤΗΜΑΤΟΛΟΓΙΟΥ ΑΡΧΕΙΑ ΚΤΗΜΑΤΟΛΟΓΙΟΥ 13
Παραδοσιακή Προσέγγιση - Παράδειγμα 2 κάθε χρήστης τηρεί ξεχωριστά προγράμματα για το χειρισμό των αρχείων κάθε χρήστης απαιτεί κάποια δεδομένα που δεν είναι πιθανόν διαθέσιμα στα αρχεία του άλλου χρήστη αποτέλεσμα: πλεονασμός στον ορισμό και την αποθήκευση των δεδομένων καταβολή πρόσθετου κόπου για τη διατήρηση κοινών δεδομένων σε ενημερωμένη μορφή Υ.ΠΕ.ΧΩ.Δ.Ε. Ο.Κ.Χ.Ε. ΥΠ.ΕΘ.Ο. ΕΦΟΡΙΑ ΠΡΟΓΡΑΜΜΑΤΑ ΕΦΑΡΜΟΓΗΣ ΠΡΟΓΡΑΜΜΑΤΑ ΕΦΑΡΜΟΓΗΣ ΑΡΧΕΙΑ ΚΤΗΜΑΤΟΛΟΓΙΟΥ ΑΡΧΕΙΑ ΚΤΗΜΑΤΟΛΟΓΙΟΥ 14
Προσέγγιση Βάσεων Δεδομένων Παράδειγμα 1 διατηρείται ένας και μοναδικός ταμιευτήρας δεδομένων, που ορίζεται μια φορά και στη συνέχεια προσπελάζεται από διάφορους χρήστες Υ.ΠΕ.ΧΩ.Δ.Ε. Ο.Κ.Χ.Ε. ΥΠ.ΕΘ.Ο. ΕΦΟΡΙΑ ΠΡΟΓΡΑΜΜΑΤΑ ΕΦΑΡΜΟΓΗΣ ΠΡΟΓΡΑΜΜΑΤΑ ΕΦΑΡΜΟΓΗΣ ΣΥΣΤΗΜΑ ΔΙΑΧΕΙΡΙΣΗΣ ΒΑΣΕΩΝ ΔΕΔΟΜΕΝΩΝ ΑΡΧΕΙΑ ΚΤΗΜΑΤΟΛΟΓΙΟΥ ΑΡΧΕΙΑ ΚΤΗΜΑΤΟΛΟΓΙΟΥ 15
Προσέγγιση Βάσεων Δεδομένων Παράδειγμα 2 ελάττωση των πλεοναζόντων δεδομένων ελαχιστοποίηση των απαιτήσεων σε χώρο αποθήκευσης λιγότερα προβλήματα ενημέρωσης των δεδομένων Υ.ΠΕ.ΧΩ.Δ.Ε. Ο.Κ.Χ.Ε. ΥΠ.ΕΘ.Ο. ΕΦΟΡΙΑ ΠΡΟΓΡΑΜΜΑΤΑ ΕΦΑΡΜΟΓΗΣ ΠΡΟΓΡΑΜΜΑΤΑ ΕΦΑΡΜΟΓΗΣ ΣΥΣΤΗΜΑ ΔΙΑΧΕΙΡΙΣΗΣ ΒΑΣΕΩΝ ΔΕΔΟΜΕΝΩΝ ΑΡΧΕΙΑ ΚΤΗΜΑΤΟΛΟΓΙΟΥ ΑΡΧΕΙΑ ΚΤΗΜΑΤΟΛΟΓΙΟΥ 16
Προσέγγιση Βάσεων Δεδομένων Παράδειγμα 3 ανεξαρτησία των δεδομένων από τις εφαρμογές το σύστημα βάσης δεδομένων εκτός από τα δεδομένα (βάση) περιέχει και τον πλήρη ορισμό και τη δομή αυτών (κατάλογος δεδομένων ή μεταδεδομένα) εύκολη η αλλαγή της δομής των αρχείων εύκολη χρήση ή κατάργηση ευρετηρίων απόκρυψη των λεπτομερειών αποθήκευσης, διαχείρισης αρχείων (πχ. της εφορίας από το ΥΠΕΧΩΔΕ) πολλαπλές όψεις των δεδομένων και λειτουργιών υποστηρίζεται η ταυτόχρονη πρόσβαση σε δεδομένα και λειτουργίες από πολλούς χρήστες διασφαλίζεται η εξουσιοδοτημένη πρόσβαση στα δεδομένα 17
Ένα παράδειγμα ΒΔ 1 ορισμός της βάσης δεδομένων ορισμός του τύπου κάθε στοιχειώδους δεδομένου στην εγγραφή π.χ., το στοιχειώδες δεδομένο ΟΝΟΜΑΤΕΠΩΝΥΜΟ είναι αλφαριθμητικό 10 χαρακτήρων, ενώ ο ΑΕΜ αριθμητικό ΣΠΟΥΔΑΣΤΕΣ Κωδικός Ονοματεπώνυμο ΑΕΜ Εξάμηνο Διεύθυνση 1 Δημητρίου Γεώργιος 534 4 Τσιμισκή 5 2 Βασιλείου Μαρία 780 5 Αγ. Σοφίας 5............... ΜΑΘΗΜΑΤΑ Κωδικός Όνομα Τομέας Εξάμηνο 1 Βάσεις Δεδομένων Ι ΠΛ05 3 2 Ηλεκτρονική ΓΕ03 2............ ΔΗΛΩΣΕΙΣ ΚωδΣπ ΚωδΜαθ Ημερομηνία 1 1 10/10/2006 1 2 10/10/2006 2 1 12/10/2006......... 18
Ένα παράδειγμα ΒΔ 2 κατασκευή της βάσης δεδομένων αποθήκευση των δεδομένων στους αντίστοιχους πίνακες π.χ., τα δεδομένα του σπουδαστή αποθηκεύονται στον πίνακα ΣΠΟΥΔΑΣΤΕΣ, ενώ τα δεδομένα του μαθήματος αποθηκεύονται στον πίνακα ΜΑΘΗΜΑΤΑ οι εγγραφές στους διάφορους πίνακες μπορεί να συσχετίζονται μεταξύ τους π.χ., η εγγραφή Δημητρίου στον πίνακα ΣΠΟΥΔΑΣΤΕΣ σχετίζεται με δύο εγγραφές στον πίνακα ΗΛΩΣΕΙΣ που προσδιορίζουν τα μαθήματα που δήλωσε ο Δημητρίου ΣΠΟΥΔΑΣΤΕΣ ΔΗΛΩΣΕΙΣ Κωδικός Ονοματεπώνυμο ΑΕΜ Εξάμηνο Διεύθυνση 1 Δημητρίου Γεώργιος 534 4 Τσιμισκή 5 2 Βασιλείου Μαρία 780 5 Αγ. Σοφίας 5............... ΜΑΘΗΜΑΤΑ Κωδικός Όνομα Τομέας Εξάμηνο 1 Βάσεις Δεδομένων Ι ΠΛ05 3 2 Ηλεκτρονική ΓΕ03 2............ ΚωδΣπ ΚωδΜαθ Ημερομηνία 1 1 10/10/2006 1 2 10/10/2006 2 1 12/10/2006......... 19
Ένα παράδειγμα ΒΔ 3 χειρισμός της βάσης δεδομένων περιλαμβάνει ερωτήσεις και ενημερώσεις π.χ., «ποια μαθήματα δήλωσε ο Δημητρίου;» ή «τροποποίησε τη διεύθυνση του Δημητρίου σε Τσιμισκή 65» οι ερωτήσεις και ενημερώσεις εκφράζονται στη γλώσσα του συστήματος ΣΠΟΥΔΑΣΤΕΣ Κωδικός Ονοματεπώνυμο ΑΕΜ Εξάμηνο Διεύθυνση 1 Δημητρίου Γεώργιος 534 4 Τσιμισκή 5 2 Βασιλείου Μαρία 780 5 Αγ. Σοφίας 5............... ΜΑΘΗΜΑΤΑ Κωδικός Όνομα Τομέας Εξάμηνο 1 Βάσεις Δεδομένων Ι ΠΛ05 3 2 Ηλεκτρονική ΓΕ03 2............ ΔΗΛΩΣΕΙΣ ΚωδΣπ ΚωδΜαθ Ημερομηνία 1 1 10/10/2006 1 2 10/10/2006 2 1 12/10/2006......... 20
Παράδειγμα Xρήσης SQL Έστω ότι καταγράφουμε δεδομένα σχετικά με τα χαρακτηριστικά μοντέλων αυτοκινήτων Για κάθε αυτοκίνητο χρειαζόμαστε τον κωδικό του, την ονομασία του μοντέλου, τον κυβισμό και την ιπποδύναμη. 21
Παράδειγμα Ορισμού Κατασκευή πίνακα με εντολές DDL της SQL CREATE TABLE Αυτοκίνητο (κωδικός INTEGER, όνομα CHAR(20), κυβισμός INTEGER, ιπποδύναμη INTEGER); 22
Παράδειγμα Εισαγωγής Εισαγωγή δεδομένων στον πίνακα με εντολές DML της SQL INSERT INTO Αυτοκίνητο VALUES (1, 'Peugeot 106 Rallye', 1600, 122); INSERT INTO Αυτοκίνητο VALUES (2, 'Citroen Saxo VTS', 1600, 122); INSERT INTO Αυτοκίνητο VALUES (3, 'VW Golf', 1600, 105); 23
Παράδειγμα Στιγμιότυπου Το στιγμιότυπο της ΒΔ μετά τις εισαγωγές. Κωδικός Όνομα Κυβισμός Ιπποδύναμη 1 Peugeot 106 Rallye 1600 122 2 Citroen Saxo VTS 1600 122 3 VW Golf 1600 105 24
Παράδειγμα ερωτήματος Διατύπωση ερωτήματος προς το ΣΔΒΔ με DML. «Να βρεθούν όλα τα χαρακτηριστικά των μοντέλων με ιπποδύναμη μεγαλύτερη από 110». SELECT * FROM Αυτοκίνητο WHERE ιπποδύναμη > 110; 25