Βίντεο: Genetic Engineering and Diseases – Gene Drive & Malaria 2024
Ο πλήθος προβλημάτων που ονομάζονται τροποποιητικές ανωμαλίες μπορεί να πλήξει μια βάση δεδομένων αν δεν δομήσετε SQL βάση δεδομένων σωστά. Για να αποτρέψετε αυτά τα προβλήματα, μπορείτε να ομαλοποιήσετε τη δομή βάσης δεδομένων. Η κανονικοποίηση γενικά συνεπάγεται το διαχωρισμό ενός πίνακα βάσεων δεδομένων σε δύο απλούστερους πίνακες.
Οι ανωμαλίες τροποποίησης ονομάζονται έτσι επειδή δημιουργούνται με την προσθήκη, αλλαγή ή διαγραφή δεδομένων από έναν πίνακα βάσης δεδομένων.
Ας υποθέσουμε, για παράδειγμα, ότι η εταιρεία σας πωλεί οικιακά προϊόντα καθαρισμού και χρεώνετε σε όλους τους πελάτες την ίδια τιμή για κάθε προϊόν. Ο πίνακας ΠΩΛΗΣΕΙΣ παρακολουθεί τα πάντα για εσάς. Ας υποθέσουμε ότι ο πελάτης 1001 απομακρύνεται και δεν είναι πια πελάτης. Δεν με νοιάζει τι αγόρασε στο παρελθόν, γιατί δε θα ξαναγοράσει τίποτα από εσένα. Θέλετε να διαγράψετε τη γραμμή από τον πίνακα.
ανωμαλία διαγραφής. Διαγράφοντας ένα γεγονός (ο πελάτης 1001 αγόρασε απορρυπαντικό πλυντηρίων ρούχων), διαγράφετε κατά λάθος ένα άλλο γεγονός (το απορρυπαντικό πλυντηρίων κοστίζει $ 12). Μπορείτε να χρησιμοποιήσετε τον ίδιο πίνακα για να απεικονίσετε μια ανωμαλία εισαγωγής. Για παράδειγμα, ας υποθέσουμε ότι θέλετε να προσθέσετε αποσμητικό ράβδων στη γραμμή προϊόντων σας με τιμή $ 2. Δεν μπορείτε να προσθέσετε αυτά τα δεδομένα στον Πίνακα ΠΩΛΗΣΕΩΝ μέχρι να αγοράσει ένας πελάτης αποσμητικό.CUST_PURCH, η οποία ασχολείται με την ενιαία ιδέα των αγορών πελατών.
PROD_PRICE, η οποία ασχολείται με την ενιαία ιδέα της τιμολόγησης προϊόντων.
-
Μπορείτε τώρα να διαγράψετε τη σειρά για τον πελάτη 1001 από το CUST_PURCH χωρίς να χάσετε το γεγονός ότι τα απορρυπαντικά πλυντηρίων κοστίζουν $ 12. (Το κόστος του απορρυπαντικού πλυντηρίου αποθηκεύεται τώρα στο PROD_PRICE.) Μπορείτε επίσης να προσθέσετε αποσμητικό ραβδιού στο PROD_PRICE, ανεξάρτητα από το αν κάποιος έχει αγοράσει το προϊόν. Οι πληροφορίες αγοράς αποθηκεύονται αλλού, στον πίνακα CUST_PURCH.
-
Η διαδικασία κατάτμησης ενός πίνακα σε πολλαπλούς πίνακες, καθένα από τα οποία έχει ένα μόνο θέμα, ονομάζεται κανονικοποίηση
Μια λειτουργία εξομάλυνσης που λύνει ένα πρόβλημα μπορεί να μην επηρεάζει άλλα προβλήματα.Ίσως χρειαστεί να εκτελέσετε αρκετές διαδοχικές πράξεις εξομάλυνσης για να μειώσετε κάθε πίνακα που προκύπτει σε ένα μόνο θέμα. Κάθε πίνακας βάσης δεδομένων πρέπει να ασχολείται με ένα - και μόνο ένα - κύριο θέμα. Μερικές φορές (όπως ίσως μαντέψατε) ο καθορισμός ότι ένας πίνακας πραγματικά
ασχολείται με δύο ή περισσότερα θέματα μπορεί να είναι δύσκολος. Μπορείτε να ταξινομήσετε πίνακες σύμφωνα με τους τύπους ανωμαλιών τροποποίησης στους οποίους υπόκεινται. Σε ένα έγγραφο του 1970, ο Ε. F. Codd ταυτοποίησε τρεις πηγές ανωμαλιών τροποποίησης και καθόρισε πρώτες, δεύτερες και τρίτες κανονικές μορφές
(1NF, 2NF, 3NF) ως διορθωτικά μέτρα σε αυτούς τους τύπους ανωμαλιών. Στα επόμενα χρόνια, ο Codd και άλλοι ανακάλυψαν πρόσθετους τύπους ανωμαλιών και καθόρισαν νέες κανονικές μορφές για να τις αντιμετωπίσουν. Η κανονική μορφή Boyce-Codd (BCNF), η τέταρτη κανονική μορφή (4NF) και η πέμπτη κανονική μορφή (5NF) έδωσαν το καθένα υψηλότερο βαθμό προστασίας από τις ανωμαλίες τροποποίησης. Όχι μόνο μέχρι το 1981, έγραψε ένα έγγραφο, που γράφτηκε από τον Ronald Fagin, περιγράφει την κανονική μορφή του τομέα-κλειδιού ή την DK / NF. Η χρήση αυτής της τελευταίας κανονικής φόρμας σάς επιτρέπει να εγγυηθεί
ότι ένας πίνακας είναι απαλλαγμένος από ανωμαλίες τροποποίησης. Οι κανονικές μορφές είναι ένθετες
υπό την έννοια ότι ένας πίνακας που βρίσκεται στο 2NF είναι αυτόματα και σε 1NF. Ομοίως, ένας πίνακας σε 3NF είναι αυτόματα σε 2NF, και ούτω καθεξής. Για τις περισσότερες πρακτικές εφαρμογές, η τοποθέτηση μιας βάσης δεδομένων στο 3NF είναι επαρκής για να εξασφαλίσει υψηλό βαθμό ακεραιότητας. Για να είστε απολύτως σίγουροι για την ακεραιότητά του, πρέπει να βάλετε τη βάση δεδομένων σε DK / NF. Αφού ομαλοποιήσετε μια βάση δεδομένων όσο το δυνατόν περισσότερο, ίσως θέλετε να κάνετε επιλεγμένες αποτυπώσεις για να βελτιώσετε την απόδοση. Εάν το κάνετε, γνωρίζετε τους τύπους ανωμαλιών που μπορεί τώρα να γίνουν δυνατοί.