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

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

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

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

Περίληψη

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    Οι δύο ακόλουθοι πίνακες παρουσιάζουν δεύτερη κανονική φόρμα:

    Φοιτητές

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

    Καταχώρηση

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

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

    Φοιτητές

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

    Σχολή

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

Αναφορές

Ahlo, M. Χατζής, Randy καφέ και Peter Colclough. FoxPro 2: Οδηγός ένας προγραμματιστής: εμπειρογνωμόνων οδηγίες προγραμματισμού επιπέδου βιομηχανικών. Ο John Wiley & Sons, Οκτωβρίου 1991. 220-225 Σελίδες.

Jennings, ο Roger. Χρήση πρόσβασης 1.1 για Windows. Ότι Corporation Ιουλίου 1993. Σελίδες 799-800.

Ιδιότητες

Αναγν. άρθρου: 209534 - Τελευταία αναθεώρηση: Σάββατο, 17 Σεπτεμβρίου 2011 - Αναθεώρηση: 5.0
Οι πληροφορίες σε αυτό το άρθρο ισχύουν για:
  • Microsoft Access 2000 Standard Edition
Λέξεις-κλειδιά: 
kbdatabase kbdesign kbinfo kbusage kbmt KB209534 KbMtel
Μηχανικά μεταφρασμένο
ΣΗΜΑΝΤΙΚΟ: Αυτό το άρθρο είναι προϊόν λογισμικού μηχανικής μετάφρασης της Microsoft και όχι ανθρώπινης μετάφρασης. Η Microsoft σάς προσφέρει άρθρα που είναι προϊόντα ανθρώπινης αλλά και μηχανικής μετάφρασης έτσι ώστε να έχετε πρόσβαση σε όλα τα άρθρα της Γνωσιακής Βάσης μας στη δική σας γλώσσα. Ωστόσο, ένα άρθρο που έχει προκύψει από μηχανική μετάφραση δεν είναι πάντα άριστης ποιότητας. Ενδέχεται να περιέχει λεξιλογικά, συντακτικά ή γραμματικά λάθη, όπως ακριβώς τα λάθη που θα έκανε ένας μη φυσικός ομιλητής επιχειρώντας να μιλήσει τη γλώσσα σας. Η Microsoft δεν φέρει καμία ευθύνη για τυχόν ανακρίβειες, σφάλματα ή ζημίες που προκύψουν λόγω τυχόν παρερμηνειών στη μετάφραση του περιεχομένου ή χρήσης του από τους πελάτες της. Επίσης, η Microsoft πραγματοποιεί συχνά ενημερώσεις στο λογισμικό μηχανικής μετάφρασης.
Η αγγλική έκδοση αυτού του άρθρου είναι η ακόλουθη:209534

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

 

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