Written by: Education Access

Μαθήματα στην Access (Μέρος 1)

SylviecommathetetinAccessmeapleserotiseismeros1o1 1
This entry is part 1 of 7 in the series Μαθήματα στην Access

Μάθετε την Access με Απλές Ερωτήσεις – Μέρος 1ο

ΠΙΝΑΚΕΣ (Tables)

Τι είναι το Πρωτεύον Κλειδί (Primary Key) ενός πίνακα της Access;

Το Πρωτεύον Κλειδί είναι ένα πεδίο ενός πίνακα της Access, που χαρακτηρίζει μοναδικά μία εγγραφή μέσα σ’ ολόκληρο τον πίνακα. Δηλ., δεν μπορεί να υπάρχουν δύο ή περισσότερες εγγραφές που να έχουν ίδια τιμή στο πρωτεύον κλειδί ενός πίνακα.

Ακόμη, οι εγγραφές του πίνακα ταξινομούνται αυτόματα με βάση το πρωτεύον κλειδί. Σ’ έναν πίνακα, μπορούμε να ορίσουμε σαν πρωτεύον κλειδί και έναν συνδυασμό δύο ή περισσοτέρων πεδίων, όταν ένα πεδίο μόνο του δεν μπορεί να ορίσει μοναδικά μια εγγραφή. Για παράδειγμα, σ’ έναν πίνακα μαθητών μπορούμε να ορίσουμε σαν πρωτεύον κλειδί τα πεδία επώνυμο, όνομα και πατρώνυμο μαζί, όταν είμαστε βέβαια απόλυτα σίγουροι ότι δεν υπάρχουν δύο ή περισσότεροι μαθητές με κοινά αυτά τα τρία πεδία.

Μάθετε την Access με Απλές Ερωτήσεις - Μέρος 1ο

Τι είναι το Ευρετήριο (Index) και ποια η χρησιμότητά του;

Το Ευρετήριο είναι μια ιδιότητα που δίνουμε σ’ όσα πεδία του πίνακά μας θέλουμε, και το οποίο είναι χρήσιμο όταν ο πίνακας έχει πολλές εγγραφές και θέλουμε να κάνουμε γρήγορη αναζήτηση κάποιων στοιχείων.

Για τα πεδία που έχουμε ορίσει να έχουν δικό τους ευρετήριο, η Access δημιουργεί μόνη της έναν κατάλογο που δεν τον βλέπουμε εμείς, όπου σε κάθε γραμμή του καταλόγου υπάρχει ο αριθμός της εγγραφής και η τιμή του πεδίου. Ο κατάλογος αυτός ταξινομείται αυτόματα βάσει της τιμής του πεδίου. Όταν η Access κάνει αναζήτηση, για να βρει π.χ. ποιοι πελάτες έχουν το επώνυμο “Παπαδόπουλος”, τότε, εφ’ όσον, βέβαια, έχουμε ορίσει το πεδίο επώνυμο να έχει ευρετήριο δικό του, η Access ψάχνει πολύ γρήγορα στο ταξινομημένο ευρετήριο και βρίσκει όσους πελάτες έχουν το επώνυμο “Παπαδόπουλος”.

Για τα πεδία που έχουμε ορίσει να έχουν ευρετήριο, μπορούμε να πούμε στην Access να ελέγξει αν το πεδίο αυτό θα έχει μοναδικές τιμές (no duplicates) ή αν θα έχει πολλές ίδιες τιμές (yes duplicates). Για παράδειγμα, σ’ έναν πίνακα μαθητών, μπορούμε να έχουμε σαν πρωτεύον κλειδί τον κωδικό μαθητή και να ορίσουμε ευρετήριο, με αποδεκτές πολλαπλές τιμές, για το επώνυμο και ευρετήριο, χωρίς την αποδοχή πολλαπλών τιμών, για τον αριθμό μητρώου μαθητή. Ο αριθμός μητρώου του μαθητή δεν είναι, βέβαια, το πρωτεύον κλειδί, αλλά δεν μπορούν να υπάρχουν δύο ή περισσότεροι μαθητές με τον ίδιο αριθμό μητρώου.

