Μοντέλο «Οντότητα-σχέση. Εννοιολογικό Μοντέλο Βάσης Δεδομένων - Διάγραμμα Σχέσεων Αντικειμένου

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

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

Το μοντέλο ER βασίζεται στις ακόλουθες βασικές έννοιες:

  • Ουσία, μεμε τη βοήθεια του οποίου μοντελοποιείται μια κατηγορία ομοειδών αντικειμένων. Μια οντότητα έχει ένα όνομα που είναι μοναδικό στο σύστημα που μοντελοποιείται. Εφόσον μια οντότητα αντιστοιχεί σε μια συγκεκριμένη κατηγορία αντικειμένων του ίδιου τύπου, υποτίθεται ότι υπάρχουν πολλές περιπτώσεις αυτής της οντότητας στο σύστημα. Το αντικείμενο στο οποίο αντιστοιχεί η έννοια της οντότητας έχει το δικό του σύνολο ιδιότητες -χαρακτηριστικά που καθορίζουν τις ιδιότητες μιας δεδομένης αντιπροσωπευτικής κλάσης. Σε αυτήν την περίπτωση, το σύνολο των χαρακτηριστικών πρέπει να είναι τέτοιο ώστε να είναι δυνατή η διάκριση συγκεκριμένων περιπτώσεων της οντότητας. Για παράδειγμα, η οντότητα Υπάλληλος μπορεί να έχει το ακόλουθο σύνολο χαρακτηριστικών: Αριθμός προσωπικού, Επώνυμο, Όνομα, Πατρώνυμο, Ημερομηνία γέννησης, Αριθμός παιδιών, Παρουσία συγγενών στο εξωτερικό. Καλείται ένα σύνολο χαρακτηριστικών που προσδιορίζει μοναδικά ένα συγκεκριμένο στιγμιότυπο μιας οντότητας κλειδί.Για την οντότητα Υπάλληλος, το βασικό χαρακτηριστικό θα είναι Αριθμός Προσωπικού, καθώς οι αριθμοί προσωπικού θα είναι διαφορετικοί για όλους τους υπαλλήλους μιας δεδομένης επιχείρησης. Ένα παράδειγμα της οντότητας Εργαζόμενος θα είναι μια περιγραφή ενός συγκεκριμένου υπαλλήλου της επιχείρησης. Μία από τις γενικά αποδεκτές γραφικές αναπαραστάσεις μιας οντότητας είναι ένα ορθογώνιο, στο επάνω μέρος του οποίου αναγράφεται το όνομα της οντότητας και τα χαρακτηριστικά παρατίθενται παρακάτω, με βασικά χαρακτηριστικά σημειωμένα, για παράδειγμα, με μια υπογράμμιση ή μια ειδική γραμματοσειρά (Εικ. 7.1):

Ρύζι. 7.1.Παράδειγμα ορισμού οντότητας στο μοντέλο ER

Μεταξύ οντοτήτων μπορεί να οριστεί διαβιβάσεις- δυαδικές συσχετίσεις που δείχνουν πώς οι οντότητες σχετίζονται ή αλληλεπιδρούν μεταξύ τους. Μια σχέση μπορεί να υπάρχει μεταξύ δύο διαφορετικών οντοτήτων ή μεταξύ μιας οντότητας και του εαυτού της (αναδρομική σύνδεση).Δείχνει πώς οι περιπτώσεις οντοτήτων σχετίζονται μεταξύ τους. Εάν δημιουργηθεί μια σχέση μεταξύ δύο οντοτήτων, τότε ορίζει τη σχέση μεταξύ των περιπτώσεων της μιας και της άλλης οντότητας. Για παράδειγμα, εάν έχουμε μια σύνδεση μεταξύ της οντότητας «Φοιτητής» και της οντότητας «Δάσκαλος» και αυτή η σύνδεση είναι η επίβλεψη διπλωματικών έργων, τότε κάθε μαθητής έχει μόνο έναν επιβλέποντα, αλλά ο ίδιος δάσκαλος μπορεί να επιβλέπει πολλούς μεταπτυχιακούς φοιτητές. Επομένως, θα είναι μια σχέση ένα προς πολλά (1:M), ένα στην πλευρά του Δάσκαλου και πολλά στην πλευρά του Μαθητή (βλ. Εικόνα 7.2).


Ρύζι. 7.2.Ένα παράδειγμα σχέσης ένα προς πολλά κατά τη σύνδεση των οντοτήτων "Μαθητής" και "Δάσκαλος"

Διαφορετικοί συμβολισμοί εκφράζουν διαφορετικά την επικοινωνιακή ισχύ. Στο παράδειγμά μας χρησιμοποιούμε τον συμβολισμό CASE του συστήματος POWER DESIGNER, εδώ η πολλαπλότητα απεικονίζεται διαιρώντας τη σύνδεση με το 3. Ο σύνδεσμος έχει ένα κοινό όνομα "Discipline Design" και έχει ονόματα ρόλων στην πλευρά και των δύο οντοτήτων. Από την πλευρά του μαθητή, αυτός ο ρόλος ονομάζεται «Γράφει μια διατριβή υπό καθοδήγηση», από την πλευρά του δασκάλου, αυτή η σύνδεση ονομάζεται «Καθοδήγηση». Μια γραφική ερμηνεία μιας σύνδεσης σας επιτρέπει να διαβάσετε αμέσως το νόημα της σχέσης μεταξύ οντοτήτων είναι οπτική και εύκολη στην ερμηνεία. Οι συνδέσεις χωρίζονται σε τρεις τύπους ανάλογα με την πολλαπλότητά τους: ένα προς ένα(1:1), od και i-to-πολλά(1M), πολλά-προς-πολλά(ΜΜ). Μια σχέση ένα προς ένα σημαίνει ότι μια παρουσία μιας οντότητας σχετίζεται μόνο με μια παρουσία μιας άλλης οντότητας.

Σχέση 1: M σημαίνει ότι ένα στιγμιότυπο μιας οντότητας που βρίσκεται στην αριστερή πλευρά μιας σχέσης μπορεί να συσχετιστεί με πολλές περιπτώσεις μιας οντότητας που βρίσκεται στη δεξιά πλευρά μιας σχέσης. Μια σχέση ένα προς ένα (1:1) σημαίνει ότι μια παρουσία μιας οντότητας συσχετίζεται μόνο με μια παρουσία μιας άλλης οντότητας, ενώ μια σχέση πολλών προς πολλά (M:M) σημαίνει ότι μια παρουσία της πρώτης μια οντότητα μπορεί να συσχετιστεί με πολλαπλές παρουσίες μιας δεύτερης οντότητας και αντιστρόφως, μια παρουσία μιας δεύτερης οντότητας μπορεί να συσχετιστεί με πολλαπλές εμφανίσεις μιας πρώτης οντότητας. Για παράδειγμα, αν λάβουμε υπόψη μια σχέση τύπου «Μελέτη» μεταξύ των οντοτήτων «Μαθητής» και «Πειθαρχία», τότε αυτή είναι μια σχέση τύπου «πολλά προς πολλούς» (Μ:Μ), επειδή κάθε μαθητής μπορεί να μελετήσει πολλά κλάδους, αλλά κάθε κλάδος μελετάται από πολλούς μαθητές Μια τέτοια σύνδεση φαίνεται στο Σχ. 7.3.

  • Οποιοσδήποτε αριθμός συνδέσεων με διαφορετικά σημασιολογικά φορτία μπορεί να καθοριστεί μεταξύ δύο οντοτήτων. Για παράδειγμα, μεταξύ δύο οντοτήτων "Μαθητής" και "Δάσκαλος", μπορούν να δημιουργηθούν δύο σημασιολογικές συνδέσεις, η μία είναι η "Σχεδιασμός Διπλώματος" που συζητήθηκε προηγουμένως και η δεύτερη μπορεί υπό όρους να ονομάζεται "Διαλέξεις" και καθορίζει ποιες διαλέξεις δασκάλων μαθητής ακούει και που Αυτός ο δάσκαλος δίνει διαλέξεις στους μαθητές. Είναι σαφές ότι πρόκειται για μια σύνδεση όπως πολλά-προς-πολλά.Ένα παράδειγμα αυτών των συνδέσεων φαίνεται στο Σχ. 7.3.

