Τι είναι η κανονικοποίηση;
sobes.tech AI
Απάντηση από AI
Η κανονικοποίηση δεδομένων στο πλαίσιο των βάσεων δεδομένων είναι η διαδικασία οργάνωσης των δεδομένων για τη μείωση της πλεονασματικότητας και τη βελτίωση της ακεραιότητας των δεδομένων. Επιτυγχάνεται διαιρώντας μεγάλους πίνακες σε μικρότερους και συνδέοντάς τους.
Κύριος στόχος:
- Απομάκρυνση της διπλοκαταχώρησης δεδομένων.
- Βελτίωση της ακεραιότητας των δεδομένων (πρόληψη ανωμαλιών κατά την εισαγωγή, ενημέρωση και διαγραφή).
- Αύξηση της αποδοτικότητας αποθήκευσης και ερωτημάτων (σε ορισμένες περιπτώσεις).
Η διαδικασία κανονικοποίησης βασίζεται στις αρχές των κανονικών μορφών (NF). Οι πιο συνηθισμένες είναι:
- Πρώτη κανονική μορφή (1NF): Ατομικότητα των δεδομένων στα κελιά, απουσία επαναλαμβανόμενων ομάδων στηλών.
- Δεύτερη κανονική μορφή (2NF): Βρίσκεται σε 1NF και κάθε μη-κλειδί χαρακτηριστικό εξαρτάται πλήρως από ολόκληρο το πρωτεύον κλειδί.
- Τρίτη κανονική μορφή (3NF): Βρίσκεται σε 2NF και δεν υπάρχουν μεταβατικές λειτουργικές εξαρτήσεις μη-κλειδιών χαρακτηριστικών από το πρωτεύον κλειδί μέσω άλλων μη-κλειδιών χαρακτηριστικών.
Παράδειγμα:
Ο αρχικός πίνακας "Παραγγελίες_Προϊόντα":
| ID Παραγγελίας | Ημερομηνία Παραγγελίας | ID Προϊόντος | Όνομα Προϊόντος | Τιμή Προϊόντος | Ποσότητα | Όνομα Πελάτη | Διεύθυνση Πελάτη |
|---|---|---|---|---|---|---|---|
| 1 | 2023-10-27 | 101 | Τηλέφωνο | 500 | 1 | Ivan Pétrov | Οδός Pushkina, 10 |
| 1 | 2023-10-27 | 102 | Ακουστικά | 100 | 2 | Ivan Pétrov | Οδός Pushkina, 10 |
| 2 | 2023-10-27 | 101 | Τηλέφωνο | 500 | 1 | Maria Ivanova | Οδός Lermontova, 5 |
Μετά την κανονικοποίηση (μέχρι 3NF):
"Παραγγελίες" πίνακας:
| ID Παραγγελίας | Ημερομηνία Παραγγελίας | ID Πελάτη |
|---|---|---|
| 1 | 2023-10-27 | 1 |
| 2 | 2023-10-27 | 2 |
"Γραμμές Παραγγελίας" πίνακας:
| ID Γραμμής | ID Παραγγελίας | ID Προϊόντος | Ποσότητα |
|---|---|---|---|
| 1 | 1 | 101 | 1 |
| 2 | 1 | 102 | 2 |
| 3 | 2 | 101 | 1 |
"Προϊόντα" πίνακας:
| ID Προϊόντος | Όνομα Προϊόντος | Τιμή Προϊόντος |
|---|---|---|
| 101 | Τηλέφωνο | 500 |
| 102 | Ακουστικά | 100 |
"Πελάτες" πίνακας:
| ID Πελάτη | Όνομα Πελάτη | Διεύθυνση Πελάτη |
|---|---|---|
| 1 | Ivan Pétrov | Οδός Pushkina, 10 |
| 2 | Maria Ivanova | Οδός Lermontova, 5 |
Ωστόσο, η υπερβολική κανονικοποίηση μπορεί να οδηγήσει σε αύξηση του αριθμού των JOIN κατά την εκτέλεση ερωτημάτων, κάτι που μπορεί να μειώσει την απόδοση. Επομένως, στον σχεδιασμό βάσεων δεδομένων, συχνά αναζητείται μια ισορροπία μεταξύ του βαθμού κανονικοποίησης και της απόδοσης. Η αποκανονικοποίηση είναι η διαδικασία της σκόπιμης παραβίασης των κανονικών μορφών για τη βελτίωση της απόδοσης, συνήθως προσθέτοντας πλεονασμό.