Σε τι διαφέρουν το πρωτεύον κλειδί ενός πίνακα από το ευρετήριο που δεν αποδέχεται πολλαπλές τιμές;

Σ’ έναν πίνακα μπορούμε να έχουμε ένα μόνο πρωτεύον κλειδί, το οποίο μπορεί να αποτελείται από ένα ή περισσότερα πεδία, αλλά μπορούμε να έχουμε συγχρόνως και πολλά ευρετήρια πεδίων που δεν αποδέχονται πολλαπλές τιμές. Το πρωτεύον κλειδί είναι εκείνο που χαρακτηρίζει μοναδιαία έναν πίνακα και όχι το ευρετήριο.

Τι είναι ο Κανόνας Επικύρωσης (Validation Rule) και το Κείμενο Επικύρωσης (Validation Text) και ποια η χρησιμότητά τους;

Ο Κανόνας Επικύρωσης είναι προαιρετικός, μπορεί να οριστεί για κάποιο πεδίο και ελέγχει αν τα δεδομένα που εισάγουμε ανήκουν σε κάποια έγκυρη περιοχή τιμών. Αν γράψουμε κάτι που είναι εκτός της περιοχής τιμών που ορίζει ο κανόνας επικύρωσης, τότε η Access δεν μας αφήνει να προχωρήσουμε, αν προηγουμένως δεν γράψουμε μια αποδεκτή τιμή για το πεδίο.

Για παράδειγμα, αν καταχωρούμε τους βαθμούς μαθητών, τότε ο κανόνας επικύρωσης που θα πρέπει να δώσουμε, είναι ο : >= 0 and <=20 ή between 0 and 20. Αν, βέβαια, ο σωστός βαθμός είναι ο 15 και εμείς γράψουμε 17, τότε αυτό δεν θα μπορέσει να το ελέγξει η Access.

Αν εισάγουμε στοιχεία για πελάτες, και αυτοί προέρχονται μόνο από τις πόλεις Αθήνα, Θεσ/νίκη και Πάτρα, τότε ο κανόνας επικύρωσης θα είναι ο : ‘Αθήνα’ or ‘Θεσ/νίκη’ or ‘Πάτρα’.

Το Κείμενο Επικύρωσης είναι ένα μήνυμα που εμφανίζει η Access σ’ ένα παράθυρο, όταν παραβούμε τον κανόνα επικύρωσης ενός πεδίου. Μπορούμε να γράψουμε ένα δικό μας μήνυμα, που θα υπενθυμίζει στον χρήστη ποιες είναι οι αποδεκτές τιμές.

Η χρησιμότητα του κανόνα επικύρωσης είναι ότι απλά, περιορίζει τα λάθη που μπορεί να κάνουμε κατά την πληκτρολόγηση.

Τι είναι, πώς ορίζεται και ποια είναι η χρησιμότητα μιας Σχέσης (Relationship) ανάμεσα σε δύο πίνακες της Access;

Είναι μια αντιστοίχηση ανάμεσα σ’ ένα πεδίο ενός πίνακα, μ’ ένα πεδίο ενός άλλου πίνακα. Τα πεδία αυτά πρέπει να είναι του ιδίου τύπου δεδομένων και του ιδίου μεγέθους. Το ένα είναι το πρωτεύον κλειδί στον έναν πίνακα και το άλλο είναι ένα απλό πεδίο στον άλλον πίνακα.

Για να ορίσουμε μια σχέση ανάμεσα σε δύο πίνακες, ανοίγουμε το παράθυρο Show Relationships της Βάσης Δεδομένων μας και επιλέγουμε (προσθέτουμε) τους πίνακες που θέλουμε να συσχετίσουμε. Μετά, πατάμε με το ποντίκι στο πεδίο του ενός πίνακα, το μεταφέρουμε και το αφήνουμε πάνω στο αντίστοιχο πεδίο του άλλου πίνακα. Η Access εμφανίζει τότε μια γραμμή που συνδέει τους δύο πίνακες και που έχει το σύμβολο 1 στο πρωτεύον πεδίο του ενός πίνακα και το σύμβολο του άπειρου στο αντίστοιχο πεδίο του άλλου πίνακα. Αυτό σημαίνει ότι αυτή είναι μια σχέση ένα προς πολλά (one to many).

