Βασικές αρχές σχεδίασης βάσης δεδομένων

Βασικές αρχές σχεδίασης βάσης δεδομένων

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

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

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

Σε αυτό το άρθρο

Ορισμένοι όροι βάσης δεδομένων που πρέπει να γνωρίζετε

Τι είναι η καλή σχεδίαση βάσης δεδομένων;

Η διαδικασία σχεδίασης

Προσδιορισμός του σκοπού της βάσης δεδομένων

Εύρεση και οργάνωση των απαιτούμενων πληροφοριών

Διαίρεση των πληροφοριών σε πίνακες

Μετατροπή στοιχείων πληροφοριών σε στήλες

Καθορισμός πρωτευόντων κλειδιών

Δημιουργία σχέσεων πινάκων

Τελειοποίηση της σχεδίασης

Εφαρμογή των κανόνων κανονικοποίησης


Ορισμένοι όροι βάσης δεδομένων που πρέπει να γνωρίζετε

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

Εικόνα τριών πινάκων σε φύλλα δεδομένων

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

Αρχή της σελίδας

Τι είναι η καλή σχεδίαση βάσης δεδομένων;

Ορισμένες αρχές καθοδηγούν τη διαδικασία σχεδίασης της βάσης δεδομένων. Η πρώτη αρχή είναι ότι οι διπλότυπες πληροφορίες (που ονομάζεται επίσης περιττά δεδομένα) είναι κακές, επειδή σπαταλούν χώρο και αυξάνουν την πιθανότητα σφαλμάτων και αντιφάσεων. Η δεύτερη αρχή είναι ότι η ορθότητα και η πληρότητα των πληροφοριών είναι σημαντική. Εάν η βάση δεδομένων σας περιέχει εσφαλμένες πληροφορίες, οποιεσδήποτε αναφορές που αποσύρουν πληροφορίες από τη βάση δεδομένων θα περιέχουν επίσης εσφαλμένες πληροφορίες. Ως αποτέλεσμα, οι όποιες αποφάσεις που κάνετε και βασίζονται σε αυτές τις αναφορές θα παραπληροφορούνται.

Ένα καλό σχέδιο βάσης δεδομένων είναι, επομένως, ένα που:

  • Διαιρεί τις πληροφορίες σας σε πίνακες βάσει θέματος για τη μείωση των περιττών δεδομένων.

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

  • Βοηθά στην υποστήριξη και στην εξασφάλιση της ακρίβειας και της ακεραιότητας των πληροφοριών σας.

  • Προσαρμόζει τις ανάγκες επεξεργασίας και αναφοράς των δεδομένων σας.

Αρχή της σελίδας

Η διαδικασία σχεδίασης

Η διαδικασία σχεδίασης αποτελείται από τα παρακάτω βήματα:

  • Καθορίστε το σκοπό που θα εξυπηρετεί η βάση δεδομένων σας    

    Αυτό σας βοηθά να προετοιμάσετε τα υπόλοιπα βήματα.

  • Βρείτε και οργανώστε τις απαιτούμενες πληροφορίες     

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

  • Διαίρεση των πληροφοριών σε πίνακες    

    Χωρίστε τα στοιχεία πληροφοριών σας σε μεγάλες οντότητες ή θέματα, όπως προϊόντα ή παραγγελίες. Κάθε θέμα μετατρέπεται σε πίνακα.

  • Ενεργοποίηση στοιχείων πληροφοριών σε στήλες    

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

  • Καθορισμός πρωτευόντων κλειδιών    

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

  • Ρύθμιση των σχέσεων πινάκων    

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

  • Περιορίστε τη σχεδίασή σας    

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

  • Εφαρμογή των κανόνων κανονικοποίησης    

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

Αρχή της σελίδας

Προσδιορισμός του σκοπού της βάσης δεδομένων

Είναι καλή ιδέα να καταγράψετε το σκοπό της βάσης δεδομένων σε χαρτί — τον σκοπό της, τον τρόπο με τον οποίο αναμένετε να τη χρησιμοποιήσετε και ποιος θα τη χρησιμοποιήσει. Για μια μικρή βάση δεδομένων για μια επιχείρηση με έδρα το σπίτι, για παράδειγμα, μπορείτε να γράψετε κάτι απλό, όπως "η βάση δεδομένων πελατών διατηρεί μια λίστα με πληροφορίες πελατών για τον σκοπό της παραγωγής αλληλογραφίας και αναφορών." Εάν η βάση δεδομένων είναι πιο σύνθετη ή χρησιμοποιείται από πολλά άτομα, όπως συμβαίνει συχνά σε μια εταιρική ρύθμιση, ο σκοπός μπορεί εύκολα να είναι μια παράγραφος ή περισσότερο και θα πρέπει να περιλαμβάνει το πότε και τον τρόπο με τον οποίο κάθε άτομο θα χρησιμοποιεί τη βάση δεδομένων. Η ιδέα είναι να έχετε μια καλά ανεπτυγμένη δήλωση αποστολής που μπορεί να αναφέρεται σε όλη τη διαδικασία σχεδιασμού. Η πραγματοποίηση μιας τέτοιας δήλωσης σάς βοηθά να εστιάσετε στους στόχους σας όταν λαμβάνετε αποφάσεις.

