Περιγραφή από τα βασικά στοιχεία της κανονικοποίησης βάσεων δεδομένων

Μεταφράσεις άρθρων Μεταφράσεις άρθρων
Αναγν. άρθρου: 283878 - Δείτε τα προϊόντα στα οποία αναφέρεται το συγκεκριμένο άρθρο.
Αρχάριοι χρήστες: Απαιτεί γνώση του περιβάλλοντος εργασίας σε υπολογιστές ενός χρήστη.

Για την έκδοση της Microsoft Access 2000 αυτού του άρθρου, ανατρέξτε στην ενότητα 209534.
Για ένα Microsoft Access 95 ή Microsoft Access 97 έκδοση αυτού του άρθρου, ανατρέξτε στην ενότητα 100139.
Ανάπτυξη όλων | Σύμπτυξη όλων

Σε αυτήν τη σελίδα

Περίληψη

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

ΣΗΜΕΊΩΣΗ: η Microsoft παρέχει επίσης μια εκπομπή που ασχολείται με τα βασικά στοιχεία της κανονικοποίησης της βάσης δεδομένων. Για να προβάλετε αυτήν την εκπομπή στο Web, επισκεφθείτε την ακόλουθη τοποθεσία της Microsoft στο Web:
http://support.Microsoft.com/servicedesks/WebCasts/wc060600/wc060600.asp?FR=1

Περισσότερες πληροφορίες

Περιγραφή της κανονικοποίησης

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

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

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

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

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

Τις παρακάτω περιγραφές περιλαμβάνουν παραδείγματα.

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

  • Εξάλειψη επαναλαμβανόμενων ομάδων σε μεμονωμένους πίνακες.
  • Δημιουργήστε έναν ξεχωριστό πίνακα για κάθε σύνολο συσχετισμένων δεδομένων.
  • Αναγνώριση κάθε σύνολο δεδομένων σχετικά με ένα πρωτεύον κλειδί.
Μην χρησιμοποιείτε πολλά πεδία σε έναν πίνακα για την αποθήκευση παρόμοια δεδομένα. Για παράδειγμα, για να παρακολουθήσετε ένα είδος αποθέματος που μπορεί να προέρχονται από δύο πιθανές πηγές, εγγραφή αποθεμάτων μπορεί να περιέχει πεδία για 1 κωδικό προμηθευτή και 2 κωδικό προμηθευτή.

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

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

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

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

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

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

ΕΞΑΊΡΕΣΗ: Προσκολλημένο στην τρίτη κανονική φόρμα, ενώ θεωρητικά επιθυμητό, δεν είναι πάντα πρακτική. Εάν έχετε έναν πίνακα "πελάτες" και θέλετε να εξαλείψετε όλες τις πιθανές εξαρτήσεις interfield, πρέπει να δημιουργήσετε ξεχωριστούς πίνακες για τις πόλεις, ΤΑΧΥΔΡΟΜΙΚΟΎΣ κώδικες, τους αντιπροσώπους πωλήσεων, κατηγορίες πελατών και κάθε άλλο στοιχείο που μπορεί να αναπαραχθεί σε πολλαπλές εγγραφές. Θεωρητικά, κανονικοποίηση αξίζει να ασκεί επαγγελματική δραστηριότητα. Ωστόσο, πολλές μικρών πινάκων μπορεί να υποβαθμίσουν τις επιδόσεις ή να υπερβαίνει το άνοιγμα αρχείου και χωρητικότητα μνήμης.

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

Άλλα πρότυπα κανονικοποίησης

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

Κανονικοποίηση ένα παράδειγμα πίνακα