Αν κάνουμε κλικ με το ποντίκι πάνω στη γραμμή της σχέσης, μπορούμε να την καταργήσουμε πατώντας το πλήκτρο <delete>, ενώ αν κάνουμε διπλό κλικ πάνω της, εμφανίζεται ένα παράθυρο, όπου μπορούμε να επιλέξουμε, αν θέλουμε βέβαια, άλλα πεδία από τους δύο πίνακες για τη διασύνδεση των δύο πινάκων. Ακόμη, μπορούμε να ορίσουμε αν θα υπάρχει ακεραιότητα αναφοράς και αν θα ισχύει η διαδοχική ενημέρωση ή και η διαδοχική διαγραφή.

Η χρησιμότητα μιας σχέσης ανάμεσα σε δύο πίνακες, είναι ότι μέσω αυτής μπορούμε να αντλήσουμε στοιχεία και πληροφορίες που ανήκουν και στους δύο πίνακες. Για παράδειγμα, αν έχω έναν πίνακα πελατών και έναν πίνακα παραγγελιών που κάνουν οι πελάτες μου, τότε ορίζω το πεδίο κωδικός πελάτη (ID_?aeάτη) να υπάρχει και στους δύο πίνακες, στον πίνακα πελατών σαν πρωτεύον κλειδί βέβαια, και διασυνδέω τους δύο πίνακες με το πεδίο αυτό.

Μετά, μπορώ να ζητήσω πληροφορίες, όπως π.χ. ποιοι πελάτες παρήγγειλαν κάποιο προϊόν αυτή τη χρονιά, ποιοι πελάτες δεν παρήγγειλαν κανένα προϊόν τον τελευταίο μήνα κ.ά. Η Access χρησιμοποιεί τον κωδικό του πελάτη σαν το στοιχείο που διασυνδέει τους δύο πίνακες και εμφανίζει τις πληροφορίες στην οθόνη σαν να ανήκαν αυτές στον ίδιο πίνακα.

Τι σημαίνει η Ακεραιότητα Αναφοράς (Referential Integrity);

Η ακεραιότητα αναφοράς αναφέρεται σε δύο συσχετισμένους πίνακες και σημαίνει πρακτικά ότι δεν μπορώ να καταχωρήσω στοιχεία στον πίνακα μιας σχέσης που είναι στη μεριά του “πολλά”, αν προηγουμένως δεν έχω καταχωρήσει την αντίστοιχη τιμή στο πεδίο της σχέσης που είναι στη μεριά του “ένα”.

Δηλ., αν έχω ορίσει να υπάρχει ακεραιότητα αναφοράς στη σχέση του πίνακα πελατών με τον πίνακα παραγγελιών, δεν μπορώ να καταχωρήσω μια παραγγελία για έναν πελάτη, αν προηγουμένως δεν έχω γράψει τον κωδικό του πελάτη στον πίνακα πελατών.

Ένα άλλο παράδειγμα. Σε μια Υπηρεσία Μεταφορών-Επικοινωνιών, μπορούμε να ορίσουμε έναν πίνακα υπαλλήλων και έναν πίνακα αδειών κυκλοφορίας αυτοκινήτων, όπου υπάρχει η σχέση ένα προς πολλά, αφού ένας υπάλληλος μπορεί να γράψει πολλές άδειες κυκλοφορίας, αλλά μια άδεια κυκλοφορίας γράφεται μόνο από έναν υπάλληλο. Εφ’ όσον υπάρχει ακεραιότητα αναφοράς, για να γράψω μια καινούργια άδεια κυκλοφορίας, πρέπει να δώσω και τον κωδικό του υπαλλήλου που κάνει την καταχώρηση.