Αρχή της σελίδας

Εύρεση και οργάνωση των απαιτούμενων πληροφοριών

Για να εντοπίσετε και να οργανώσετε τις απαιτούμενες πληροφορίες, ξεκινήστε με τις υπάρχουσες πληροφορίες σας. Για παράδειγμα, μπορείτε να καταγράψετε παραγγελίες αγοράς σε ένα καθολικό ή να διατηρήσετε τις πληροφορίες πελατών σε έντυπες φόρμες σε μια αρχειοθήκη αρχείων. Συγκεντρώστε αυτά τα έγγραφα και καταγράψτε κάθε τύπο πληροφοριών που εμφανίζονται (για παράδειγμα, κάθε πλαίσιο που συμπληρώνετε σε μια φόρμα). Εάν δεν έχετε υπάρχουσες φόρμες, φανταστείτε ότι πρέπει να σχεδιάσετε μια φόρμα για να καταγράψετε τις πληροφορίες πελάτη. Ποιες πληροφορίες θα βάλετε στη φόρμα; Ποια πλαίσια συμπλήρωσης θα δημιουργήσετε; Προσδιορίστε και παραθέσετε κάθε ένα από αυτά τα στοιχεία. Για παράδειγμα, ας υποθέσουμε ότι αυτή τη στιγμή διατηρείτε τη λίστα πελατών σε κάρτες ευρετηρίου. Η εξέταση αυτών των καρτών μπορεί να δείξει ότι κάθε κάρτα διαθέτει όνομα, διεύθυνση, πόλη, πολιτεία, ταχυδρομικό κώδικα και αριθμό τηλεφώνου για τους πελάτες. Κάθε ένα από αυτά τα στοιχεία αντιπροσωπεύει μια πιθανή στήλη σε έναν πίνακα.

Καθώς προετοιμάζετε αυτή τη λίστα, μην ανησυχείτε ότι θα είναι τέλεια στην αρχή. Αντί για αυτό, παραθέσετε κάθε στοιχείο που σας έρχεται στο νου. Εάν κάποιος άλλος χρήστης θα χρησιμοποιεί τη βάση δεδομένων, ζητήστε και αυτές τις ιδέες της. Μπορείτε να βελτιώσετε τη λίστα αργότερα.

Στη συνέχεια, εξετάστε τους τύπους αναφορών ή αλληλογραφίας που μπορεί να θέλετε να παραγάγετε από τη βάση δεδομένων. Για παράδειγμα, μπορεί να θέλετε μια αναφορά πωλήσεων προϊόντων να εμφανίζει τις πωλήσεις ανά περιοχή ή μια αναφορά σύνοψης απογραφής που εμφανίζει επίπεδα αποθέματος προϊόντων. Μπορεί επίσης να θέλετε να δημιουργήσετε φόρμες επιστολών για αποστολή σε πελάτες που ανακοινώνει ένα συμβάν πώλησης ή προσφέρει ένα ασφάλιστρο. Σχεδιάστε την αναφορά στο νου σας και φανταστείτε πώς θα έμοιαζε. Ποιες πληροφορίες θα τοποθετήσετε στην αναφορά; Λίστα κάθε στοιχείου. Κάντε το ίδιο για τη φόρμα επιστολής και για οποιαδήποτε άλλη αναφορά που προβλέπετε να δημιουργήσετε.

Ένα άτομο που φαντάζεται μια έκθεση απογραφής προϊόντων

Η παροχή σκέψης στις αναφορές και τις λίστες αλληλογραφίας που ίσως θέλετε να δημιουργήσετε σάς βοηθά να προσδιορίσετε στοιχεία που θα χρειαστείτε στη βάση δεδομένων σας. Για παράδειγμα, ας υποθέσουμε ότι παρέχετε στους πελάτες τη δυνατότητα να επιλέξουν (ή να βγουν από) περιοδικές ενημερώσεις ηλεκτρονικού ταχυδρομείου και θέλετε να εκτυπώσετε μια λίστα με όσους έχουν επιλέξει. Για να καταγράψετε αυτές τις πληροφορίες, προσθέστε μια στήλη "Αποστολή μηνύματος ηλεκτρονικού ταχυδρομείου" στον πίνακα πελατών. Για κάθε πελάτη, μπορείτε να καθορίσετε το πεδίο σε "Ναι" ή "όχι".

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

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

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

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

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

