Σπίτι Προσωπικά Οικονομικά SQL Πρώτη, Δεύτερη και Τρίτη Κανονική Μορφές - dummies

SQL Πρώτη, Δεύτερη και Τρίτη Κανονική Μορφές - dummies

Πίνακας περιεχομένων:

Βίντεο: Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 4 - ΤΕΛΕΣΤΕΣ και η ΔΟΜΗ ΕΛΕΓΧΟΥ - ΕΦΑΡΜΟΓΗ 4 2024

Βίντεο: Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 4 - ΤΕΛΕΣΤΕΣ και η ΔΟΜΗ ΕΛΕΓΧΟΥ - ΕΦΑΡΜΟΓΗ 4 2024
Anonim

Υπάρχουν τρεις πηγές τροποποιητικών ανωμαλιών στο SQL Αυτές ορίζονται ως πρώτη, δεύτερη και τρίτη κανονικές μορφές (1NF, 2NF, 3NF). Αυτές οι κανονικές μορφές λειτουργούν ως διορθωτικά μέτρα για τις τροποποιήσεις των τροποποιήσεων.

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

Για να είναι σε πρώτη κανονική μορφή (1NF), ένας πίνακας πρέπει να έχει τις ακόλουθες ιδιότητες:

  • Ο πίνακας είναι διδιάστατος με σειρές και στήλες.

  • Κάθε σειρά περιέχει δεδομένα που σχετίζονται με κάποιο πράγμα ή μερίδιο ενός αντικειμένου.

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

  • Κάθε στοιχείο (τομή μιας γραμμής και μια στήλη) του πίνακα πρέπει να έχει μόνο μία τιμή.

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

  • Κάθε στήλη πρέπει να έχει ένα μοναδικό όνομα.

  • Δεν υπάρχουν δύο σειρές μπορεί να είναι ίδιες (δηλαδή, κάθε σειρά πρέπει να είναι μοναδική).

  • Η σειρά των στηλών και η σειρά των σειρών δεν είναι σημαντικές.

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

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

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

Υποθέστε, για παράδειγμα, ότι ένας πίνακας έχει ιδιότητες (στήλες) StandardCharge, NumberOfTests και TotalCharge που σχετίζονται με την ακόλουθη εξίσωση:

TotalCharge = StandardCharge * NumberOfTests

TotalCharge εξαρτάται λειτουργικά τόσο από StandardCharge όσο και από NumberOfTests. Εάν γνωρίζετε τις τιμές των StandardCharge και NumberOfTests, μπορείτε να καθορίσετε την τιμή του TotalCharge.

Κάθε τραπέζι στην πρώτη κανονική μορφή πρέπει να έχει ένα μοναδικό πρωτεύον κλειδί. Το κλειδί αυτό μπορεί να αποτελείται από μία ή περισσότερες από μία στήλες. Ένα κλειδί που αποτελείται από περισσότερες από μία στήλες ονομάζεται σύνθετο κλειδί . Για να είναι σε δεύτερη κανονική μορφή (2NF), όλα τα μη βασικά χαρακτηριστικά πρέπει να εξαρτώνται από ολόκληρο το κλειδί. Επομένως, κάθε σχέση που είναι σε 1NF με ένα πλήκτρο χαρακτηριστικών είναι αυτόματα σε δεύτερη κανονική μορφή.

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

Ο ήχος συγχέει; Κοιτάξτε ένα παράδειγμα για να διευκρινίσετε τα θέματα. Σκεφτείτε τον πίνακα ΠΩΛΗΣΕΩΝ. Αντί να καταγράφετε μόνο μία αγορά για κάθε πελάτη, προσθέτετε μια σειρά κάθε φορά που ένας πελάτης αγοράζει ένα στοιχείο για πρώτη φορά. Μια επιπλέον διαφορά είναι ότι οι πελάτες ναυλωμένων πτήσεων (εκείνοι με τιμές Customer_ID 1001 έως 1007) λαμβάνουν έκπτωση από την κανονική τιμή.

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

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

Τρίτη συνήθης μορφή

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

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

Κοιτάξτε ξανά στον Πίνακα ΠΩΛΗΣΕΩΝ, που γνωρίζετε ότι είναι στην πρώτη κανονική μορφή. Όσο περιορίζετε καταχωρήσεις για να επιτρέπετε μόνο μία γραμμή για κάθε πελάτη, έχετε ένα πρωτεύον κλειδί με ένα χαρακτηριστικό και ο πίνακας βρίσκεται σε δεύτερη κανονική μορφή. Ωστόσο, ο πίνακας εξακολουθεί να υπόκειται σε ανωμαλίες. Τι γίνεται αν ο πελάτης 1010 δεν είναι ευχαριστημένος με το χλωρίνη, για παράδειγμα, και επιστρέφει το στοιχείο για επιστροφή χρημάτων;

