Τι είναι η κανονικοποίηση σε μια βάση δεδομένων;
sobes.tech AI
Απάντηση από AI
Η κανονικοποίηση βάσης δεδομένων είναι η διαδικασία οργάνωσης των δεδομένων σε μια σχεσιακή βάση δεδομένων με σκοπό τη μείωση της πλεονασματικότητας (διπλότυπων δεδομένων) και τη βελτίωση της ακεραιότητας των δεδομένων. Αυτό επιτυγχάνεται με το διαχωρισμό μεγάλων πινάκων σε μικρότερους με τον καθορισμό σχέσεων μεταξύ τους.
Ο κύριος στόχος της κανονικοποίησης:
- Μείωση της πλεονασματικότητας δεδομένων: Αποφυγή επανάληψης της ίδιας πληροφορίας σε διαφορετικά σημεία.
- Βελτίωση της ακεραιότητας των δεδομένων: Διασφάλιση της ακρίβειας και της συνεκτικότητας των δεδομένων.
- Εξασφάλιση ευελιξίας: Απλοποίηση της αλλαγής και επέκτασης της δομής της βάσης δεδομένων.
Η κανονικοποίηση ορίζεται μέσω ενός συνόλου κανόνων, που ονομάζονται κανονικές μορφές. Οι πιο διαδεδομένες είναι οι πρώτες τρεις κανονικές μορφές:
-
Πρώτη κανονική μορφή (1NF):
- Κάστη στήλη του πίνακα πρέπει να περιέχει ατομικές (μη διαιρέσιμες) τιμές.
- Δεν υπάρχουν επαναλαμβανόμενες ομάδες στηλών.
- Κάθε γραμμή πρέπει να είναι μοναδική (μέσω του πρωτεύοντος κλειδιού).
-
Δεύτερη κανονική μορφή (2NF):
- Ο πίνακας βρίσκεται σε 1NF.
- Όλες οι μη-κλειδιά ιδιότητες (στήλες που δεν ανήκουν στο πρωτεύον κλειδί) εξαρτώνται πλήρως από ολόκληρο το πρωτεύον κλειδί (αν αυτό είναι σύνθετο). Δεν υπάρχουν μερικές εξαρτήσεις.
-
Τρίτη κανονική μορφή (3NF):
- Ο πίνακας βρίσκεται σε 2NF.
- Δεν υπάρχουν μεταβατικές εξαρτήσεις. Οι μη-κλειδιά ιδιότητες δεν εξαρτώνται από άλλες μη-κλειδιά.
Υπάρχουν και ανώτερες κανονικές μορφές (BCNF, 4NF, 5NF, 6NF), αλλά η 3NF θεωρείται συνήθως επαρκής για τις περισσότερες πρακτικές εφαρμογές.
Παράδειγμα (απλοποιημένο):
Αρχικός μη κανονικοποιημένος πίνακας (παραγγελία πελάτη):
| ID Παραγγελίας | Όνομα Πελάτη | Διεύθυνση Πελάτη | Προϊόντα | Ποσότητα | Τιμή ανά τεμάχιο |
|---|---|---|---|---|---|
| 101 | Ιωάννης | Αθήνα | Laptop | 1 | 50000 |
| 101 | Ιωάννης | Αθήνα | Ποντίκι | 2 | 1000 |
| 102 | Μαρία | Θεσσαλονίκη | Πληκτρολόγιο | 1 | 3000 |
Μετά την κανονικοποίηση (π.χ., μέχρι 3NF):
Πίνακας Παραγγελίες:
| ID Παραγγελίας | ID Πελάτη | Ημερομηνία Παραγγελίας |
|---|---|---|
| 101 | 1 | 2023-10-26 |
| 102 | 2 | 2023-10-26 |
Πίνακας Πελάτες:
| ID Πελάτη | Όνομα Πελάτη | Διεύθυνση Πελάτη |
|---|---|---|
| 1 | Ιωάννης | Αθήνα |
| 2 | Μαρία | Θεσσαλονίκη |
Πίνακας Λεπτομερειών Παραγγελίας:
| ID Λεπτομέρειας | ID Παραγγελίας | ID Προϊόντος | Ποσότητα | Τιμή ανά τεμάχιο |
|---|---|---|---|---|
| 1 | 101 | 10 | 1 | 50000 |
| 2 | 101 | 20 | 2 | 1000 |
| 3 | 102 | 30 | 1 | 3000 |
Πίνακας Προϊόντων:
| ID Προϊόντος | Όνομα Προϊόντος |
|---|---|
| 10 | Laptop |
| 20 | Ποντίκι |
| 30 | Πληκτρολόγιο |
Η αποκαλούμενη απο-κανονικοποίηση είναι η αντίστροφη διαδικασία της κανονικοποίησης, που μερικές φορές χρησιμοποιείται για τη βελτίωση της απόδοσης ανάγνωσης δεδομένων μέσω αύξησης της πλεονασματικότητας.