Αρχή της σελίδας

Διαίρεση των πληροφοριών σε πίνακες

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

Χειρόγραφα στοιχεία πληροφοριών ομαδοποιημένα κατά θέματα

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

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

Εικόνα που δείχνει έναν πίνακα που περιέχει και προϊόντα και προμηθευτές

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

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

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

Τέλος, ας υποθέσουμε ότι υπάρχει μόνο ένα προϊόν που παρέχεται από το οινοποιείο και θέλετε να διαγράψετε το προϊόν, αλλά να διατηρήσετε το όνομα του προμηθευτή και τα στοιχεία της διεύθυνσης. Πώς μπορείτε να διαγράψετε την εγγραφή προϊόντος χωρίς να χάσετε και τις πληροφορίες του προμηθευτή; Δεν μπορείτε να το κάνετε. Επειδή κάθε εγγραφή περιέχει στοιχεία σχετικά με ένα προϊόν, καθώς και στοιχεία για έναν προμηθευτή, δεν μπορείτε να διαγράψετε ένα χωρίς να διαγράψετε το άλλο. Για να διατηρήσετε αυτά τα γεγονότα ξεχωριστά, πρέπει να διαιρέσετε τον έναν πίνακα σε δύο: έναν πίνακα για τις πληροφορίες προϊόντος και έναν άλλο πίνακα για πληροφορίες προμηθευτή. Η διαγραφή μιας εγγραφής προϊόντος θα πρέπει να διαγράψει μόνο τα γεγονότα σχετικά με το προϊόν και όχι τα γεγονότα για τον προμηθευτή.

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

Αρχή της σελίδας

Μετατροπή στοιχείων πληροφοριών σε στήλες

Για να καθορίσετε τις στήλες σε έναν πίνακα, αποφασίστε ποιες πληροφορίες πρέπει να παρακολουθείτε σχετικά με το θέμα που έχει καταγραφεί στον πίνακα. Για παράδειγμα, για τον πίνακα "πελάτες", το όνομα, τη διεύθυνση, το City-State-zip, την αποστολή ηλεκτρονικού ταχυδρομείου, τον χαιρετισμό και τη διεύθυνση ηλεκτρονικού ταχυδρομείου αποτελούν μια καλή λίστα αρχικών στηλών. Κάθε εγγραφή στον πίνακα περιέχει το ίδιο τμήμα στηλών, ώστε να μπορείτε να αποθηκεύετε το όνομα, τη διεύθυνση, την πόλη-μέλος-ΤΚ, να στέλνετε μηνύματα ηλεκτρονικού ταχυδρομείου, χαιρετισμούς και πληροφορίες διεύθυνσης ηλεκτρονικού ταχυδρομείου για κάθε εγγραφή. Για παράδειγμα, η στήλη διεύθυνση περιέχει τις διευθύνσεις των πελατών. Κάθε εγγραφή περιέχει δεδομένα σχετικά με έναν πελάτη και το πεδίο "διεύθυνση" περιέχει τη διεύθυνση του συγκεκριμένου πελάτη.

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

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

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

  • Να μην συμπεριλαμβάνονται υπολογιζόμενα δεδομένα    

    Στις περισσότερες περιπτώσεις, δεν πρέπει να αποθηκεύετε το αποτέλεσμα των υπολογισμών σε πίνακες. Αντί για αυτό, μπορείτε να κάνετε την Access να εκτελεί τους υπολογισμούς όταν θέλετε να δείτε το αποτέλεσμα. Για παράδειγμα, ας υποθέσουμε ότι υπάρχει μια αναφορά Products on Order, η οποία εμφανίζει το μερικό άθροισμα των μονάδων με παραγγελία για κάθε κατηγορία προϊόντος στη βάση δεδομένων. Ωστόσο, δεν υπάρχουν μονάδες στη στήλη μερικό άθροισμα παραγγελιών σε οποιονδήποτε πίνακα. Αντ ' αυτού, ο πίνακας "προϊόντα" περιλαμβάνει μια στήλη "μονάδες με παραγγελία" που αποθηκεύει τις μονάδες με παραγγελία για κάθε προϊόν. Χρησιμοποιώντας αυτά τα δεδομένα, η Access υπολογίζει το μερικό άθροισμα κάθε φορά που εκτυπώνετε την αναφορά. Το μερικό άθροισμα από μόνο του δεν πρέπει να αποθηκευτεί σε έναν πίνακα.

  • Αποθήκευση πληροφοριών στα μικρότερα λογικά μέρη του    

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

Εικόνα που εμφανίζει στοιχεία πληροφοριών κατά τη διαδικασία σχεδίασης

