Βάσεις Δεδομένων Ι 4 Σχέσεις Πινάκων σχέσεις1-ν Τμήμα Διοίκησης Επιχειρήσεων (Μεσολόγγι) ΤΕΙ Δυτικής Ελλάδας ΝΙΚΟΣ ΚΑΡΟΥΣΟΣ - ΔΙΟΝΥΣΗΣ ΚΑΡΟΥΣΟΣ XE 2016-2017
Τι είναι σχέση Οι σχέσεις στην Access χρησιμοποιούνται για την καταγραφή και εύρεση δεδομένων που σχετίζονται με δύο ή περισσότερους πίνακες. Πχ αν έχουμε 2 πίνακες Πίνακας Φοιτητής Πίνακας Τμήμα Σχέση μεταξύ Φοιτητής Τμήμα Ένας φοιτητής φοιτά σε 1 τμήμα Σε ένα τμήμα φοιτούν πολλοί φοιτητές 2
Είδη σχέσεων Ένα προς Ένα (1-1) ΚΑΘΗΓΗΤΗΣ 1 1 ΠΡΟΕΔΡΕΥΕΙ ΤΜΗΜΑ Ένα προς Πολλά (1-Ν) ΤΜΗΜΑ 1 Ν ΦΟΙΤΑ ΦΟΙΤΗΤΗΣ Πολλά προς Πολλά (Μ-Ν) ΦΟΙΤΗΤΗΣ Μ ΕΧΕΙ Ν ΜΑΘΗΜΑ 3
Πως αναγνωρίζουμε μια σχέση ; Έστω ότι έχουμε μια σχέση ανάμεσα στους Πίνακες Α και Β 1. Τη διαβάζουμε από αριστερά προς τα δεξιά 1. Αρχίζουμε πάντα με τη λέξη ένας ή μία 2. Διαβάζουμε το όνομα του πίνακα Α 3. Επιλέγουμε το ρήμα που περιγράφει τη σχέση 4. Επιλέγουμε 1 ή Ν 5. Διαβάζουμε το όνομα του πίνακα Β 2. Τη διαβάζουμε από δεξιά αριστερά προς τα αριστερά 1. Αρχίζουμε πάντα με τη λέξη ένας (ή σε έναν) ή μία (ή σε μία) 2. Διαβάζουμε το όνομα του πίνακα Α 3. Επιλέγουμε το ρήμα που περιγράφει τη σχέση 4. Επιλέγουμε 1 ή Ν 5. Διαβάζουμε το όνομα του πίνακα Β 4
Παράδειγμα ---------------- ----------------- Ένας φοιτητής φοιτά σε 1 τμήμα ----------------------------------- ---------------- ----------------- Σε ένα τμήμα φοιτούν Πολλοί φοιτητές ----------------------------------- ΦΟΙΤΗΤΗΣ Ν ΦΟΙΤΑ 1 ΤΜΗΜΑ 5
Πως υλοποιούμε τη σχέση Ομάδα Βημάτων 1: Δημιουργία ξένου κλειδιού Οι πίνακες που έχουμε είναι οι εξής: Στον πίνακα κοντά στο «Ν» (Φοιτητής) θα πρέπει να δημιουργήσουμε ένα πεδίο ίδιο με το κλειδί του πίνακα κοντά «1» (Τμήμα): Το πεδίο αυτό λέγεται ξένο κλειδί 6
Πως υλοποιούμε τη σχέση Ομάδα Βημάτων 1: Δημιουργία ξένου κλειδιού Το ξένο κλειδί είναι απλό πεδίο και όχι κλειδί Παίρνει τιμές από το σύνολο τιμών του κλειδιού του πίνακα που βρίσκεται από την πλευρά «1». 7
Πως υλοποιούμε τη σχέση Ομάδα Βημάτων 1: Δημιουργία ξένου κλειδιού Προσοχή Κρατάμε υποχρεωτικά τον ίδιο τύπο δεδομένων Π.χ. Αν ο κλειδί στον πίνακα Τμήματα είναι κείμενο με μήκος 10 τότε και το ξένο κλειδί στον πίνακα Φοιτητής θα είναι κείμενο με μήκος 10. Εξαίρεση αποτελεί ο τύπος Αυτόματη Αρίθμηση Τότε το ξένο κλειδί γίνεται απλός αριθμός. 8
Πως υλοποιούμε τη σχέση Ομάδα Βημάτων 1: Δημιουργία ξένου κλειδιού Το κλειδί του πίνακα ΤΜΗΜΑ και το ξένο κλειδί στον πίνακα ΦΟΙΤΗΤΗΣ έχουν ακριβώς τον ίδιο τύπο 9
Πως υλοποιούμε τη σχέση Ομάδα Βημάτων 2: Δήλωση σχέσης Από το tab Εργαλεία ΒΔ επιλέγουμε το κουμπί Σχέσεις 10
Πως υλοποιούμε τη σχέση Ομάδα Βημάτων 2: Δήλωση σχέσης Επιλέγουμε το κουμπί Εμφάνιση πίνακα 11
Πως υλοποιούμε τη σχέση Ομάδα Βημάτων 2: Δήλωση σχέσης Προσθέτουμε τους πίνακες της σχέσης 12
Πως υλοποιούμε τη σχέση Ομάδα Βημάτων 2: Δήλωση σχέσης Εμφανίζονται οι πίνακες μας 13
Πως υλοποιούμε τη σχέση Ομάδα Βημάτων 2: Δήλωση σχέσης Σύρουμε το ξένο κλειδί πάνω στο πρωτεύων κλειδί του 2 ου πίνακα 14
Πως υλοποιούμε τη σχέση Ομάδα Βημάτων 2: Δήλωση σχέσης Ανοίγει το παράθυρο Επεξεργασίας σχέσεων 15
Πως υλοποιούμε τη σχέση Ομάδα Βημάτων 2: Δήλωση σχέσης Εξετάζουμε τις συνθήκες για την ενεργοποίηση αναφορικής ακεραιότητας και επιλέγουμε τα αντίστοιχα checkboxes. Συνηθίζεται να επιλέγουμε μόνο το αρχικό checkbox (Ενεργοποίηση ακεραιότητας αναφορών) ενώ τα άλλα τα αφήνουμε μη επιλεγμένα. Αν για παράδειγμα επιλέξεις το τελευταίο και σβήσεις από τη βάση πχ ένα τμήμα τότε θα σβήσουν όλες οι αγορές των φοιτητών του τμήματος πράγμα το οποίο προφανώς και δεν θέλουμε 16
Πως υλοποιούμε τη σχέση Ομάδα Βημάτων 2: Δήλωση σχέσης Ο σκοπός της ακεραιότητας αναφορών είναι η αποφυγή των ορφανών εγγραφών και η διατήρηση συγχρονισμένων αναφορών, ώστε να μην υπάρχουν εγγραφές που αναφέρονται σε άλλες εγγραφές που δεν υπάρχουν πλέον. Ωστόσο, μπορείτε να επιλέξετε τη ενημέρωση ή διαγραφή μιας πρωτεύουσας εγγραφής και όλων των συσχετισμένων εγγραφών σε μια λειτουργία επιλέγοντας το πλαίσιο ελέγχου Διαδοχική ενημέρωση ή διαγραφή συσχετισμένων εγγραφών. 17
Πως υλοποιούμε τη σχέση Ομάδα Βημάτων 2: Δήλωση σχέσης Εμφανίζεται η σχέση και πατάμε Αποθήκευση 18
Πως υλοποιούμε τη σχέση Ομάδα Βημάτων 3: Επιλογή τιμών από λίστα (προαιρετικό) Επιλέγουμε τον πίνακα ΦΟΙΤΗΤΗΣ και το ξένο κλειδί Στις ιδιότητες επιλέγουμε Εμφάνιση και αλλάζουμε το πλαίσιο κειμένου σε πλαίσιο λίστας 19
Πως υλοποιούμε τη σχέση Ομάδα Βημάτων 3: Επιλογή τιμών από λίστα (προαιρετικό) Επιλέγουμε πηγή γραμμής τον πίνακα ΤΜΗΜΑ Επιλέγουμε δεσμευμένη στήλη τη στήλη που είναι το κλειδί στον πίνακα ΤΜΗΜΑ Επιλέγουμε το πλήθος των στηλών που θέλουμε να εμφανίζονται. 20
Πως υλοποιούμε τη σχέση Ομάδα Βημάτων 3: Επιλογή τιμών από λίστα (προαιρετικό) Παρατηρούμε τώρα πως κατά τη συμπλήρωση των στοιχείων φοιτητών στον κωδικό τμήματος μας βγαίνει λίστα με προεπιλεγμένες τιμές από τα υπάρχοντα τμήματα. 21
Άσκηση Υλοποιήστε τη σχέση Κατάστημα Προσωπικό του ΔΟΣ «Έκθεση Αυτοκινήτων» ΑρΚαταστήματος Νομός ΠλήθοςΑ ΑΔΤ Όνομα Επώνυμο Τίτλος ΚΑΤΑΣΤΗΜΑ 1 Ν ΕΡΓΑΖΕΤΑΙ ΠΡΟΣΩΠΙΚΟ Ν Τηλέφωνο Σχόλιο ΕΚΘΕΤΟΥΝ ΚωδΑυτοκινήτου Μάρκα Ν ΑΥΤΟΚΙΝΗΤΟ Μοντέλο Έτος Κυβικά Παρατηρήσεις 1. Ο αριθμός καταστήματος είναι 3ψήφιος 2. Το κατάστημα θεωρούμε πως έχει πολλούς εργαζομένους 3. Βάζουμε αυτόματα κωδικούς αυτοκινήτου 22
Άσκηση - Παρατήρηση Παρατηρούμε πως ανάμεσα στο Προσωπικό και κατάστημα υπάρχει ολική συμμετοχή Οπότε θα πρέπει στο ξένο κλειδί (αριθμός καταστήματος) του πίνακα Προσωπικό να βάλουμε στις ιδιότητες πως είναι υποχρεωτικό πεδίο (Απαιτείται: ΝΑΙ) 23
Τέλος παρουσίασης Νίκος Καρούσος karousos@gmail.com Διονύσης Καρούσος dkarousos@gmail.com