Άσκηση 3 η : Δημιουργία ΒΔ που αποτελείται από δυο πίνακες με υλοποίηση συσχέτισης τύπου «1 προς Ν» και σχεδίαση διάταξης φόρμας-υποφόρμας προβολής και καταχώρησης δεδομένων. 1. χεδίαση και δημιουργία πινάκων 2. Ανάλυση της έννοιας της συσχέτισης «Ένα προς πολλά» 3. Σεχνική δημιουργίας συσχέτισης 1 προς Ν 4. Προβολή των συσχετίσεων μεταξύ των πινάκων 5. Ανάλυση της έννοιας «ακεραιότητας αναφορών» με χρήση παραδείγματος 6. Εισαγωγή δεδομένων στους πίνακες 7. Δημιουργία φόρμας καταχώρισης δεδομένων με υποφόρμα που αναφέρεται στον πίνακα συσχέτισης 8. Προσπέλαση της διάταξης Υόρμα-Τποφόρμα δεδομένων Εργαστηριακές Ασκήσεις Σελίδα 1
1. χεδίαση και δημιουργία πινάκων Αρχικά σχεδιάζουμε τους πίνακες «Πελάτες» και «Προσωπικά στοιχεία» Πίνακας «Πελάτες» Πίνακας «Προσωπικά στοιχεία» Ιδιαίτερη προσοχή χρειάζεται κατά τη σχεδίαση του πίνακα «Προσωπικά στοιχεία». Επειδή ο πίνακας αυτός στη συνέχεια θα συμμετάσχει σε σχήμα συσχέτισης με τον πίνακα «Πελάτες» θα πρέπει το πεδίο με βάση το οποίο θα γίνει η συσχέτιση να έχει τον ίδιο ακριβώς τύπο δεδομένων. ε αυτό το παράδειγμα είναι το πεδίο «Επίθετο» του οποίου ο τύπος δεδομένων είναι «Κείμενο» με 50 θέσεις. Αυτό που θα πρέπει να τονίσουμε είναι ότι το πεδίο που θα συμμετάσχει στην συσχέτιση δεν είναι απαραίτητα υποχρεωτικό να οριστεί ως πρωτεύον κλειδί στον δεύτερο πίνακα. Για παράδειγμα το πεδίο «Επίθετο» στον πίνακα «Προσωπικά στοιχεία» δεν έχει οριστεί ως πρωτεύον κλειδί. Παρατήρηση!!! Για τους δυο παραπάνω πίνακες παρατηρούμε ότι υπάρχουν επαναλαμβανόμενα πεδία. Αυτό συνήθως αποφεύγεται αφού για βάσεις δεδομένων με μεγάλη γραμμογράφηση επιβαρύνει υπερβολικά την επεξεργασία των δεδομένων αλλά και αυξάνει τις απαιτήσεις χωρητικότητας δίσκου και μνήμης. Η επανάληψη συγκεκριμένων πεδίων μπορεί να την συναντήσουμε σε συγκεκριμένες βάσεις δεδομένων όπου θα έχει προβλεφθεί από τον κώδικα διαχείρισης της εφαρμογής ώστε να επαληθεύει καθορισμένες λειτουργίες ή όταν τα επαναλαμβανόμενα πεδία συμμετέχουν σε διεργασίες update όπου για λόγους ασφαλείας θα πρέπει να γίνεται κράτηση της αρχικής τιμής προτού αλλάξει οριστικά. Με αυτή την τεχνική διασφαλίζεται ότι δεν θα χαθεί η τιμή του πεδίου. ε αυτό το παράδειγμα έχει γίνει επανάληψη των πεδίων «Επίθετο», «Όνομα» και «Πατρώνυμο». Εργαστηριακές Ασκήσεις Σελίδα 2
2. Ανάλυση της έννοιας της συσχέτισης «Ένα προς πολλά» Με τον όρο συσχέτιση (relationship) αναφερόμαστε στον τρόπο σύνδεσης (επικοινωνίας) δύο ξεχωριστών οντοτήτων, ώστε να μπορούμε να αντλούμε στοιχεία (πληροφορίες) από τον συνδυασμό τους. Για παράδειγμα, η οντότητα ΓΙΑΣΡΟ συσχετίζεται με την οντότητα ΑΘΕΝΗ αλλά και με την οντότητα ΚΛΙΝΙΚΗ στη βάση δεδομένων ενός νοσοκομείου. Μπορούμε να δεχθούμε ότι ένας γιατρός παρακολουθεί (συσχετίζεται με) πολλούς ασθενείς, αλλά ένας ασθενής παρακολουθείται από (συσχετίζεται με) έναν μόνο γιατρό και επίσης ένας γιατρός συσχετίζεται με (ανήκει σε) μία μόνο κλινική, αλλά μια κλινική συσχετίζεται με (απασχολεί) πολλούς γιατρούς. Ο σωστός σχεδιασμός και προσδιορισμός των οντοτήτων και των ιδιοτήτων τους αποτελούν τα θεμελιώδη βήματα για τη σωστή σχεδίαση και υλοποίηση μιας βάσης δεδομένων. Μια συσχέτιση συνδέει δύο ή και περισσότερες οντότητες μεταξύ τους και παριστάνεται στο διάγραμμα οντοτήτων συσχετίσεων μ έναν ρόμβο. Οι συσχετίσεις είναι απαραίτητες για να μπορέσουμε να αντλήσουμε πληροφορίες που αφορούν δύο ή και περισσότερες οντότητες, όπως για παράδειγμα ποιοι πελάτες έκαναν παραγγελίες κάποια συγκεκριμένη χρονική περίοδο (συσχέτιση ΠΑΡΑΓΓΕΛΝΕΙ) ή ποιοι αθλητές ανήκουν σε ποιους συλλόγους (συσχέτιση ΑΝΗΚΕΙ) ή ποιοι αθλητές έλαβαν μέρος σε αγωνίσματα μια συγκεκριμένη χρονιά (συσχέτιση ΤΜΜΕΣΕΦΕΙ) κοκ. Όταν σχεδιάζουμε μια βάση δεδομένων, θα πρέπει να εκχωρούμε ιδιότητες μόνο στις οντότητες και να έχουμε τις συσχετίσεις απλά και μόνο για να κατανοούμε τις λογικές συνδέσεις ανάμεσα στις οντότητες. Οι συσχετίσεις μεταξύ οντοτήτων θα μας απασχολήσουν ιδιαίτερα και υπάρχουν τρία βασικά είδη συνδέσεων σ αυτές εκ των οποίων σε αυτή την άσκηση θα αναλύσουμε την «Ένα προς πολλά». Ένα-προς-πολλά (1:Μ): Μια εμφάνιση της μιας οντότητας συνδέεται με πολλές εμφανίσεις της άλλης οντότητας αλλά κάθε εμφάνιση της δεύτερης οντότητας συνδέεται με μία και μόνο μία εμφάνιση της πρώτης οντότητας. Για παράδειγμα, ένας ΠΕΛΑΣΗ κάνει πολλές παραγγελίες, αλλά μια ΠΑΡΑΓΓΕΛΙΑ αντιστοιχεί σ έναν και μόνο έναν πελάτη. ένα άλλο παράδειγμα, ένας ΤΛΛΟΓΟ έχει πολλούς αθλητές, αλλά ένας ΑΘΛΗΣΗ ανήκει σ έναν και μόνο έναν σύλλογο. Οι συσχετίσεις του τύπου ένα-προς-ένα είναι οι πιο συχνά συναντώμενες και οι πιο βολικές στη διαχείριση. Σέτοιου τύπου συσχετίσεις συμπεριλαμβανομένης και της συσχέτισης «Πολλά-προς-πολλά» θα τις δούμε στην επόμενη εργαστηριακή άσκηση. Εργαστηριακές Ασκήσεις Σελίδα 3
3. Σεχνική δημιουργίας συσχέτισης 1 προς Ν Βήμα 1 ο : Από το κεντρικό μενού μεταβαίνουμε στην επιλογή Εργαλεία Σχέσεις και θα προκύψει η παρακάτω οθόνη: Βήμα 2 ο : Κάνουμε δεξί κλικ στο εσωτερικό της παραπάνω οθόνης και θα προκύψει το παρακάτω αναδυόμενο μενού επιλογών: Βήμα 3 ο : Κάνουμε κλικ στην επιλογή «Εμφάνιση πίνακα» και θα προκύψει η παρακάτω οθόνη: Βήμα 4 ο : Επιλέγουμε διαδοχικά τους δυο πίνακες «Πελάτες» και «Προσωπικά στοιχεία» και κάνουμε κλικ στο κουμπί «Προσθήκη». Σο αποτέλεσμα θα είναι η εμφάνιση αυτών των δυο πινάκων όπως αποτυπώνεται στην παρακάτω οθόνη: Εργαστηριακές Ασκήσεις Σελίδα 4
Βήμα 5 ο : Κάνουμε κλικ πάνω στο πεδίο «Επίθετο» από τον πίνακα «Πελάτες» και στη συνέχεια εφαρμόζουμε Drag & Drop πάνω στο πεδίο «Επίθετο» στον πίνακα «Προσωπικά στοιχεία». Θα εμφανιστεί η παρακάτω οθόνη: Βήμα 6 ο : Κάνουμε κλικ στην επιλογή «Ενεργοποίηση ακεραιότητας αναφορών» Εργαστηριακές Ασκήσεις Σελίδα 5
Βήμα 7 ο : Κάνουμε κλικ στο κουμπί «Δημιουργία» και θα εμφανιστεί η γραμμή συσχέτισης μεταξύ των δυο πινάκων. Βήμα 8 ο : Κάνουμε κλικ στο εικονίδιο θα επιλέξουμε «Ναι». και θα εμφανιστεί η επόμενη οθόνη στην οποία 4. Προβολή των συσχετίσεων μεταξύ των πινάκων Για να γίνει η προβολή των συσχετίσεων μεταξύ των πινάκων από το κεντρικό μενού επιλέγουμε Εργαλεία Σχέσεις και θα προκύψει η παρακάτω οθόνη στην οποία αποτυπώνονται οι συσχετίσεις που έχουμε δημιουργήσει μεταξύ των πινάκων. Εργαστηριακές Ασκήσεις Σελίδα 6
5. Ανάλυση της έννοιας «ακεραιότητας αναφορών» με χρήση παραδείγματος. το 6 ο Βήμα της τεχνικής δημιουργίας συσχέτισης «1 προς Ν» κάναμε κλικ στην επιλογή «Ενεργοποίηση της ακεραιότητας αναφορών». Με τον όρο ακεραιότητα αναφορών (referential integrity) αναφερόμαστε στην ιδιότητα όπου οι τιμές ορισμένων πεδίων μιας σχέσης υπάρχουν και σε αντίστοιχα πεδία σε κάποια άλλη σχέση. Για παράδειγμα, αν έχουμε τις σχέσεις ΑΘΛΗΣΗ και ΑΓΩΝΑ, τότε η συσχέτιση μεταξύ τους υλοποιείται με την τρίτη σχέση ΤΜΜΕΣΟΦΗ, όπου εμφανίζεται το ποιοι αθλητές συμμετείχαν σε ποιους αγώνες και φυσικά τι επίδοση κάνανε. Η ακεραιότητα αναφορών έρχεται να επιλύσει το πρόβλημα της διαγραφής μιας πλειάδας από τη σχέση ΑΓΩΝΑ, οπότε οι αθλητές που συμμετείχαν στον συγκεκριμένο αγώνα θα φαίνονται ξεκρέμαστοι, καθώς επίσης και το πρόβλημα της τροποποίησης του πεδίου κλειδιού (Κωδικός_Αγώνα) μιας πλειάδας από τη σχέση ΑΓΩΝΑ, οπότε και πάλι οι αθλητές που συμμετείχαν στον συγκεκριμένο αγώνα θα φαίνονται ξεκρέμαστοι. Για να αποφύγουμε τέτοιες καταστάσεις, καταφεύγουμε στην έννοια του ξένου κλειδιού (foreign key), όπου στη σχέση ΤΜΜΕΣΟΦΗ, το πεδίο Κωδικός_Αθλητή είναι ξένο κλειδί αλλά και πρωτεύον κλειδί στη σχέση ΑΘΛΗΣΗ, ενώ το πεδίο Κωδικός_Αγώνα είναι ξένο κλειδί στη σχέση ΤΜΜΕΣΟΦΗ αλλά και πρωτεύον κλειδί στη σχέση ΑΓΩΝΑ. Με τη δήλωση της ακεραιότητας αναφορών, αν διαγράψουμε μια πλειάδα ενός πεδίου που είναι πρωτεύον κλειδί σε κάποια σχέση, τότε θα διαγραφούν και όλες οι αντίστοιχες εγγραφές (πλειάδες) στη σχέση όπου το ίδιο πεδίο είναι ξένο κλειδί. Αυτό σημαίνει πρακτικά ότι αν διαγράψουμε έναν αθλητή από τη σχέση ΑΘΛΗΣΗ, τότε θα διαγραφούν και όλες οι συμμετοχές του σε αγώνες από τη σχέση ΤΜΜΕΣΟΦΗ. Επίσης, αν τροποποιήσουμε την τιμή ενός πεδίου που είναι πρωτεύον κλειδί σε κάποια σχέση, τότε θα ενημερωθούν αυτόματα και όλες οι αντίστοιχες εγγραφές (πλειάδες) στη σχέση όπου το ίδιο πεδίο είναι ξένο κλειδί. Αυτό σημαίνει πρακτικά ότι αν τροποποιήσουμε τον κωδικό ενός αγώνα από τη σχέση ΑΓΩΝΑ, τότε θα ενημερωθούν αυτόματα και όλες οι συμμετοχές των αθλητών στον αγώνα αυτό που υπάρχουν στη σχέση ΤΜΜΕΣΟΦΗ. Εργαστηριακές Ασκήσεις Σελίδα 7
6. Εισαγωγή δεδομένων στους πίνακες. Πίνακας «Προσωπικά στοιχεία» Πίνακας «Πελάτες» Παρατήρηση: Κατά την καταχώρηση μιας νέας εγγραφής στον πίνακα «Πελάτες» επειδή το πεδίο «Επίθετο» συσχετίζεται με το ομώνυμο πεδίο του πίνακα «Προσωπικά στοιχεία» αυτόματα δίπλα από την εγγραφή (με την προϋπόθεση ότι θα είναι έγκυρη) θα εμφανιστεί το σύμβολο + το οποίο παραπέμπει στην συσχέτιση. Αν κάνουμε κλικ πάνω στο σύμβολο + θα εμφανιστεί η γραμμογράφηση του συσχετιζόμενου πίνακα «Προσωπικά στοιχεία» όπου και θα πληκτρολογήσουμε την συσχετιζόμενη εγγραφή. την επόμενη οθόνη αποτυπώνονται τα δεδομένα του πίνακα «Πελάτες» συμπεριλαμβανομένων και των συσχετιζόμενων εγγραφών του πίνακα «Προσωπικά στοιχεία» Εργαστηριακές Ασκήσεις Σελίδα 8
7. Δημιουργία φόρμας καταχώρισης δεδομένων με υποφόρμα που αναφέρεται στον πίνακα συσχέτισης Για να δημιουργήσουμε μια υποφόρμα δεδομένων σε συσχετιζόμενα πεδία ακολουθούμε τα παρακάτω βήματα: 1) Δημιουργούμε την αρχική φόρμα δεδομένων. ε αυτό το παράδειγμα την φόρμα «Πελάτες» η οποία αναφέρεται στον πίνακα «Πελάτες». Η μορφή της φόρμας είναι η παρακάτω: 2) Δημιουργούμε την δευτερεύουσα φόρμα η οποία θα αποτελέσει την υποφόρμα διασύνδεσης με το συσχετιζόμενο πεδίο της αρχικής φόρμας. ε αυτό το παράδειγμα είναι η φόρμα «Προσωπικά στοιχεία» η οποία αναφέρεται στον πίνακα «Προσωπικά στοιχεία». 3) Επιλέγουμε τη φόρμα και κάνουμε δεξί κλικ. Από το αναδυόμενο μενού επιλέγουμε «Προβολή σχεδίασης» και θα εμφανιστεί η παρακάτω οθόνη: Εργαστηριακές Ασκήσεις Σελίδα 9
4) Κάνουμε κλικ στο εικονίδιο και θα εμφανιστεί το παρακάτω αναδυόμενο μενού εργαλειοθήκης: 5) Κάνουμε κλικ στο εικονίδιο και ο δείκτης του ποντικιού μετασχηματίζεται λαμβάνοντας τη μορφή: 6) Πλησιάζουμε τον δείκτη του ποντικιού ο οποίος έχει λάβει την παραπάνω μορφή δίπλα από το πεδίο «επίθετο» που συμμετέχει στην συσχέτιση και κάνουμε αριστερό κλικ στην θέση που επιθυμούμε να γίνει η διασύνδεση με την δευτερεύουσα φόρμα. Θα εμφανιστεί το παρακάτω πλαίσιο και ταυτόχρονα η παρακάτω οθόνη: Εργαστηριακές Ασκήσεις Σελίδα 10
7) Αφού επιλέξουμε «Φρήση μιας υπάρχουσας φόρμας» και την φόρμα «Προσωπικά στοιχεία» κάνουμε κλικ στο κουμπί «Επόμενο» και θα εμφανιστεί η παρακάτω οθόνη: Εργαστηριακές Ασκήσεις Σελίδα 11
8) Αφού επιλέξουμε «Να επιλέξω από τη λίστα» και «ύνδεση του Προσωπικά στοιχεία με Πελάτες μέσω του Επίθετο κάνουμε κλικ στο «Επόμενο» και θα εμφανιστεί η παρακάτω οθόνη: Εργαστηριακές Ασκήσεις Σελίδα 12
9) Κάνουμε κλικ στο «Σέλος» και θα εμφανιστεί η διάταξη των πεδίων της υποφόρμας στο σημείο που βρίσκονταν το πλαίσιο δίπλα από το πεδίο «επίθετο» της αρχικής φόρμας «Πελάτες». 10) Κλείνουμε το παραπάνω παράθυρο αποθηκεύοντας την διάταξη που έχουμε δημιουργήσει. Κάνουμε κλικ στο εικονίδιο και από την επόμενη οθόνη που θα εμφανιστεί επιλέγουμε «Ναι». Εργαστηριακές Ασκήσεις Σελίδα 13
8. Προσπέλαση της διάταξης Υόρμα-Τποφόρμα δεδομένων Αφού δημιουργήσουμε την προηγούμενη διάταξη και αποθηκεύσουμε την φόρμα «Πελάτες» κάνουμε διπλό κλικ για να προσπελάσουμε τα δεδομένα της φόρμας. Παρατηρούμε τη διασύνδεση με τον συσχετιζόμενο πίνακα μέσω του πεδίου συσχέτισης «Επίθετο». ε κάθε αλλαγή της τιμής του πεδίου «Επίθετο» εμφανίζεται συνακόλουθα και η πληροφορία από τον πίνακα «Προσωπικά στοιχεία» η οποία και προβάλλεται στη θέση δίπλα ακριβώς από το συσχετιζόμενο πεδίο. Εργαστηριακές Ασκήσεις Σελίδα 14