Αφού βελτιώσετε τις στήλες δεδομένων σε κάθε πίνακα, είστε έτοιμοι να επιλέξετε το πρωτεύον κλειδί κάθε πίνακα.

Αρχή της σελίδας

Καθορισμός πρωτευόντων κλειδιών

Κάθε πίνακας πρέπει να περιλαμβάνει μια στήλη ή ένα τμήμα στηλών που προσδιορίζει με μοναδικό τρόπο κάθε γραμμή που είναι αποθηκευμένη στον πίνακα. Αυτός είναι συχνά ένας μοναδικός αναγνωριστικός αριθμός, όπως ένας αριθμός ΑΝΑΓΝΩΡΙΣΤΙΚού υπαλλήλου ή ένας σειριακός αριθμός. Στην ορολογία της βάσης δεδομένων, αυτές οι πληροφορίες καλούνται το πρωτεύον κλειδί του πίνακα. Η Access χρησιμοποιεί πεδία πρωτεύοντος κλειδιού για να συσχετίσει γρήγορα δεδομένα από πολλούς πίνακες και να συγκεντρώσει τα δεδομένα για εσάς.

Εάν έχετε ήδη ένα μοναδικό αναγνωριστικό για έναν πίνακα, όπως έναν αριθμό προϊόντος που προσδιορίζει με μοναδικό τρόπο κάθε προϊόν στον κατάλογό σας, μπορείτε να χρησιμοποιήσετε αυτό το αναγνωριστικό ως το πρωτεύον κλειδί του πίνακα — αλλά μόνο εάν οι τιμές σε αυτήν τη στήλη θα είναι πάντα διαφορετικές για κάθε εγγραφή. Δεν μπορείτε να έχετε διπλότυπες τιμές σε ένα πρωτεύον κλειδί. Για παράδειγμα, μην χρησιμοποιείτε τα ονόματα των ατόμων ως πρωτεύον κλειδί, επειδή τα ονόματα δεν είναι μοναδικά. Θα μπορούσατε εύκολα να έχετε δύο άτομα με το ίδιο όνομα στον ίδιο πίνακα.

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

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

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

Εάν δεν έχετε υπόψη μια στήλη ή ένα σύνολο στηλών που μπορεί να είναι ένα καλό πρωτεύον κλειδί, εξετάστε το ενδεχόμενο να χρησιμοποιήσετε μια στήλη που έχει τον τύπο δεδομένων "Αυτόματη αρίθμηση". Όταν χρησιμοποιείτε τον τύπο δεδομένων "Αυτόματη αρίθμηση", η Access εκχωρεί αυτόματα μια τιμή για εσάς. Ένα τέτοιο αναγνωριστικό είναι γεγονός. Δεν περιέχει πραγματικές πληροφορίες που περιγράφουν τη γραμμή που αντιπροσωπεύει. Τα αναγνωριστικά χωρίς δεδομένο είναι ιδανικά για χρήση ως πρωτεύον κλειδί, επειδή δεν αλλάζουν. Ένα πρωτεύον κλειδί που περιέχει στοιχεία σχετικά με μια γραμμή — έναν αριθμό τηλεφώνου ή ένα όνομα πελάτη, για παράδειγμα — είναι πιο πιθανό να αλλάξει, επειδή οι πληροφορίες για τα πραγματικά περιστατικά ενδέχεται να αλλάξουν.

Εικόνα που αναπαριστά τον πίνακα Προϊόντα με πεδίο πρωτεύοντος κλειδιού

1. μια στήλη που έχει καθοριστεί για τον τύπο δεδομένων "Αυτόματη αρίθμηση" συχνά δημιουργεί ένα καλό πρωτεύον κλειδί. Δεν υπάρχουν δύο αναγνωριστικά προϊόντων τα ίδια.

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

Για τη βάση δεδομένων πωλήσεων προϊόντων, μπορείτε να δημιουργήσετε μια στήλη "Αυτόματη αρίθμηση" για κάθε έναν από τους πίνακες που θα χρησιμεύσει ως πρωτεύον κλειδί: Αναγνωριστικό προϊόντος για τον πίνακα "προϊόντα", ΚωδΠαραγγελίας για τον πίνακα "Παραγγελίες", "" Αναγνωριστικόπελάτη "" για τον πίνακα "πελάτες" και προμηθευτή για τον πίνακα "Προμηθευτές".

Εικόνα που εμφανίζει στοιχεία πληροφοριών κατά τη διαδικασία σχεδίασης


Αρχή της σελίδας

Δημιουργία σχέσεων πινάκων

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

Η φόρμα Παραγγελίες

1. Οι πληροφορίες σε αυτή τη φόρμα προέρχονται από τον πίνακα "Πελάτες"...

2.... ο πίνακας Employees...

3.... ο πίνακας "Παραγγελίες"...

4.... ο πίνακας "προϊόντα"...

