Πρέπει να Κανονικοποιήσω τη βάση δεδομένων μου;

Κανονικοποίηση στον πραγματικό κόσμο

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

Ήρθε η ώρα να αμφισβητήσουμε αυτή την αλήθεια. Μερικές φορές είναι εντάξει να denormalize τη βάση δεδομένων σας!

Πότε πρέπει να κανονικοποιήσετε;

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

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

Μερικοί ορθολογικοί λόγοι για να μην κανονικοποιηθεί

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

  1. Οι συνδέσεις είναι ακριβές . Η κανονικοποίηση της βάσης δεδομένων σας συχνά συνεπάγεται τη δημιουργία πολλών πινάκων. Στην πραγματικότητα, μπορείτε εύκολα να τελειώσετε με αυτό που νομίζετε ότι θα πρέπει να είναι ένα απλό ερώτημα που καλύπτει πέντε ή 10 πίνακες. Εάν έχετε δοκιμάσει ποτέ να κάνετε μια συνένωση με πέντε τραπέζια, γνωρίζετε ότι λειτουργεί κατ 'αρχήν, αλλά στην πράξη είναι αργή. Εάν δημιουργείτε μια εφαρμογή ιστού που βασίζεται σε ερωτήματα πολλαπλών συνδέσεων σε μεγάλα τραπέζια, μπορείτε να βρείτε τον εαυτό σας να σκεφτείτε: "Εάν μόνο αυτή η βάση δεδομένων δεν εξομαλύνθηκε!" Όταν ακούτε αυτή τη σκέψη στο μυαλό σας, είναι καλή στιγμή να θεωρήστε την αποδικοποίηση. Εάν μπορείτε να κολλήσετε όλα τα δεδομένα που χρησιμοποιούνται από αυτό το ερώτημα σε έναν ενιαίο πίνακα, χωρίς πραγματικά να θέσετε σε κίνδυνο την ακεραιότητα των δεδομένων σας, πηγαίνετε για αυτό! Να είστε επαναστάτης και να εξομαλύνετε τη βάση δεδομένων σας. Δεν θα κοιτάξετε πίσω!
  2. Ο κανονικοποιημένος σχεδιασμός είναι δύσκολος . Εάν εργάζεστε με ένα περίπλοκο σχήμα βάσης δεδομένων , πιθανότατα θα βρεθείτε να χτυπάτε το κεφάλι σας στο τραπέζι λόγω της πολυπλοκότητας της ομαλοποίησης. Ως απλός κανόνας, αν περνάτε όλη μέρα προσπαθώντας να καταλάβετε πώς να μετακινηθείτε στην τέταρτη κανονική φόρμα, μπορεί να πάρετε την εξομάλυνση πάρα πολύ μακριά. Βγείτε πίσω και αναρωτηθείτε αν είναι πραγματικά αξίζει να συνεχίσετε.
  1. Γρήγορα και βρώμικα πρέπει να είναι γρήγορα και βρώμικα . Αν αναπτύσσετε μόνο ένα πρωτότυπο, απλά κάντε ό, τι λειτουργεί γρήγορα. Πραγματικά. Είναι εντάξει. Η ταχεία ανάπτυξη εφαρμογών είναι μερικές φορές πιο σημαντική από την κομψή σχεδίαση. Απλά θυμηθείτε να επιστρέψετε και να εξετάσετε προσεκτικά το σχεδιασμό σας όταν είστε έτοιμοι να προχωρήσετε πέρα ​​από τη φάση της προτυποποίησης. Η τιμή που πληρώνετε για ένα γρήγορο και βρώμικο σχεδιασμό βάσης δεδομένων είναι ότι μπορεί να χρειαστεί να το πετάξετε και να αρχίσετε πότε θα χρειαστεί να χτίσετε για παραγωγή.
  2. Αν χρησιμοποιείτε βάση δεδομένων NoSQL , η παραδοσιακή εξομάλυνση δεν είναι επιθυμητή. Αντ 'αυτού, σχεδιάστε τη βάση δεδομένων σας χρησιμοποιώντας το μοντέλο BASE που είναι πολύ πιο επιεικής. Αυτό είναι χρήσιμο όταν αποθηκεύετε μη δομημένα δεδομένα, όπως μηνύματα ηλεκτρονικού ταχυδρομείου, εικόνες ή βίντεο.

Μερικές λέξεις προσοχής

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

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