Ρύζι. 7.3.Παράδειγμα μοντελοποίησης μιας σχέσης πολλά-προς-πολλά

  • Οποιοσδήποτε από αυτούς τους τύπους επικοινωνίας μπορεί να είναι επιτακτικός,εάν κάθε περίπτωση μιας οντότητας πρέπει να συμμετέχει σε μια δεδομένη σχέση, προαιρετικός -Αν όχι, κάθε στιγμιότυπο οντότητας πρέπει να συμμετέχει σε μια δεδομένη σχέση. Σε αυτή την περίπτωση, η σύνδεση μπορεί να είναι υποχρεωτικό αφενόςΚαι προαιρετικό από την άλλη.Η υποχρεωτική φύση της σύνδεσης υποδεικνύεται επίσης διαφορετικά σε διαφορετικές σημειώσεις. Χρησιμοποιούμε και πάλι τον συμβολισμό POWER DESIGNER. Εδώ, η προαιρετική σύνδεση υποδεικνύεται με έναν κενό κύκλο στο τέλος της σύνδεσης και η υποχρέωση υποδεικνύεται από μια κάθετη γραμμή που διασχίζει τη σύνδεση. Και αυτή η σημειογραφία έχει μια απλή ερμηνεία. Ένας κύκλος σημαίνει ότι καμία περίπτωση δεν μπορεί να συμμετάσχει σε αυτή τη σύνδεση. Και η κάθετη ερμηνεύεται ότι σημαίνει ότι τουλάχιστον ένα παράδειγμα της οντότητας εμπλέκεται σε αυτή τη σύνδεση.

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

Ρύζι. 7.4.Ένα παράδειγμα μιας υποχρεωτικής και προαιρετικής σχέσης μεταξύ οντοτήτων

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

Η οντότητα βάσει της οποίας χτίζονται οι υποτύποι καλείται υπερτύπος.Οποιοδήποτε παράδειγμα ενός υπερτύπου πρέπει να ανήκει σε έναν συγκεκριμένο υποτύπο. Για να αναπαραστήσουμε γραφικά την αρχή της κατηγοριοποίησης ή πληκτρολόγησης μιας οντότητας, εισάγεται ένα ειδικό γραφικό στοιχείο, που ονομάζεται κόμβος διάκρισης,στη σημειογραφία POWER DESIGNER απεικονίζεται ως ημικύκλιο, με την κυρτή πλευρά του στραμμένη προς την υπερ-οντότητα. Αυτή η πλευρά συνδέεται με ένα κατευθυνόμενο βέλος στην υπερ-οντότητα και οι υποτύποι αυτής της οντότητας συνδέονται με τη διάμετρο αυτού του κύκλου με βέλη (βλ. Εικ. 7.5).

Ρύζι. 7.5.Δοκιμαστικό διάγραμμα υποτύπου οντότητας

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

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

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

Πρώτα απ 'όλα, υπάρχει η οντότητα "Βιβλίο", κάθε βιβλίο έχει έναν μοναδικό κρυπτογράφηση, που είναι το κλειδί του, και μια σειρά από χαρακτηριστικά που λαμβάνονται από την περιγραφή της θεματικής περιοχής. Το σύνολο των παρουσιών οντοτήτων ορίζει το σύνολο των βιβλίων που αποθηκεύονται στη βιβλιοθήκη. Κάθε παρουσία της οντότητας «Βιβλίο» δεν αντιστοιχεί σε ένα συγκεκριμένο βιβλίο στο ράφι, αλλά σε μια περιγραφή ενός συγκεκριμένου βιβλίου, η οποία συνήθως δίνεται στον θεματικό κατάλογο της βιβλιοθήκης. Κάθε βιβλίο μπορεί να υπάρχει σε πολλά αντίτυπα και αυτά είναι μόνο τα συγκεκριμένα βιβλία που βρίσκονται στα ράφια της βιβλιοθήκης.

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

Υπάρχει μια σχέση ένα προς πολλά (1:M) μεταξύ των οντοτήτων "Βιβλία" και "Περιπτώσεις", η οποία απαιτείται και από τις δύο πλευρές. Τι καθορίζει αυτόν τον τύπο σύνδεσης; Μπορούμε να υποθέσουμε ότι κάθε βιβλίο μπορεί να υπάρχει στη βιβλιοθήκη σε πολλά αντίτυπα, εξ ου και η σχέση ένα προς πολλά. Επιπλέον, εάν η βιβλιοθήκη δεν έχει ούτε ένα αντίγραφο ενός δεδομένου βιβλίου, τότε δεν θα αποθηκεύσουμε την περιγραφή του, επομένως εάν το βιβλίο περιγράφεται στην ουσία "Βιβλίο", τότε τουλάχιστον ένα αντίγραφο αυτού του βιβλίου υπάρχει στη βιβλιοθήκη . Αυτό σημαίνει ότι από την πλευρά του βιβλίου η σύνδεση είναι υποχρεωτική. Όσον αφορά την οντότητα «Αντίγραφα», δεν μπορεί να υπάρχει ούτε ένα αντίγραφο στη βιβλιοθήκη που να μην σχετίζεται με συγκεκριμένο βιβλίο, επομένως η σύνδεση από την πλευρά «Αντίγραφα» είναι επίσης υποχρεωτική.

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

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

Από την περιγραφή της θεματικής περιοχής, γνωρίζουμε ότι κάθε αναγνώστης μπορεί να κρατήσει πολλά αντίτυπα βιβλίων στα χέρια του. Για να αντικατοπτρίσουμε αυτήν την κατάσταση, πρέπει να κάνουμε μια σύνδεση μεταξύ των οντοτήτων "Αναγνώστες" και "Περιπτώσεις". Γιατί όχι μεταξύ των οντοτήτων «Αναγνώστες» και «Βιβλία»; Γιατί ο αναγνώστης παίρνει ένα συγκεκριμένο αντίγραφο ενός συγκεκριμένου βιβλίου από τη βιβλιοθήκη και όχι απλώς ένα βιβλίο. Πώς μπορείτε να μάθετε ποιο βιβλίο έχει ένας δεδομένος αναγνώστης; Και αυτό μπορεί να διαπιστωθεί με μια πρόσθετη σύνδεση μεταξύ των οντοτήτων "Instances" και "Books", και αυτή η σύνδεση εκχωρεί ένα βιβλίο σε κάθε περίπτωση, έτσι ανά πάσα στιγμή μπορούμε να προσδιορίσουμε με σαφήνεια ποια βιβλία βρίσκονται στα χέρια του αναγνώστη, αν και συσχετίζουμε με τον αναγνώστη μόνο τους αριθμούς απογραφής των βιβλίων που λαμβάνονται. Καθιερώνεται μια σχέση ένα προς πολλά μεταξύ των οντοτήτων «Αναγνώστες» και «Περιπτώσεις», και ταυτόχρονα είναι προαιρετική και από τις δύο πλευρές. Ο αναγνώστης αυτή τη στιγμή μπορεί να μην κρατά ούτε ένα βιβλίο στα χέρια του και από την άλλη, αυτό το αντίτυπο του βιβλίου μπορεί να μην είναι στην κατοχή κανενός αναγνώστη, αλλά απλώς να στέκεται σε ένα ράφι στη βιβλιοθήκη.

