ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Χειμερινό Εξάμηνο 2013 - ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΣΒΔ - ΕΙΣΑΓΩΓΗ ΣΤΟ ΜΟΝΤΕΛΟ ΟΝΤΟΤΗΤΩΝ ΣΥΣΧΕΤΙΣΕΩΝ Δρ. Βαγγελιώ Καβακλή ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ, ΤΜΗΜΑ ΠΟΛΙΤΙΣΜΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΣ 1 Αρχιτεκτονική ΣΒΔ Η εξέλιξη της αρχιτεκτονικής των ΣΒΔ καθρεπτίζει την τάση στην πληροφορική, όπου μεγάλοι κεντρικοί υπολογιστές αντικαθίστανται από σταθμούς εργασίας και προσωπικούς Η/Υ που συνδέονται με επικοινωνιακά δίκτυα Αρχιτεκτονική εξυπηρέτη εξυπηρετούμενου: Το τμήμα του εξυπηρετούμενου διαχειρίζεται την προσπέλαση του χρήστη και παρέχει φιλικές στο χρήστη διεπαφές (φόρμες, μενού) Το τμήμα εξυπηρέτη διαχειρίζεται την αποθήκευση των δεδομένων, την προσπέλαση, την αναζήτηση και άλλες λειτουργίες 2 1
Επίπεδα Αφαίρεσης Ένας από τους κύριους στόχους ενός ΣΒΔ είναι να παρέχει μια αφηρημένη όψη των δεδομένων, αποκρύπτοντας από το χρήστη λεπτομέρειες σχετικά με την αναπαράσταση και την αποθήκευσή τους. Σε ένα ΣΒΔ, τα δεδομένα αναπαριστώνται σε 3 επίπεδα αφαίρεσης (abstraction levels): Εσωτερικό επίπεδο (internal level): το χαμηλότερο επίπεδο αφαίρεσης περιγράφει με λεπτομέρεια την αποθήκευση των δεδομένων και τους δρόμους προσπέλασης σε αυτά Εννοιολογικό επίπεδο (conceptual level): περιγράφει τη δομή ολόκληρης της Β.Δ. για μια κοινότητα χρηστών (δηλ. τα δεδομένα και τις μεταξύ τους σχέσεις) Οι χρήστες οι οποίοι βλέπουν το σύστημα στο λογικό επίπεδο δεν χρειάζεται να γνωρίζουν τις λεπτομέρειες του φυσικού επιπέδου Εξωτερικό επίπεδο ή επίπεδο όψεων (external ή view level) το υψηλότερο επίπεδο αφαίρεσης περιγράφει κάποια μέρη της αποθηκευμένης πληροφορίας, καθώς κάποιοι χρήστες χρειάζονται πρόσβαση μόνο σε μέρος των ΒΔ αποτελεί συγχρόνως και μηχανισμό ασφάλειας 3 Σχήμα και Στιγμιότυπα Οι ΒΔ μεταβάλλονται με την πάροδο του χρόνου καθώς πληροφορία προστίθεται, αφαιρείται η τροποποιείται. Το σύνολο της πληροφορίας το οποίο βρίσκεται αποθηκευμένο σε μια ΒΔ σε μια συγκεκριμένη χρονική στιγμή λέγεται στιγμιότυπο (instance or snapshot) της ΒΔ. Το σχήμα (schema) της ΒΔ είναι το σύνολο των εννοιών που περιγράφουν τη δομή της και είναι σχεδόν πάντα σταθερό. Αναλογία : record types schema, variables instances Μια ΒΔ έχει ένα (ή περισσότερα) σχήματα σε κάθε επίπεδο αφαίρεσης: Εσωτερικό σχήμα Εννοιολογικό σχήμα Εξωτερικό σχήμα (σχήματα όψεων) 4 2
Παράδειγμα Ονοματεπώνυμο Διεύθυνση Τηλέφωνο Σχήμα βάσης δεδομένων (database schema) Ονοματεπώνυμο Παπαδόπουλος Κ. Διεύθυνση Ναυαρίνου 18 Τηλέφωνο 22234 Ονοματεπώνυμο Μιχαιλίδης Ι. Διεύθυνση Καραντώνη 6 Τηλέφωνο 32278 Δημόπουλος Χ. Κορίνθου 211 43431 Δημητρέλλη Κ. Βενέζη 2 43635 Δημητρέλλη Κ. Βενέζη 2 33554 Στιγμιότυπα βάσης δεδομένων (database instances) 5 Αρχιτεκτονική των Τριών Σχημάτων ΕΞΩΤΕΡΙΚΟ ΕΠΙΠΕΔΟ Όψη 1 Όψη 2 Όψη n απεικόνιση ΕΝΝΟΙΟΛΟΓΙΚΟ ΕΠΙΠΕΔΟ Εννοιολογικό Σχήμα απεικόνιση ΕΣΩΤΕΡΙΚΟ ΕΠΙΠΕΔΟ Εσωτερικό Σχήμα 6 3
Παρατηρήσεις Τα τρία σχήματα είναι απλώς και μόνο περιγραφές των δεδομένων τα μόνα δεδομένα που πραγματικά υπάρχουν είναι στο φυσικό επίπεδο Οι διαδικασίες μετασχηματισμού ερωτημάτων και αποτελεσμάτων μεταξύ επιπέδων λέγονται απεικονίσεις (mappings) απαιτούν χρόνο Τα περισσότερα ΣΔΒΔ υποστηρίζουν μερικώς την αρχιτεκτονική των τριών σχημάτων δεν υπάρχει σαφής διαχωρισμός μεταξύ των διαφορετικών επιπέδων Η αρχιτεκτονική αυτή διευκολύνει την επίτευξη των τριών σημαντικών χαρακτηριστικών των Β.Δ. απομόνωση προγραμμάτων δεδομένων υποστήριξη πολλαπλών όψεων χρηστών ανεξαρτησία δεδομένων 7 Ανεξαρτησία Δεδομένων Ανεξαρτησία δεδομένων (data independence): η δυνατότητα να αλλάζουμε το σχήμα ενός επιπέδου σ ένα ΣΒΔ χωρίς να χρειάζεται να αλλάξουμε το σχήμα του αμέσως υψηλότερου επιπέδου Τύποι ανεξαρτησίας δεδομένων Λογική ανεξαρτησία (logical independence): η δυνατότητα να αλλάζουμε το εννοιολογικό σχήμα χωρίς να χρειάζεται να αλλάξουμε τις εξωτερικές όψεις τέτοιες μεταβολές είναι απαραίτητες όταν μεταβάλλεται η εννοιολογική δομή μιας ΒΔ Φυσική ανεξαρτησία (physical independence): η δυνατότητα να αλλάζουμε το εσωτερικό σχήμα χωρίς να χρειάζεται να αλλάξουμε το εννοιολογικό σχήμα (ή τα εξωτερικά σχήματα) μεταβολές στο εσωτερικό σχήμα είναι συχνά απαραίτητες για λόγους βελτιστοποίησης της απόδοσης του συστήματος Αυτό που αλλάζει κάθε φορά είναι η απεικόνιση μεταξύ δύο επιπέδων 8 4
Μοντέλα Δεδομένων Ένα μοντέλο δεδομένων (data model) είναι ένα σύνολο εννοιών για την περιγραφή των δεδομένων, των σχέσεων μεταξύ αυτών, τη σημασιολογία τους και τους περιορισμούς στους οποίους υπόκεινται Τα μοντέλα δεδομένων αποτελούν απαραίτητο μέσο για την επίτευξη της αφαίρεσης των δεδομένων βοηθούν στον ορισμό και διαγραμματική αναπαράσταση των σχημάτων Κατηγορίες μοντέλων δεδομένων υψηλού επιπέδου ή εννοιολογικά παρέχουν έννοιες που βρίσκονται κοντά στον τρόπο με τον οποίο πολλοί χρήστες αντιλαμβάνονται τα δεδομένα π.χ. το μοντέλο οντοτήτων συσχετίσεων (ΟΣ) παραστατικά μοντέλα ή υλοποίησης παρέχουν έννοιες κατανοητές από τους χρήστες, αλλά δεν είναι τόσο απομακρυσμένες από τον τρόπο αποθήκευσης των δεδομένων στον υπολογιστή χρησιμοποιούνται στα σύγχρονα εμπορικά συστήματα ΣΔΒΔ π.χ. το σχεσιακό μοντέλο χαμηλού επιπέδου ή φυσικά περιγράφουν τις λεπτομέρειες του τρόπου αποθήκευσης των δεδομένων στον υπολογιστή απευθύνονται σε ειδικούς των υπολογιστών κι όχι τυπικούς χρήστες 9 Γλώσσες Σ.Δ.Β.Δ. Για τον ορισμό, αποθήκευση και διαχείριση των δεδομένων τα σημερινά ΣΔΒΔ παρέχουν μια ολοκληρωμένη γλώσσα η οποία περιλαμβάνει δομικά στοιχεία για ορισμό του εννοιολογικού σχήματος ορισμό όψεων χειρισμό δεδομένων Τυπικό παράδειγμα αποτελεί η γλώσσα σχεσιακών βάσεων δεδομένων SQL που συνδυάζει Γλώσσα ορισμού δεδομένων (ΓΟΔ) Γλώσσα ορισμού όψεων (ΓΟΟ) Γλώσσα χειρισμού δεδομένων (ΓΧΔ) εντολές για τον ορισμό περιορισμών και εξέλιξης ενός σχήματος Η γλώσσα αυτή χρησιμοποιείται τόσο από το ΔΒΔ όσο και τους σχεδιαστές της βάσης για τον ορισμό των διαφορετικών σχημάτων 10 5
Σχεδιασμός Εφαρμογών Β.Δ. Εφαρμογή Β.Δ. Συγκεκριμένη Β.Δ. Προγράμματα Εφαρμογών π.χ. Β.Δ. ΤΡΑΠΕΖΑ (πληροφορίες για λογαριασμούς πελατών) π.χ. προγράμματα που υλοποιούν αναλήψεις και καταθέσεις πελατών ΣΧΕΔΙΑΣΜΟΣ ΒΑΣΕΩΝ ΔΕΔΟΜΕΝΩΝ ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ 11 ΚΥΚΛΟΣ ΖΩΗΣ ΒΑΣΕΩΣ ΔΕΔΟΜΕΝΩΝ Ανάλυση απαιτήσεων Εννοιολογικός σχεδιασμός Λογικός σχεδιασμός Ανεξαρτήτου ΣΔΒΔ Εξάρτηση από ΣΔΒΔ Υλοποίηση Συντήρηση 12 6
Εννοιολογικός Σχεδιασμός Δημιουργία ενός εννοιολογικού σχήματος για τη Β.Δ. με τη χρήση ενός εννοιολογικού μοντέλου δεδομένων υψηλού επιπέδου Το εννοιολογικό σχήμα περιλαμβάνει περιγραφές των τύπων δεδομένων συσχετίσεων περιορισμών χρησιμοποιείται σαν μέσο επικοινωνίας μεταξύ τεχνικών και μη τεχνικών χρηστών σαν αναφορά για την εξασφάλιση ότι όλες οι απαιτήσεις των χρηστών σχετικά με τα δεδομένα ικανοποιούνται και δεν εμπεριέχουν αντιθέσεις επιτρέπει στους σχεδιαστές να επικεντρώνονται στις ιδιότητες των δεδομένων κι όχι στις λεπτομέρειες αποθήκευσης 13 Μοντέλο Οντοτήτων Συσχετίσεων 14 7
Οντότητες Οντότητα (ένα αντικείμενο με φυσική ύπαρξη) Κάθε οντότητα έχει συγκεκριμένες ιδιότητες - γνωρίσματα Μια συγκεκριμένη οντότητα θα έχει μια τιμή για καθένα από τα γνωρίσματα Περιγράφει το σχήμα ή πρόθεση Τύπος οντοτήτων Σύνολο οντοτήτων - ανάπτυξη Oρίζει ένα σύνολο από οντότητες που έχουν τα ίδια γνωρίσματα Περιγράφεται από ένα όνομα και μια λίστα γνωρισμάτων 15 Παράδειγμα [οντότητα] [τύπος οντοτήτων] [σύνολο οντοτήτων] Α.Φ.Μ. Όνομα Επώνυμο Ειδικότητα Ημ/νία γέννησης 16 8
Οντότητες Τύπος Οντοτήτων Γνώρισμα Παράδειγμα Χρόνος Είδος Ταινίες Gone with the Wind, 1939, 231, color Τίτλος Διάρκεια οντότητα Τύπος οντοτήτων 17 Τύποι Γνωρισμάτων Τύποι Γνωρισμάτων απλά ή ατομικά σύνθετα τιμή: συνένωση των τιμών των απλών γνωρισμάτων που το αποτελούν ιεραρχία χρήσιμο όταν γίνεται αναφορά στα επιμέρους γνωρίσματα Διεύθυνση Πόλη Αριθμός Οδός 18 9
Τύποι Γνωρισμάτων μονότιμα πλειότιμα σύνολο από τιμές (κάτω-πάνω όριο) τηλέφωνο 19 Τύποι Γνωρισμάτων παραγόμενα μπορεί να υπολογιστεί από σχετιζόμενες οντότητες ή γνωρίσματα αποθηκευμένα Ημερ. Γέννησης Ηθοποιός Ηλικία π.χ., αριθμός εργαζομένων σε ένα Τμήμα 20 10
Η έννοια του κλειδιού Η έννοια του κλειδιού [περιορισμός κλειδιού ή μοναδικότητας] Οι τιμές κάποιου γνωρίσματος (ή γνωρισμάτων) προσδιορίζουν μία οντότητα μοναδικά (δηλαδή, δεν μπορεί να υπάρχουν δυο οντότητες με τις ίδιες τιμές στα γνωρίσματα κλειδιά) ΠΡΟΣΟΧΗ: το κλειδί είναι σύνολο γνωρισμάτων 21 Η έννοια του κλειδιού Υπερκλειδί: σύνολο από ένα η περισσότερα γνωρίσματα που προσδιορίζουν μοναδικά μια οντότητα (superkey) Υποψήφιο κλειδί: ελάχιστο (μικρότερο αριθμό γνωρισμάτων) υπερκλειδί (candidate key) Πρωτεύον κλειδί: το υποψήφιο κλειδί που επιλέγουμε (primary key) 22 11
Η έννοια του κλειδιού Ισχύει: υπερκλειδί κάθε υποψήφιο κλειδί Παράδειγμα Προσοχή: ο περιορισμός κλειδιού είναι μέρος του σχήματος 23 Παράδειγμα Α.Φ.Μ. Ημ/νία γέννησης Εργαζόμενος Όνομα Επώνυμο Ειδικότητα 24 12
Παράδειγμα Κλειδί Όνομα Επώνυμο Απλό - Μονής τιμής Α.Φ.Μ. Ημ/νία γέννησης Εργαζόμενος Ειδικότητα Οδός Διεύθυνση Αριθμός Σύνθετο - Μονής τιμής Πόλη Τ.Κ. Τηλέφωνο Απλό - Πολλαπλών τιμών 25 Πεδίο ορισμού Κάθε απλό κατηγόρημα (simple attribute) παίρνει τιμές από ένα πεδίο ορισμού (domain) Πρωτογενή πεδία ορισμού (primitive): integer, real, double, date, boolean, char(), varchar(), text, image Πεδία ορισμού ορισμένα από τον χρήστη (user defined): π.χ. όνομα, ημερομηνία-γέννησης Τα πεδία ορισμού που ορίζονται από τον χρήστη βασίζονται σε περιορισμούς στα πρωτογενή πεδία ορισμού 26 13
Η τιμή null Η τιμή null Όταν μια οντότητα δεν έχει τιμή για ένα γνώρισμα Δεν υπάρχει δυνατή τιμή (not applicable) Υπάρχει δυνατή τιμή αλλά δεν είναι γνωστή -- ξέρουμε ότι υπάρχει (missing) -- δεν ξέρουμε αν υπάρχει (not known) 27 Συσχετίσεις Ηθοποιός Παίζει Συσχέτιση (μεταξύ n οντοτήτων): Μια ιδιότητα που συνδέει τις n οντότητες Τύπος συσχετίσεων (μεταξύ n τύπων οντοτήτων): Μια κοινή ιδιότητα που συνδέει n-άδες οντοτήτων των συγκεκριμένων τύπων οντοτήτων Σύνολο συσχετίσεων: Το σύνολο των συσχετίσεων ενός συγκεκριμένου τύπου συσχετίσεων Αλλιώς (μαθηματικά) R (E 1 E 2 E n ) Ταινία 28 14
Παράδειγμα τύπος Ταινία Παίζει Ηθοποιός Συχνά ως ένα σύνολο/πίνακα Basic Instinct Sharon Stone Total Recall Arnold Schwarzenegger Total Recall Sharon Stone στιγμιότυπο 29 Παράδειγμα Ημ/νία έναρξης Εργαζόμενος Εργάζεται Τμήμα Επιβλέπει_τον Εργαζόμενος Επιβλέπει Επιτηρείται_από Ρόλος 30 15