Εργαστήριο 5o Σχέσεις πινάκων Ακεραιότητα αναφορών
Σχέσεις Συσχετίσεις - Relations Οι συσχετίσεις (σχέσεις) μεταξύ των πινάκων ορίζουν τον τρόπο με τον οποίο συνδέονται μεταξύ τους οι πίνακες. Ορίζονται με την συσχέτιση δύο κλειδιών. Του πρωτεύοντος κλειδιού του ενός πίνακα με το ξένο κλειδί του άλλου. Υπάρχουν τρία είδη συσχετίσεων Ένα-προς-ένα. Η τιμή του πεδίου-κλειδιού μίας μόνο εγγραφής ενός πίνακα, να αντιστοιχεί με μία μόνο τιμή του πεδίου κλειδιού μιας εγγραφής του άλλου πίνακα. Ένα-προς-πολλά. Η κάθε τιμή μιας εγγραφής του πρωτεύοντος κλειδιού του πίνακα ένα, να αντιστοιχεί σε περισσότερες τιμές εγγραφών του ξένου κλειδιού του πίνακα πολλά. Πολλά-προς-πολλά. Οι συσχετίσεις αυτές συμβαίνουν όταν δεν υπάρχει μοναδική σχέση μεταξύ των πεδίων-κλειδιών των δύο πινάκων και τα δύο ξένα κλειδιά των πινάκων περιέχουν διπλότυπες εγγραφές
Σχέσεις Συσχετίσεις - Relations Για να είναι δυνατή η συσχέτιση των δύο πινάκων, θα πρέπει τα δύο συνδεόμενα πεδία (πρωτεύον και ξένο κλειδί) να είναι του ιδίου τύπου δεδομένων. Προσοχή το παραπάνω γίνεται πολύ συχνά λάθος!!! Στην Access όπως και στις άλλες σχεσιακές βάσεις δεδομένων οι σχέσεις Πολλά-Πολλά δεν υλοποιούνται απευθείας, αλλά με την χρήση βοηθητικών πινάκων και δύο σχέσεων Ένα-Πολλά. Όπως στο σχήμα.
Ακεραιότητα αναφορών - Referential integrity Η ακεραιότητα αναφορών είναι ένα σύνολο κανόνων που χρησιμοποιεί η Access για να εξασφαλίσει ότι οι σχέσεις μεταξύ εγγραφών σε σχετιζόμενους πίνακες είναι έγκυρες και ότι δεν θα διαγράψουμε ή αλλάξουμε κατά λάθος σχετιζόμενα δεδομένα με αποτέλεσμα οι αναφορές να γίνουν άκυρες. Όταν είναι ενεργοποιημένη η ακεραιότητα αναφορών: Δεν μπορούμε να καταχωρήσουμε μια τιμή στο πεδίο που αποτελεί το ξένο κλειδί του πίνακα πολλά» αν δεν υπάρχει στο πρωτεύον κλειδί του πίνακα «ένα». Δεν μπορούμε να διαγράψουμε μια εγγραφή από το πίνακα «ένα», αν υπάρχουν αντίστοιχες εγγραφές στο ξένο κλειδί του πίνακα «πολλά». Δεν μπορούμε να αλλάξουμε την τιμή πρωτεύοντος κλειδιού στον πίνακα «ένα», αν υπάρχουν αντίστοιχες εγγραφές στο ξένο κλειδί του πίνακα «πολλά».
Ακεραιότητα αναφορών - Referential integrity
Ακεραιότητα αναφορών - Referential integrity Σε σχέσεις στις οποίες εφαρμόζεται η ακεραιότητα αναφορών, μπορούμε να καθορίσουμε αν θέλουμε η Access να κάνει αυτόματα: Διαδοχική ενημέρωση και Διαδοχική διαγραφή σχετικών εγγραφών. Εάν ενεργοποιήσετε αυτές τις επιλογές, επιτρέπονται λειτουργίες ενημέρωσης και διαγραφής που κανονικά δεν θα επέτρεπαν οι κανόνες της ακεραιότητας αναφορών. Όμως αν διαγράψουμε εγγραφές ή αλλάξουμε το πρωτεύον κλειδί στο πίνακα «ένα», η Access θα κάνει τις απαραίτητες αλλαγές αυτόματα στο αντίστοιχο ξένο κλειδί του πίνακα «πολλά», έτσι ώστε για να διατηρήσει την ακεραιότητα αναφορών.
Άσκηση Να κατεβάσετε από το e-class την βάση δεδομένων Store_electric_appliances_05 Να διερευνήσετε τους πίνακες ώστε να βρείτε τις σχέσεις που αυτοί μπορεί να έχουν. Καταγράψτε τις σχέσεις ως ζεύγη Πρωτεύοντος Ξένου κλειδιού. Να ορίσετε τις σχέσεις που καταγράψατε στην Access και να ενεργοποιήσετε την ακεραιότητα αναφορών. Σε μία από τις σχέσεις δεν θα μπορέσετε να ενεργοποιήσετε την ακεραιότητα αναφορών. Να κάνετε τις απαραίτητες αλλαγές στην δομή των πινάκων ώστε να είναι δυνατή η ενεργοποίηση της ακεραιότητας αναφορών. Να αποθηκεύσετε το διάγραμμα σχέσεων που δημιουργήσατε.