Τώρα πρέπει να αντικατοπτρίζουμε την τελευταία οντότητα που σχετίζεται με τον κατάλογο του συστήματος. Ο κατάλογος του συστήματος περιέχει μια λίστα με όλους τους τομείς γνώσης, πληροφορίες για τις οποίες περιέχονται στα βιβλία της βιβλιοθήκης. Μπορούμε να ανακαλέσουμε τον κατάλογο του συστήματος στη βιβλιοθήκη, από τον οποίο συνήθως ξεκινάμε την αναζήτηση για τα βιβλία που χρειαζόμαστε αν δεν γνωρίζουμε τους συγγραφείς και τους τίτλους τους. Το όνομα της περιοχής γνώσης μπορεί να είναι μεγάλο και να αποτελείται από πολλές λέξεις, επομένως για να μοντελοποιήσουμε τον κατάλογο του συστήματος θα εισαγάγουμε την οντότητα «Κατάλογος συστήματος» με δύο χαρακτηριστικά: «Κωδικός περιοχής γνώσης» και «Όνομα περιοχής γνώσης». Το χαρακτηριστικό Knowledge Area Code θα είναι το βασικό χαρακτηριστικό της οντότητας.

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

Το μυθολογικό μοντέλο της θεματικής περιοχής «Βιβλιοθήκη» παρουσιάζεται στο Σχ. 7.6.

Ρύζι. 7.6.Μυθολογικό μοντέλο "Βιβλιοθήκη"

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

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

Τις περισσότερες φορές, η επισημοποίηση των ιδεών για τη θεματική περιοχή πραγματοποιείται στο πλαίσιο του μοντέλου «οντότητα-σχέσεις» («αντικείμενα-σχέσεις»). Σε αυτό το στάδιο σχεδιασμού, χρησιμοποιείται η μέθοδος "σχέση ουσίας", η οποία ονομάζεται επίσης μέθοδος "Διάγραμμα ER" ("Ουσία" - οντότητα, "Σχέση" - σύνδεση). Αυτή η μέθοδος βασίζεται στη χρήση διαγραμμάτων που ονομάζονται διαγράμματα ER-instance και ER-type diagrams, αντίστοιχα.

ER – ένα διάγραμμα «σχέσεων οντότητας» είναι ένα σύνολο πολλών αντικειμένων και των χαρακτηριστικών τους, καθώς και των σχέσεων μεταξύ τους, που είναι απαραίτητα για τον εντοπισμό δεδομένων που χρησιμοποιούνται στη συνέχεια από τις λειτουργίες του συστήματος που σχεδιάζεται.

Οι κύριες έννοιες της μεθόδου σχέσης οντότητας είναι οι ακόλουθες:

Ουσία;

Χαρακτηριστικό οντότητας;

Κλειδί οντότητας;

Σχέση μεταξύ οντοτήτων;

Βαθμός σύνδεσης?

Η κατηγορία συμμετοχής των παρουσιών οντοτήτων.

Διαγράμματα περιπτώσεων ER;

Διαγράμματα τύπου ER.

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

Ένα χαρακτηριστικό ((από το λατινικό attribuo - χαρακτηριστικό) - μια ιδιότητα ή πράγμα αδιαχώριστο από ένα αντικείμενο) είναι ένα λογικά αδιαίρετο στοιχείο της δομής πληροφοριών, που χαρακτηρίζεται από ένα πλήθος ατομικών τιμών. Αυτή η έννοια είναι παρόμοια με την έννοια του "ιδιότητας" σε μια σχέση. Μια παρουσία αντικειμένου χαρακτηρίζεται από ένα σύνολο συγκεκριμένων τιμών χαρακτηριστικών ενός δεδομένου τύπου αντικειμένου. Μία ή κάποια ομάδα χαρακτηριστικών ενός αντικειμένου αυτού του τύπου μπορεί να παίξει το ρόλο ενός χαρακτηριστικού κλειδιού (κλειδί οντότητας). Σε αυτό το μάθημα, οι παραπάνω οντότητες χαρακτηρίζονται από χαρακτηριστικά, όπως: τμήμα_κωδικός, όνομα_τμήμα, κωδικός_τμήμα, όνομα_υπάλληλου κ.λπ.



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

Μια σχέση μεταξύ δύο ή περισσότερων οντοτήτων είναι μια εξάρτηση μεταξύ των χαρακτηριστικών αυτών των οντοτήτων. Δηλώνεται με ρήμα. Επιπλέον, υπάρχουν δύο τύποι συνδέσεων:

Ιεραρχικός;

Μονοεπίπεδο.

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


Ταξινόμηση συνδέσεων

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

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

Μεταξύ των πινάκων μπορούν να εγκατασταθούν τα ακόλουθα:

Δυαδικές συνδέσεις;

Τριμερείς συνδέσεις;

Ν-αρικοί δεσμοί.

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

1:1 (ένα προς ένα).

1:M (ένα προς πολλά)

Μ:1 (πολλά προς ένα);

Μ:Μ (πολλά σε πολλά).

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

Μια σχέση 1:M προκύπτει όταν μια εγγραφή στον γονικό πίνακα αντιστοιχεί σε πολλές εγγραφές στον θυγατρικό πίνακα.

Μια σχέση M:1 προκύπτει όταν μία ή περισσότερες εγγραφές του κύριου πίνακα αντιστοιχίζονται με μία εγγραφή ενός επιπλέον πίνακα.

Μια σχέση M:M εμφανίζεται σε περιπτώσεις όπου πολλές εγγραφές του κύριου πίνακα αντιστοιχούν σε πολλές εγγραφές του πρόσθετου πίνακα.

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

Σε αυτό το έργο μαθήματος, οι πίνακες συνδέονται με σχέσεις 1:M (ένα προς πολλά). Για παράδειγμα, ο πίνακας "σχολές" είναι ο γονικός πίνακας του παιδικού πίνακα "τμήματα". Αυτοί οι πίνακες σχετίζονται σε σχέση 1:M χρησιμοποιώντας το κλειδί "faculty_code"

ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ

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

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

Χαρακτηριστικό– ένα ονομασμένο χαρακτηριστικό μιας οντότητας. Το όνομά του πρέπει να είναι μοναδικό για έναν συγκεκριμένο τύπο οντότητας, αλλά μπορεί να είναι το ίδιο για διαφορετικούς τύπους οντοτήτων (για παράδειγμα, το COLOR μπορεί να οριστεί για πολλές οντότητες: DOG, CAR, SMOKE, κ.λπ.). Τα χαρακτηριστικά χρησιμοποιούνται για να ορίσουν ποιες πληροφορίες πρέπει να συλλέγονται για μια οντότητα. Παραδείγματα χαρακτηριστικών για την οντότητα CAR είναι TYPE, MAKE, LICENSE PATE, COLOR, κ.λπ. Και εδώ υπάρχει μια διάκριση μεταξύ τύπου και παρουσίας. Ο τύπος χαρακτηριστικού COLOR έχει πολλές παρουσίες ή τιμές:

Κόκκινο, Μπλε, Μπανάνα, Λευκή Νύχτα κ.λπ.,

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

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

Κλειδί– ένα ελάχιστο σύνολο χαρακτηριστικών των οποίων οι τιμές μπορούν να χρησιμοποιηθούν για την μοναδική εύρεση της απαιτούμενης παρουσίας μιας οντότητας. Ελαχιστοποίηση σημαίνει ότι η εξαίρεση οποιουδήποτε χαρακτηριστικού από το σύνολο δεν επιτρέπει την αναγνώριση της οντότητας από τα υπόλοιπα. Για την οντότητα Schedule (ρήτρα 1.2), το κλειδί είναι το χαρακτηριστικό Flight_number ή το σύνολο των: Departure_point, Departure_time και Destination_point (με την προϋπόθεση ότι ένα αεροπλάνο πετά από σημείο σε σημείο κάθε φορά).

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