Αν αυτός ο κωδικός, όμως, δεν υπάρχει στον πίνακα των υπαλλήλων, η Access δεν θα με αφήσει να καταχωρήσω την άδεια κυκλοφορίας. Αν καταργήσω την ακεραιότητα αναφοράς, τότε θα μπορέσω να καταχωρήσω τα στοιχεία της νέας άδειας κυκλοφορίας, είτε ο κωδικός του υπαλλήλου που δίνω αντιστοιχεί σε κάποιον υπάλληλο στον πίνακα υπαλλήλων, είτε όχι.

Τι σημαίνει η Διαδοχική Ενημέρωση (Cascade Update);

Σημαίνει ότι, αν κάνω κάποια αλλαγή στο πεδίο που συνδέει δύο πίνακες σε μια σχέση, στον πίνακα που έχει τη σχέση “ένα”, τότε ενημερώνονται αυτόματα όλες οι εγγραφές που περιέχουν αυτό το πεδίο στον πίνακα που έχει τη σχέση “πολλά”.

Για παράδειγμα, αν έχω ορίσει να ισχύει η διαδοχική ενημέρωση στη σχέση του πίνακα πελατών με τον πίνακα παραγγελιών και αλλάξω τον κωδικό ενός πελάτη, τότε αυτόματα ενημερώνονται στον πίνακα παραγγελιών, όλες οι παραγγελίες που έκανε ο συγκεκριμένος πελάτης, όπου αντικαθίσταται ο παλιός κωδικός με τον καινούργιο κωδικό.

Τι σημαίνει η Διαδοχική Διαγραφή (Cascade Delete);

Σημαίνει ότι, αν σε μια σχέση που συνδέει δύο πίνακες, διαγράψω μια εγγραφή στον πίνακα που έχει τη σχέση “ένα”, τότε διαγράφονται αυτόματα όλες οι εγγραφές που περιέχουν αυτό το πεδίο στον πίνακα που έχει τη σχέση “πολλά”.

Για παράδειγμα, αν έχω ορίσει να ισχύει η διαδοχική διαγραφή στη σχέση του πίνακα πελατών με τον πίνακα παραγγελιών και διαγράψω έναν πελάτη, τότε αυτόματα διαγράφονται στον πίνακα παραγγελιών, όλες οι παραγγελίες που έκανε ο συγκεκριμένος πελάτης. Σημειώστε ότι, στην Access δεν μπορώ να διαγράψω ένα πεδίο, αλλά μια ολόκληρη εγγραφή.

Τι σημαίνει η σχέση ένα προς πολλά (one to many);

Σημαίνει ότι, σε μια εγγραφή του ενός πίνακα, αντιστοιχούν πολλές εγγραφές του άλλου πίνακα, αλλά σε μια εγγραφή του δεύτερου πίνακα, αντιστοιχεί μία μόνο εγγραφή του πρώτου πίνακα.

Παραδείγματα :

Ένας πελάτης κάνει πολλές παραγγελίες, αλλά μια παραγγελία ανήκει μόνο σ’ έναν πελάτη.

Σ’ ένα νοσοκομείο, ένας γιατρός μπορεί να παρακολουθεί πολλούς ασθενείς, αλλά ένας ασθενής παρακολουθείται μόνο από έναν γιατρό.

Ένας υπάλληλος σε μια διεύθυνση συγκοινωνιών καταχωρεί πολλά διπλώματα, αλλά ένα δίπλωμα καταχωρείται μόνο από έναν υπάλληλο.

Τι σημαίνει η σχέση πολλά προς πολλά (many to many);

Σημαίνει ότι, σε μια εγγραφή του ενός πίνακα, αντιστοιχούν πολλές εγγραφές του άλλου πίνακα, αλλά και σε μια εγγραφή του δεύτερου πίνακα, αντιστοιχούν πολλές εγγραφές του πρώτου πίνακα.

Παραδείγματα :

