Κατέβασμα παρουσίασης
Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε
ΔημοσίευσεΘεράπων Δραγούμης Τροποποιήθηκε πριν 8 χρόνια
1
Ενότητα Α.3 Συστήματα διαχείρισης βάσεων δεδομένων (εισαγωγικές έννοιες) Επιμόρφωση Εκπαιδευτικών Πληροφορικής
2
Επιμόρφωση Εκπαιδευτικών Πληροφορικής | Ενότητα 3η (Συστήματα Διαχείρισης Βάσεις Δεδομένων) | Μέρος Α (Επικαιροποίηση Γνώσεων) 2 Δομή Εισαγωγή Σχεσιακό Μοντέλο Μοντέλο Οντοτήτων-Συσχετίσεων Σχεδίαση Κανονικές Μορφές SQL MS Access MySQL
3
Επιμόρφωση Εκπαιδευτικών Πληροφορικής | Ενότητα 3η (Συστήματα Διαχείρισης Βάσεις Δεδομένων) | Μέρος Α (Επικαιροποίηση Γνώσεων) 3 Δομή Εισαγωγή Σχεσιακό Μοντέλο Μοντέλο Οντοτήτων-Συσχετίσεων Σχεδίαση Κανονικές Μορφές SQL MS Access MySQL
4
Επιμόρφωση Εκπαιδευτικών Πληροφορικής | Ενότητα 3η (Συστήματα Διαχείρισης Βάσεις Δεδομένων) | Μέρος Α (Επικαιροποίηση Γνώσεων) 4 Εισαγωγή Μια Βάση Δεδομένων είναι μια συλλογή οργανωμένων εγγραφών μέσα σε ένα κοινώς διαθέσιμο μέσο μαζικής αποθήκευσης. Εξυπηρετεί μία ή περισσότερες εφαρμογές με σκοπό να υποστηρίζει κοινή και ελεγχόμενη αντιμετώπιση της πρόσθεσης, τροποποίησης και (κυρίως) ανάκτησης συνόλων δεδομένων. Ένα Σύστημα Διαχείρισης Βάσεων Δεδομένων (DataBase Management System - DBMS) είναι ένα σύνολο προγραμμάτων, τα οποία επιτελούν αυτές τις λειτουργίες με τυποποιημένο και ελεγχόμενο τρόπο.
5
Επιμόρφωση Εκπαιδευτικών Πληροφορικής | Ενότητα 3η (Συστήματα Διαχείρισης Βάσεις Δεδομένων) | Μέρος Α (Επικαιροποίηση Γνώσεων) 5 Εισαγωγή Η βάση δεδομένων είναι ένα σύνολο οργανωμένων εγγραφών. Κάθε βάση, οσοδήποτε μικρή και αν είναι, οσοδήποτε μικρή και αν είναι η κρισιμότητά της, προϋποθέτει μια στοιχειώδη οργάνωση για να λειτουργήσει ορθά. Όπως και σε κάθε άλλη προγραμματιστική δραστηριότητα, πρέπει να ακολουθείται ο απαράβατος κανόνας: σχεδίασε, σχεδίασε, σχεδίασε!!!
6
Επιμόρφωση Εκπαιδευτικών Πληροφορικής | Ενότητα 3η (Συστήματα Διαχείρισης Βάσεις Δεδομένων) | Μέρος Α (Επικαιροποίηση Γνώσεων) 6 Εισαγωγή Η βάση δεδομένων ΔΕΝ είναι εφαρμογή. Εξυπηρετεί μεν εφαρμογές, αλλά δεν αποτελεί από μόνη της μία «κλασική» εφαρμογή. Με άλλα λόγια, την πληροφορία στο χρήστη δεν τη δίνει η ίδια η βάση δεδομένων, αλλά οι εφαρμογές που την αξιοποιούν. Η βάση δεδομένων μπορεί να εξυπηρετήσει παραπάνω από μία εφαρμογές. Η βάση δεδομένων αποτελεί, όπως το λέει και το όνομά της, τη βάση, την πηγή με άλλα λόγια, από την οποία οι (άλλες) εφαρμογές αντλούν δεδομένα.
7
Επιμόρφωση Εκπαιδευτικών Πληροφορικής | Ενότητα 3η (Συστήματα Διαχείρισης Βάσεις Δεδομένων) | Μέρος Α (Επικαιροποίηση Γνώσεων) 7 Εισαγωγή Βάσεις και Νεκροταφεία Δεδομένων σε μια βάση δεδομένων λαμβάνουν χώρα πολλών ειδών λειτουργίες, όπως αποθήκευση, τροποποίηση, διαγραφή και ανάκτηση δεδομένων. η βάση δεδομένων υπάρχει για να επερωτηθεί. Αν η σχεδίασή της παραβλέψει το βασικό αυτό κανόνα, τότε η βάση είναι άχρηστη («νεκροταφείο δεδομένων» στην αργκό των ασχολούμενων με το αντικείμενο). για να μπορούν τα δεδομένα που επιστρέφονται στο χρήστη μετά από μια ερώτηση να χρησιμοποιηθούν ως πληροφορία, πρέπει να είναι έγκυρα και αξιόπιστα. Η σχεδίαση της βάσης, καθώς και η κατασκευή των εφαρμογών εισαγωγής, διαγραφής και ανανέωσης πρέπει να είναι τέτοιες που να εγγυώνται την εγκυρότητα της αποθηκευμένης πληροφορίας.
8
Επιμόρφωση Εκπαιδευτικών Πληροφορικής | Ενότητα 3η (Συστήματα Διαχείρισης Βάσεις Δεδομένων) | Μέρος Α (Επικαιροποίηση Γνώσεων) 8 Εισαγωγή Το DBMS είναι ένα σύνολο προγραμμάτων ένα DBMS είναι ένα σύνολο εργαλείων. Η καρδιά του συστήματος είναι, φυσικά, το λογισμικό εκείνο που επιτρέπει την πρόσβαση των χρηστών και την εκτέλεση των λειτουργιών εισαγωγής και επερώτησης των δεδομένων. υπάρχουν και άλλα εργαλεία που συνοδεύουν ένα DBMS, όπως εργαλεία παρακολούθησης (monitoring) της απόδοσης και των πόρων του συστήματος, ελέγχου της πρόσβασης των χρηστών, ισοκατανομής των πόρων του συστήματος στις διάφορες διεργασίες που τρέχουν ταυτόχρονα, κλπ. Βασικό τμήμα ενός DBMS είναι οι λειτουργίες αντιγράφων ασφαλείας (backup) και επαναφοράς (recovery) που εξασφαλίζουν τη δυνατότητα επανάκτησης της βάσης σε περίπτωση ατυχήματος.
9
Επιμόρφωση Εκπαιδευτικών Πληροφορικής | Ενότητα 3η (Συστήματα Διαχείρισης Βάσεις Δεδομένων) | Μέρος Α (Επικαιροποίηση Γνώσεων) 9 Δομή Εισαγωγή Σχεσιακό Μοντέλο Μοντέλο Οντοτήτων-Συσχετίσεων Σχεδίαση Κανονικές Μορφές SQL MS Access MySQL
10
Επιμόρφωση Εκπαιδευτικών Πληροφορικής | Ενότητα 3η (Συστήματα Διαχείρισης Βάσεις Δεδομένων) | Μέρος Α (Επικαιροποίηση Γνώσεων) 10 Σχεσιακό Μοντέλο Το πιο γνωστό και διαδεδομένο μοντέλο για βάσεις δεδομένων είναι το σχεσιακό μοντέλο. Όλα τα γνωστά DBMS της αγοράς (π.χ. Ms Access, MySql, Oracle, DB/2, Ingres) υλοποιούν πλήρως τις αρχές και τις οντότητες του σχεσιακού μοντέλου δεδομένων. Στην ενότητα αυτή θα δώσουμε μια μικρή περιγραφή για το ποιες είναι αυτές οι οντότητες που αποτελούν το σχεσιακό μοντέλο, ώστε να μπορέσουμε να έχουμε ένα καλά ορισμένο λεξιλόγιο για τη συνέχεια.
11
Επιμόρφωση Εκπαιδευτικών Πληροφορικής | Ενότητα 3η (Συστήματα Διαχείρισης Βάσεις Δεδομένων) | Μέρος Α (Επικαιροποίηση Γνώσεων) 11 Σχεσιακό Μοντέλο Πίνακες. Ένας πίνακας είναι το σύνολο των πληροφοριών πάνω σε ένα θέμα, οργανωμένες σαν σύνολο γνωρισμάτων που αντιπροσωπεύει μια λογική οντότητα του πραγματικού κόσμου. Πιο απλά, ένας πίνακας αποτελείται από το όνομά του και ένα σύνολο πεδίων (ή αλλιώς γνωρισμάτων). Για παράδειγμα, μπορούμε να έχουμε ένα πίνακα με όνομα ΤΜΗΜΑ και ένα σύνολο γνωρισμάτων {Α/Α, ΟΝΟΜΑ_ΤΜΗΜΑΤΟΣ, ΗΜ_ΙΔΡΥΣΗΣ, ΑΙΘΟΥΣΑ,...} Το σύνολο των πινάκων μιας βάσης δεδομένων ονομάζεται και σχήμα της βάσης.
12
Επιμόρφωση Εκπαιδευτικών Πληροφορικής | Ενότητα 3η (Συστήματα Διαχείρισης Βάσεις Δεδομένων) | Μέρος Α (Επικαιροποίηση Γνώσεων) 12 Σχεσιακό Μοντέλο Εγγραφή. Ένας πίνακας περιέχει ένα σύνολο από εγγραφές. Κάθε εγγραφή έχει και από μια τιμή για κάθε ένα από τα πεδία του πίνακα. Παραδείγματος χάριν, μια εγγραφή για τον πίνακα ΤΜΗΜΑ μπορεί να είναι η {001, Πληροφορική, 1998, Μ. Αλεξάνδρου 2,...}. Παρατηρείστε ότι υπάρχει μια αντιστοιχία 1-1 μεταξύ των πεδίων του πίνακα και των τιμών της εγγραφής. Με άλλα λόγια, ο πίνακας λειτουργεί ως μήτρα δημιουργίας εγγραφών ως αποθήκη δεδομένων-εγγραφών
13
Επιμόρφωση Εκπαιδευτικών Πληροφορικής | Ενότητα 3η (Συστήματα Διαχείρισης Βάσεις Δεδομένων) | Μέρος Α (Επικαιροποίηση Γνώσεων) 13 Σχεσιακό Μοντέλο Στο παραπάνω σχήμα, βλέπουμε ότι ο ορισμός του πίνακα αποτελεί τη μήτρα που καθορίζει τη δομή των εγγραφών και ο πίνακας ο ίδιος αποτελεί το χώρο στον οποίο βρίσκονται αποθηκευμένες οι εν λόγω εγγραφές.
14
Επιμόρφωση Εκπαιδευτικών Πληροφορικής | Ενότητα 3η (Συστήματα Διαχείρισης Βάσεις Δεδομένων) | Μέρος Α (Επικαιροποίηση Γνώσεων) 14 Σχεσιακό Μοντέλο Πεδίο. Ένα πεδίο, όπως είδαμε, αποτελεί το δομικό συστατικό ενός πίνακα. Κάθε πεδίο έχει ένα όνομα και ένα τύπο δεδομένων. το πεδίο με όνομα Α/Α είναι τύπου NUMBER (ακέραιος) το πεδίο ΟΝΟΜΑ_ΤΜΗΜΑΤΟΣ είναι τύπου ΤΕΧΤ (κείμενο) το πεδίο ΗΜΕΡΟΜΗΝΙΑ_ΙΔΡΥΣΗΣ είναι τύπου DATE (ημερομηνία) Η ύπαρξη του τύπου δεδομένων για κάθε πεδίο εξασφαλίζει την αξιοπιστία των δεδομένων.
15
Επιμόρφωση Εκπαιδευτικών Πληροφορικής | Ενότητα 3η (Συστήματα Διαχείρισης Βάσεις Δεδομένων) | Μέρος Α (Επικαιροποίηση Γνώσεων) 15 Σχεσιακό Μοντέλο Κλειδιά και συσχετίσεις Στις βάσεις δεδομένων, είναι σημαντικό να υπάρχει ένα πεδίο που να προσδιορίζει μονοσήμαντα κάθε εγγραφή. Κάθε πεδίο που μπορεί να παίξει αυτό τον ρόλο, ονομάζεται υποψήφιο κλειδί. Στον πίνακα ΤΜΗΜΑ, τον ρόλο αυτό μπορούν να τον παίξουν τα πεδία Α/Α και ΟΝΟΜΑ_ΤΜΗΜΑΤΟΣ. Από τα υποψήφια κλειδιά, ο σχεδιαστής διαλέγει ένα για να του απονείμει το ρόλο του πρωτεύοντος κλειδιού Το πρωτεύον κλειδί αποτελεί μια δήλωση ότι κάθε εγγραφή θα προσδιορίζεται μονοσήμαντα από το πρωτεύον κλειδί.
16
Επιμόρφωση Εκπαιδευτικών Πληροφορικής | Ενότητα 3η (Συστήματα Διαχείρισης Βάσεις Δεδομένων) | Μέρος Α (Επικαιροποίηση Γνώσεων) 16 Σχεσιακό Μοντέλο Η εν λόγω δήλωση μας προστατεύει από το φαινόμενο να υπάρχει παραπάνω από μια εγγραφή στον ίδιο πίνακα που να αναπαριστά την ίδια οντότητα του φυσικού κόσμου. Πάντα δηλώνουμε πρωτεύον κλειδί σε ένα πίνακα. Συνήθως, προτιμούμε πρωτεύοντα κλειδιά τύπου ακεραίου, για λόγους απόδοσης, χωρίς αυτό να μας εμποδίζει, αν κρίνεται αναγκαίο, να δηλώσουμε ως πρωτεύοντα κλειδιά, είτε συνδυασμούς πεδίων, είτε πεδία άλλου τύπου.
17
Επιμόρφωση Εκπαιδευτικών Πληροφορικής | Ενότητα 3η (Συστήματα Διαχείρισης Βάσεις Δεδομένων) | Μέρος Α (Επικαιροποίηση Γνώσεων) 17 Σχεσιακό Μοντέλο Ας υποθέσουμε ότι η βάση δεδομένων μας κρατά πληροφορία για τους μαθητές που είναι εγγεγραμμένοι στη σχολή. Έστω λοιπόν ο πίνακας ΦΟΙΤΕΙ με τα πεδία {ΑΜ_ΕΚΠΑΙΔΕΥΟΜΕΝΟΥ,Α/Α_ΤΜΗΜΑΤΟΣ,ΗΜΕΡΟΜΗΝΙΑ_ΕΓΓΡΑΦΗΣ, ΗΜΕΡΟΜΗΝΙΑ_ΔΙΑΓΡΑΦΗΣ,...}. Παρατηρούμε ότι ο πίνακας ΦΟΙΤΕΙ περιέχει και πληροφορίες που αναφέρονται σε άλλους πίνακες. το πεδίο ΑΜ_ΕΚΠΑΙΔΕΥΟΜΕΝΟΥ αναφέρεται στον πίνακα ΕΚΠΑΙΔΕΥΟΜΕΝΟΣ και συγκεκριμένα στο πεδίο του ΑΜ το πεδίο Α/Α_ΤΜΗΜΑΤΟΣ αναφέρεται στον πίνακα ΤΜΗΜΑ και συγκεκριμένα στο πεδίο του Α/Α.
18
Επιμόρφωση Εκπαιδευτικών Πληροφορικής | Ενότητα 3η (Συστήματα Διαχείρισης Βάσεις Δεδομένων) | Μέρος Α (Επικαιροποίηση Γνώσεων) 18 Σχεσιακό Μοντέλο Όταν λοιπόν για το πεδίο ενός πίνακα υπάρχει η απαίτηση να παίρνει τιμές από κάποιο πεδίο ενός άλλου πίνακα, τότε λέμε ότι υπάρχει συσχέτιση ξένου (ή εξωτερικού) κλειδιού. Η δήλωση που κάνουμε στο DBMS για την ύπαρξη μιας τέτοιας συσχέτισης γίνεται για να αποφύγουμε τον κίνδυνο αναξιόπιστων εγγραφών. Για παράδειγμα, αποφεύγουμε την περίπτωση να έχουμε στον πίνακα ΦΟΙΤΕΙ μια εγγραφή της μορφής {141364293, 000, 17/11/2000, 08/12/2000,...} όπου ο Α/Α_ΤΜΗΜΑΤΟΣ της εγγραφής δεν αντιστοιχεί σε κάποιον από τους Α/Α των σχολών, όπως αυτοί φαίνονται στον πίνακα ΤΜΗΜΑ. Πρωτεύων πίνακας το πεδίο του παρέχει το σύνολο των δυνατών τιμών Πίνακας στόχος Ο πίνακας, το πεδίο του οποίου λαμβάνει τιμές από τον πρωτεύοντα πίνακα
19
Επιμόρφωση Εκπαιδευτικών Πληροφορικής | Ενότητα 3η (Συστήματα Διαχείρισης Βάσεις Δεδομένων) | Μέρος Α (Επικαιροποίηση Γνώσεων) 19 Δομή Εισαγωγή Σχεσιακό Μοντέλο Μοντέλο Οντοτήτων-Συσχετίσεων Σχεδίαση Κανονικές Μορφές SQL MS Access MySQL
20
Επιμόρφωση Εκπαιδευτικών Πληροφορικής | Ενότητα 3η (Συστήματα Διαχείρισης Βάσεις Δεδομένων) | Μέρος Α (Επικαιροποίηση Γνώσεων) 20 Μοντέλο Οντοτήτων-Συσχετίσεων Κατ' αρχήν, πρέπει να απεικονίσουμε την πραγματικότητα, όπως περιγράφηκε στο παράδειγμα σε λεκτική μορφή φυσικής γλώσσας, σε μια μορφή που να είναι κοντά στο σχεσιακό μοντέλο. Για το στάδιο αυτό, χρησιμοποιείται συχνά μια ενδιάμεση μορφή αναπαράστασης, επονομαζόμενη Μοντέλο Οντοτήτων-Συσχετίσεων, η οποία αποτελείται από δύο δομικά στοιχεία: Οντότητες, που αναπαριστούν φυσικές οντότητες του πραγματικού κόσμου, και Συσχετίσεις, που αναπαριστούν αλληλεξαρτήσεις των οντοτήτων, ή δράσεις. Κάθε συσχέτιση έχει ένα βαθμό πληθικότητας, που χαρακτηρίζει τη συσχέτιση μεταξύ δύο οντοτήτων. Έχουμε τριών ειδών σχέσεις: αυτές με βαθμό πληθικότητας 1:1, αυτές με βαθμό πληθικότητας 1:Ν και αυτές με βαθμό πληθικότητας Μ:Ν. Οι πρώτες ονομάζονται και συσχετίσεις «ένα προς ένα», οι δεύτερες συσχετίσεις «ένα προς πολλά» και οι τρίτες «πολλά προς πολλά». Ο βαθμός πληθικότητας μιας συσχέτισης προκύπτει σαν συνδυασμός των επί μέρους πληθικοτήτων των στοιχείων της. Παράδειγμα. Έστω λοιπόν ότι για κάθε τμήμα της ημερίδας επιμόρφωσης καθηγητών κρατάμε διάφορες πληροφορίες όπως όνομα, ημερομηνία ίδρυσης κλπ. Σε κάθε τμήμα, διδάσκονται διάφορα μαθήματα και φοιτούν εκπαιδευόμενοι. Για κάθε μάθημα υπάρχουν κάποιοι εκπαιδευτές που το διδάσκουν και κάποιοι εκπαιδευόμενοι που το παρακολουθούν. Κάθε διδασκαλία, δε, γίνεται κατά τη διάρκεια μίας ή περισσοτέρων διδακτικών περιόδων. Για κάθε εκπαιδευόμενο κρατάμε στοιχεία όπως ονοματεπώνυμο, ΑΜ και βαθμό.
21
Επιμόρφωση Εκπαιδευτικών Πληροφορικής | Ενότητα 3η (Συστήματα Διαχείρισης Βάσεις Δεδομένων) | Μέρος Α (Επικαιροποίηση Γνώσεων) 21
22
Επιμόρφωση Εκπαιδευτικών Πληροφορικής | Ενότητα 3η (Συστήματα Διαχείρισης Βάσεις Δεδομένων) | Μέρος Α (Επικαιροποίηση Γνώσεων) 22 Δομή Εισαγωγή Σχεσιακό Μοντέλο Μοντέλο Οντοτήτων-Συσχετίσεων Σχεδίαση Κανονικές Μορφές SQL MS Access MySQL
23
Επιμόρφωση Εκπαιδευτικών Πληροφορικής | Ενότητα 3η (Συστήματα Διαχείρισης Βάσεις Δεδομένων) | Μέρος Α (Επικαιροποίηση Γνώσεων) 23 Σχεδίαση Κανόνες κατασκευής σχήματος βάσης δεδομένων από το μοντέλο οντοτήτων συσχετίσεων 1. Κάθε οντότητα απεικονίζεται σε ένα πίνακα. 2. Για κάθε συσχέτιση που και οι δύο ακμές της είναι πληθικότητας 1:Ν (έχει συνολικό βαθμό πληθικότητας, δηλαδή, Μ:Ν), κατασκευάζουμε και τον αντίστοιχο πίνακα. Ο πίνακας περιλαμβάνει ως πεδία τα πρωτεύοντα κλειδιά των οντοτήτων που εμπλέκονται στη συσχέτιση. 3. Για κάθε συσχέτιση που η μία ακμή της είναι πληθικότητας 1:Ν και η άλλη 1:1 (έχει συνολικό βαθμό πληθικότητας, δηλαδή, 1:Ν), προσθέτουμε στην οντότητα που συνδέεται με πληθικότητα 1:1, ένα πεδίο που είναι εξωτερικό κλειδί στον πίνακα της άλλης οντότητας. 4. Στις συσχετίσεις που και οι δύο ακμές τους είναι πληθικότητας 1:1 (με συνολικό βαθμό πληθικότητας, δηλαδή, 1:1) κάνουμε το ίδιο, χωρίς να έχει ιδιαίτερη σημασία το πού τοποθετείται το επιπλέον πεδίο. 5. Φροντίζουμε για κάθε πίνακα να υπάρχει πρωτεύον κλειδί. Φροντίζουμε ώστε όλα τα εξωτερικά κλειδιά να είναι δηλωμένα επίσης. 6. Για κάθε πεδίο κάθε πίνακα καθορίζουμε τον τύπο του (αριθμός, κείμενο, ημερομηνία, κλπ.). Επιπλέον, μπορούμε να καθορίσουμε περιορισμούς για τον αν επιτρέπεται κάποια εγγραφή να μην έχει τιμή στο εν λόγω πεδίο.
24
Επιμόρφωση Εκπαιδευτικών Πληροφορικής | Ενότητα 3η (Συστήματα Διαχείρισης Βάσεις Δεδομένων) | Μέρος Α (Επικαιροποίηση Γνώσεων) 24 Σχεδίαση 1. Κατ' αρχήν απεικονίζουμε όλες τις οντότητες σε πίνακες. Η απεικόνιση φαίνεται στον παρακάτω πίνακα: ΟντότηταΠίνακαςΠεδία ΤΜΗΜΑ ΤΜΗΜΑ_ΤΜ_ΑΑ,ΤΜΗΜΑ_ΟΝΟΜΑ, ΤΜΗΜΑ_ΗΜ_ΙΔΡΥΣΗΣ, ΤΜΗΜΑ_ΑΙΘΟΥΣΑ ΜΑΘΗΜΑ ΜΑΘΗΜΑ_ΑΑ, ΜΑΘΗΜΑ_ΟΝΟΜΑ, ΜΑΘΗΜΑ_ΠΕΡΙΕΧΟΜΕΝΑ ΕΚΠΑΙΔΕΥΟΜ ΕΝΟΣ ΕΚΠΑΙΔΕΥΟΜΕΝΟΣ_ΑΜ, ΕΚΠΑΙΔΕΥΟΜΕΝΟΣ_ΕΠΩΝΥΜΟ, ΕΚΠΑΙΔΕΥΟΜΕΝΟΣ_ΟΝΟΜΑ, ΕΚΠΑΙΔΕΥΟΜΕΝΟΣ_ΠΑΤΡΩΝΥΜΟ, ΕΚΠΑΙΔΕΥΟΜΕΝΟΣ_ΒΑΘΜΟΣ ΔΙΔΑΣΚΑΛΙΑ ΔΙΔΑΣΚΑΛΙΑ_ΔΙΔ_ΑΑ, ΔΙΔΑΣΚΑΛΙΑ_ΗΜΕΡΟΜΗΝΙΑ ΕΚΠΑΙΔΕΥΤΗ Σ ΕΚΠΑΙΔΕΥΤΗΣ_Ε_ΑΜ, ΕΚΠΑΙΔΕΥΤΗΣ_ΕΠΩΝΥΜΟ, ΕΚΠΑΙΔΕΥΤΗΣ_ΟΝΟΜΑ ΔΙΔ_ΠΕΡΙΟΔ ΟΣ ΔΙΔ_ΠΕΡΙΟΔΟΣ_ΔΠ_ΑΑ, ΔΙΔ_ΠΕΡΙΟΔΟΣ_ΗΜ_ΕΝΑΡΞΗΣ, ΔΙΔ_ΠΕΡΙΟΔΟΣ_ΗΜ_ΛΗΞΗΣ, ΔΙΔ_ΠΕΡΙΟΔΟΣ_ΔΙΑΡΚΕΙ
25
Επιμόρφωση Εκπαιδευτικών Πληροφορικής | Ενότητα 3η (Συστήματα Διαχείρισης Βάσεις Δεδομένων) | Μέρος Α (Επικαιροποίηση Γνώσεων) 25 Σχεδίαση 2. Στο παράδειγμά μας έχουμε δύο συσχετίσεις πληθικότητας Ν:Μ. Ας δούμε πώς απεικονίζονται σε πίνακες στο σχεσιακό μοντέλο και θα σχολιάσουμε έπειτα την εν λόγω απεικόνιση. ΣυσχέτισηΠίνακαςΠεδία ΠΡΟΣΦΕΡΕΙ ΤΜΗΜΑ_ΤΜ_ΑΑ, ΜΑΘΗΜΑ_Μ_ΑΑ, ΗΜ_ΕΝΑΡΞΗΣ, ΗΜ_ΛΗΞΗΣ ΠΑΡΑΚΟΛΟΥΘ ΕΙ ΕΚΠΑΙΔΕΥΟΜΕΝΟΣ_ΑΜ, ΔΙΔΑΣΚΑΛΙΑ_ΔΙΔ_ΑΑ
26
Επιμόρφωση Εκπαιδευτικών Πληροφορικής | Ενότητα 3η (Συστήματα Διαχείρισης Βάσεις Δεδομένων) | Μέρος Α (Επικαιροποίηση Γνώσεων) 26 Σχεδίαση 3. Όλες οι υπόλοιπες συσχετίσεις μας είναι 1:Ν (οπότε περνάμε στον κανόνα 3). Κατά την εκτέλεση αυτού του κανόνα, εμπλουτίζουμε τους υπάρχοντες πίνακες με τα αντίστοιχα ξένα κλειδιά που ανταποκρίνονται στους συσχετιζόμενους πίνακες. Στο παρακάτω σχήμα, βλέπουμε τα επιπλέον πεδία σε κάθε πίνακα, με έντονα γράμματα.
27
Επιμόρφωση Εκπαιδευτικών Πληροφορικής | Ενότητα 3η (Συστήματα Διαχείρισης Βάσεις Δεδομένων) | Μέρος Α (Επικαιροποίηση Γνώσεων) 27 Σχεδίαση 4. Στο παράδειγμά μας, δεν έχουμε συσχετίσεις τύπου 1:1, οπότε περνάμε στον επόμενο κανόνα: για κάθε πίνακα πρέπει ΥΠΟΧΡΕΩΤΙΚΑ να ορίσουμε πρωτεύον κλειδί. Επιπλέον, για την μετέπειτα αξιοπιστία των δεδομένων της βάσης, πρέπει να ορίσουμε και τα ξένα κλειδιά. Στην περίπτωση του παραδείγματός μας, οι αναθέσεις αυτές είναι ως εξής:
28
Επιμόρφωση Εκπαιδευτικών Πληροφορικής | Ενότητα 3η (Συστήματα Διαχείρισης Βάσεις Δεδομένων) | Μέρος Α (Επικαιροποίηση Γνώσεων) 28 ΠίνακαςΠεδία και Πρωτεύον ΚλειδίΞένα Κλειδιά ΤΜΗΜΑΤΜΗΜΑ_Τ_ΑΑ, ΤΜΗΜΑ_ΟΝΟΜΑ, ΤΜΗΜΑ_ΗΜ_ΙΔΡΥΣΗΣ, ΤΜΗΜΑ_ΑΙΘΟΥΣΑ ΜΑΘΗΜΑΜΑΘΗΜΑ_Μ_ΑΑ, ΜΑΘΗΜΑ_ΟΝΟΜΑ, ΜΑΘΗΜΑ_ΠΕΡΙΕΧΟΜΕΝΑ ΕΚΠΑΙΔΕΥΟΜΕΝΟΣΕΚΠΑΙΔΕΥΟΜΕΝΟΣ_ΑΜ, ΕΚΠΑΙΔΕΥΟΜΕΝΟΣ_ΕΠΩΝΥΜΟ, ΕΚΠΑΙΔΕΥΟΜΕΝΟΣ_ΟΝΟΜΑ, ΕΚΠΑΙΔΕΥΟΜΕΝΟΣ_ΠΑΤΡΩΝΥΜΟ, ΕΚΠΑΙΔΕΥΟΜΕΝΟΣ_ΒΑΘΜΟΣ, ΤΜΗΜΑ_Τ_ΑΑ 1. ΤΜΗΜΑ_Τ_ΑΑ στο πεδίο ΤΜΗΜΑΤΜΗΜΑ_Τ_ΑΑ ΔΙΔΑΣΚΑΛΙΑΔΙΔΑΣΚΑΛΙΑ_ΔΙΔ_ΑΑ, ΔΙΔΑΣΚΑΛΙΑ_ΗΜΕΡΟΜΗΝΙΑ, ΤΜΗΜΑ_Τ_ΑΑ, ΜΑΘΗΜΑ_ΑΑ, ΕΚΠΑΙΔΕΥΤΗΣ_ΣΑ, ΕΚΠ_ΠΕΡΙΟΔΟΣ_ΑΑ 1. ΤΜΗΜΑ_ΑΑ στο ΤΜΗΜΑ.ΤΜΗΜΑ_Τ_ΑΑ 2. ΜΑΘΗΜΑ_ΑΑ στο ΜΑΘΗΜΑ.ΜΑΘΗΜΑ_ΑΑ 3. ΕΚΠΑΙΔΕΥΤΗΣ_ΣΑ στο ΕΚΠΑΙΔΕΥΤΗΣ.ΕΚΠΑΙΔΕΥΤΗΣ_ΣΑ 4. ΔΙΔ_ΠΕΡΙΟΔΟΣ_ΑΑ στο ΔΙΔ_ ΠΕΡΙΟΔΟΣ.ΔΙΔ_ΠΕΡΙΟΔΟΣ_ΔΠ_ΑΑ ΕΚΠΑΙΔΕΥΤΗΣΕΚΠΑΙΔΕΥΤΗΣ_Ε_ΑΜ, ΕΚΠΑΙΔΕΥΤΗΣ_ΕΠΩΝΥΜΟ, ΕΚΠΑΙΔΕΥΤΗΣ_ΟΝΟΜΑ, ΕΚΠΑΙΔΕΥΤΗΣ_ΒΑΘΜΟΣ ΔΙΔ_ΠΕΡΙΟΔΟΣΔΙΔ_ΠΕΡΙΟΔΟΣ_ΔΠ_ΑΑ, ΔΙΔ_ΠΕΡΙΟΔΟΣ_ΩΡΑ_ΕΝΑΡΞΗΣ, ΔΙΔ_ΠΕΡΙΟΔΟΣ_ΩΡΑ_ΛΗΞΗΣ, ΔΙΔ_ΠΕΡΙΟΔΟΣ_ΔΙΑΡΚΕΙΑ ΠΡΟΣΦΕΡΕΙΤΜΗΜΑ_Τ_ΑΑ, ΜΑΘΗΜΑ_ΑΑ, ΗΜ_ΕΝΑΡΞΗΣ, ΗΜ_ΛΗΞΗΣ 1. ΤΜΗΜΑ_Τ_ΑΑ στο ΤΜΗΜΑ.ΤΜΗΜΑ_Τ__ΑΑ 2. ΜΑΘΗΜΑ_ΑΑ στο ΜΑΘΗΜΑ.ΜΑΘΗΜΑ_ΑΑ ΠΑΡΑΚΟΛΟΥ-ΘΕΙΕΚΠΑΙΔΕΥΟΜΕΝΟΣ_ΑΜ, ΔΙΔΑΣΚΑΛΙΑ_ΑΑ1. ΕΚΠΑΙΔΕΥΟΜΕΝΟΣ_ΑΜ στο ΕΚΠΑΙΔΕΥΟΜΕΝΟΣ. ΕΚΠΑΙΔΕΥΟΜΕΝΟΣ_ΑΜ 2. ΔΙΔΑΣΚΑΛΙΑ_ΔΙΔ_ΑΑ στο ΔΙΔΑΣΚΑΛΙΑ.ΔΙΔΑΣΚΑΛΙΑ_ΔΙΔ_ΑΑ
29
Επιμόρφωση Εκπαιδευτικών Πληροφορικής | Ενότητα 3η (Συστήματα Διαχείρισης Βάσεις Δεδομένων) | Μέρος Α (Επικαιροποίηση Γνώσεων) 29 Σχεδίαση 5. Στο τελευταίο βήμα, ορίζουμε τύπους για τα πεδία των πινάκων. Εν γένει, ο τύπος που αναθέτουμε προκύπτει απλά από τη φύση του πεδίου. Μερικές επιπλέον συμβουλές είναι: Τα πεδία που τεχνητά εισάγουμε σαν κωδικούς είναι καλό να είναι αριθμοί. Τα περισσότερα DBMS (και η MS Access) μας επιτρέπουν να έχουμε αυτόματη αρίθμηση σε αυτού του είδους τα πεδία. Είναι καλό, αν αυτή η επιλογή είναι διαθέσιμη, να την χρησιμοποιήσουμε. Προσοχή: αν όλα τα ψηφία του πεδίου είναι σημαντικά τότε χρησιμοποιούμε τύπο ‘Κείμενο'. Αν, για παράδειγμα, το πεδίο έχει τιμή ‘0048' και τα δύο πρώτα ψηφία είναι σημαντικά, αν επιλέξουμε αριθμητικό τύπο δεδομένων, η τιμή θα γίνει ‘48'. Προσέχουμε τα ξένα κλειδιά να έχουν ίδιο τύπο με το αντίστοιχο πεδίο του πρωτεύοντος πίνακα. Στην MS Access, αν ένα πεδίο είναι τύπου αυτόματης αρίθμησης στον πρωτεύοντα πίνακα, τα ξένια κλειδιά σε αυτό πρέπει να είναι τύπου Ακεραίου μεγάλου μήκους.
30
Πίνακες και ΠεδίαΤύπος πεδίουΆλλα χαρακτηριστικά Πίνακας: ΤΜΗΜΑ ΤΜΗΜΑ_Τ_ΑΑΑυτόματη αρίθμησηΑπαιτούμενο πεδίο ΤΜΗΜΑ_ΟΝΟΜΑΚείμενο (25) ΤΜΗΜΑ_ΗΜ_ΙΔΡΥΣΗΣΗμερομηνίαΜορφή: dd/mm/yy ΤΜΗΜΑ_ΑΙΘΟΥΣΑΚείμενο (100) Πίνακας: ΜΑΘΗΜΑ ΜΑΘΗΜΑ_Μ_ΑΑΑυτόματη αρίθμηση ΜΑΘΗΜΑ_ΟΝΟΜΑΚείμενο (50)Απαιτούμενο πεδίο ΜΑΘΗΜΑ_ΠΕΡΙΕΧΟΜΕΝΑΚείμενο (100) Πίνακας: ΕΚΠΑΙΔΕΥΟΜΕΝΟΣ ΕΚΠΑΙΔΕΥΟΜΕΝΟΣ_ΑΜΚείμενο (11) ΕΚΠΑΙΔΕΥΟΜΕΝΟΣ_ΕΠΩΝΥΜΟΚείμενο (50)Απαιτούμενο πεδίο ΕΚΠΑΙΔΕΥΟΜΕΝΟΣ_ΟΝΟΜΑΚείμενο (50)Απαιτούμενο πεδίο ΕΚΠΑΙΔΕΥΟΜΕΝΟΣ_ΠΑΤΡΩΝΥΜΟΚείμενο (50) ΕΚΠΑΙΔΕΥΟΜΕΝΟΣ_ΒΑΘΜΟΣΚείμενο (20)Απαιτούμενο πεδίο
31
Επιμόρφωση Εκπαιδευτικών Πληροφορικής | Ενότητα 3η (Συστήματα Διαχείρισης Βάσεις Δεδομένων) | Μέρος Α (Επικαιροποίηση Γνώσεων) 31 Δομή Εισαγωγή Σχεσιακό Μοντέλο Μοντέλο Οντοτήτων-Συσχετίσεων Σχεδίαση Κανονικές Μορφές SQL MS Access MySQL
32
Επιμόρφωση Εκπαιδευτικών Πληροφορικής | Ενότητα 3η (Συστήματα Διαχείρισης Βάσεις Δεδομένων) | Μέρος Α (Επικαιροποίηση Γνώσεων) 32 Κανονικές Μορφές Κανονικοποίηση είναι η διαδικασία μέσω της οποίας μετατρέπουμε ένα σχήμα σε κανονική μορφή, ήτοι, σε μια μορφή που πληροί συγκεκριμένα χαρακτηριστικά σχεδίασης 4 κανονικές μορφές (Normal Forms): 1NF, 2NF, 3NF, BCNF Συναρτησιακή Εξάρτηση (Functional Dependency-FD) : ορισμός εξάρτησης, σε επίπεδο σχήματος Αν Χ,Υ σύνολα γνωρισμάτων της σχέσης R, ΧΥ, σημαίνει ότι η τιμή για το Χ καθορίζει μονοσήμαντα την τιμή του Υ Prime attribute: γνώρισμα που είναι υποσύνολο ενός υποψήφιου κλειδιού (candidate key) Trivial FD: A,B A Μερική (partial) FD: AC και Αcandidate key, π.χ., Α,Β Μεταβατική (transitive) FD: AΒC, Α prime & Β non-prime
33
Επιμόρφωση Εκπαιδευτικών Πληροφορικής | Ενότητα 3η (Συστήματα Διαχείρισης Βάσεις Δεδομένων) | Μέρος Α (Επικαιροποίηση Γνώσεων) 33 Πρώτη Κανονική Μορφή -- 1NF 1NF: Κάθε γνώρισμα παίρνει ακριβώς μία τιμή Π.χ., η σχέση EMP(EID, ENAME, ECHILDREN), με πιθανή τιμή EMP(4, Κώστας, {Μαρία, Γιάννης}), ΔΕΝ είναι σε 1NF μορφή
34
Επιμόρφωση Εκπαιδευτικών Πληροφορικής | Ενότητα 3η (Συστήματα Διαχείρισης Βάσεις Δεδομένων) | Μέρος Α (Επικαιροποίηση Γνώσεων) 34 2NF: 1NF + δεν υπάρχουν μερικές συναρτησιακές εξαρτήσεις (partial dependencies) Με άλλα λόγια αν το (Α,Β) είναι υποψήφια κλειδιά (candidate keys) και έχω κάποια εξάρτηση της μορφής AC, τότε δεν είμαι σε 2NF Π.χ., η παρακάτω σχέση ΔΕΝ είναι σε 2NF SUPPLY(SNO,PARTNO,PRJNO,SCITY,PRJCITY,QTY), Δεύτερη Κανονική Μορφή – 2NF
35
Επιμόρφωση Εκπαιδευτικών Πληροφορικής | Ενότητα 3η (Συστήματα Διαχείρισης Βάσεις Δεδομένων) | Μέρος Α (Επικαιροποίηση Γνώσεων) 35 3NF: 2NF + δεν υπάρχουν μεταβατικές συναρτησιακές εξαρτήσεις (transitive dependencies σε non-prime attributes) Με άλλα λόγια, αν μια ΧΑ, είναι στη σχέση R, τότε Είτε είναι trivial (ΑΧ), Είτε το Χ είναι κάποιο υπερκλειδί, είτε Αcandidate key (*) Θυμηθείτε ότι υπονοούνται όλες οι FD’s από το πρωτεύον κλειδί σε όλα τα άλλα γνωρίσματα Τρίτη Κανονική Μορφή – 3NF
36
Επιμόρφωση Εκπαιδευτικών Πληροφορικής | Ενότητα 3η (Συστήματα Διαχείρισης Βάσεις Δεδομένων) | Μέρος Α (Επικαιροποίηση Γνώσεων) 36 Τρίτη Κανονική Μορφή – 3NF Π.χ., η παρακάτω σχέση, ενώ είναι σε 2NF, ΔΕΝ είναι σε 3NF EMPDEPT(ENO,ENAME,OFFICE,SAL,DNO,DNAME,DMGR),
37
Επιμόρφωση Εκπαιδευτικών Πληροφορικής | Ενότητα 3η (Συστήματα Διαχείρισης Βάσεις Δεδομένων) | Μέρος Α (Επικαιροποίηση Γνώσεων) 37 Boyce-Codd Normal Form – BCNF BCNF: 3NF + δεν υπάρχουν καθόλου μεταβατικές συναρτησιακές εξαρτήσεις (transitive dependencies) Με άλλα λόγια, αν μια ΧΑ, είναι στη σχέση R, τότε Είτε είναι trivial (ΑΧ), Είτε το Χ είναι κάποιο υπερκλειδί, Θυμηθείτε ότι στην 3NF, μπορούσε το Α να είναι υποσύνολο ενός candidate key
38
Επιμόρφωση Εκπαιδευτικών Πληροφορικής | Ενότητα 3η (Συστήματα Διαχείρισης Βάσεις Δεδομένων) | Μέρος Α (Επικαιροποίηση Γνώσεων) 38 Π.χ., η παρακάτω σχέση, ενώ είναι σε 3NF, ΔΕΝ είναι σε BCNF CRAZYTAVERN(PERSON,FOOD,RECEIPT_NO) (*) Κάθε απόδειξη αφορά ακριβώς ένα φαγητό και κάθε άνθρωπος τρώει ακριβώς ένα φαΐ Boyce-Codd Normal Form – BCNF
39
Επιμόρφωση Εκπαιδευτικών Πληροφορικής | Ενότητα 3η (Συστήματα Διαχείρισης Βάσεις Δεδομένων) | Μέρος Α (Επικαιροποίηση Γνώσεων) 39 Κανονικοποίηση Για να φέρουμε μια σχέση R σε BCNF μορφή, για κάθε συναρτησιακή εξάρτηση X Y που δημιουργεί πρόβλημα, φτιάχνουμε μια σχέση R’(X,Y) και αφαιρούμε τα γνωρίσματα Υ από την R επαναλάβατε μέχρι όλες οι προκύπτουσες σχέσεις να είναι σε BCNF μορφή
40
Επιμόρφωση Εκπαιδευτικών Πληροφορικής | Ενότητα 3η (Συστήματα Διαχείρισης Βάσεις Δεδομένων) | Μέρος Α (Επικαιροποίηση Γνώσεων) 40 Προσαρμογή του σχήματος Η εκλογή του σχήματος της βάσης δεδομένων μπορεί να επηρεαστεί από χαρακτηριστικά που αφορούν τις ερωτήσεις. Πιθανές επεμβάσεις μπορεί να είναι: Να αρκεστούμε σε 3NF αντί για BCNF σχήμα. Αντίθετα, να αναλύσουμε περαιτέρω ένα BCNF σχήμα Να αποκανονικοποιήσουμε το σχήμα ή να του προσθέσουμε επιπλέον πεδία. Να επιλέξουμε κάποιου είδους οριζόντιες κατατμήσεις του σχήματος.
41
Επιμόρφωση Εκπαιδευτικών Πληροφορικής | Ενότητα 3η (Συστήματα Διαχείρισης Βάσεις Δεδομένων) | Μέρος Α (Επικαιροποίηση Γνώσεων) 41 Δομή Εισαγωγή Σχεσιακό Μοντέλο Μοντέλο Οντοτήτων-Συσχετίσεων Σχεδίαση Κανονικές Μορφές SQL MS Access MySQL
42
Επιμόρφωση Εκπαιδευτικών Πληροφορικής | Ενότητα 3η (Συστήματα Διαχείρισης Βάσεις Δεδομένων) | Μέρος Α (Επικαιροποίηση Γνώσεων) 42 SQL SQL (Structured Query Language) η πιο δημοφιλής και πιο διαδεδομένη γλώσσα ανάπτυξης και διαχείρισης σχεσιακών βάσεων δεδομένων. αποτελείται από εντολές με τα ορίσματά τους, τις οποίες μπορούμε να χρησιμοποιήσουμε με συγκεκριμένους κανόνες σύνταξης για να πάρουμε τα αποτελέσματα που θέλουμε. Με την SQL μπορούμε: να δημιουργήσουμε μια βάση δεδομένων και τους πίνακές της με τα αντίστοιχα πεδία να εισάγουμε εγγραφές στους πίνακες να τροποποιήσουμε και να διαγράψουμε εγγραφές να αλλάξουμε τη δομή των πινάκων με προσθήκη και διαγραφή πεδίων να εμφανίσουμε πληροφορίες
43
Επιμόρφωση Εκπαιδευτικών Πληροφορικής | Ενότητα 3η (Συστήματα Διαχείρισης Βάσεις Δεδομένων) | Μέρος Α (Επικαιροποίηση Γνώσεων) 43 Οι Τύποι Δεδομένων της SQL Η SQL υποστηρίζει τους εξής τύπους δεδομένων για τα πεδία μιας πίνακας : char(n), ένα αλφαριθμητικό (string) με n ακριβώς χαρακτήρες. varchar(n), ένα αλφαριθμητικό (string) με μεταβλητό μήκος και με n το πολύ χαρακτήρες. int, ακέραιος αριθμός. smallint, ακέραιος αριθμός με μικρές τιμές. Numeric(p, d), αριθμός με p ψηφία, από τα οποία τα d είναι δεκαδικά. real, αριθμός κινητής υποδιαστολής απλής ακρίβειας. double precision, αριθμός κινητής υποδιαστολής διπλής ακρίβειας. float(n), αριθμός κινητής υποδιαστολής με ακρίβεια n ψηφίων. date, ημερομηνία (ημέρα, μήνας, έτος). time, ώρα (ώρα, λεπτά, δευτερόλεπτα).
44
Επιμόρφωση Εκπαιδευτικών Πληροφορικής | Ενότητα 3η (Συστήματα Διαχείρισης Βάσεις Δεδομένων) | Μέρος Α (Επικαιροποίηση Γνώσεων) 44 Η Εντολή SELECT H βασική εντολή για την ανάκτηση πληροφοριών από τη ΒΔ είναι η εντολή select. Η βασική μορφή της εντολής της είναι η εξής: SELECT FROM WHERE ; Τα πεδία που δηλώνουμε στην εντολή select είναι αυτά που θα εμφανίζονται στο αποτέλεσμα. Αν θέλουμε να εμφανίζονται όλα τα πεδία θα πρέπει να χρησιμοποιήσουμε τον χαρακτήρα *. Η πρόταση from δηλώνει τους πίνακες στους οποίους θα γίνει η αναζήτηση. Η πρόταση where είναι προαιρετική και περιέχει τη συνθήκη που θέλουμε να ικανοποιούν οι εγγραφές του αποτελέσματος.
45
Επιμόρφωση Εκπαιδευτικών Πληροφορικής | Ενότητα 3η (Συστήματα Διαχείρισης Βάσεις Δεδομένων) | Μέρος Α (Επικαιροποίηση Γνώσεων) 45 Η Εντολή SELECT Για να εμφανίσουμε το όνομα, το επώνυμο και το βαθμό για όλους τους εκπαιδευόμενους θα συντάσσαμε την εντολή select ως εξής: SELECT ONOMA, ΕΠΩΝΥΜΟ, ΒΑΘΜΟΣ FROM ΕΚΠΑΙΔΕΥΟΜΕΝΟΣ; Για να μην εμφανίζονται διπλότυπες εγγραφές στο αποτέλεσμα, χρησιμοποιούμε τον όρο distinct, ως εξής: SELECT DISTINCT ONOMA, ΕΠΩΝΥΜΟ, ΒΑΘΜΟΣ FROM ΕΚΠΑΙΔΕΥΟΜΕΝΟΣ; Αν θέλουμε να δούμε όλα τα πεδία των εκπαιδευομένων, θα πρέπει να χρησιμοποιήσουμε το σύμβολο *, ως εξής : SELECT * FROM ΕΚΠΑΙΔΕΥΟΜΕΝΟΣ;
46
Επιμόρφωση Εκπαιδευτικών Πληροφορικής | Ενότητα 3η (Συστήματα Διαχείρισης Βάσεις Δεδομένων) | Μέρος Α (Επικαιροποίηση Γνώσεων) 46 Η Εντολή SELECT Η επόμενη εντολή select εμφανίζει εκείνους τους εκπαιδευόμενους με ΑΜ μεγαλύτερο από μια συγκεκριμένη τιμή: SELECT * FROM ΕΚΠΑΙΔΕΥΟΜΕΝΟΣ WHERE AM > 10; Για πιο σύνθετα κριτήρια στο ερώτημα, θα μπορούσαμε στον όρο where να χρησιμοποιήσουμε κάποιον από τους λογικούς τελεστές OR ή AND. Για παράδειγμα εάν θέλαμε να εμφανίσουμε τους εκπαιδευόμενους με ΑΜ μεταξύ δύο τιμών θα μπορούσαμε να χρησιμοποιήσουμε το εξής ερώτημα: SELECT * FROM ΕΚΠΑΙΔΕΥΟΜΕΝΟΣ WHERE AM > 10 AND AM < 20;
47
Επιμόρφωση Εκπαιδευτικών Πληροφορικής | Ενότητα 3η (Συστήματα Διαχείρισης Βάσεις Δεδομένων) | Μέρος Α (Επικαιροποίηση Γνώσεων) 47 Η Εντολή SELECT Η εντολή μπορεί να χρησιμοποιηθεί για ανάκτηση δεδομένων από πεδία που περιέχονται σε περισσότερους από έναν πίνακες, οι οποίοι συσχετίζονται: SELECT ΕΠΩΝΥΜΟ, ΟΝΟΜΑ, ΑΙΘΟΥΣΑ FROM ΕΚΠΑΙΔΕΥΟΜΕΝΟΣ, ΤΜΗΜΑ WHERE ΕΚΠΑΙΔΕΥΟΜΕΝΟΣ.ΤΜ_ΑΑ= ΤΜΗΜΑ.ΤΜ_ΑΑ; π.χ. ανάκτησε το όνομα, το επώνυμο των εκπαιδευόμενων και την αίθουσα του τμήματος στην οποία παρακολουθούν τη διδασκαλία οι εκπαιδευόμενοι
48
Επιμόρφωση Εκπαιδευτικών Πληροφορικής | Ενότητα 3η (Συστήματα Διαχείρισης Βάσεις Δεδομένων) | Μέρος Α (Επικαιροποίηση Γνώσεων) 48 Η πρόταση ORDER BY Με την πρόταση order by μπορούμε να ταξινομήσουμε το αποτέλεσμα μιας εντολής Select ως προς κάποιο πεδίο. π.χ.να εμφανίσουμε τη λίστα των εκπαιδευόμενων ταξινομημένη ως προς επώνυμο, χρησιμοποιούμε την πρόταση group by ως εξής: SELECT * FROM ΕΚΠΑΙΔΕΥΟΜΕΝΟΣ ORDER BY ΕΠΩΝΥΜΟ;
49
Επιμόρφωση Εκπαιδευτικών Πληροφορικής | Ενότητα 3η (Συστήματα Διαχείρισης Βάσεις Δεδομένων) | Μέρος Α (Επικαιροποίηση Γνώσεων) 49 Οι Συναρτήσεις Ομαδοποίησης Η SQL χρησιμοποιεί μερικές πολύ χρήσιμες συναρτήσεις, που ονομάζονται συναρτήσεις ομαδοποίησης (aggregate functions) και οι οποίες δέχονται ένα σύνολο τιμών και επιστρέφουν μία τιμή Count (Απαρίθμηση) Sum (Άθροισμα) Avg (Μέσος Όρος) Max (Μέγιστο) Min (Ελάχιστο)
50
Επιμόρφωση Εκπαιδευτικών Πληροφορικής | Ενότητα 3η (Συστήματα Διαχείρισης Βάσεις Δεδομένων) | Μέρος Α (Επικαιροποίηση Γνώσεων) 50 Οι Συναρτήσεις Ομαδοποίησης Για να βρούμε τον συνολικό αριθμό των εκπαιδευομένων πρέπει να κατασκευάσουμε το εξής ερώτημα: SELECT COUNT(*) FROM ΕΚΠΑΙΔΕΥΟΜΕΝΟΣ; Το αποτέλεσμα θα είναι ένας μόνο αριθμός, δηλ. ο συνολικός αριθμός των εκπαιδευόμενων, δηλαδή το σύνολο των εγγραφών του πίνακα ΕΚΠΑΙΔΕΥΟΜΕΝΟΣ. Εάν επιθυμούσαμε να βρούμε όλα τα στοιχεία του εκπαιδευτικού με το μεγαλύτερο ΑΜ, θα κατασκευάζαμε το ερώτημα: SELECT *, MAX(ΑΜ) FROM ΕΚΠΑΙΔΕΥΟΜΕΝΟΣ;
51
Επιμόρφωση Εκπαιδευτικών Πληροφορικής | Ενότητα 3η (Συστήματα Διαχείρισης Βάσεις Δεδομένων) | Μέρος Α (Επικαιροποίηση Γνώσεων) 51 Η πρόταση Group By Με την πρόταση group by μπορούμε να ξεχωρίσουμε (απομονώσουμε) τις εγγραφές ενός πίνακα σε ανεξάρτητα υποσύνολα και μετά να εφαρμόσουμε μια συνάρτηση ομαδοποίησης σε κάθε υποσύνολο. π.χ. καταμέτρηση των εκπαιδευτικών που έχουν βαθμό Α, Β και Γ. SELECT ΒΑΘΜΟΣ, COUNT(*) FROM ΕΚΠΑΙΔΕΥΟΜΕΝΟΣ GROUP BY ΒΑΘΜΟΣ;
52
Επιμόρφωση Εκπαιδευτικών Πληροφορικής | Ενότητα 3η (Συστήματα Διαχείρισης Βάσεις Δεδομένων) | Μέρος Α (Επικαιροποίηση Γνώσεων) 52 Η πρόταση having Η πρόταση having χρησιμοποιείται στις συνθήκες που εφαρμόζονται σε κάθε υποσύνολο που δημιουργείται από την πρόταση group by και όχι σε κάθε εγγραφή π.χ. καταμέτρηση των εκπαιδευόμενων που έχουν βαθμό Α, Β και Γ και το όνομα τους είναι ‘Παναγιώτης’ SELECT ΕΠΩΝΥΜΟ, ΟΝΟΜΑ, ΑΜ, ΒΑΘΜΟΣ, COUNT(*) FROM ΕΚΠΑΙΔΕΥΟΜΕΝΟΣ GROUP BY ΒΑΘΜΟΣ HAVING ΟΝΟΜΑ=’ΠΑΝΑΓΙΩΤΗΣ’ ;
53
Επιμόρφωση Εκπαιδευτικών Πληροφορικής | Ενότητα 3η (Συστήματα Διαχείρισης Βάσεις Δεδομένων) | Μέρος Α (Επικαιροποίηση Γνώσεων) 53 Η Εντολή Delete From Με την εντολή delete from μπορούμε να διαγράψουμε ολόκληρες εγγραφές και όχι μεμονωμένα πεδία (στήλες). Για παράδειγμα, μπορούμε να διαγράψουμε όλους τους εκπαιδευόμενους με βαθμό Α, ως εξής: DELETE FROM ΕΚΠΑΙΔΕΥΟΜΕΝΟΣ WHERE ΒΑΘΜΟΣ = ‘Α’; Για να διαγράψουμε όλες τις εγγραφές του πίνακα ΕΚΠΑΙΔΕΥΟΜΕΝΟΣ χρησιμοποιούμε την εντολή: DELETE FROM ΕΚΠΑΙΔΕΥΟΜΕΝΟΣ;
54
Επιμόρφωση Εκπαιδευτικών Πληροφορικής | Ενότητα 3η (Συστήματα Διαχείρισης Βάσεις Δεδομένων) | Μέρος Α (Επικαιροποίηση Γνώσεων) 54 Η Εντολή Update Με την εντολή update μπορούμε να τροποποιήσουμε την τιμή κάποιων πεδίων από ορισμένες ή και απ’ όλες τις εγγραφές ενός πίνακα. π.χ., να αλλάξουμε το βαθμό των εκπαιδευόμενων από Β σε Α: UPDATE ΕΚΠΑΙΔΕΥΟΜΕΝΟΣ SET ΒΑΘΜΟΣ = ‘Α’ WHERE ΒΑΘΜΟΣ= ‘Β’; π.χ., για να κάνουμε NULL το βαθμό όλων των εκπαιδευόμενων, πρέπει να κατασκευάσουμε το εξής ερώτημα: UPDATE ΕΚΠΑΙΔΕΥΟΜΕΝΟΣ SET ΒΑΘΜΟΣ =NULL;
55
Επιμόρφωση Εκπαιδευτικών Πληροφορικής | Ενότητα 3η (Συστήματα Διαχείρισης Βάσεις Δεδομένων) | Μέρος Α (Επικαιροποίηση Γνώσεων) 55 Δημιουργία Πίνακα Για να δημιουργήσουμε έναν πίνακα χρησιμοποιούμε την εντολή create table. π.χ. για τη δημιουργία του πίνακα ΤΜΗΜΑ δίνουμε την εξής εντολή: CREATE TABLE TMHMA (TM_AA int not null, ONOMA char(20), ΗΜ_ΙΔΡΥΣΗΣ date, ΑΙΘΟΥΣΑ char(10), PRIMARY KEY (TM_AA)); Η δήλωση not null σημαίνει ότι το συγκεκριμένο πεδίο θα πρέπει να έχει οπωσδήποτε κάποια τιμή. Με τη δήλωση primary key ορίζουμε το πρωτεύον κλειδί του πίνακα
56
Επιμόρφωση Εκπαιδευτικών Πληροφορικής | Ενότητα 3η (Συστήματα Διαχείρισης Βάσεις Δεδομένων) | Μέρος Α (Επικαιροποίηση Γνώσεων) 56 Τροποποίηση - Διαγραφή Πίνακα Σε περίπτωση που επιθυμούμε να προσθέσουμε ένα πεδίο στον πίνακα, χρησιμοποιούμε την εντολή alter table και το όρισμα add, ως εξής : ALTER TABLE ΤΜΗΜΑ ADD (ΔΙΕΥΘΥΝΣΗ CHAR(20)); Για να τροποποιήσουμε έναν πίνακα διαγράφοντας ένα πεδίο, δίνουμε την εντολή alter table και το όρισμα drop, ως εξής : ALTER TABLE ΤΜΗΜΑ DROP ΔΙΕΥΘΥΝΣΗ; Για να διαγράψουμε τελείως έναν πίνακα από τη βάση δεδομένων στην οποία ανήκει, μαζί με τις τιμές των εγγραφών του, δίνουμε την εντολή drop table, ως εξής : DROP TABLE ΤΜΗΜΑ;
57
Επιμόρφωση Εκπαιδευτικών Πληροφορικής | Ενότητα 3η (Συστήματα Διαχείρισης Βάσεις Δεδομένων) | Μέρος Α (Επικαιροποίηση Γνώσεων) 57 Ακεραιότητα Αναφορών Για να δηλώσουμε ένα ξένο κλειδί και την αναφορά του, χρησιμοποιούμε τους όρους foreign key και references όταν δημιουργούμε έναν πίνακα. Για να μην έχουμε παραβίαση της ακεραιότητας αναφοράς, χρησιμοποιούμε τους όρους on delete cascade και on update cascade
58
Επιμόρφωση Εκπαιδευτικών Πληροφορικής | Ενότητα 3η (Συστήματα Διαχείρισης Βάσεις Δεδομένων) | Μέρος Α (Επικαιροποίηση Γνώσεων) 58 Ακεραιότητα Αναφορών CREATE TABLE ΕΚΠΑΙΔΕΥΟΜΕΝΟΣ (ΑΜint not null, ΤΜ_ΑΑ int not null, ΕΠΩΝΥΜΟ char(20), ΟΝΟΜΑ char(20), ΠΑΤΡΩΝΥΜΟ char(20), ΒΑΘΜΟΣ char(20), PRIMARY KEY (ΑΜ), FOREIGN KEY (TM_AA) REFERENCES ΤΜΗΜΑ(ΤΜ_ΑΑ) ON DELETE CASCADE ON UPDATE CASCADE );
59
Επιμόρφωση Εκπαιδευτικών Πληροφορικής | Ενότητα 3η (Συστήματα Διαχείρισης Βάσεις Δεδομένων) | Μέρος Α (Επικαιροποίηση Γνώσεων) 59 Δομή Εισαγωγή Σχεσιακό Μοντέλο Μοντέλο Οντοτήτων-Συσχετίσεων Σχεδίαση Κανονικές Μορφές SQL MS Access MySQL
60
Επιμόρφωση Εκπαιδευτικών Πληροφορικής | Ενότητα 3η (Συστήματα Διαχείρισης Βάσεις Δεδομένων) | Μέρος Α (Επικαιροποίηση Γνώσεων) 60 MS Access Με άλλα λόγια, η MS Access στηρίζεται στην ιδέα των πινάκων, πεδίων, κλειδιών και συσχετίσεων για να καταγράψει τα δεδομένα. Τα ερωτήματα (queries) χρησιμοποιούνται για την διαχείριση της πληροφορίας από τους πίνακες της βάσης δεδομένων. Υπάρχουν δύο βασικές κατηγορίες ερωτημάτων: (α) Ερωτήματα Ανάκτησης (Select Queries) και (β) Ερωτήματα Ανανέωσης (Update Queries). Οι φόρμες (forms) χρησιμοποιούνται για να διευκολύνουν τη διαδικασία ανανέωσης της πληροφορίας στη βάση. Οι εκθέσεις (reports) χρησιμοποιούνται για την παρουσίαση της πληροφορίας της βάσης δεδομένων οργανωμένα. Οι εκθέσεις έχουν βασικό στόχο να διευκολύνουν το χρήστη στην εκτύπωση της πληροφορίας που διαθέτουν, στο χαρτί. Πολλές από τις λειτουργίες αυτές, τις οποίες όπως θα δούμε, μπορεί κανείς να εκτελέσει είτε με πλήκτρα, είτε με κάποιες επιλογές από κάποια μενού, μπορούν να αυτοματοποιηθούν με τη χρήση μακροεντολών (macros). Πέραν των μακροεντολών, που είναι απλές στη δομή τους, η MS Access προσφέρει τη δυνατότητα στον προγραμματιστή να διαχειριστεί τη βάση δεδομένων με μεγαλύτερη ευχέρεια, μέσα από προγράμματα Visual Basic.
61
Επιμόρφωση Εκπαιδευτικών Πληροφορικής | Ενότητα 3η (Συστήματα Διαχείρισης Βάσεις Δεδομένων) | Μέρος Α (Επικαιροποίηση Γνώσεων) 61 Δημιουργία νέας βάσης δεδομένων Για να δημιουργήσουμε μια νέα βάση δεδομένων, ακολουθούμε την ομώνυμη επιλογή από τα μενού, ή πιέζουμε το κουμπί «Δημιουργία νέας βάσης δεδομένων». Κανονικά, στο ξεκίνημά της η MS Access μας ρωτά αν θέλουμε να δημιουργήσουμε μια νέα βάση, ή να ανοίξουμε μία υπάρχουσα (όπως φαίνεται και στην παρακάτω εικόνα). Με το ξεκίνημα της νέας βάσης, το σύστημα μας ζητά να την ονοματίσουμε. Μόλις γίνει αυτό, η βάση αποθηκεύεται στο ομώνυμο αρχείο με κατάληξη mdb. Αν θέλουμε απλά να ανοίξουμε μια υπάρχουσα βάση δεδομένων, απλά πιέζουμε το αντίστοιχο κουμπί, ή διαλέγουμε την ομώνυμη επιλογή από το μενού.
62
Επιμόρφωση Εκπαιδευτικών Πληροφορικής | Ενότητα 3η (Συστήματα Διαχείρισης Βάσεις Δεδομένων) | Μέρος Α (Επικαιροποίηση Γνώσεων) 62 Δημιουργία πινάκων Το επόμενο βήμα είναι η δημιουργία των πινάκων της βάσης. Για άλλη μια φορά τονίζουμε: αν μέχρι στιγμής δεν έχουμε σχεδιάσει τους πίνακες που θα αποθηκεύσουμε, δεν προχωρούμε, αλλά αφιερώνουμε χρόνο στη σχεδίασή τους! Διαλέγοντας από την κεντρική οθόνη την ενότητα ‘Πίνακες’ και πιέζοντας το κουμπί ‘Δημιουργία’, το σύστημα οδηγείται στην κατασκευή ενός νέου πίνακα. Για να δημιουργήσουμε ένα νέο πίνακα, εμείς επιλέγουμε την επιλογή ‘Προβολή σχεδίασης’, η οποία μας οδηγεί στην οθόνη της σχεδίασης του πίνακα.
63
Επιμόρφωση Εκπαιδευτικών Πληροφορικής | Ενότητα 3η (Συστήματα Διαχείρισης Βάσεις Δεδομένων) | Μέρος Α (Επικαιροποίηση Γνώσεων) 63 Συσχετίσεις μεταξύ πινάκων Για να ορίσουμε (και γενικότερα για να διαχειριστούμε) συσχετίσεις μεταξύ πινάκων, πηγαίνουμε στο μενού «Εργαλεία» και επιλέγουμε «Σχέσεις». Έχοντας ενεργό το παράθυρο «Σχέσεις», μπορούμε να επιλέξουμε τους πίνακες που μας ενδιαφέρουν από το μενού «Σχέσεις» >> «Εμφάνιση πίνακα». Το σύστημα, τότε, μας εμφανίζει τη λίστα με τους πίνακες που υπάρχουν στη βάση δεδομένων και οι οποίοι εμφανίζονται στην ενότητα «Πίνακες» (αγνοούμε προς το παρόν την ενότητα «Ερωτήματα»).
64
Επιμόρφωση Εκπαιδευτικών Πληροφορικής | Ενότητα 3η (Συστήματα Διαχείρισης Βάσεις Δεδομένων) | Μέρος Α (Επικαιροποίηση Γνώσεων) 64 Απλά Ερωτήματα Για το ερώτημα Όλοι Οι Εκπαιδευόμενοι, πολύ απλά επιλέγουμε τα πεδία που μας ενδιαφέρουν από τον πίνακα ΕΚΠΑΙΔΕΥΟΜΕΝΟΣ, τσεκάρουμε την επιλογή «Εμφάνιση» για όλα τους και επιλέγουμε «Αύξουσα» ταξινόμηση για το πεδίο ΑΜ
65
Επιμόρφωση Εκπαιδευτικών Πληροφορικής | Ενότητα 3η (Συστήματα Διαχείρισης Βάσεις Δεδομένων) | Μέρος Α (Επικαιροποίηση Γνώσεων) 65 Σύνθετα ερωτήματα σύνδεσης πινάκων Έστω λοιπόν το ερώτημα «Δώσε μου για κάθε τμήμα, όλα τα μαθήματα που προσφέρει, καθώς και τις ημερομηνίες κατά τις οποίες γίνεται αυτό. Στο αποτέλεσμα, εμφάνισέ μου το όνομα του τμήματος και το όνομα του μαθήματος, μαζί με τις προαναφερθείσες ημερομηνίες».
66
Επιμόρφωση Εκπαιδευτικών Πληροφορικής | Ενότητα 3η (Συστήματα Διαχείρισης Βάσεις Δεδομένων) | Μέρος Α (Επικαιροποίηση Γνώσεων) 66 Δομή Εισαγωγή Σχεσιακό Μοντέλο Μοντέλο Οντοτήτων-Συσχετίσεων Σχεδίαση Κανονικές Μορφές SQL Ms Access MySQL
67
Επιμόρφωση Εκπαιδευτικών Πληροφορικής | Ενότητα 3η (Συστήματα Διαχείρισης Βάσεις Δεδομένων) | Μέρος Α (Επικαιροποίηση Γνώσεων) 67 MySQL μία από τις πιο δημοφιλείς ανοικτές εφαρμογές διαχείρισης βάσεων δεδομένων λειτουργεί με το μοντέλο πελάτη - εξυπηρετητή (client - server), όπου ο εξυπηρετητής διαχειρίζεται τις αιτήσεις των πελατών προς οποιαδήποτε βάση δεδομένων. ΒΔ 1 ΒΔ 2 MySQL Server Client
68
Επιμόρφωση Εκπαιδευτικών Πληροφορικής | Ενότητα 3η (Συστήματα Διαχείρισης Βάσεις Δεδομένων) | Μέρος Α (Επικαιροποίηση Γνώσεων) 68 MySQL H MySQL χρησιμοποιεί την SQL για να υλοποιήσει λειτουργίες διαχείρισης βάσεων δεδομένων, όπως η διαχείριση πινάκων (δημιουργία, τροποποίηση, διαγραφή), τη διαχείριση εγγραφών (εισαγωγή, τροποποίηση, διαγραφή) και την ανάκτηση δεδομένων από τις βάσεις, οι οποίες ικανοποιούν συγκεκριμένα κριτήρια. Έχοντας εγκαταστήσει το λογισμικό MySQL server και MySQL client από την τοποθεσία www.mysql.com, μπορούμε να εκτελέσουμε όλες τις δυνατές λειτουργίες που μας παρέχει το σύστημα διαχείρισης βάσεων δεδομένων. Απαραίτητη προϋπόθεση για την εκτέλεση των παραπάνω λειτουργιών αποτελεί η εκκίνηση του MySQL serverwww.mysql.com
69
Επιμόρφωση Εκπαιδευτικών Πληροφορικής | Ενότητα 3η (Συστήματα Διαχείρισης Βάσεις Δεδομένων) | Μέρος Α (Επικαιροποίηση Γνώσεων) 69 MySQL Από την τοποθεσία www.mysql.com δίνεται η δυνατότητα να εγκαταστήσουμε γραφικά περιβάλλοντα για τη διαχείριση των βάσεων, τόσο από την πλευρά του server, όσο και από την πλευρά του client.www.mysql.com Με την εφαρμογή MySQL Administrator, ο διαχειριστής της MySQL μπορεί να εκτελεί μία σειρά από λειτουργίες, όπως η διαχείριση των χρηστών και η δημιουργία αντιγράφων ασφαλείας.
70
Επιμόρφωση Εκπαιδευτικών Πληροφορικής | Ενότητα 3η (Συστήματα Διαχείρισης Βάσεις Δεδομένων) | Μέρος Α (Επικαιροποίηση Γνώσεων) 70 MySQL Administrator
71
Επιμόρφωση Εκπαιδευτικών Πληροφορικής | Ενότητα 3η (Συστήματα Διαχείρισης Βάσεις Δεδομένων) | Μέρος Α (Επικαιροποίηση Γνώσεων) 71 MySQL Query Browser Για τη αποστολή ερωτημάτων προς το Server, υπάρχει η αντίστοιχη εφαρμογή MySQL Query Browser, με την οποία ο διαχειριστής ή ο οποιοσδήποτε χρήστης μπορεί να συντάξει και να εκτελέσει κάποιο ερώτημα. Μέσω του SQL Query Browser μπορούμε να δημιουργήσουμε μία οποιαδήποτε ΒΔ, όπως φαίνεται στην παρακάτω εικόνα που έχουμε δημιουργήσει τη ΒΔ sxolh
72
Επιμόρφωση Εκπαιδευτικών Πληροφορικής | Ενότητα 3η (Συστήματα Διαχείρισης Βάσεις Δεδομένων) | Μέρος Α (Επικαιροποίηση Γνώσεων) 72 MySQL Query Browser (Δημιουργία ΒΔ)
73
Επιμόρφωση Εκπαιδευτικών Πληροφορικής | Ενότητα 3η (Συστήματα Διαχείρισης Βάσεις Δεδομένων) | Μέρος Α (Επικαιροποίηση Γνώσεων) 73 MySQL Query Browser (Χρήση ΒΔ)
74
Επιμόρφωση Εκπαιδευτικών Πληροφορικής | Ενότητα 3η (Συστήματα Διαχείρισης Βάσεις Δεδομένων) | Μέρος Α (Επικαιροποίηση Γνώσεων) 74 MySQL Query Browser (Δημιουργία Πίνακα)
75
Επιμόρφωση Εκπαιδευτικών Πληροφορικής | Ενότητα 3η (Συστήματα Διαχείρισης Βάσεις Δεδομένων) | Μέρος Α (Επικαιροποίηση Γνώσεων) 75 MySQL Query Browser (Εισαγωγή Εγγραφής)
76
Επιμόρφωση Εκπαιδευτικών Πληροφορικής | Ενότητα 3η (Συστήματα Διαχείρισης Βάσεις Δεδομένων) | Μέρος Α (Επικαιροποίηση Γνώσεων) 76 MySQL Query Browser (Εκτέλεση Ερωτήματος)
Παρόμοιες παρουσιάσεις
© 2024 SlidePlayer.gr Inc.
All rights reserved.