Χαρακτηριστικά συνδέσεων και γλώσσα μοντελοποίησης

Κατά τη δημιουργία μοντέλων πληροφοριών, μπορείτε να χρησιμοποιήσετε τη γλώσσα Διαγράμματα ER(από το αγγλικό Entity-Relationship, δηλ. entity-relationship). Σε αυτά, οι οντότητες απεικονίζονται ως επισημασμένα ορθογώνια, οι συσχετισμοί ως επισημασμένα διαμάντια ή εξάγωνα, τα χαρακτηριστικά ως σημειωμένα οβάλ και οι συνδέσεις μεταξύ τους ως μη κατευθυντικές άκρες, πάνω από τις οποίες ο βαθμός σύνδεσης (1 ή ένα γράμμα που αντικαθιστά τη λέξη "πολλά") και μπορεί να υποδειχθεί η απαραίτητη εξήγηση.

Μεταξύ δύο οντοτήτων, για παράδειγμα, Α και Β, είναι δυνατοί τέσσερις τύποι συνδέσεων.

Πρώτος τύπος– Σχέση ONE-TO-ONE (1:1): σε κάθε χρονική στιγμή, κάθε εκπρόσωπος (περίπτωση) της οντότητας Α αντιστοιχεί σε 1 ή 0 αντιπροσώπους της οντότητας Β:

Ένας φοιτητής δεν μπορεί να «κερδίσει» υποτροφία, να λάβει κανονική υποτροφία ή να λάβει μία από τις ενισχυμένες υποτροφίες.

Δεύτερος τύπος– Σχέση ONE-TO-MANY (1:M): ένας εκπρόσωπος της οντότητας Α αντιστοιχεί σε 0, 1 ή σε πολλούς αντιπροσώπους της οντότητας Β.

Το διαμέρισμα μπορεί να είναι άδειο.

Δεδομένου ότι οι συνδέσεις και προς τις δύο κατευθύνσεις είναι δυνατές μεταξύ δύο οντοτήτων, υπάρχουν δύο ακόμη τύποι σχέσεων: ΠΟΛΛΑ-ΠΡΟΣ-ΕΝΑ (M:1) και ΠΟΛΛΑ-ΠΡΟΣ-ΠΟΛΛΑ (M:N).

Παράδειγμα 2.1.Εάν η σύνδεση μεταξύ των οντοτήτων ΑΝΤΡΑΣ και ΓΥΝΑΙΚΑ ονομάζεται ΓΑΜΟΣ, τότε υπάρχουν τέσσερις πιθανές αναπαραστάσεις μιας τέτοιας σύνδεσης:

Η φύση των συνδέσεων μεταξύ οντοτήτων δεν περιορίζεται σε αυτές που αναφέρονται. Υπάρχουν επίσης πιο σύνθετες συνδέσεις:

    πολλές συνδέσεις μεταξύ των ίδιων οντοτήτων

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

    εκπαιδευτικές συνδέσεις

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

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

Στα παραδείγματα που δίνονται, για τη βελτίωση της επεξηγηματικής φύσης των υπό εξέταση σχέσεων, δεν εμφανίζονται τα χαρακτηριστικά των οντοτήτων και των συσχετίσεων σε όλα τα διαγράμματα ER. Έτσι, η εισαγωγή μερικών μόνο βασικών χαρακτηριστικών στην περιγραφή των δεσμών γάμου θα περιπλέξει σημαντικά το διάγραμμα ER (Εικ. 2.1a). Από αυτή την άποψη, η γλώσσα των διαγραμμάτων ER χρησιμοποιείται για την κατασκευή μικρών μοντέλων και την απεικόνιση μεμονωμένων τμημάτων μεγάλων. Λιγότερο οπτικό, αλλά πιο ουσιαστικό, χρησιμοποιείται συχνότερα. γλώσσα μοντελοποίησης πληροφοριών(YIM), στο οποίο οι οντότητες και οι ενώσεις αντιπροσωπεύονται από προτάσεις της μορφής:

ENTITY (χαρακτηριστικό 1, χαρακτηριστικό 2, ..., χαρακτηριστικό n) ASSOCIATION [ENTITY S1, ENTITY S2, ...] (χαρακτηριστικό 1, χαρακτηριστικό 2, ..., χαρακτηριστικό n)

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

Έτσι, το παραπάνω παράδειγμα ενός συνόλου συνδέσεων μεταξύ οντοτήτων μπορεί να περιγραφεί στο NAM ως εξής:

Γιατρός ( Αριθμός_γιατρού, Επώνυμο, Όνομα, Πατρώνυμο, Ειδικότητα)Ασθενής ( Αριθμός Μητρώου, Αριθμός κρεβατιού, Επώνυμο, Όνομα, Πατρώνυμο, Διεύθυνση, Ημερομηνία γέννησης, Φύλο) Attending_doctor [Ιατρός 1, Ασθενής Μ] ( Αριθμός_γιατρού , Αριθμός Μητρώου)Σύμβουλος [Ιατρός Μ, Ασθενής Ν] ( Αριθμός_γιατρού , Αριθμός Μητρώου).

Ρύζι. 2.1. Παραδείγματα διαγραμμάτων ER

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

Παράδειγμα 2.2.Το Γραφείο Ληξιαρχείου (ΖΑΓΣ) δεν ασχολείται με όλα τα άτομα, αλλά μόνο με όσους έχουν κάνει αίτηση για εγγραφή γάμου, γέννησης ή θανάτου. Επομένως, σε χώρες όπου επιτρέπονται μόνο οι παραδοσιακοί γάμοι, τα ληξιαρχεία μπορούν να δημοσιεύουν πληροφορίες σχετικά με τους εγγεγραμμένους γάμους σε μία μόνο οντότητα:

Γάμος ( Αριθμός πιστοποιητικού, Επώνυμο συζύγου, Όνομα συζύγου, Πατρώνυμο συζύγου, Ημερομηνία γέννησης συζύγου, Επώνυμο συζύγου, ... , Ημερομηνία εγγραφής, Τόπος εγγραφής, ...),

Το διάγραμμα ER του οποίου φαίνεται στο Σχ. 2.1, β.

Παράδειγμα 2.3.Τώρα σκεφτείτε μια κατάσταση όπου το ληξιαρχείο βρίσκεται σε μια χώρα που επιτρέπει την πολυγαμία. Εάν χρησιμοποιείτε την οντότητα «Γάμος» του παραδείγματος 2.2 για την καταχώριση γάμων, τότε οι πληροφορίες σχετικά με τους συζύγους που έχουν πολλές συζύγους θα αντιγραφούν (βλ. Πίνακα 2.1).

Πίνακας 2.1

Η αντιγραφή μπορεί να εξαλειφθεί δημιουργώντας μια πρόσθετη οντότητα "Husbands"

σύζυγοι ( Κωδικός_Μ, Επώνυμο, Όνομα, Πατρώνυμο, Ημερομηνία γέννησης, Τόπος γέννησης)

και αντικατάσταση της οντότητας «Γάμος» με ένα χαρακτηριστικό (βλ. ενότητα 2.3) με αναφορά στην αντίστοιχη περιγραφή στην οντότητα «Σύζυγοι».

