3.3.3

3.3.3 Μοντελοποίηση Συσχετίσεων Οντοτήτων και ER Διάγραμμα
Το **μοντέλο συσχετίσεων οντοτήτων (Entity Relationship model)** είναι ένα εννοιολογικό μοντέλο το οποίο χρησιμοποιείται ευρέως στον σχεδιασμό βάσεων δεδομένων για την κατανόηση και αναπαράσταση των απαιτήσεων δεδομένων μιας επιχείρησης ή ενός οργανισμού.

Η **μοντελοποίηση συσχετίσεων οντοτήτων (Entity Relationship modeling)** είναι ανεξάρτητη από το υλικό ή το λογισμικό που χρησιμοποιείται ή θα χρησιμοποιηθεί στην υλοποίηση, όπως φαίνεται στο παρακάτω σχήμα. Παρόλο που το μοντέλο συσχετίσεων οντοτήτων (Entity Relationship Model) αποτελεί τον θεμελιώδη λίθο για την δημιουργία κάθε τύπου βάσης δεδομένων, όπως των ιεραρχικών (hierarchical databases), των διαδικτυακών (network databases) και των σχεσιακών βάσεων δεδομένων (relational databases) συνδέεται περισσότερο όμως με τις σχεσιακές βάσεις δεδομένων.

Σχήμα 3.3.4: Το μοντέλο οντοτήτων συσχετίσεων είναι ανεξάρτητο από την υλοποίηση

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


 * Απεικόνιση Οντότητας**

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

Σχήμα 3.3.5: Απεικόνιση οντοτήτων σε ER διάγραμμα


 * Απεικόνιση Ιδιοτήτων - Γνωρισμάτων Οντότητας**

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

Σχήμα 3.3.6: Απεικόνιση ιδιοτήτων - γνωρισμάτων οντοτήτων σε ER διάγραμμα

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


 * Απεικόνιση Κλειδιού**

Εκείνο το γνώρισμα σε μία οντότητα που έχει τον ρόλο του κλειδιού, δηλαδή προσδιορίζει μονοσήμαντα την οντότητα στο ER διάγραμμα σημειώνεται με το σύμβολο «#», όπως φαίνεται στο παρακάτω σχήμα:

Σχήμα 3.3.7: Απεικόνιση κλειδιού οντότητας σε ER διάγραμμα


 * Απεικόνιση Συσχετίσεων Οντοτήτων**

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

Σχήμα 3.3.8: Απεικόνιση συσχετίσεων οντοτήτων από το χώρο των επιχειρήσεων


 * Απεικόνιση Πληθάριθμου Σχέσης**

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

Σχήμα 3.3.9: Απεικόνιση πληθάριθμου σχέσης «ένα»

Παρόμοια, το παράδειγμα που απεικονίζεται στο παρακάτω σχήμα διαβάζεται ως εξής:
 * Σε κάθε θέση εργασίας εργάζονται περισσότεροι από ένας εργαζόμενοι.

Σχήμα 3.3.10: Απεικόνιση πληθάριθμου σχέσης «πολλά»


 * Απεικόνιση Υποχρεωτικής/Προαιρετικής Σχέσης**

Οι σχέσεις, όπως έχουμε δει, μπορεί να είναι υποχρεωτικές ή προαιρετικές, όπως συμβαίνει και με τα γνωρίσματα. Οι υποχρεωτικές σχέσεις απεικονίζονται από μία συμπαγή γραμμή, ενώ οι προαιρετικές από μία διακεκομμένη γραμμή. Το παρακάτω σχήμα διαβάζεται ως εξής:
 * Κάθε εργαζόμενος έχει οπωσδήποτε μία θέση εργασίας.
 * Κάθε εργασίας μπορεί να απασχολεί εργαζόμενους. Δεν είναι υποχρεωτικό δηλαδή για μία θέση εργασίας να υπάρχουν οπωσδήποτε εργαζόμενοι».

Σχήμα 3.3.11: Υποχρεωτικές και προαιρετικές συσχετίσεις από το χώρο των επιχειρήσεων

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

Σχήμα 3.3.12: Υποχρεωτικές και προαιρετικές συσχετίσεις από τον σχολικό χώρο


 * Ολοκληρωμένη Απεικόνιση Συσχετίσεων Οντοτήτων**

Αν συνδυάσουμε όλα τα παραπάνω σε ένα διάγραμμα θα πάρουμε το παρακάτω σχήμα, το οποίο διαβάζεται ως εξής:
 * Κάθε εργαζόμενος υποχρεωτικά (mandatory) πρέπει να έχει ακριβώς μία (cardinality) θέση εργασίας.
 * Μια θέση εργασίας μπορεί (optionality) να κατέχεται από περισσότερους από έναν εργαζόμενους (cardinality). Δηλαδή για μία θέση εργασίας μπορεί να έχουμε κανέναν, έναν ή περισσότερους από έναν εργαζόμενους.

Σχήμα 3.3.13: ER διάγραμμα

**Ερωτήσεις / Δραστηριότητες**
 * Δραστηριότητα**: Μοντελοποίηση αποχώρησης παιδιών από τον παιδικό σταθμό

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


 * Δραστηριότητα**: Μοντελοποίηση ενισχυτικής διδασκαλίας

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

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