5.... και τον πίνακα "Λεπτομέρειες παραγγελίας".

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

Αρχή της σελίδας

Δημιουργία σχέσης "ένα-προς-πολλά"

Εξετάστε αυτό το παράδειγμα: τους πίνακες "Προμηθευτές" και "προϊόντα" στη βάση δεδομένων "παραγγελίες προϊόντων". Ένας προμηθευτής μπορεί να παρέχει οποιονδήποτε αριθμό προϊόντων. Επομένως, για οποιονδήποτε προμηθευτή που αντιπροσωπεύεται στον πίνακα "Προμηθευτές", μπορεί να υπάρχουν πολλά προϊόντα που αντιπροσωπεύονται στον πίνακα "προϊόντα". Η σχέση μεταξύ του πίνακα "Προμηθευτές" και του πίνακα "προϊόντα" είναι, επομένως, μια σχέση "ένα-προς-πολλά".

Η έννοια ένα-προς-πολλά

Για να αντιπροσωπεύσετε μια σχέση ένα-προς-πολλά στη σχεδίαση της βάσης δεδομένων σας, πάρτε το πρωτεύον κλειδί στην πλευρά "ένα" της σχέσης και προσθέστε το ως πρόσθετη στήλη ή στήλες στον πίνακα στην πλευρά "πολλά" της σχέσης. Σε αυτή την περίπτωση, για παράδειγμα, μπορείτε να προσθέσετε τη στήλη "Αναγνωριστικό προμηθευτή" από τον πίνακα "Προμηθευτές" στον πίνακα "προϊόντα". Στη συνέχεια, η Access μπορεί να χρησιμοποιήσει τον αριθμό ΑΝΑΓΝΩΡΙΣΤΙΚού προμηθευτή στον πίνακα "προϊόντα" για να εντοπίσει τον σωστό προμηθευτή για κάθε προϊόν.

Η στήλη "Αναγνωριστικό προμηθευτή" στον πίνακα "προϊόντα" ονομάζεται εξωτερικό κλειδί. Το εξωτερικό κλειδί είναι το πρωτεύον κλειδί ενός άλλου πίνακα. Η στήλη "Αναγνωριστικό προμηθευτή" στον πίνακα "προϊόντα" είναι ένα εξωτερικό κλειδί, επειδή είναι επίσης το πρωτεύον κλειδί στον πίνακα "Προμηθευτές".

Εικόνα που εμφανίζει στοιχεία πληροφοριών κατά τη διαδικασία σχεδίασης

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

Αρχή της σελίδας

Δημιουργία σχέσης "πολλά-προς-πολλά"

Εξετάστε τη σχέση μεταξύ του πίνακα "προϊόντα" και του πίνακα "Παραγγελίες".

Μια παραγγελία ενδέχεται να περιλαμβάνει περισσότερα από ένα προϊόντα. Από την άλλη, ένα προϊόν ενδέχεται να εμφανίζεται σε πολλές παραγγελίες. Επομένως, για κάθε εγγραφή στον πίνακα "Παραγγελίες", ενδέχεται να υπάρχουν πολλές εγγραφές στον πίνακα "Προϊόντα". Και για κάθε εγγραφή στον πίνακα "προϊόντα", μπορεί να υπάρχουν πολλές εγγραφές στον πίνακα "Παραγγελίες". Αυτός ο τύπος σχέσης ονομάζεται σχέση "πολλά προς πολλά", επειδή για οποιοδήποτε προϊόν, μπορεί να υπάρχουν πολλές παραγγελίες. και για οποιαδήποτε παραγγελία, μπορεί να υπάρχουν πολλά προϊόντα. Σημειώστε ότι για να ανιχνεύσετε σχέσεις πολλών-προς-πολλά μεταξύ των πινάκων σας, είναι σημαντικό να εξετάσετε και τις δύο πλευρές της σχέσης.

Τα θέματα των δύο πινάκων — παραγγελίες και προϊόντα — έχουν σχέση πολλά-προς-πολλά. Αυτό παρουσιάζει πρόβλημα. Για να κατανοήσετε το πρόβλημα, φανταστείτε τι θα συνέβαινε εάν προσπαθούσατε να δημιουργήσετε τη σχέση μεταξύ των δύο πινάκων προσθέτοντας το πεδίο "Αναγνωριστικό προϊόντος" στον πίνακα "Παραγγελίες". Για να έχετε περισσότερα από ένα προϊόντα ανά παραγγελία, χρειάζεστε περισσότερες από μία εγγραφές στον πίνακα Orders ανά παραγγελία. Θα επαναλαμβάνετε τις πληροφορίες παραγγελιών για κάθε γραμμή που σχετίζεται με μια μεμονωμένη παραγγελία, με αποτέλεσμα μια μη αποτελεσματική σχεδίαση που μπορεί να οδηγήσει σε ανακριβή δεδομένα. Εάν τοποθετήσετε το πεδίο "Αναγνωριστικό παραγγελίας" στον πίνακα "προϊόντα", θα αντιμετωπίσετε το ίδιο πρόβλημα, θα έχετε περισσότερες από μία εγγραφές στον πίνακα "προϊόντα" για κάθε προϊόν. Πώς μπορείτε να λύσετε αυτό το πρόβλημα;

