Εισαγωγή στις βασικές έννοιες των Βάσεων Δεδομένων Σχεδιασμός Βάσεων Δεδομένων Μάθημα 1 ο Μαρία Χαλκίδη
ΠΕΡΙΕΧΟΜΕΝΑ ΜΑΘΗΜΑΤΟΣ Σχεσιακό Μοντέλο Κανονικοποίηση Μοντέλο Οντοτήτων-Σχέσεων Κύκλος ζωής Βάσεων Δεδομένων SQL Ακεραιότητα και Ασφάλεια Σχεδιασμός Βάσεων Δεδομένων, Παν. Πειραιώς
Σκοπός του μαθήματος Περιγραφή και κατανόηση θεμελιωδών θεμάτων των συστημάτων διαχείρισης βάσεων δεδομένων μοντελοποίηση, ανάλυση, σχεδίαση και χρήση των δεδομένων μίας εφαρμογής.
Πληροφορίες για το μάθημα Web σελίδα (evdoxos) http://evdoxos.ds.unipi.gr/courses/ds131/ Ανακοινώσεις για το μάθημα Υλικό μαθήματος (διαλέξεις, εργαστήρια) Εργασίες (υποχρεωτικές) Σύγγραμα Βασιλακόπουλος Γ. (2009): Σχεδιασμός Βάσεων Δεδομένων, Αυτοέκδοση. Γραφτείτε στο e-class!
Αξιολόγηση Εργασίες (30%) Σχεδιασμός και Υλοποίηση Β.Δ. Τελικό Διαγώνισμα (70%) Τελικός Βαθμός = Εργασίες * 0,30 + Γραπτά * 0,70 (Γραπτά >=5) Βάσεις Δεδομένων Ι, Παν. Πειραιώς
Βάσεις Δεδομένων : Βασικές έννοιες Αντικείμενο: Θεμελιώδες πρόβλημα της επιστήμης μας Διαχείριση Δεδομένων Μοντελοποίηση Αποθήκευση Επεξεργασία (εύρεση πληροφορίας σχετικής με μια συγκεκριμένη ερώτηση) Σωστή Λειτουργία (αποτυχίες συστήματος, συνέπεια)
Βάσεων Δεδομένων: Βασικές έννοιες Τι είναι η Βάση Δεδομένων? Μία μεγάλη συλλογή από συσχετιζόμενα δεδομένα Τι είναι ένα Σύστημα Διαχείρισης Βάσεων Δεδομένων (ΣΔΒΔ)? Σύνολο προγραμμάτων (λογισμικό ) για δημιουργία και χρήση μιας βάσης δεδομένων ΣΔΒΔ περιλαμβάνει Δομές για την αποθήκευση της πληροφορίας Παροχή μηχανισμών για το χειρισμό της πληροφορίας Στόχος του ΣΔΒΔ είναι να παρέχει ένα περιβάλλον το οποίο είναι βολικό και αποδοτικό στη χρήση.
Σύστημα Βάσεων Δεδομένων (ΣΒΔ) ΣΔΒΔ ΒΔ Σύστημα Βάσεων Δεδομένων Εφαρμογές βάσεων δεδομένων: Banking: all transactions Airlines: reservations, schedules Universities: registration, grades Sales: customers, products, purchases Manufacturing: production, inventory, orders, supply chain Human resources: employee records, salaries, tax deductions
Σκοπός των Συστημάτων ΒΔ Στα πρώτα χρόνια, οι εφαρμογές των βάσεων δεδομένων χτίζονταν πάνω σε συστήματα αρχείων Μειονεκτήματα της χρήσης συστημάτων αρχείων για να αποθηκεύσουμε δεδομένα: Πλεονασμός (redundancy) δεδομένων και ασυνέπεια (inconsistency) Πολλαπλές μορφές αρχείων (file formats), εμφάνιση της πληροφορίας σε διαφορετικά αρχεία Δυσκολία στην προσπέλαση δεδομένων Απαίτηση για ανάπτυξη ενός νέου προγράμματος για να εκτελέσουμε κάθε νέα εργασία Απομόνωση δεδομένων δεδομένα κατανεμημένα σε πολλαπλά αρχεία ή/και σε διαφορετικές μορφές Προβλήματα ακεραιότητας Περιορισμοί ακεραιότητας (π.χ. account balance > 0) γίνονται μέρος του κώδικα Δύσκολο να προσθέσουμε νέους περιορισμούς ή να αλλάξουμε υπάρχοντες περιορισμούς
Σκοπός των Συστημάτων ΒΔ (συνέχεια...) Μειονεκτήματα της χρήσης των συστημάτων αρχείων Ατομικότητα ενημερώσεων Αποτυχίες μπορεί να αφήσουν τη βάση δεδομένων σε ασυνεπή κατάσταση όταν εκτελείται μέρος των ενημερώσεων π.χ. Μεταφορά χρημάτων από έναν λογαριασμό σε έναν άλλο θα πρέπει να εκτελείται πλήρως ή να μην εκτελείται καθόλου Ταυτόχρονη προσπέλαση από πολλαπλούς χρήστες Μη ελεγχόμενη ταυτόχρονη προσπέλαση μπορεί να οδηγήσει σε ασυνέπειες π.χ. Δύο χρήστες διαβάζουν το υπόλοιπο ενός λογαριασμού και το ενημερώνουν την ίδια στιγμή. Προβλήματα ασφάλειας Τα συστήματα βάσεων δεδομένων προσφέρουν λύσεις σε όλα τα παραπάνω προβλήματα
Βασικές Έννοιες λειτουργίες ενός ΣΔΒΔ Ορισμός μιας βάσης δεδομένων: προδιαγραφή των τύπων, των δομών και των περιορισμών των δεδομένων που θα αποθηκευτούν στη ΒΔ Κατασκευή μιας βάσης δεδομένων: αποθήκευση των ίδιων των δεδομένων Χειρισμός (manipulation) μιας βάσης δεδομένων: υποβολή ερωτήσεων για την ανάκτηση δεδομένων, ενημέρωση (νέες εισαγωγές, διαγραφές ή τροποποιήσεις) Άλλες λειτουργίες: Διαμοιρασμός, προστασία από αστοχίες υλικού και λογισμικού, ασφάλεια
Η θέση του ΣΔΒΔ στη στοίβα λογισμικού συστημάτων Διεπαφή με χρήστη Εφαρμογές ΣΔΒΔ Λειτουργικό Δίκτυο
Παραδείγματα ΣΔΒΔ Εμπορικά Oracle IBM/DB2 MS SQL-server Sybase Informix (MS Access,...) Ελεύθερης Προσπέλασης - Open source mysql Postgres (UCB) minibase (Wisc)
Χρήστες Βάσεων Δεδομένων Διαχειριστής της βάσης δεδομένων - ΔΒΔ (Data Base Administrator -DBA) ρόλος προϊσταμένου αναφορικά με τη βάση δεδομένων, το ΣΔΒΔ και το σχετικό λογισμικό. αρμόδιος για θέματα λειτουργίας και συντήρησης της βάσης δεδομένων, Σχεδιαστές βάσεων δεδομένων (data base designers) υπεύθυνοι για τις φάσεις της ανάλυσης των απαιτήσεων, του σχεδιασμού και της υλοποίησης της βάσης δεδομένων Τελικοί χρήστες Περιστασιακοί τελικοί χρήστες Απλοί τελικοί χρήστες Βάσεις Δεδομένων Ι, Παν. Πειραιώς
Περιεχόμενα Μαθήματος Σχεσιακό μοντέλο. Σχέσεις, πίνακες, χαρακτηριστικά, σχεσιακό σχήμα, σχεσιακή άλγεβρα (τελεστές, πράξεις), σχεσιακός λογισμός (μαθηματική λογική) Μοντέλο οντοτήτων-συσχετίσεων. Βασικές έννοιες, οντότητες, συσχετίσεις, διαγράμματα, μετατροπή σε πίνακες Γλώσσα επερωτήσεων. Η γλώσσα SQL. Γενικές αρχές, βασική μορφή, joins, εμφωλευμένα ερωτήματα, αθροιστικές συναρτήσεις, ενημέρωση Β.Δ., τιμές null, προβολές. Σχεδίαση Σχεσιακών ΒΔ. Περιορισμοί ακεραιότητας, λειτουργικές εξαρτήσεις, διάσπαση, κανονικοποίηση.
Μοντέλα Δεδομένων Ένα μοντέλο δεδομένων είναι μια συλλογή από έννοιες για περιγραφή δεδομένων Ένα σχήμα (schema) είναι μία περιγραφή για μία συγκεκριμένη συλλογή δεδομένων Το σχεσιακό μοντέλο είναι το πιο ευρέως χρησιμοποιούμενο μοντέλο σήμερα. Βασικές έννοιες: σχέση (relation) πίνακας με γραμμές και στήλες. Κάθε σχέση έχει ένα σχήμα
Μοντέλα δεδομένων Μοντέλο Δεδομένων: μπορούν να χρησιμοποιηθούν για την περιγραφή της δομής της ΒΔ δεδομένα συσχετίσεις μεταξύ των δεδομένων σημασιολογία δεδομένων (data semantics) περιορισμοί δεδομένων Υψηλού επιπέδου (εννοιολογικά) μοντέλα Μοντέλο Οντοτήτων/Συσχετίσεων Παραστατικά μοντέλα ή μοντέλα υλοποίησης Σχεσιακό Μοντέλο, Ιεραρχικό Μοντέλο, Δικτυωτό Μοντέλο Χαμηλού επιπέδου ή φυσικά μοντέλα Σχεδιασμός Βάσεων Δεδομένων, Παν. Πειραιώς
Η Αρχιτεκτονική Τριών Επιπέδων ενός ΣΔΒΔ Εξωτερική Όψη 1 Περιγράφει τα αποθηκευμένα δεδομένα με βάση το μοντέλο δεδομένων Εννοιολογικό Σχήμα Φυσικό Σχήμα Απεικόνιση Εξωτερική Όψη n Απεικόνιση Περιγράφει λεπτομέρειες σχετικά με την αποθήκευση και τους δρόμους προσπέλασης Πως οι σχέσεις αποθηκεύονται στο δίσκο, ευρετήρια, κλπ Σχεδιασμός Βάσεων Δεδομένων Ι, Παν. Πειραιώς
Στιγμιότυπα και Σχήματα Σχήμα τύπος μεταβλητής, Στιγμιότυπο τιμή μεταβλητής Σχήμα η λογική δομή της ΒΔ π.χ η βάση δεδομένων αποτελείται από πληροφορία για ένα σύνολο πελατών και λογαριασμών και τις σχέσεις μεταξύ τους Φυσικό σχήμα: σχεδιασμός βάσεις δεδομένων στο φυσικό επίπεδο Λογικό σχήμα : σχεδιασμός βάση δεδομένων σε λογικό επίπεδο Στιγμιότυπο το πραγματικό περιεχόμενο της βάσης δεδομένων σε μία συγκεκριμένη στιγμή στο χρόνο Ανάλογο με την τιμή μίας μεταβλητής
Ανεξαρτησία δεδομένων Ανεξαρτησία Δεδομένων: αλλαγή του σχήματος ενός επιπέδου χωρίς να αλλάξουμε το σχήμα του αμέσως υψηλότερου επιπέδου Λογική Ανεξαρτησία Δεδομένων- αλλαγή του εννοιολογικού δεν επηρεάζει τα εξωτερικά σχήματα ή τα προγράμματα εφαρμογών Φυσική ανεξαρτησία των δεδομένων η ικανότητα να τροποποιούμε το φυσικό σχήμα χωρίς να αλλάζουμε το λογικό σχήμα Οι εφαρμογές εξαρτώνται από το λογικό σχήμα Γενικά, οι διεπαφές ανάμεσα στα διαφορετικά επίπεδα και τα συστατικά μέρη θα πρέπει να καθορίζονται ώστε αλλαγές σε κάποια τμήματα να μην επηρεάζουν σημαντικά τα υπόλοιπα.
Βασικά Βήματα ανάπτυξης Σύστηματος Βάσεων Δεδομένων ΒΗΜΑ 1: Μοντελοποίηση Εννοιολογικό Μοντέλο (Μοντέλο Οντοτήτων/Συσχετίσεων) Μοντέλο Υλοποίησης (Σχεσιακό μοντέλο) ΒΗΜΑ 2: Προγραμματισμός/Υλοποίηση Ορισμός Σχέσεων (πρόθεση/σχήμα) Εισαγωγή Στοιχείων (δημιουργία του αρχικού στιγμιότυπου) Διατύπωση Ερωτήσεων
Μοντέλο Οντοτήτων- Συσχετίσεων Παράδειγμα του σχήματος στο μοντέλο οντοτήτων-συσχετίσεων Customer Customer-id Customer-name Customer-street Customer-city Account Account- number Balance
Μοντέλο Οντοτήτων- Συσχετίσεων (συνέχεια...) E-R μοντέλο πραγματικού κόσμου Οντότητες (αντικείμενα) π.χ. customers, accounts, bank branch Συσχετίσεις ανάμεσα σε οντότητες Π.χ.. Account A-101 διατηρείται από τον πελάτη Johnson Το σύνολο συσχέτισης καταθέτης (depositor) συσχετίζει πελάτες με λογαριασμούς Ευρέως χρησιμοποιούμενα μοντέλα για το σχεδιασμό βάσεων δεδομένων Στο σχεδιασμό βάσεων δεδομένων το μοντέλο E-R συνήθως μετασχηματίζεται σε σχεδιασμό σχεσιακού μοντέλου το οποίο χρησιμοποιείται για αποθήκευση και επεξεργασία
Σχεσιακό μοντέλο Attributes Customer-id customername customerstreet customercity accountnumber 192-83-7465 Johnson Alma Palo Alto A-101 019-28-3746 Smith North Rye A-215 192-83-7465 Johnson Alma Palo Alto A-201 321-12-3123 Jones Main Harrison A-217 019-28-3746 Smith North Rye A-201 Παράδειγμα δεδομένων σε πίνακα σε ένα σχεσιακό μοντέλο
Προγραμματισμός/Υλοποίηση σε σχεσιακό ΣΔΒΔ ΒΗΜΑ 2: Προγραμματισμός/Υλοποίηση σε σχεσιακό ΣΔΒΔ Ορισμός Σχέσεων Εισαγωγή Στοιχείων (δημιουργία του αρχικού στιγμιότυπου) Διατύπωση Ερωτήσεων create table R(A1 T1, A2, T2, ) insert/delete select from where
Γλώσσες ΣΔΒΔ Data Definition Language (DDL) Συμβολισμός προδιαγραφών για τον ορισμό του σχήματος της βάσης δεδομένων π.χ. create table account ( account-number balance char(10), integer) Data Manipulation Language (DML) Γλώσσα για την προσπέλαση και διαχείριση δεδομένων τα οποία είναι οργανωμένα από το κατάλληλο μοντέλο δεδομένων Διαχείριση δεδομένων: ανάκτηση, εισαγωγή, διαγραφή, ενημέρωση Δύο κατηγορίες γλωσσών Διαδικαστικές(Procedural) ο χρήστης καθορίζει τι δεδομένα απαιτούνται και πως θα πάρει αυτά τα δεδομένα Μη διαδικαστικές(nonprocedural) ο χρήστης καθορίζει τι δεδομένα απαιτούνται χωρίς να καθορίζει πως να πάρουμε τα δεδομένα
Web forms Η Δομή ενός ΣΔΒΔ front ends εφαρμογών Διεπαφή SQL SQL ερώτηση ΣΔΒΔ Μηχανή Εκτέλεσης Ερωτήσεων Κλήση συναρτήσεων βιβλιοθήκης που υλοποιούν πράξεις σχεσιακής άλγεβρας Transaction Manager Lock Manager File and Access Methods Buffer Manager Disk Space Manager Recovery Manager Αρχεία ευρετηρίου Αρχεία δεδομένων Κατάλογος συστήματος ΒΑΣΗ ΔΕΔΟΜΕΝΩΝ
Πλεονεκτήματα ΣΔΒΔ Μείωση της περίσσειας των δεδομένων Περιττά δεδομένα (redundant data) ονομάζονται εκείνα που όταν διαγραφούν από τη βάση δεδομένων δεν μειώνεται το πληροφοριακό της περιεχόμενο. Ανεξαρτησία των δεδομένων τα προγράμματα εφαρμογών δεν εξαρτώνται από τις λογικές και φυσικές δομές των αρχείων δεδομένων που χρησιμοποιούν. Κοινοχρησία των δεδομένων τα δεδομένα που έχουν αποθηκευθεί στη βάση δεδομένων είναι διαθέσιμα σε όλους τους χρήστες που διαθέτουν την απαιτούμενη δικαιοδοσία Ασφάλεια των δεδομένων έλεγχο των προσβάσεων των χρηστών στα δεδομένα (access control), τήρηση εφεδρικών αντιγράφων των δεδομένων (backup), ανάκαμψη μετά από απρόκλητη διακοπή της λειτουργίας του υλικού ή του λογισμικού (recovery) ορισμό και την επιβολή κανόνων ακεραιότητας των δεδομένων
Μειονεκτήματα Απόκτηση εξειδικευμένου λογισμικού Απαιτήσεις εξειδικευμένου προσωπικο Απαιτήσεις υπολογιστικών πόρων Βάσεις Δεδομένων Ι, Παν. Πειραιώς