Sobes.tech
Middle

Τι είναι η κανονικοποίηση;

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 κατά την εκτέλεση ερωτημάτων, κάτι που μπορεί να μειώσει την απόδοση. Επομένως, στον σχεδιασμό βάσεων δεδομένων, συχνά αναζητείται μια ισορροπία μεταξύ του βαθμού κανονικοποίησης και της απόδοσης. Η αποκανονικοποίηση είναι η διαδικασία της σκόπιμης παραβίασης των κανονικών μορφών για τη βελτίωση της απόδοσης, συνήθως προσθέτοντας πλεονασμό.