Ένα μοντέλο δεδομένων περιγράφει τον τρόπο με τον οποίο τα δεδομένα δομούνται και σχετίζονται. Ορίζει οντότητες, χαρακτηριστικά και σχέσεις. Ένας πελάτης έχει μια διεύθυνση. Μια παραγγελία έχει στοιχεία γραμμής. Ένα προϊόν ανήκει σε μια κατηγορία. Το μοντέλο είναι ένα σχέδιο. Υποδεικνύει στους προγραμματιστές πώς να δημιουργήσουν τη βάση δεδομένων και στους αναλυτές πώς να την υποβάλουν σε ερωτήματα. Ένα καλό μοντέλο αντικατοπτρίζει την επιχείρηση. Ένα κακό δημιουργεί σύγχυση που επιμένει για χρόνια.
Τα μοντέλα διατίθενται σε επίπεδα. Το εννοιολογικό μοντέλο περιγράφει τις επιχειρηματικές οντότητες και τις σχέσεις τους σε υψηλό επίπεδο. Το λογικό μοντέλο προσθέτει λεπτομέρειες: χαρακτηριστικά, κλειδιά και κανονικοποίηση. Το φυσικό μοντέλο καθορίζει πίνακες, στήλες, ευρετήρια και χώρο αποθήκευσης. Κάθε επίπεδο εξυπηρετεί ένα διαφορετικό κοινό. Οι επιχειρηματικοί ενδιαφερόμενοι κατανοούν το εννοιολογικό μοντέλο. Οι προγραμματιστές εργάζονται με το φυσικό. Η διαδικασία μοντελοποίησης επιβάλλει σαφήνεια. Τι ακριβώς είναι ένας πελάτης; Είναι ένας υποψήφιος πελάτης; Τι συμβαίνει όταν μια παραγγελία ακυρώνεται; Αυτές οι ερωτήσεις απαντώνται κατά τη διάρκεια της μοντελοποίησης, όχι κατά τη διάρκεια μιας κρίσης. Τα κακώς σχεδιασμένα μοντέλα προκαλούν προβλήματα που είναι δύσκολο να διορθωθούν. Οι μη κανονικοποιημένοι πίνακες οδηγούν σε ανωμαλίες ενημέρωσης. Η έλλειψη κλειδιών οδηγεί σε διπλότυπα. Η ασυνεπής ονομασία οδηγεί σε σύγχυση. Η αλλαγή ενός μοντέλου μετά τη φόρτωση των δεδομένων είναι ακριβή. Η σωστή εκ των προτέρων εκτέλεση είναι φθηνότερη, αν και ποτέ εύκολη.
Επίπεδα μοντέλου
- Εννοιολογική — επιχειρηματικές οντότητες και σχέσεις
- Λογική — χαρακτηριστικά, κλειδιά και κανονικοποίηση
- Φυσικό — πίνακες, στήλες, ευρετήρια και αποθηκευτικός χώρος
- Διαστατικά — σχήματα αστεριών και νιφάδων χιονιού για αναλυτικά στοιχεία
Ένα μοντέλο δεδομένων είναι μια σύμβαση. Ορίζει τι σημαίνουν τα δεδομένα και πώς συνδέονται. Αν σπάσετε τη σύμβαση, θα σπάσει και οτιδήποτε βασίζεται σε αυτήν.
Comments
No comments yet. Be the first to share a thought.
Leave a comment