Τα παρακάτω βήματα δείχνουν τη διαδικασία κανονικοποίησης ενός υποθετικού πίνακα μαθητών
  1. Πίνακας unnormalized:

    Σύμπτυξη αυτού του πίνακαΑνάπτυξη αυτού του πίνακα
    Φοιτητής #ΣύμβουλοςΔημ δωμάτιοClass1Class2Class3
    1022Jones412101-07143-01159-02
    4123Παπαδόπουλος216201-01211-02214-01
  2. Πρώτη κανονική φόρμα: Χωρίς επαναλαμβανόμενες ομάδες

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

    Spreadsheetsoften χρησιμοποιούν την τρίτη διάσταση, αλλά πίνακες δεν θα έπρεπε. Ένας άλλος τρόπος για να κάνετε αναζήτηση atthis πρόβλημα με μια σχέση ένα-προς-πολλά, μην τοποθετείτε στη μία πλευρά και την πλευρά "πολλά" του ίδιου πίνακα. Αντί για αυτό, δημιουργήστε έναν άλλο πίνακα στο πρώτο normalform, εξαλείφοντας την επαναλαμβανόμενη ομάδα (κλάση #), όπως φαίνεται παρακάτω:

    Σύμπτυξη αυτού του πίνακαΑνάπτυξη αυτού του πίνακα
    Φοιτητής #ΣύμβουλοςΔημ δωμάτιοΚλάση #
    1022Jones412101-07
    1022Jones412143-01
    1022Jones412159-02
    4123Παπαδόπουλος216201-01
    4123Παπαδόπουλος216211-02
    4123Παπαδόπουλος216214-01
  3. Δεύτερη κανονική φόρμα: Εξάλειψη των περιττών δεδομένων

    Notethe πολλών τιμών κλάσης # για κάθε μαθητή # τιμή στον παραπάνω πίνακα. Κλάση #is λειτουργικά εξαρτάται από φοιτητή # (πρωτεύον κλειδί), ώστε η relationshipis δεν στη δεύτερη κανονική φόρμα.

    Τα παρακάτω δύο πίνακες demonstratesecond κανονική φόρμα:

    Φοιτητές:

    Σύμπτυξη αυτού του πίνακαΑνάπτυξη αυτού του πίνακα
    Φοιτητής #ΣύμβουλοςΔημ δωμάτιο
    1022Jones412
    4123Παπαδόπουλος216


    Καταχώρηση:

    Σύμπτυξη αυτού του πίνακαΑνάπτυξη αυτού του πίνακα
    Φοιτητής #Κλάση #
    1022101-07
    1022143-01
    1022159-02
    4123201-01
    4123211-02
    4123214-01
  4. Τρίτη κανονική φόρμα: Εξάλειψη δεδομένων δεν εξαρτάται OnKey

    Στο τελευταίο παράδειγμα, εξαρτώνται από το χαρακτηριστικό Σύμβουλος isfunctionally Δημ-δωματίου (αριθμός γραφείου ο Σύμβουλος). Η λύση είναι να μετακινήσετε thatattribute από τον πίνακα "μαθητές" στον πίνακα σχολής, ως shownbelow:

    Φοιτητές:

    Σύμπτυξη αυτού του πίνακαΑνάπτυξη αυτού του πίνακα
    Φοιτητής #Σύμβουλος
    1022Jones
    4123Παπαδόπουλος


    Σχολή:

    Σύμπτυξη αυτού του πίνακαΑνάπτυξη αυτού του πίνακα
    ΌνομαΔωμάτιοΤΜΗΜΑ
    Jones41242
    Παπαδόπουλος21642

Ιδιότητες

Αναγν. άρθρου: 283878 - Τελευταία αναθεώρηση: Πέμπτη, 10 Οκτωβρίου 2013 - Αναθεώρηση: 9.0
Οι πληροφορίες σε αυτό το άρθρο ισχύουν για:
  • Microsoft Office Access 2007
  • Microsoft Office Access 2003
  • Microsoft Access 2002 Standard Edition
Λέξεις-κλειδιά: 
kbinfo kbdesign kbdatabase kbhowto kbmt KB283878 KbMtel
Μηχανικά μεταφρασμένο
ΣΗΜΑΝΤΙΚΟ: Αυτό το άρθρο έχει μεταφραστεί χρησιμοποιώντας λογισμικό μηχανικής μετάφρασης της Microsoft και μπορείτε να το διορθώσετε χρησιμοποιώντας την τεχνολογία Community Translation Framework (CTF) (Πλαίσιο μετάφρασης κοινότητας). Η Microsoft παρέχει μηχανική μετάφραση, επεξεργασία μετά τη μηχανική μετάφραση από την κοινότητα και άρθρα μεταφρασμένα από επαγγελματίες προκειμένου να έχετε πρόσβαση σε όλα τα άρθρα της Γνωσιακής βάσης σε πολλές γλώσσες. Τα άρθρα μηχανικής μετάφρασης και αυτά που επεξεργάζονται ύστερα από μηχανική μετάφραση ενδέχεται να περιέχουν σφάλματα στο λεξιλόγιο, στη σύνταξη ή/και στη γραμματική. Η Microsoft δεν φέρει καμία ευθύνη για τυχόν ανακρίβειες, σφάλματα ή ζημίες που προκύψουν λόγω τυχόν παρερμηνειών στη μετάφραση του περιεχομένου ή χρήσης του από τους πελάτες μας. Για περισσότερες πληροφορίες σχετικά με το CTF, μεταβείτε στην τοποθεσία http://support.microsoft.com/gp/machine-translation-corrections/el.
Η αγγλική έκδοση αυτού του άρθρου είναι η ακόλουθη: 283878

Αποστολή σχολίων

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com