Σχεδιασμός βάσης δεδομένων. Βέλτιστες πρακτικές

Εν αναμονή της έναρξης της επόμενης ροής με το ρυθμό "Βάση δεδομένων" Έχουμε ετοιμάσει ένα μικρό υλικό συγγραφέα με σημαντικές συμβουλές για το σχεδιασμό μιας βάσης δεδομένων. Ελπίζουμε ότι αυτό το υλικό θα σας φανεί χρήσιμο.

Σχεδιασμός βάσης δεδομένων. Βέλτιστες πρακτικές

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

1. Προσδιορίστε σε τι χρησιμεύει ο πίνακας και ποια είναι η δομή του

Σχεδιασμός βάσης δεδομένων. Βέλτιστες πρακτικές

Σήμερα, οι μέθοδοι ανάπτυξης όπως το Scrum ή το RAD (Rapid Application Development) βοηθούν τις ομάδες IT να αναπτύξουν γρήγορα βάσεις δεδομένων. Ωστόσο, στο κυνήγι του χρόνου, ο πειρασμός είναι πολύ μεγάλος να βουτήξετε κατευθείαν στο χτίσιμο μιας βάσης, φανταζόμενοι αόριστα ποιος είναι ο ίδιος ο στόχος, ποια θα πρέπει να είναι τα τελικά αποτελέσματα.
 
Είναι σαν η ομάδα να επικεντρώνεται στην αποτελεσματική, γρήγορη δουλειά, αλλά αυτό είναι μια αντικατοπτρική. Όσο περισσότερο και πιο γρήγορα βουτήξετε στο βάθος του έργου, τόσο περισσότερος χρόνος θα χρειαστεί για τον εντοπισμό και την αλλαγή σφαλμάτων στη σχεδίαση της βάσης δεδομένων.

Έτσι, το πρώτο πράγμα που πρέπει να αποφασίσετε είναι να ορίσετε τον σκοπό για τη βάση δεδομένων σας. Για ποιο είδος εφαρμογής αναπτύσσεται η βάση δεδομένων; Ο χρήστης θα εργάζεται μόνο με αρχεία και θα πρέπει να δίνει προσοχή στις συναλλαγές ή ενδιαφέρεται περισσότερο για την ανάλυση δεδομένων; Πού πρέπει να αναπτυχθεί η βάση; Θα παρακολουθεί τη συμπεριφορά των πελατών ή απλώς θα διαχειρίζεται τις σχέσεις με τους πελάτες; 

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

2. Ποια δεδομένα πρέπει να επιλέξω για αποθήκευση;

Σχεδιασμός βάσης δεδομένων. Βέλτιστες πρακτικές

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

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

Αναπόφευκτα, οι ανάγκες των χρηστών ακόμη και στο ίδιο τμήμα θα συγκρούονται. Εάν το συναντήσετε, μην φοβάστε να βασιστείτε στη δική σας εμπειρία και να βρείτε έναν συμβιβασμό που να ταιριάζει σε όλα τα μέρη και να ικανοποιεί τον απώτερο στόχο της βάσης δεδομένων. Να είστε σίγουροι: στο μέλλον θα λαμβάνετε +100500 σε κάρμα και ένα βουνό από μπισκότα.

3. Μοντελοποιήστε τα δεδομένα με προσοχή

Σχεδιασμός βάσης δεδομένων. Βέλτιστες πρακτικές

Υπάρχουν πολλά βασικά σημεία που πρέπει να προσέξετε κατά τη μοντελοποίηση δεδομένων. Όπως είπαμε νωρίτερα, ο σκοπός της βάσης δεδομένων καθορίζει ποιες μεθόδους θα χρησιμοποιηθούν στη μοντελοποίηση. Εάν σχεδιάζουμε μια βάση δεδομένων για την ηλεκτρονική επεξεργασία εγγραφών (OLTP), με άλλα λόγια για τη δημιουργία, την επεξεργασία και τη διαγραφή εγγραφών, χρησιμοποιούμε μοντελοποίηση συναλλαγών. Εάν η βάση δεδομένων πρέπει να είναι σχεσιακή, τότε είναι καλύτερο να χρησιμοποιήσετε πολυδιάστατη μοντελοποίηση.

Κατά τη μοντελοποίηση, δημιουργούνται εννοιολογικά (CDM), φυσικά (PDM) και λογικά (LDM) μοντέλα δεδομένων. 

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

Εάν μια οντότητα είναι πολύ δύσκολο να ταξινομηθεί σε μία λέξη ή φράση, τότε είναι καιρός να χρησιμοποιήσουμε υποτύπους (παιδικές οντότητες).