Η απάντηση είναι να δημιουργήσετε έναν τρίτο πίνακα, ο οποίος συχνά ονομάζεται πίνακας σύνδεσης, ο οποίος διασπά τη σχέση πολλά-προς-πολλά σε σχέσεις 2 1-προς-πολλά. Εσείς εισαγάγετε το πρωτεύον κλειδί για κάθε έναν από τους δύο πίνακες στον τρίτο πίνακα. Ως αποτέλεσμα, ο τρίτος πίνακας καταγράφει κάθε εμφάνιση ή παρουσία της σχέσης.

Σχέση πολλά-προς-πολλά

Κάθε εγγραφή στον πίνακα "Λεπτομέρειες παραγγελίας" αντιπροσωπεύει ένα στοιχείο της σειράς σε μια παραγγελία. Το πρωτεύον κλειδί του πίνακα "Λεπτομέρειες παραγγελίας" αποτελείται από δύο πεδία — τα ξένα κλειδιά από τους πίνακες "Παραγγελίες" και "προϊόντα". Η χρήση του πεδίου "Αναγνωριστικό παραγγελίας" από μόνο του δεν λειτουργεί ως το πρωτεύον κλειδί για αυτόν τον πίνακα, επειδή μία παραγγελία μπορεί να έχει πολλά στοιχεία γραμμή. Το Αναγνωριστικό παραγγελίας επαναλαμβάνεται για κάθε στοιχείο της σειράς σε μια παραγγελία, επομένως το πεδίο δεν περιέχει μοναδικές τιμές. Η χρήση του πεδίου "Αναγνωριστικό προϊόντος" από μόνο του δεν λειτουργεί, επειδή ένα προϊόν μπορεί να εμφανίζεται σε πολλές διαφορετικές παραγγελίες. Αλλά μαζί, τα δύο πεδία παράγουν πάντα μια μοναδική τιμή για κάθε εγγραφή.

Στη βάση δεδομένων πωλήσεων προϊόντων, ο πίνακας "Παραγγελίες" και ο πίνακας "προϊόντα" δεν σχετίζονται άμεσα μεταξύ τους. Αντ ' αυτού, σχετίζονται έμμεσα μέσω του πίνακα "Λεπτομέρειες παραγγελιών". Η σχέση "πολλά-προς-πολλά" μεταξύ παραγγελιών και προϊόντων αντιπροσωπεύεται στη βάση δεδομένων με τη χρήση σχέσεων 2 1-προς-πολλά:

  • Ο πίνακας Orders και ο πίνακας "Λεπτομέρειες παραγγελιών" έχουν σχέση ένα-προς-πολλά. Κάθε παραγγελία μπορεί να έχει περισσότερα από ένα στοιχεία, αλλά κάθε στοιχείο της ουράς είναι συνδεδεμένο μόνο με μία παραγγελία.

  • Ο πίνακας "προϊόντα" και ο πίνακας "Λεπτομέρειες παραγγελιών" έχουν σχέση ένα-προς-πολλά. Κάθε προϊόν μπορεί να έχει πολλά στοιχεία που σχετίζονται με αυτό, αλλά κάθε στοιχείο της σειράς αναφέρεται σε ένα μόνο προϊόν.

Από τον πίνακα "Λεπτομέρειες παραγγελίας", μπορείτε να καθορίσετε όλα τα προϊόντα σε μια συγκεκριμένη παραγγελία. Μπορείτε επίσης να καθορίσετε όλες τις παραγγελίες για ένα συγκεκριμένο προϊόν.

Αφού ενσωματώσετε τον πίνακα "Λεπτομέρειες παραγγελίας", η λίστα των πινάκων και των πεδίων μπορεί να μοιάζει κάπως έτσι:

Εικόνα που εμφανίζει στοιχεία πληροφοριών κατά τη διαδικασία σχεδίασης


Αρχή της σελίδας

Δημιουργία μιας σχέσης ένα-προς-ένα