Γάμος ( Αριθμός πιστοποιητικού , Κωδικός_Μ, Επώνυμο συζύγου, ..., Ημερομηνία εγγραφής, ... (Σύζυγοι).

Το διάγραμμα ER της σύνδεσης μεταξύ αυτών των οντοτήτων φαίνεται στο Σχ. 2.1,c, και ένα παράδειγμα των αντιγράφων τους είναι στον πίνακα. 2.2 και 2.3.

Πίνακας 2.2

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

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

2.1 Σημασιολογικά μοντέλα και γνωστική πτυχή

2.1.1 Μοντέλα σημασιολογικών δεδομένων

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

Αλλά αν μόνο δεδομένα αποθηκεύονται στη βάση δεδομένων, τότε πώς αποθηκεύονται οι έννοιες; Πρώτα απ 'όλα, οι έννοιες είναι επίσης δεδομένα που σχετίζονται με τα δεδομένα των οποίων τη σημασία αντιπροσωπεύουν.

Ας επισημάνουμε τα ακόλουθα είδη σημασιών:

  • Έννοιες που προορίζονται μόνο για ανθρώπους. Μπορούν να αποθηκευτούν σε πληροφοριακά συστήματα (IS), αλλά είναι παθητικά, δηλαδή απρόσιτα στο σύστημα και επομένως δεν επηρεάζουν τη συμπεριφορά του. Μπορεί να ανακτηθεί μόνο από ανθρώπους
  • Έννοιες εσωτερικές στο IS. Είναι ενεργοί, δηλαδή αλλάζουν ή δημιουργούν νέα συμπεριφορά του ΚτΠ. Τυπικά παραδείγματα: κλειδιά, τύποι δεδομένων, μεταδεδομένα.
  • Εξωτερικές έννοιες που σχετίζονται με συστήματα ή εργασίες εκτός του IS ή, πιο στενά, της βάσης δεδομένων. Αυτές οι έννοιες είναι επίσης ενεργές.

Πώς εκδηλώνεται η δραστηριότητα των εσωτερικών νοημάτων; Ας υπάρχει ένα πρωτεύον κλειδί. Θέλετε να γράψετε μια εγγραφή σε ένα σύνολο. Ωστόσο, το DBMS θα κάνει πρώτα κάτι που δεν ζητήσατε - θα ελέγξει την εγκυρότητα της τιμής κλειδιού που εισαγάγατε - και μόνο εάν λείπει αυτή η τιμή θα κάνει εγγραφή.

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

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

Τα σημασιολογικά μοντέλα ονομάζονται συνήθως μοντέλα που παρέχουν μια αναπαράσταση της σημασιολογίας των δεδομένων. Όπως και άλλα μοντέλα, μπορούν να περιλαμβάνουν δομικά, χειριστικά και ολιστικά μέρη. Ωστόσο, δεδομένου ότι υπάρχει κάποιο είδος σημασιολογίας σε οποιοδήποτε μοντέλο, εκείνα τα μοντέλα που περιέχουν περισσότερη σημασιολογία μπορούν να θεωρηθούν σημασιολογικά από τα «μη σημασιολογικά» μοντέλα που περιέχουν λίγη σημασιολογία. Αυτός ο ψευδο-ορισμός είναι πολύ ασαφής. Αλλά προς το παρόν αυτό μας αρκεί.

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

Η σημασιολογία δεδομένων θα συζητηθεί αναλυτικά στη διάλεξη «Σημασιολογία Βάσεων Δεδομένων» του σχολικού βιβλίου.

Το πιο διάσημο σημασιολογικό μοντέλο οντοτήτων-σχέσεων (ER) προτάθηκε από τον Peter Chen το 1976.

2.1.2 Γνωστική πτυχή

Τα σημασιολογικά μοντέλα υλοποιούνται με τη μορφή αναγνώσιμων από τον άνθρωπο διαγραμμάτων. Στη σύγχρονη επιστήμη γενικά και στην επιστήμη των υπολογιστών ειδικότερα, δίνεται μεγάλη και άξια προσοχή στις γνωστικές πτυχές. Στο πλαίσιο των βάσεων δεδομένων, αυτό σημαίνει τον προσδιορισμό των δύο κύριων παραγόντων - ανθρώπους και προγράμματα - και ανάπτυξη φυσικών, φιλικών προς τον άνθρωπο μοντέλων, γλωσσών, διεπαφών και αλγορίθμων για την εμπειρία του χρήστη. Φυσικά, είναι απαραίτητο να ληφθεί υπόψη η προκαταρκτική επαγγελματική κατάρτιση του χρήστη, η οποία καθορίζει, μαζί με την καθημερινή γνώση, τον ψυχικό κόσμο ενός ατόμου, το σύνολο των εικόνων (gestalts) με τις οποίες λειτουργεί. Γιατί περιμένουμε ένα κεντρικό μενού στο επάνω μέρος του παραθύρου; Μόνο επειδή οι προγραμματιστές ορισμένων επιτυχημένων προϊόντων λογισμικού μας έμαθαν να το κάνουμε αυτό.

2.1.3 Επίπεδα μοντέλου

Σύμφωνα με την προσέγγιση του Peter Chen, που περιγράφεται στη βασική εργασία για τα διαγράμματα σχέσεων οντοτήτων, διακρίνουμε τέσσερα επίπεδα αναπαράστασης μοντέλων δεδομένων, αλλάζοντας ελαφρώς τους ορισμούς τους:

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

Κοιτάζοντας μπροστά, σημειώνουμε ότι το σχεσιακό μοντέλο αναφέρεται στα επίπεδα 2 και 3. Τα δικτυακά και ιεραρχικά μοντέλα, όπως υπήρχαν πριν από 20 χρόνια, λειτουργούν κυρίως στα επίπεδα 3 και 4. Το UML είναι επίπεδα 1, 2 και 3, αλλά το UML πηγαίνει μακριά πέρα από την περιγραφή δεδομένων. Το μοντέλο σχέσης οντότητας λειτουργεί στα επίπεδα 1 και 2.

Σκοπός του μοντέλου.

Κατακερματισμός.

Αυτή η μέθοδος χρησιμοποιείται όταν ολόκληρο το σύνολο των κλειδιών είναι γνωστό εκ των προτέρων και μπορεί να αποθηκευτεί στη μνήμη RAM για τη διάρκεια της επεξεργασίας. Σε αυτήν την περίπτωση, κατασκευάζεται μια ειδική συνάρτηση που αντιστοιχίζει μοναδικά ένα σύνολο πλήκτρων σε ένα σύνολο δεικτών, που ονομάζεται συνάρτηση κατακερματισμού (από την αγγλική λέξη "to hash" - cut, chop). Έχοντας μια τέτοια λειτουργία, μπορείτε να υπολογίσετε τη διεύθυνση μιας εγγραφής σε ένα αρχείο χρησιμοποιώντας ένα δεδομένο κλειδί αναζήτησης. Γενικά, τα βασικά δεδομένα που χρησιμοποιούνται για τον προσδιορισμό της διεύθυνσης μιας εγγραφής οργανώνονται σε έναν πίνακα που ονομάζεται πίνακας κατακερματισμού.

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


2.1.Αναπαράσταση δεδομένων με χρήση του μοντέλου «οντότητα-σχέση».

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

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

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

Το μοντέλο σχέσης οντοτήτων προτάθηκε το 1976 από τον Peter Ping-Sheng Chen.

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

ΟυσίαΜια οντότητα είναι ένα αντικείμενο που μπορεί να αναγνωριστεί με κάποιο τρόπο που το διακρίνει από άλλα αντικείμενα. Παραδείγματα: συγκεκριμένο πρόσωπο, επιχείρηση, εκδήλωση κ.λπ.

Σύνολο οντοτήτων(σύνολο οντοτήτων) - ένα σύνολο οντοτήτων του ίδιου τύπου (που έχουν τις ίδιες ιδιότητες). Παραδείγματα: όλοι οι άνθρωποι, οι επιχειρήσεις, οι διακοπές κ.λπ.Τα σύνολα οντοτήτων δεν χρειάζεται να είναι διαχωρισμένα. Για παράδειγμα, μια οντότητα που ανήκει στο σύνολο MAN ανήκει επίσης στο σύνολο PEOPLE.



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

Στο μέλλον, για να ορίσουμε μια οντότητα και τα χαρακτηριστικά της, θα χρησιμοποιήσουμε μια σημείωση της φόρμας

ΕΡΓΑΖΟΜΕΝΟΣ (PERSONNEL_NUMBER, NAME, AGE).

Για παράδειγμα, τα τμήματα στα οποία χωρίζεται η επιχείρηση και στα οποία εργάζονται οι υπάλληλοι μπορούν να περιγραφούν ως ΤΜΗΜΑ (DEPARTMENT_NUMBER, NAME).

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

Στο αναφερόμενο άρθρο του P. Chen, το χαρακτηριστικό ορίζεται ως μια συνάρτηση που αντιστοιχίζει ένα σύνολο οντοτήτων σε ένα σύνολο τιμών ή σε ένα καρτεσιανό γινόμενο συνόλων τιμών. Έτσι, το χαρακτηριστικό AGE αντιστοιχεί στο σύνολο τιμών (τομέας) NUMBER_YEARS. Το χαρακτηριστικό NAME αντιστοιχίζει τα σύνολα τιμών FIRST NAME, LAST NAME και PATRONIC σε ένα καρτεσιανό προϊόν.

Από εδώ καθορίζεται κλειδί οντότητας- μια ομάδα χαρακτηριστικών έτσι ώστε η αντιστοίχιση από ένα σύνολο οντοτήτων σε μια αντίστοιχη ομάδα συνόλων τιμών είναι μια αντιστοίχιση ένα προς ένα. Με άλλα λόγια: ένα κλειδί οντότητας είναι ένα ή περισσότερα χαρακτηριστικά που προσδιορίζουν μοναδικά αυτήν την οντότητα. Στο παράδειγμά μας, το κλειδί της οντότητας EMPLOYEE είναι το χαρακτηριστικό PERSONNEL_NUMBER (φυσικά, μόνο εάν όλοι οι αριθμοί προσωπικού στην επιχείρηση είναι μοναδικοί).

Σύνδεση(σχέση) είναι ένας συσχετισμός που δημιουργείται μεταξύ πολλών οντοτήτων. Παραδείγματα:

  • δεδομένου ότι κάθε υπάλληλος εργάζεται σε κάποιο τμήμα, υπάρχει μια σχέση «εργασίας» ή ΤΜΗΜΑ-ΥΠΑΛΛΗΛΟΣ μεταξύ των οντοτήτων ΕΡΓΑΖΟΜΕΝΟΥ και ΤΜΗΜΑΤΟΣ.
  • δεδομένου ότι ένας από τους υπαλλήλους του τμήματος είναι ο προϊστάμενος του, τότε μεταξύ των οντοτήτων ΕΡΓΑΖΟΜΕΝΟΥ και ΤΜΗΜΑΤΟΣ υπάρχει σύνδεση «διευθυντής» ή ΤΜΗΜΑΤΟΣ-ΠΡΟΪΣΤΑΜΕΝΟΣ.
  • Μπορεί επίσης να υπάρχουν συνδέσεις μεταξύ οντοτήτων του ίδιου τύπου, για παράδειγμα μια σύνδεση γονέα - ΚΑΤΑΓΟΝΟΣ μεταξύ δύο οντοτήτων PERSON.

Δυστυχώς, δεν υπάρχουν γενικοί κανόνες για τον προσδιορισμό του τι θεωρείται οντότητα και τι σχέση. Στο παράδειγμα που συζητήθηκε παραπάνω, υποθέσαμε ότι η «οδηγία» είναι μια σύνδεση. Ωστόσο, μπορούμε να θεωρήσουμε την οντότητα «διευθυντής», η οποία έχει συνδέσεις «διαχειρίζεται» με την οντότητα «τμήμα» και «είναι» με την οντότητα «υπάλληλος».

Μια σχέση μπορεί επίσης να έχει ιδιότητες. Για παράδειγμα, για τη σχέση DEPARTMENT-EMPLOYEE, μπορείτε να ορίσετε το χαρακτηριστικό WORK_TERRENCE_IN_DEPARTMENT.

Ο ρόλος της οντότητας στη σχέση- η λειτουργία που εκτελεί μια οντότητα σε μια δεδομένη σύνδεση. Για παράδειγμα, σε μια σχέση γονέα-παιδιού, οι οντότητες PERSON μπορεί να έχουν τους ρόλους "γονέας" και "παιδί". Ο καθορισμός ρόλων στο μοντέλο σχέσης οντότητας είναι προαιρετικός και χρησιμεύει για την αποσαφήνιση της σημασιολογίας της σχέσης.

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

Οταν n=2, δηλ. όταν μια σχέση συνδυάζει δύο οντότητες, ονομάζεται δυαδική. Έχει αποδειχθεί ότι n-ένα σύνολο συνδέσεων ( n>2) μπορούν πάντα να αντικατασταθούν από πολλά δυαδικά, αλλά τα πρώτα αντικατοπτρίζουν καλύτερα τη σημασιολογία της θεματικής περιοχής.

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

  • ένα προς ένα (σημειώνεται 1: 1 ). Αυτό σημαίνει ότι σε μια τέτοια σχέση, οι οντότητες με έναν ρόλο αντιστοιχούν πάντα το πολύ σε μια οντότητα με έναν άλλο ρόλο. Στο παράδειγμα που εξετάσαμε, αυτή είναι η σχέση «ηγέτες», αφού κάθε τμήμα μπορεί να έχει μόνο έναν προϊστάμενο και ένας υπάλληλος μπορεί να διευθύνει μόνο ένα τμήμα. Αυτό το γεγονός παρουσιάζεται στο παρακάτω σχήμα, όπου τα ορθογώνια αντιπροσωπεύουν οντότητες και ένα διαμάντι αντιπροσωπεύει μια σχέση. Δεδομένου ότι ο βαθμός σύνδεσης για κάθε οντότητα είναι 1, συνδέονται με μία γραμμή.

Ένα άλλο σημαντικό χαρακτηριστικό μιας σύνδεσης εκτός από τον βαθμό της είναι τάξη μέλουςοντότητες που περιλαμβάνονται σε αυτό ή Καρδιοτηταδιαβιβάσεις. Δεδομένου ότι κάθε τμήμα πρέπει να έχει έναν διευθυντή, κάθε οντότητα «ΤΜΗΜΑ» πρέπει απαραίτητα να έχει μια αντίστοιχη οντότητα «ΥΠΑΛΛΗΛΟΣ». Ωστόσο, δεν είναι κάθε υπάλληλος επικεφαλής ενός τμήματος, επομένως, από αυτή την άποψη, δεν έχει κάθε οντότητα «ΥΠΑΛΛΗΛΟΣ» μια συνδεδεμένη οντότητα «ΤΜΗΜΑ».

Έτσι, η οντότητα «ΥΠΑΛΛΗΛΟΣ» φέρεται να έχει υποχρεωτική τάξη μέλους(αυτό το γεγονός υποδεικνύεται επίσης υποδεικνύοντας το διάστημα του αριθμού των πιθανών εμφανίσεων της οντότητας σε μια σχέση, σε αυτήν την περίπτωση είναι 1,1) και η οντότητα "ΤΜΗΜΑ" έχει προαιρετική τάξη μέλους(0,1). Τώρα μπορούμε να περιγράψουμε αυτή τη σχέση ως 0,1:1,1 . Στη συνέχεια, θα υποδηλώσουμε την καρδινικότητα των δυαδικών συνδέσεων βαθμού 1 ως εξής:

  • ένα προς πολλά ( 1: n). Σε αυτήν την περίπτωση, μια οντότητα με έναν ρόλο μπορεί να αντιστοιχεί σε οποιονδήποτε αριθμό οντοτήτων με άλλο ρόλο. Αυτή είναι η σχέση ΤΜΗΜΑΤΟΣ-ΥΠΑΛΛΗΛΟΥ. Κάθε τμήμα μπορεί να έχει οποιονδήποτε αριθμό υπαλλήλων, αλλά ένας υπάλληλος μπορεί να εργαστεί μόνο σε ένα τμήμα. Γραφικά ο βαθμός σύνδεσης nεμφανίζεται ως γραμμή «δέντρου», όπως γίνεται στο παρακάτω σχήμα.

Αυτό το σχήμα δείχνει περαιτέρω το γεγονός ότι μπορούν να οριστούν πολλαπλά σύνολα σχέσεων μεταξύ δύο οντοτήτων.

Εδώ είναι επίσης απαραίτητο να ληφθεί υπόψη η κατηγορία μελών των οντοτήτων. Κάθε υπάλληλος πρέπει να εργάζεται σε κάποιο τμήμα, αλλά όχι κάθε τμήμα (για παράδειγμα, ένα νεοσύστατο) πρέπει να περιλαμβάνει τουλάχιστον έναν υπάλληλο. Επομένως, η οντότητα "ΤΜΗΜΑ" έχει μια υποχρεωτική τάξη και η οντότητα "ΕΡΓΑΖΟΜΕΝΟΣ" έχει μια προαιρετική κατηγορία μέλους. Καρδινάλιος δυαδικών σχέσεων βαθμών nθα το χαρακτηρίσουμε ως εξής:

  • πολλά προς ένα ( n: 1). Αυτή η σχέση είναι παρόμοια με τη χαρτογράφηση 1: n. Ας υποθέσουμε ότι η επιχείρηση που εξετάζουμε βασίζει τις δραστηριότητές της στη βάση συμβάσεων που έχει συνάψει με πελάτες. Αυτό το γεγονός αντικατοπτρίζεται στο μοντέλο σχέσης οντότητας που χρησιμοποιεί τη σύνδεση CONTRACT-CUSTOMER, η οποία συνδυάζει τις οντότητες CONTRACT(NUMBER, DUE_DATE, AMOUNT) και CUSTOMER(NAME, ADDRESS). Δεδομένου ότι μπορούν να συναφθούν περισσότερες από μία συμβάσεις με έναν πελάτη, η σχέση ΣΥΜΒΑΣΗΣ-ΠΕΛΑΤΗ μεταξύ αυτών των οντοτήτων θα έχει τον βαθμό n: 1.

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

  • πολλά σε πολλά ( n: n). Σε αυτήν την περίπτωση, κάθε μία από τις συσχετισμένες οντότητες μπορεί να αναπαρασταθεί από οποιονδήποτε αριθμό παρουσιών. Ας υποθέσουμε ότι στην επιχείρηση που εξετάζουμε, δημιουργείται μια ομάδα εργασίας για την εκπλήρωση κάθε σύμβασης, η οποία περιλαμβάνει υπαλλήλους από διαφορετικά τμήματα. Δεδομένου ότι κάθε εργαζόμενος μπορεί να είναι μέλος πολλών (συμπεριλαμβανομένης καμίας) ομάδων εργασίας και κάθε ομάδα πρέπει να περιλαμβάνει τουλάχιστον έναν εργαζόμενο, η σχέση μεταξύ των οντοτήτων EMPLOYEE και WORK_GROUP έχει πτυχίο n: n.

Εάν η ύπαρξη μιας οντότητας Χεξαρτάται από την ύπαρξη μιας οντότητας y, Οτι Χπου ονομάζεται εξαρτημένη οντότητα(μερικές φορές η οντότητα Χονομάζεται "αδύναμος" και "ουσία" y - ισχυρό). Ως παράδειγμα, εξετάστε τη σχέση μεταξύ των οντοτήτων που περιγράφηκαν προηγουμένως WORKING_GROUP και CONTRACT. Η ομάδα εργασίας δημιουργείται μόνο μετά την υπογραφή της σύμβασης με τον πελάτη και παύει να υφίσταται με την ολοκλήρωση της σύμβασης. Έτσι, η οντότητα WORKING_GROUP εξαρτάται από την οντότητα CONTRACT. Θα υποδηλώσουμε μια εξαρτημένη οντότητα με ένα διπλό ορθογώνιο και τη σύνδεσή της με μια ισχυρή οντότητα με μια γραμμή με ένα βέλος:

Σημειώστε ότι η ιδιότητα της σύνδεσης για μια ισχυρή οντότητα θα είναι πάντα (1,1). Η κατηγορία μέλους και ο βαθμός σχέσης για μια εξαρτημένη οντότητα μπορεί να είναι οτιδήποτε. Ας υποθέσουμε, για παράδειγμα, ότι η επιχείρηση που εξετάζουμε χρησιμοποιεί πολλά τραπεζικά δάνεια, τα οποία αντιπροσωπεύονται από ένα σύνολο οντοτήτων CREDIT (AGREEMENT_NUMBER, AMOUNT, REPAYMENT_TERM, BANK). Για κάθε δάνειο πρέπει να γίνονται τόκοι και πληρωμές αποπληρωμής. Αυτό το γεγονός αντιπροσωπεύεται από ένα σύνολο οντοτήτων PAYMENT(DATE, AMOUNT) και ένα σύνολο σχέσεων "που πραγματοποιούνται από". Σε περίπτωση που ακυρωθεί ένα προγραμματισμένο δάνειο, οι πληροφορίες σχετικά με αυτό πρέπει να διαγραφούν από τη βάση δεδομένων. Κατά συνέπεια, όλες οι πληροφορίες σχετικά με τις προγραμματισμένες πληρωμές για αυτό το δάνειο πρέπει να διαγραφούν. Έτσι, η οντότητα ΠΛΗΡΩΜΗΣ εξαρτάται από την ΠΙΣΤΩΤΙΚΗ οντότητα.



2.2.Διάγραμμα σχέσης οντότητας.

Μια πολύ σημαντική ιδιότητα του μοντέλου σχέσης οντότητας είναι ότι μπορεί να αναπαρασταθεί ως γραφικό διάγραμμα. Αυτό διευκολύνει πολύ την ανάλυση της θεματικής περιοχής. Υπάρχουν πολλές επιλογές για την ονομασία των στοιχείων ενός διαγράμματος σχέσης οντοτήτων, καθεμία από τις οποίες έχει τα δικά της θετικά χαρακτηριστικά. Μια σύντομη επισκόπηση ορισμένων από αυτές τις σημειώσεις θα δοθεί στην Ενότητα 2.4. Εδώ θα χρησιμοποιήσουμε ένα είδος υβριδίου των συμβολισμών Chen (προσδιορισμός οντοτήτων, σχέσεων και ιδιοτήτων) και Martin (προσδιορισμός βαθμών και καρδιναικότητας των συνδέσεων). Ο Πίνακας 2.1 παραθέτει τη σημείωση που χρησιμοποιείται εδώ.

Πίνακας 2.1

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

Στη διαδικασία κατασκευής ενός διαγράμματος, υπάρχουν πολλά προφανή στάδια:

  1. Προσδιορισμός οντοτήτων και σχέσεων ενδιαφέροντος.
  2. Προσδιορισμός σημασιολογικών πληροφοριών σε σύνολα συνδέσμων (για παράδειγμα, εάν ένα συγκεκριμένο σύνολο συνδέσμων είναι αντιστοίχιση 1: n).
  3. Προσδιορισμός της καρδιναικότητας των συνδέσεων.
  4. Ορισμός χαρακτηριστικών και συνόλων τιμών τους (τομείς).
  5. Οργάνωση δεδομένων με τη μορφή σχέσεων οντοτήτων-σχέσεων.

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

Ας επισημάνουμε τις οντότητες και τις συνδέσεις που μας ενδιαφέρουν:

  1. Πρώτα απ 'όλα, μια επιχείρηση αποτελείται από τμήματα στα οποία εργάζονται οι υπάλληλοι. Ο μισθός κάθε υπαλλήλου εξαρτάται από τη θέση που κατέχει: μηχανικός, αρχηγός μηχανικός, λογιστής, καθαριστής κ.λπ. Ας υποθέσουμε περαιτέρω ότι η εταιρεία μας επιτρέπει πολλαπλές θέσεις, π.χ. Κάθε υπάλληλος μπορεί να έχει περισσότερες από μία θέσεις (και να εργάζεται σε περισσότερα από ένα τμήματα) και μπορεί να είναι μερικής απασχόλησης. Ταυτόχρονα, πολλοί υπάλληλοι μπορούν να καταλαμβάνουν την ίδια θέση ταυτόχρονα. Ως αποτέλεσμα αυτού του συλλογισμού, πρέπει να εισαγάγουμε σύνολα οντοτήτων
  • DEPARTMENT(DEPARTMENT_NAME),
  • ΥΠΑΛΛΗΛΟΣ (PERSONNEL_NUMBER, NAME),
  • POSITION (POSITION_NAME, ΜΙΣΘΟΣ),

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

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

  • Η σύνδεση εκπαίδευσης που παρουσιάζεται εδώ φέρει σίγουρα πληρέστερες πληροφορίες σχετικά με τη θεματική περιοχή. Πράγματι, αντικατοπτρίζει ξεκάθαρα το γεγονός ότι ο μισθός ενός υπαλλήλου εξαρτάται από τη θέση του, το τμήμα όπου εργάζεται και το ποσοστό. Ωστόσο, σε αυτή την περίπτωση υπάρχουν ορισμένα προβλήματα με τον προσδιορισμό του βαθμού σύνδεσης. Αν και, όπως ειπώθηκε, κάθε υπάλληλος μπορεί να κατέχει πολλές θέσεις και στο προσωπικό κάθε τμήματος υπάρχουν κενές θέσεις με διάφορες θέσεις, εντούτοις, η κατηγορία μελών της οντότητας POSITION στο παραπάνω σχήμα ορίζεται σε (1,1). Αυτό εξηγείται από το γεγονός ότι η ΘΕΣΗ στην πραγματικότητα δεν συνδέεται με τις οντότητες Εργαζόμενος και ΤΜΗΜΑ, αλλά με τη μεταξύ τους σχέση. Προτείνεται να υποδειχθεί αυτό το γεγονός όπως φαίνεται στο ακόλουθο διάγραμμα:

Εδώ, οι οντότητες σχέσης EMPLOYEE, DEPARTMENT και WORK_B συγκεντρώνονται σε μια νέα αφηρημένη οντότητα που συσχετίζεται με την οντότητα POSITION χρησιμοποιώντας μια σχέση βαθμού n:1.

  • Ας προσπαθήσουμε να εμφανίσουμε ενώσεις υπαλλήλων, τμημάτων και θέσεων χρησιμοποιώντας δυαδικές συνδέσεις.

Σε αυτήν την περίπτωση, για να περιγραφεί επαρκώς η σημασιολογία της θεματικής περιοχής, είναι απαραίτητο να εισαχθεί μια άλλη οντότητα STAFF_UNIT, η οποία στην πραγματικότητα αντικαθιστά τη σχέση WORK_B στην αφηρημένη οντότητα και επομένως έχει το χαρακτηριστικό προσφορά.

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

  1. Καταγράψτε έναν αριθμό αντικειμένων που περιγράφονται στην προηγούμενη παράγραφο που θα είναι χρήσιμα για τη μοντελοποίηση των δεδομένων της εν λόγω επιχείρησης. Σε αυτές αντιστοιχούν οι ακόλουθες οντότητες:
  • CUSTOMER(CUSTOMER_NAME,ADDRESS)
  • CONTRACT(NUMBER, START_DATE, END_DATE, AMOUNT)
  • ΟΜΑΔΑ ΕΡΓΑΣΙΑΣ(PERCENTAGE_REWARD)

Χαρακτηριστικό «ποσοστό αμοιβής»αντικατοπτρίζει το τμήμα της αξίας της σύμβασης που προορίζεται να πληρώσει τα μέλη της σχετικής ομάδας εργασίας. Η έννοια των υπόλοιπων χαρακτηριστικών είναι σαφής χωρίς πρόσθετη εξήγηση. Οι σχέσεις μεταξύ των καταχωρημένων οντοτήτων περιγράφονται επίσης στην προηγούμενη παράγραφο.
Κατά κανόνα, ένα από τα μέλη της ομάδας εργασίας είναι ο αρχηγός σε σχέση με τους άλλους υπαλλήλους που περιλαμβάνονται στη σύνθεσή της. Για να αντικατοπτρίσουμε αυτό το γεγονός, πρέπει να εισαγάγουμε τους «οδηγούς» σύνδεσης με την καρδιναλικότητα 1,1:0,nμεταξύ των οντοτήτων EMPLOYEE και WORK_GROUP (ένας υπάλληλος μπορεί να διευθύνει έναν αυθαίρετο αριθμό ομάδων εργασίας, αλλά κάθε ομάδα εργασίας έχει έναν και μόνο έναν ηγέτη).

  1. Ας ρίξουμε τώρα μια πιο προσεκτική ματιά στο αντικείμενο πληροφοριών «πελάτη». Στην πράξη, πολύ συχνά καθίσταται απαραίτητο να γίνει διάκριση μεταξύ της ιθαγένειας των νομικών προσώπων με τα οποία μια επιχείρηση συνάπτει συμβατικές σχέσεις. Αυτό οφείλεται στο γεγονός ότι για τις ξένες εταιρείες είναι απαραίτητο να αποθηκεύονται, για παράδειγμα, πληροφορίες σχετικά με το νόμισμα στο οποίο γίνονται οι πληρωμές, τη γλώσσα στην οποία υπογράφηκε η σύμβαση κ.λπ. Με τη σειρά του, για τις εγχώριες εταιρείες είναι απαραίτητο να έχουν πληροφορίες σχετικά με τη μορφή ιδιοκτησίας (ιδιωτική ή κρατική), καθώς η διαδικασία φορολόγησης των κεφαλαίων που λαμβάνονται για την εκτέλεση εργασιών βάσει σύμβασης μπορεί να εξαρτάται από αυτό.
    Έτσι, καταλήγουμε στο συμπέρασμα ότι είναι απαραίτητο να εισαγάγουμε υπόψη δύο ακόμη ξεχωριστά σύνολα FOREIGN_ENTERPRISE (ΝΟΜΙΣΜΑ, ΓΛΩΣΣΑ) και DOMESTIC_ENTERPRISE (FORM OF PROKTY), η ένωση των οποίων αποτελεί το πλήρες σύνολο ΠΕΛΑΤΗΣ. Ο συσχετισμός μεταξύ αυτών των αντικειμένων ονομάζεται κληρονομική σχέσηή ιεραρχική σύνδεση, καθώς οι οντότητες FOREIGN_ENTERPRISE και DOMESTIC_ENTERPRISE κληρονομούν τα χαρακτηριστικά της οντότητας CUSTOMER(CUSTOMER_NAME, ADDRESS). Για να προσδιορίσετε σε ποιο υποσύνολο ανήκει μια συγκεκριμένη οντότητα από το σύνολο ΠΕΛΑΤΗΣ (και, κατά συνέπεια, ποιο σύνολο χαρακτηριστικών έχει), πρέπει να εισαγάγετε το χαρακτηριστικό "εθνικότητα" ονομάζεται διακριτική. Αυτός ο τύπος σύνδεσης προτείνεται να εμφανίζεται στο διάγραμμα ως εξής:

Συνοψίζοντας όλα τα παραπάνω συλλογιστικά, παίρνουμε το διάγραμμα «οντότητα-σχέση» που φαίνεται στο παρακάτω σχήμα.

Στο τέλος αυτής της ενότητας, προσφέρονται στον αναγνώστη διάφορες ερωτήσεις για ανεξάρτητη μελέτη:

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