Ένας από τους στόχους μιας καλής σχεδίασης βάσης δεδομένων είναι η κατάργηση του πλεονασμού δεδομένων (διπλότυπα δεδομένα). Για να επιτύχετε το στόχο αυτό, θα πρέπει να διαιρέσετε τα δεδομένα σε πολλούς πίνακες βάσει θέματος, ώστε κάθε δεδομένο να δηλώνεται μόνο μία φορά. Στη συνέχεια, παρέχετε στην Access κάποιον τρόπο για να συνδεθούν ξανά οι διαιρεμένες πληροφορίες - αυτό μπορείτε να το κάνετε εάν τοποθετήσετε κοινά πεδία σε πίνακες που σχετίζονται. Για να γίνει όμως σωστά το συγκεκριμένο βήμα, πρέπει πρώτα να κατανοήσετε τις σχέσεις μεταξύ των πινάκων και, στη συνέχεια, να ορίσετε τις σχέσεις αυτές στη βάση δεδομένων.
Σε αυτό το άρθρο
Εισαγωγή
Μετά από τη δημιουργία ενός πίνακα για κάθε θέμα της βάσης δεδομένων, πρέπει να παρέχετε στην Access κάποιον τρόπο έτσι ώστε να συνδέει ξανά αυτές τις πληροφορίες όταν είναι απαραίτητο. Αυτό γίνεται εάν τοποθετήσετε κοινά πεδία σε πίνακες που σχετίζονται και εάν ορίσετε σχέσεις μεταξύ των πινάκων. Στη συνέχεια, μπορείτε να δημιουργήσετε ερωτήματα, φόρμες και εκθέσεις που εμφανίζουν πληροφορίες από πολλούς πίνακες ταυτόχρονα. Για παράδειγμα, η φόρμα που εμφανίζεται εδώ περιλαμβάνει πληροφορίες από πολλούς πίνακες:
1. Οι πληροφορίες σε αυτή τη φόρμα προέρχονται από τον πίνακα "Πελάτες"...
2. ...τον πίνακα "Παραγγελίες"...
3. ...τον πίνακα "Προϊόντα"...
4. ...και τον πίνακα "Λεπτομέρειες παραγγελιών".
Το όνομα πελάτη στο πλαίσιο Τιμολόγηση σε ανακτάται από τον πίνακα "Πελάτες", οι τιμές του Αναγνωριστικού παραγγελίας και της Ημερομηνίας παραγγελίας προέρχονται από τον πίνακα "Παραγγελίες", το Όνομα προϊόντος από τον πίνακα "Προϊόντα" και η Τιμή μονάδας καθώς και η Ποσότητα από τον πίνακα "Λεπτομέρειες παραγγελίας". Οι πίνακες αυτοί συνδέονται μεταξύ τους με πολλούς τρόπους, ώστε να μεταφέρονται στη φόρμα οι επιθυμητές πληροφορίες από τον καθένα τους.
Στο προηγούμενο παράδειγμα, τα πεδία στους πίνακες πρέπει να είναι συντονισμένα, ώστε να εμφανίζουν πληροφορίες σχετικά με την ίδια παραγγελία. Ο συντονισμός αυτός πραγματοποιείται με χρήση των σχέσεων πίνακα. Μια σχέση πίνακα λειτουργεί με την αντιστοίχιση δεδομένων σε πεδία κλειδιά — συχνά ένα πεδίο με το ίδιο όνομα και στους δύο πίνακες. Στις περισσότερες περιπτώσεις, τα πεδία που αντιστοιχίζονται είναι το πρωτεύον κλειδί από τον έναν πίνακα, το οποίο παρέχει ένα μοναδικό αναγνωριστικό για κάθε εγγραφή και ένα εξωτερικό κλειδί από τον άλλον πίνακα. Για παράδειγμα, οι υπάλληλοι μπορούν να συσχετιστούν με παραγγελίες για τις οποίες είναι υπεύθυνοι, δημιουργώντας μια σχέση πινάκων μεταξύ των πεδίων "Αναγνωριστικό υπαλλήλου" στους πίνακες "Υπάλληλοι" και "Παραγγελίες".
1. Το πεδίο "Αναγνωριστικό υπαλλήλου" εμφανίζεται και στους δύο πίνακες — ως πρωτεύον κλειδί ...
2. ... και ως εξωτερικό κλειδί.
Τύποι σχέσεων πίνακα
Υπάρχουν τρεις τύποι σχέσεων πίνακα στην Access.
-
Σχέση ένα-προς-πολλά
Ας χρησιμοποιήσουμε, ως παράδειγμα, μια βάση δεδομένων που παρακολουθεί παραγγελίες και περιλαμβάνει έναν πίνακα "Πελάτες" και έναν πίνακα "Παραγγελίες". Ένας πελάτης μπορεί να υποβάλει πολλές παραγγελίες. Αυτό σημαίνει ότι για κάθε πελάτη που εμφανίζεται στον πίνακα "Πελάτες", μπορεί να υπάρχουν πολλές παραγγελίες στον πίνακα "Παραγγελίες". Η σχέση μεταξύ του πίνακα "Πελάτες" και του πίνακα "Παραγγελίες" είναι συνεπώς σχέση ένα-προς-πολλά.
Για να απεικονίσετε μια σχέση ένα-προς-πολλά στη σχεδίαση της βάσης δεδομένων σας, πάρτε το πρωτεύον κλειδί στην πλευρά "ένα" της σχέσης και προσθέστε το ως πρόσθετο πεδίο ή πεδία στον πίνακα που βρίσκεται στην πλευρά "πολλά" της σχέσης. Σε αυτή την περίπτωση, για παράδειγμα, προσθέτετε ένα νέο πεδίο, το πεδίο "Κωδικός" από τον πίνακα "Πελάτες", για να τις εντολές πίνακα και ονομάστε το "Κωδικός πελάτη". Η Access μπορεί, στη συνέχεια, να χρησιμοποιήσει τον αριθμό "Κωδικός πελάτη" στον πίνακα "Παραγγελίες" για να εντοπίσει τον σωστό πελάτη για κάθε παραγγελία.
-
Σχέση πολλά-προς-πολλά
Ας δούμε, τώρα, τη σχέση μεταξύ ενός πίνακα "Προϊόντα" και ενός πίνακα "Παραγγελίες". Μια παραγγελία ενδέχεται να περιλαμβάνει περισσότερα από ένα προϊόντα. Από την άλλη, ένα προϊόν ενδέχεται να εμφανίζεται σε πολλές παραγγελίες. Επομένως, για κάθε εγγραφή στον πίνακα "Παραγγελίες", ενδέχεται να υπάρχουν πολλές εγγραφές στον πίνακα "Προϊόντα". Επίσης, για κάθε εγγραφή στον πίνακα "Προϊόντα" ενδέχεται να υπάρχουν πολλές εγγραφές στον πίνακα "Παραγγελίες". Η σχέση αυτή ονομάζεται σχέση πολλά-προς-πολλά. Σημειώστε ότι για να εντοπίζετε υπάρχουσες σχέσεις πολλά-προς-πολλά μεταξύ των πινάκων, είναι σημαντικό να σκέφτεστε και τις δύο πλευρές της σχέσης.
Για τη δήλωση μιας σχέσης πολλά-προς-πολλά, πρέπει να δημιουργήσετε έναν τρίτο πίνακα, συχνά αποκαλούμενος πίνακας σύνδεσης, ο οποίος διασπά τις σχέσεις πολλά-προς-πολλά σε δύο σχέσεις ένα-προς-πολλά. Εσείς εισαγάγετε το πρωτεύον κλειδί για κάθε έναν από τους δύο πίνακες στον τρίτο πίνακα. Ως αποτέλεσμα, στον τρίτο πίνακα εγγράφεται κάθε παρουσία ή εμφάνιση της σχέσης. Για παράδειγμα, ο πίνακας "Παραγγελίες" και ο πίνακας "Προϊόντα" έχουν μια σχέση πολλά-προς-πολλά, η οποία καθορίζεται με τη δημιουργία δύο σχέσεων ένα-προς-πολλά με τον πίνακα "Λεπτομέρειες παραγγελιών". Μία παραγγελία μπορεί να έχει πολλά προϊόντα και κάθε προϊόν μπορεί να εμφανίζεται σε πολλές παραγγελίες.
-
Σχέση ένα-προς-ένα
Σε μια σχέση ένα-προς-ένα, κάθε εγγραφή στον πρώτο πίνακα μπορεί να έχει μόνο μία αντιστοιχισμένη εγγραφή στο δεύτερο πίνακα και κάθε εγγραφή στο δεύτερο πίνακα μπορεί να έχει μόνο μία αντιστοιχισμένη εγγραφή στον πρώτο πίνακα. Αυτός ο τύπος σχέσης δεν είναι συνηθισμένος, επειδή, πολύ συχνά, οι πληροφορίες που σχετίζονται με αυτόν τον τρόπο είναι αποθηκευμένες στον ίδιο πίνακα. Μπορείτε να χρησιμοποιήσετε μια σχέση ένα-προς-ένα για να διαιρέσετε έναν πίνακα με πολλά πεδία, να απομονώσετε μέρος ενός πίνακα για λόγους ασφαλείας ή να αποθηκεύσετε πληροφορίες που έχουν εφαρμογή μόνο σε ένα υποσύνολο του κυρίως πίνακα. Όταν προσδιορίζετε μια τέτοια σχέση, οι δύο πίνακες πρέπει να έχουν ένα κοινό πεδίο.
Γιατί δημιουργείτε τις σχέσεις πίνακα;
Μπορείτε να δημιουργήσετε σχέσεις πινάκων ρητά χρησιμοποιώντας το παράθυρο "Σχέσεις" ή μεταφέροντας ένα πεδίο από το τμήμα παραθύρου Λίστα πεδίων. Η Access χρησιμοποιεί τις σχέσεις πινάκων για να αποφασίσει σχετικά με τον τρόπο σύνδεσης πινάκων όταν θέλετε να τους χρησιμοποιήσετε σε ένα αντικείμενο βάσης δεδομένων. Υπάρχουν πολλοί λόγοι για τους οποίους θα πρέπει να δημιουργήσετε σχέσεις πριν δημιουργήσετε άλλα αντικείμενα της βάσης δεδομένων, όπως φόρμες, ερωτήματα και αναφορές.
-
Οι σχέσεις πίνακα ενημερώνουν τις σχεδιάσεις ερωτημάτων
Για να εργαστείτε με εγγραφές από περισσότερους από έναν πίνακα, πολλές φορές πρέπει να δημιουργήσετε ένα ερώτημα που συνδέει τους πίνακες. Το ερώτημα λειτουργεί αντιστοιχίζοντας τις τιμές στο πεδίο πρωτεύοντος κλειδιού του πρώτου πίνακα με ένα πεδίο εξωτερικού κλειδιού στο δεύτερο πίνακα. Για παράδειγμα, για να επιστραφούν γραμμές που παραθέτουν όλες τις παραγγελίες για κάθε πελάτη, πρέπει να δημιουργήσετε ένα ερώτημα που να συνδέει τον πίνακα "Πελάτες" με τον πίνακα "Παραγγελίες" με βάση το πεδίο "Αναγνωριστικό πελάτη". Στο παράθυρο "Σχέσεις", μπορείτε να ορίσετε μη αυτόματα τη σύνδεση των πεδίων. Ωστόσο, εάν έχει οριστεί ήδη μια σχέση μεταξύ των πινάκων, η Access παρέχει τον προεπιλεγμένο σύνδεσμο με βάση την υπάρχουσα σχέση πινάκων. Επίσης, εάν χρησιμοποιείτε κάποιον από τους οδηγούς ερωτήματος, η Access χρησιμοποιεί τις πληροφορίες που συλλέγει από τις σχέσεις πίνακα που έχετε ορίσει ήδη για να σας παρουσιάσει ενημερωμένες επιλογές και να προσυμπληρώσει τις ρυθμίσεις ιδιοτήτων με τις κατάλληλες προεπιλεγμένες τιμές.
-
Οι σχέσεις πίνακα ενημερώνουν τις σχεδιάσεις φόρμας και έκθεσης
Όταν σχεδιάζετε μια φόρμα ή μια έκθεση, η Access χρησιμοποιεί τις πληροφορίες που συλλέγει από τις σχέσεις πινάκων που έχετε ορίσει ήδη για να σας παρουσιάσει τις ενημερωμένες επιλογές και να συμπληρώσει αυτόματα τις ρυθμίσεις ιδιοτήτων με τις κατάλληλες προεπιλεγμένες τιμές.
-
Οι σχέσεις πίνακα είναι η βάση στη οποία μπορείτε να ενεργοποιήσετε την ακεραιότητα εκθέσεων για να εμποδίσετε την ύπαρξη ορφανών εγγραφών στη βάση δεδομένων. Ορφανή εγγραφή είναι μια εγγραφή με αναφορά σε μια άλλη που δεν υπάρχει — για παράδειγμα, μια παραγγελία που αναφέρεται σε μια εγγραφή πελάτη που δεν υπάρχει.
Κατά τη σχεδίαση μιας βάσης δεδομένων, διαιρείτε τις πληροφορίες σε πίνακες, ο καθένας από τους οποίους έχει ένα πρωτεύον κλειδί. Στη συνέχεια, προσθέτετε εξωτερικά κλειδιά σε σχετιζόμενους πίνακες που αναφέρονται στα πρωτεύοντα κλειδιά. Αυτοί οι συνδυασμοί εξωτερικών και πρωτευόντων κλειδιών αποτελούν τη βάση για τις σχέσεις πίνακα και τα ερωτήματα πολλών πινάκων. Είναι σημαντικό να παραμένουν συγχρονισμένες αυτές οι αναφορές εξωτερικών και πρωτευόντων κλειδιών. Η ακεραιότητα αναφορών, η οποία εξαρτάται από σχέσεις πίνακα, σας βοηθά να εξασφαλίσετε ότι οι αναφορές παραμένουν συγχρονισμένες.
Κατανόηση της ακεραιότητας αναφορών
Όταν σχεδιάζετε μια βάση δεδομένων, διαιρείτε τις πληροφορίες σε πολλούς πίνακες βάσει θέματος για να ελαχιστοποιήσετε τον πλεονασμό δεδομένων. Στη συνέχεια, θα πρέπει να παράσχετε στην Access έναν τρόπο να συνδυάζονται ξανά τα δεδομένα, τοποθετώντας κοινά πεδία σε πίνακες που έχουν σχέση μεταξύ τους. Για παράδειγμα, για τη δήλωση μιας σχέσης ένα-προς-πολλά παίρνετε το πρωτεύον κλειδί από τον "ένα" πίνακα και το προσθέτετε ως πρόσθετο πεδίο στον πίνακα "πολλά". Για να συνδεθούν ξανά τα δεδομένα, η Access παίρνει την τιμή στον πίνακα "πολλά" και αναζητά την αντίστοιχη τιμή στον πίνακα "ένα". Με τον τρόπο αυτό οι τιμές στον πίνακα "πολλά" αναφέρονται στις αντίστοιχες τιμές του πίνακα "ένα".
Ας υποθέσουμε ότι υπάρχει μια σχέση ένα-προς-πολλά μεταξύ των πινάκων "Αποστολείς" και "Παραγγελίες" και θέλετε να διαγράψετε έναν αποστολέα. Εάν ο αποστολέας που θέλετε να διαγράψετε έχει παραγγελίες στον πίνακα "Παραγγελίες", οι παραγγελίες αυτές θα μετατραπούν σε "ορφανές" όταν διαγράψετε την εγγραφή του αποστολέα. Οι παραγγελίες θα περιέχουν ακόμη ένα αναγνωριστικό αποστολέα, αλλά το αναγνωριστικό δεν θα είναι πλέον έγκυρο, επειδή η εγγραφή στην οποία αναφέρεται δεν υπάρχει.
Ο σκοπός της ακεραιότητας αναφορών είναι η αποτροπή των ορφανών εγγραφών και η διατήρηση των αναφορών σε συγχρονισμό, ώστε να μην προκύψει ποτέ αυτή η υποθετική κατάσταση.
Μπορείτε να επιβάλετε την ακεραιότητα αναφορών ενεργοποιώντας την για μια σχέση πινάκων. Μετά από την ενεργοποίηση, η Access απορρίπτει κάθε λειτουργία που θα εμπόδιζε την ακεραιότητα αναφορών για τη συγκεκριμένη σχέση πινάκων. Αυτό σημαίνει ότι η Access θα απορρίψει τις ενημερώσεις που αλλάζουν το στόχο μιας αναφοράς και τις διαγραφές που καταργούν το στόχο μιας αναφοράς. Μπορεί να χρειάζεται πραγματικά να αλλάξετε το πρωτεύον κλειδί για έναν αποστολέα που έχει παραγγελίες στον πίνακα "Παραγγελίες". Σε αυτές τις περιπτώσεις, αυτό που χρειάζεται είναι να ενημερώσει αυτόματα η Access όλες τις γραμμές που επηρεάζονται ως μέρος μιας ενιαίας λειτουργίας. Με τον τρόπο αυτό, η Access εξασφαλίζει ότι η ενημέρωση ολοκληρώνεται πλήρως, ώστε να μην υπάρχει ασυνέπεια στη βάση δεδομένων, με κάποιες γραμμές ενημερωμένες και άλλες όχι. Για το λόγο αυτό Access υποστηρίζει την επιλογή "Διαδοχική ενημέρωση των σχετικών πεδίων" . Όταν ενεργοποιείτε την ακεραιότητα αναφορών και επιλέγετε Διαδοχική ενημέρωση των σχετικών εγγραφών και, στη συνέχεια, ενημερώνετε ένα πρωτεύον κλειδί, η Access ενημερώνει αυτόματα όλα τα πεδία που αναφέρονται στο πρωτεύον κλειδί.
Επίσης, είναι πιθανό να χρειάζεται πραγματικά να διαγράψετε μια γραμμή και όλες τις σχετικές εγγραφές — για παράδειγμα, μια εγγραφή "Αποστολέας" και όλες τις σχετικές παραγγελίες για το συγκεκριμένο αποστολέα. Για τον λόγο αυτόν, η Access υποστηρίζει την επιλογή Διαδοχική διαγραφή των σχετικών εγγραφών. Όταν επιβάλλετε ακεραιότητα αναφορών και επιλέγετε Διαδοχική ενημέρωση των σχετικών εγγραφών και, στη συνέχεια, διαγράφετε μια εγγραφή στην πλευρά του πρωτεύοντος κλειδιού της σχέσης, η Access διαγράφει αυτόματα όλες τις εγγραφές που αναφέρονται στο πρωτεύον κλειδί.
Προβολή σχέσεων πίνακα
Για να προβάλετε τις σχέσεις πίνακα, κάντε κλικ στην επιλογή Σχέσεις, στην καρτέλα Εργαλεία βάσης δεδομένων. Ανοίγει το παράθυρο "Σχέσεις" και εμφανίζει τυχόν υπάρχουσες σχέσεις. Εάν δεν έχουν οριστεί ακόμη σχέσεις πίνακα και ανοίξετε το παράθυρο "Σχέσεις" για πρώτη φορά, η Access σάς ζητά να προσθέσετε έναν πίνακα ή ένα ερώτημα στο παράθυρο.
Άνοιγμα του παραθύρου "Σχέσεις".
-
Κάντε κλικ στην επιλογή Αρχείο, κάντε κλικ στην επιλογή Άνοιγμα και, στη συνέχεια, επιλέξτε και ανοίξτε τη βάση δεδομένων.
-
Στην καρτέλα Εργαλεία βάσης δεδομένων, στην ομάδα Σχέσεις, κάντε κλικ στην επιλογή Σχέσεις.
-
Στην καρτέλα Σχεδίαση σχέσεων , στην ομάδα Σχέσεις , κάντε κλικ στην επιλογή Όλες οι σχέσεις.
Αυτό εμφανίζει όλες τις καθορισμένες σχέσεις στη βάση δεδομένων σας. Σημειώστε ότι οι κρυφοί πίνακες (πίνακες για τους οποίους είναι επιλεγμένο το πλαίσιο ελέγχου Κρυφό στο παράθυρο διαλόγου Ιδιότητες του πίνακα) και οι σχέσεις τους δεν εμφανίζονται εκτός αν έχει επιλεγεί το πλαίσιο ελέγχου Εμφάνιση κρυφών αντικειμένων, στο παράθυρο διαλόγου Επιλογές περιήγησης.
Μια σχέση πινάκων δηλώνεται από μια γραμμή σχέσης μεταξύ των πινάκων στο παράθυρο "Σχέσεις". Μια σχέση που δεν επιβάλλει ακεραιότητα αναφορών εμφανίζεται ως λεπτή γραμμή μεταξύ των κοινών πεδίων που υποστηρίζουν τη σχέση. Όταν επιλέγετε τη σχέση κάνοντας κλικ στη γραμμή της, η γραμμή γίνεται πιο έντονη, υποδεικνύοντας ότι έχει επιλεγεί. Εάν επιβάλετε ακεραιότητα αναφορών για τη συγκεκριμένη σχέση, η γραμμή εμφανίζεται πιο έντονη σε κάθε άκρη. Επίσης, εμφανίζεται ο αριθμός 1 πάνω από ένα πλατύ τμήμα της γραμμής στη μία πλευρά της σχέσης και το σύμβολο του απείρου (∞) εμφανίζεται πάνω από ένα πλατύ τμήμα της γραμμής στην άλλη πλευρά.
Όταν είναι ενεργό το παράθυρο "Σχέσεις", μπορείτε να επιλέξετε από τις ακόλουθες εντολές στην Κορδέλα:
Στην καρτέλα Σχεδίαση σχέσεων , στην ομάδα Εργαλεία :
-
Επεξεργασία σχέσεων Ανοίγει το παράθυρο διαλόγου Επεξεργασία σχέσεων. Όταν επιλέγετε μια γραμμή σχέσης, μπορείτε να κάνετε κλικ στην εντολή Επεξεργασία σχέσεων για να αλλάξετε τη σχέση πινάκων. Μπορείτε, επίσης, να κάνετε διπλό κλικ στη γραμμή σχέσης.
-
Απαλοιφή διάταξης Καταργεί όλους τους πίνακες και τις σχέσεις από το παράθυρο "Σχέσεις". Σημειώστε ότι η εντολή απλώς κρύβει τους πίνακες και τις σχέσεις — δεν τα διαγράφει.
-
Έκθεση σχέσεων Δημιουργεί μια αναφορά που εμφανίζει του πίνακες και τις σχέσεις στη βάση δεδομένων. Η έκθεση δείχνει μόνο τους μη κρυφούς πίνακες και σχέσεις στο παράθυρο "Σχέσεις".
Στην καρτέλα Σχεδίαση σχέσεων , στην ομάδα Σχέσεις :
-
Προσθήκη πινάκων Επιτρέπει την επιλογή των πινάκων που θα εμφανίζονται στο παράθυρο "Σχέσεις".
-
Απόκρυψη πίνακα Κρύβει τον επιλεγμένο πίνακα στο παράθυρο "Σχέσεις".
-
Άμεσες σχέσεις Εμφανίζει όλες τις σχέσεις και τους σχετιζόμενους πίνακες για τον επιλεγμένο πίνακα στο παράθυρο "Σχέσεις", εάν δεν εμφανίζονται ήδη.
-
Όλες οι σχέσεις Εμφανίζονται όλες οι σχέσεις και οι σχετιζόμενοι πίνακες στη βάση δεδομένων, στο παράθυρο "Σχέσεις". Σημειώστε ότι οι κρυφοί πίνακες (πίνακες για τους οποίους είναι επιλεγμένο το πλαίσιο ελέγχου Κρυφό, στο παράθυρο διαλόγου Ιδιότητες του πίνακα) και οι σχέσεις τους δεν θα εμφανίζονται παρά μόνο εάν έχει επιλεγεί η εντολή "Εμφάνιση κρυφών αντικειμένων" στο παράθυρο διαλόγου "Επιλογές περιήγησης".
-
Κλείσιμο Κλείνει το παράθυρο "Σχέσεις". Εάν εφαρμόσατε οποιεσδήποτε αλλαγές στη διάταξη του παραθύρου "Σχέσεις", θα σας ζητηθεί να τις αποθηκεύσετε.