Ένας άλλος τύπος σχέσης είναι η σχέση "ένα προς ένα". Για παράδειγμα, ας υποθέσουμε ότι πρέπει να καταγράψετε ορισμένες πρόσθετες συμπληρωματικές πληροφορίες για το προϊόν που θα χρειαστείτε σπάνια ή που ισχύουν μόνο για μερικά προϊόντα. Επειδή δεν χρειάζεστε συχνά τις πληροφορίες και επειδή η αποθήκευση των πληροφοριών στον πίνακα "προϊόντα" θα έχει ως αποτέλεσμα τον κενό χώρο για κάθε προϊόν στο οποίο δεν ισχύει, μπορείτε να το τοποθετήσετε σε ξεχωριστό πίνακα. Όπως και ο πίνακας "προϊόντα", μπορείτε να χρησιμοποιήσετε το αναγνωριστικό προϊόντος ως πρωτεύον κλειδί. Η σχέση μεταξύ αυτού του συμπληρωματικού πίνακα και του πίνακα Product είναι μια σχέση ένα-προς-ένα. Για κάθε εγγραφή στον πίνακα προϊόντων, υπάρχει μια μεμονωμένη εγγραφή που ταιριάζει στον συμπληρωματικό πίνακα. Όταν προσδιορίζετε μια τέτοια σχέση, οι δύο πίνακες πρέπει να έχουν ένα κοινό πεδίο.

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

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

  • Εάν οι δύο πίνακες έχουν διαφορετικά θέματα με διαφορετικά πρωτεύοντα κλειδιά, επιλέξτε έναν από τους πίνακες (είτε έναν) και εισαγάγετε το πρωτεύον κλειδί του στον άλλο πίνακα ως εξωτερικό κλειδί.

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

Αρχή της σελίδας

Τελειοποίηση της σχεδίασης

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

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

Καθώς δοκιμάζετε την αρχική σας βάση δεδομένων, θα ανακαλύψετε πιθανώς περιθώρια βελτίωσης. Ακολουθούν ορισμένα πράγματα που πρέπει να αναζητήσετε:

  • Ξεχάσατε καμία στήλη; Εάν Ναι, οι πληροφορίες ανήκουν στους υπάρχοντες πίνακες; Εάν πρόκειται για πληροφορίες σχετικά με κάτι άλλο, ίσως χρειαστεί να δημιουργήσετε έναν άλλο πίνακα. Δημιουργήστε μια στήλη για κάθε στοιχείο πληροφοριών που πρέπει να παρακολουθείτε. Εάν οι πληροφορίες δεν μπορούν να υπολογιστούν από άλλες στήλες, είναι πιθανό ότι θα χρειαστείτε μια νέα στήλη για αυτό.

  • Δεν είναι απαραίτητες οποιεσδήποτε στήλες, επειδή μπορούν να υπολογιστούν από τα υπάρχοντα πεδία; Εάν ένα στοιχείο πληροφοριών μπορεί να υπολογιστεί από άλλες υπάρχουσες στήλες — μια προεξοφλημένη τιμή που υπολογίζεται από την τιμή λιανικής πώλησης, για παράδειγμα — είναι συνήθως προτιμότερο να κάνετε ακριβώς αυτό και να αποφύγετε τη δημιουργία νέας στήλης.

  • Εισέρχεστε επανειλημμένα διπλότυπες πληροφορίες σε έναν από τους πίνακές σας; Εάν Ναι, ίσως χρειαστεί να διαιρέσετε τον πίνακα σε δύο πίνακες που έχουν σχέση ένα-προς-πολλά.

  • Έχετε πίνακες με πολλά πεδία, έναν περιορισμένο αριθμό εγγραφών και πολλά κενά πεδία σε μεμονωμένες εγγραφές; Εάν Ναι, σκεφτείτε να επανασχεδιάσετε τον πίνακα, ώστε να έχει λιγότερα πεδία και περισσότερες εγγραφές.

  • Έχει διασπαστεί κάθε στοιχείο πληροφοριών στα μικρότερα χρήσιμα τμήματά του; Εάν πρέπει να αναφέρετε, να ταξινομήστε, να αναζητήσετε ή να υπολογίσετε ένα στοιχείο πληροφοριών, τοποθετήστε αυτό το στοιχείο στη δική του στήλη.

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

  • Είναι όλες οι σχέσεις μεταξύ των πινάκων αντιπροσωπευόμενες, είτε με κοινά πεδία είτε με έναν τρίτο πίνακα; Οι σχέσεις ένα προς ένα και ένα-προς-πολλά απαιτούν κοινές στήλες. Οι σχέσεις "πολλά-προς-πολλά" απαιτούν έναν τρίτο πίνακα.

Τελειοποίηση του πίνακα "προϊόντα"

Ας υποθέσουμε ότι κάθε προϊόν στη βάση δεδομένων πωλήσεων προϊόντων ανήκει σε μια γενική κατηγορία, όπως ποτά, καρυκεύματα ή θαλασσινά. Ο πίνακας "προϊόντα" μπορεί να περιλαμβάνει ένα πεδίο που εμφανίζει την κατηγορία για κάθε προϊόν.

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