Θέλετε να αφαιρέσετε την τρίτη γραμμή από τον πίνακα, η οποία καταγράφει το γεγονός ότι ο πελάτης 1010 αγόρασε χλωρίνη χλωρίνη. Έχετε κάποιο πρόβλημα: εάν καταργήσετε τη σειρά, χάνετε επίσης το γεγονός ότι το χλωρίνη έχει τιμή 4 $. Αυτή η κατάσταση είναι ένα παράδειγμα μεταβατικής εξάρτησης. Η τιμή εξαρτάται από το Προϊόν, το οποίο, με τη σειρά του, εξαρτάται από το πρωτεύον κλειδί Customer_ID.

Το σπάσιμο του πίνακα SALES σε δύο πίνακες επιλύει το πρόβλημα της μεταβατικής εξάρτησης. Οι δύο πίνακες αποτελούν μια βάση δεδομένων που βρίσκεται σε τρίτη κανονική μορφή.

SQL Πρώτη, Δεύτερη και Τρίτη Κανονική Μορφές - dummies

Η επιλογή των συντακτών

Ψηφιακή φωτογραφική μηχανή SLR και ευαισθησία φωτός

Ψηφιακή φωτογραφική μηχανή SLR και ευαισθησία φωτός

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

Ευρυγώνιες λήψεις που λαμβάνονται με τους τυπικούς φακούς - ανδρείκελα

Ευρυγώνιες λήψεις που λαμβάνονται με τους τυπικούς φακούς - ανδρείκελα

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

Λήψη Raw για τον μέγιστο έλεγχο των ψηφιακών φωτογραφιών σας - ανδρείκελα

Λήψη Raw για τον μέγιστο έλεγχο των ψηφιακών φωτογραφιών σας - ανδρείκελα

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

Η επιλογή των συντακτών

Πώς να δημιουργήσετε ένα στυλ πίνακα στο AutoCAD 2014 - ανδρείκελα

Πώς να δημιουργήσετε ένα στυλ πίνακα στο AutoCAD 2014 - ανδρείκελα

Ελέγχετε την εμφάνιση των πινάκων κείμενο και κελιά - με στυλ πίνακα στο AutoCAD 2014. Χρησιμοποιήστε την εντολή TABLESTYLE για να δημιουργήσετε και να τροποποιήσετε τα επιτραπέζια στυλ. Ακολουθήστε αυτά τα βήματα για να δημιουργήσετε ένα στυλ πίνακα: Στην καρτέλα "Αρχική", κάντε κλικ στην ετικέτα του πίνακα σχολιασμού για να ανοίξετε τη διαφάνεια και, στη συνέχεια, επιλέξτε Στυλ πίνακα. Το

Πώς να δημιουργήσετε και να επεξεργαστείτε πίνακες στο AutoCAD 2014 - ανδρείκελα

Πώς να δημιουργήσετε και να επεξεργαστείτε πίνακες στο AutoCAD 2014 - ανδρείκελα

Εντολή για τις ανάγκες σας στο τραπέζι. Αφού δημιουργήσετε ένα κατάλληλο στυλ πίνακα, η προσθήκη ενός πίνακα σε ένα σχέδιο είναι εύκολη, με την εντολή TABLE. Δείτε πώς: Ρυθμίστε την κατάλληλη τρέχουσα στρώση. Υποθέτοντας ότι αφήνετε το τρέχον χρώμα, τον τύπο γραμμής και το βάρος γραμμής στο ByLayer, η τρέχουσα στρώση ...

Πώς να δημιουργήσετε και να επαναφέρετε μια ονομαστική προβολή στο AutoCAD 2014 - ανδρείκελα

Πώς να δημιουργήσετε και να επαναφέρετε μια ονομαστική προβολή στο AutoCAD 2014 - ανδρείκελα

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

Η επιλογή των συντακτών

Πώς να στέλνετε ένα LinkedIn Connection Request σε ένα υπάρχον Μέλος - dummies

Πώς να στέλνετε ένα LinkedIn Connection Request σε ένα υπάρχον Μέλος - dummies

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

Πώς να αναζητήσετε LinkedIn από όνομα - dummies

Πώς να αναζητήσετε LinkedIn από όνομα - dummies

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

Πώς να αναζητήσετε LinkedIn για λέξεις - ανδρείκελα

Πώς να αναζητήσετε LinkedIn για λέξεις - ανδρείκελα

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