Εάν μια οντότητα κάνει τη ζωή της, έχει χαρακτηριστικά που περιγράφουν τη συμπεριφορά και την εμφάνισή της, καθώς και σχέσεις με άλλα αντικείμενα, τότε μπορείτε να χρησιμοποιήσετε με ασφάλεια όχι μόνο έναν υποτύπο, αλλά και έναν υπερτύπο (μητρική οντότητα). 

Εάν παραμελήσετε αυτόν τον κανόνα, άλλοι προγραμματιστές θα μπερδευτούν στο μοντέλο σας και δεν θα κατανοήσουν πλήρως τα δεδομένα και τους κανόνες για τον τρόπο συλλογής τους.

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

Στη συνέχεια, το μοντέλο λογικών δεδομένων συγκρίνεται με την προεπιλεγμένη πλατφόρμα DBMS (σύστημα διαχείρισης βάσεων δεδομένων) και προκύπτει ένα Φυσικό μοντέλο. Περιγράφει πώς τα δεδομένα αποθηκεύονται φυσικά.

4. Χρησιμοποιήστε τους σωστούς τύπους δεδομένων

Σχεδιασμός βάσης δεδομένων. Βέλτιστες πρακτικές

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

Δημιουργήστε ελάχιστο αριθμό κενών στηλών με τιμή NULL. Εάν δημιουργήσετε όλες τις στήλες ως NULL, αυτό είναι μεγάλο λάθος. Εάν χρειάζεστε μια κενή στήλη για να εκτελέσετε μια συγκεκριμένη επιχειρηματική λειτουργία, όταν τα δεδομένα είναι άγνωστα ή δεν έχουν ακόμη νόημα, τότε μη διστάσετε να τα δημιουργήσετε. Εξάλλου, δεν μπορούμε να συμπληρώσουμε τις στήλες "Ημερομηνία θανάτου" ή "Ημερομηνία απόλυσης" εκ των προτέρων· δεν είμαστε προγνωστικοί που δείχνουν τα δάχτυλά μας στον ουρανό :-).

Τα περισσότερα λογισμικά μοντελοποίησης (ER/Studio, MySQL Workbench, SQL DBM, gliffy.com) τα δεδομένα σάς επιτρέπουν να δημιουργείτε πρωτότυπα περιοχών δεδομένων. Αυτό διασφαλίζει όχι μόνο τον σωστό τύπο δεδομένων, τη λογική της εφαρμογής και την καλή απόδοση, αλλά και ότι απαιτείται η τιμή.

5. Γίνε φυσικά

Σχεδιασμός βάσης δεδομένων. Βέλτιστες πρακτικές

Όταν αποφασίζετε ποια στήλη σε έναν πίνακα θα χρησιμοποιήσετε ως κλειδί, να λαμβάνετε πάντα υπόψη ποια πεδία μπορεί να επεξεργαστεί ο χρήστης. Μην τα επιλέγετε ποτέ ως κλειδί - κακή ιδέα. Οτιδήποτε μπορεί να συμβεί, αλλά πρέπει να βεβαιωθείτε ότι είναι μοναδικό.

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

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

6. Κανονικοποιήστε με μέτρο

Σχεδιασμός βάσης δεδομένων. Βέλτιστες πρακτικές

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

Όπως πάντα, όλα πρέπει να είναι με μέτρο, ακόμα και η ομαλοποίηση. Εάν υπάρχουν πάρα πολλοί πίνακες στη βάση δεδομένων με τα ίδια μοναδικά κλειδιά, τότε έχετε παρασυρθεί και κανονικοποιήσατε υπερβολικά τη βάση δεδομένων. Η υπερβολική κανονικοποίηση επηρεάζει αρνητικά την απόδοση της βάσης δεδομένων.

7. Δοκιμάζετε νωρίς, δοκιμάζετε συχνά

Σχεδιασμός βάσης δεδομένων. Βέλτιστες πρακτικές

Το σχέδιο δοκιμής και η σωστή δοκιμή πρέπει να αποτελούν μέρος του σχεδιασμού της βάσης δεδομένων.

Ο καλύτερος τρόπος για να δοκιμάσετε τη βάση δεδομένων σας είναι μέσω της Συνεχούς Ενοποίησης. Προσομοιώστε ένα σενάριο «ημέρας στη ζωή μιας βάσης δεδομένων» και ελέγξτε εάν αντιμετωπίζονται όλες οι περιπτώσεις αιχμής και ποιες είναι οι πιθανές αλληλεπιδράσεις με τους χρήστες. Όσο πιο γρήγορα βρείτε σφάλματα, τόσο περισσότερο θα εξοικονομήσετε χρόνο και χρήμα.

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

Πηγή: www.habr.com

Προσθέστε ένα σχόλιο