Μια καλύτερη λύση είναι να κάνετε τις κατηγορίες ένα νέο θέμα για την παρακολούθηση της βάσης δεδομένων, με τον δικό της πίνακα και το δικό της πρωτεύον κλειδί. Στη συνέχεια, μπορείτε να προσθέσετε το πρωτεύον κλειδί από τον πίνακα "κατηγορίες" στον πίνακα "προϊόντα" ως εξωτερικό κλειδί.

Οι πίνακες "κατηγορίες" και "προϊόντα" έχουν σχέση "ένα-προς-πολλά": μια κατηγορία μπορεί να περιλαμβάνει περισσότερα από ένα προϊόντα, αλλά ένα προϊόν μπορεί να ανήκει σε μία μόνο κατηγορία.

Όταν εξετάζετε τις δομές του πίνακα, να είστε σε επιφυλακή για επαναλαμβανόμενες ομάδες. Για παράδειγμα, εξετάστε έναν πίνακα που περιέχει τις ακόλουθες στήλες:

  • Αναγνωριστικό προϊόντος

  • Όνομα

  • ID1 προϊόντος

  • Name1

  • ID2 προϊόντος

  • Name2

  • Προϊόν ID3

  • Name3

Εδώ, κάθε προϊόν είναι μια επαναλαμβανόμενη ομάδα στηλών που διαφέρει από τις άλλες μόνο με την προσθήκη ενός αριθμού στο άκρο του ονόματος της στήλης. Όταν βλέπετε αριθμημένες στήλες με αυτόν τον τρόπο, θα πρέπει να επισκεφθείτε ξανά τη σχεδίασή σας.

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

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

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

Αρχή της σελίδας

Εφαρμογή των κανόνων κανονικοποίησης

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

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

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

Πρώτη κανονική φόρμα

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

Δεύτερη κανονική φόρμα

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

  • Αναγνωριστικό παραγγελίας (πρωτεύον κλειδί)

  • Αναγνωριστικό προϊόντος (πρωτεύον κλειδί)

  • Όνομα προϊόντος

Αυτή η σχεδίαση παραβιάζει τη δεύτερη κανονική φόρμα, επειδή το όνομα προϊόντος εξαρτάται από το αναγνωριστικό προϊόντος, αλλά όχι από το Αναγνωριστικό παραγγελίας, επομένως δεν εξαρτάται από ολόκληρο το πρωτεύον κλειδί. Πρέπει να καταργήσετε το όνομα του προϊόντος από τον πίνακα. Ανήκει σε διαφορετικό πίνακα (προϊόντα).

Τρίτη κανονική φόρμα

Η τρίτη κανονική φόρμα απαιτεί ότι όχι μόνο κάθε μη βασική στήλη θα εξαρτάται από ολόκληρο το πρωτεύον κλειδί, αλλά ότι οι στήλες χωρίς κλειδί θα είναι ανεξάρτητες μεταξύ τους.

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

  • Αναγνωριστικό προϊόντος (πρωτεύον κλειδί)

  • Όνομα

  • SRP

  • Προεξόφληση

Ας υποθέσουμε ότι η έκπτωση εξαρτάται από την προτεινόμενη τιμή λιανικής πώλησης (SRP). Αυτός ο πίνακας παραβιάζει την τρίτη κανονική φόρμα, επειδή μια μη-βασική στήλη, η έκπτωση, εξαρτάται από μια άλλη μη βασική στήλη, το SRP. Η δυνατότητα "ανεξαρτησία στηλών" σημαίνει ότι θα πρέπει να έχετε τη δυνατότητα να αλλάξετε οποιαδήποτε μη βασική στήλη χωρίς να επηρεαστεί οποιαδήποτε άλλη στήλη. Εάν αλλάξετε μια τιμή στο πεδίο SRP, η έκπτωση θα αλλάξει ανάλογα, παραβιάζοντας έτσι αυτόν τον κανόνα. Σε αυτή την περίπτωση, η έκπτωση θα πρέπει να μετακινηθεί σε άλλο πίνακα που έχει πληκτρολογηθεί με το SRP.

Αρχή της σελίδας

Χρειάζεστε περισσότερη βοήθεια;

Αναπτύξτε τις δεξιότητές σας στο Office
Εξερευνήστε το περιεχόμενο της εκπαίδευσης
Αποκτήστε πρώτοι τις νέες δυνατότητες
Γίνετε μέλος του Office Insider

Σας βοήθησαν αυτές οι πληροφορίες;

Σας ευχαριστούμε για τα σχόλιά σας!

Σας ευχαριστούμε για τα σχόλιά σας! Φαίνεται ότι μπορεί να είναι χρήσιμο να συνδεθείτε με έναν από τους συνεργάτες υποστήριξης του Office.

×