Ένας καθηγητής διδάσκει σε πολλούς μαθητές, αλλά και ένας μαθητής διδάσκεται από πολλούς καθηγητές.

Ένας ιδιοκτήτης μπορεί να έχει στην κατοχή του πολλά ακίνητα, αλλά και ένα ακίνητο μπορεί να ανήκει σε πολλούς ιδιοκτήτες.

Ένας αθλητής παίρνει μέρος σε πολλούς αγώνες, αλλά και σ’ έναν αγώνα παίρνουν μέρος πολλοί αθλητές.

Τι σημαίνει η σχέση ένα προς ένα (one to one);

Σημαίνει ότι, σε μια εγγραφή του ενός πίνακα, αντιστοιχεί μία μόνο εγγραφή του άλλου πίνακα, και αλλά σε μια εγγραφή του δεύτερου πίνακα, αντιστοιχεί μία μόνο εγγραφή του πρώτου πίνακα.

Παραδείγματα :

Ένας οδηγός μπορεί να έχει ένα μόνο δίπλωμα οδήγησης, αλλά και ένα δίπλωμα οδήγησης ανήκει μόνο σ’ έναν οδηγό.

Ένα αυτοκίνητο μπορεί να έχει μόνο μία μηχανή, αλλά και μία μηχανή ανήκει μόνο σ’ ένα αυτοκίνητο.

Ένας νομός μπορεί να έχει μόνο μία πόλη σαν πρωτεύουσα, αλλά και μία πόλη μπορεί να είναι πρωτεύουσα μόνο ενός νομού.

Η Access υποστηρίζει μόνο σχέσεις ένα προς πολλά. Αν, όμως, έχω μια σχέση πολλά προς πολλά, τότε τι πρέπει να κάνω;

Η λύση είναι η δημιουργία ενός τρίτου πίνακα, ο οποίος θα περιέχει τα πρωτεύοντα κλειδιά των δύο άλλων πινάκων. Οι σχέσεις που θα δημιουργηθούν έτσι, μεταξύ των δύο αρχικών πινάκων και του τρίτου πίνακα, θα είναι σχέσεις ένα προς πολλά.

Στα παραδείγματα που υπάρχουν παραπάνω, θα μπορούσαμε π.χ. για τη σχέση των ιδιοκτητών με τα ακίνητα, να ορίσουμε έναν τρίτο πίνακα, με πεδία τον κωδικό ιδιοκτήτη, τον κωδικό ακινήτου και το ποσοστό που έχει ο ιδιοκτήτης σ’ αυτό το οικόπεδο. Έτσι, ο πίνακας των ιδιοκτητών και ο πίνακας των ακινήτων θα έχουν μια σχέση ένα προς πολλά με τον πίνακα αυτόν.

Η Access υποστηρίζει μόνο σχέσεις ένα προς πολλά. Αν, όμως, έχω μια σχέση ένα προς ένα, τότε τι πρέπει να κάνω;

Πολύ απλά, μπορούμε να δημιουργήσουμε έναν μόνο πίνακα, που θα περιέχει τις εγγραφές και των δύο πινάκων ενωμένες μία-μία. Π.χ. για την περίπτωση του πίνακα των νομών και του πίνακα των πόλεων, θα μπορούσαμε να δημιουργήσουμε έναν νέο πίνακα, όπου η κάθε εγγραφή θα περιέχει τα στοιχεία του νομού και τα στοιχεία της πόλης που είναι πρωτεύουσα του νομού.

 

ΠΛΗ.ΝΕ.Τ

Αν βρήκατε το άρθρο μας χρήσιμο, θέλετε να μείνετε ενημερωμένοι για όλα τα νέα στο τομέα της τεχνολογίας καθώς και σε χρηστικά άρθρα, βοηθήστε μας κάνοντας like στην σελίδα μας στο Facebook πατώντας εδώ

Series NavigationΜαθήματα στην Access (Μέρος 2) >>
(Visited 606 times, 1 visits today)
Ετικέτες: Last modified: 17/10/2019