Μοντέλο Οντοτήτων-Συσχετίσεων
Το μοντέλο οντοτήτων-συσχετίσεων (μοντέλο Ο/Σ - ER model) είναι ένα αφαιρετικό ιδεατό
μοντέλο δεδομένων, τα οποία έχουν καθορισμένη δομή.
Στη μηχανική λογισμικού χρησιμοποιείται για να παρέχει ένα εννοιολογικό σχήμα κατά τη σχεδίαση βάσεων δεδομένων, ως μοντέλο δεδομένων ενός συστήματος και των απαιτήσεών του με top-down προσέγγιση.
Ένα διάγραμμα που δημιουργείται με αυτή τη διαδικασία σχεδίασης καλείται διάγραμμα οντοτήτων-συσχετίσεων, ή διάγραμμα Ο/Σ ή ΟΣΔ εν συντομία.
Προτάθηκε αρχικά το 1976 από τον Peter Chen, ωστόσο στη συνέχεια επινοήθηκαν πολλές παραλλαγές της διαδικασίας.
Χρήση
Χρησιμοποιείται στο πρώτο στάδιο σχεδίασης ενός συστήματος πληροφοριών, κατά την ανάλυση των απαιτήσεών του.
Σκοπός του είναι να περιγράφει τις αναγκαίες πληροφορίες οι οποίες πρόκειται να αποθηκευτούν στη βάση δεδομένων ή τον τύπο τους.
Η μοντελοποίηση δεδομένων γίνεται για την περιγραφή των χρησιμοποιούμενων όρων και των σχέσεών τους σε έναν ορισμένο τομέα ενδιαφέροντος.
Στην περίπτωση σχεδιασμού ενός συστήματος πληροφοριών, που στηρίζεται σε μια βάση δεδομένων, το εννοιολογικό μοντέλο δεδομένων χαρτογραφείται σε προχωρημένο στάδιο σε ένα λογικό μοντέλο δεδομένων, όπως το σχεσιακό μοντέλο δεδομένων.
Το στάδιο αυτό ονομάζεται συνήθως στάδιο λογικού σχεδιασμού.
Ύστερα, κατά τη διάρκεια του φυσικού σχεδιασμού το λογικό μοντέλο χαρτογραφείται σε κάποιο φυσικό μοντέλο.
Ορισμένες φορές και οι δύο φάσεις αναφέρονται ως "φυσικός σχεδιασμός".
Σημειογραφία
Υπάρχουν διάφορες συμβάσεις για τη σημειογραφία που χρησιμοποιείται στα διαγράμματα οντότητων-συσχετίσεων (ERDs).
Αρκετές φορές η σημειογραφία που υιοθετείται κατά το λογικό και φυσικό σχεδιασμό μιας βάσης δεδομένων διαφέρει ως προς τη σαφήνεια, τις δυνατότητες που έχει η γραφική γλώσσα, την υποστήριξη από πρότυπα και τα εργαλεία.
Συνήθως για τις συσχετίσεις χρησιμοποιούνται ευθείες με διαφορετικές άκρες, ή με σημειώσεις που παριστάνουν την πληθικότητα του τύπου συσχέτισης.
Ιδιαίτερη - κυρίως ιστορική - σημασία έχουν οι παρακάτω σημειογραφίες:
Όροι
Βάση για των μοντέλων Ο/Σ είναι η κατηγοριοποίηση αντικειμένων και των σχέσεών τους μεταξύ τους.
thumb|150px|Οι διάφοροι τύποι οντοτήτων παριστάνονται στο διάγραμμα Ο/Σ με ένα ορθογώνιο.
Οντότητα (entity) είναι ένα αντικείμενο ενδιαφέροντος στον πραγματικό κόσμο το οποίο ξεχωρίζει από τα υπόλοιπα.
Μια οντότητα λειτουργεί αφαιρετικά σε έναν πολύπλοκο τομέα.
Οντότητες μπορεί να είναι άνθρωποι, μέρη, αντικείμενα, γεγονότα, έννοιες κλπ.
Στιγμιότυπο (instance) μιας οντότητας είναι μια συγκεκριμένη περίπτωση ενός τύπου οντότητας.
Ο τύπος της οντότητας είναι μια συλλογή χαρακτηριστικών που περιγράφουν την οντότητα.
Οι διάφοροι τύποι οντοτήτων (π.χ. ΕΡΓΑΖΟΜΕΝΟΣ, ΦΟΙΤΗΤΗΣ) παριστάνονται στο διάγραμμα Ο/Σ με ένα ορθογώνιο.
thumb|400px|Ένας φοιτητής μπορεί να έχει το πεδίο ΜΑΘΗΜΑ, το οποίο όμως δέχεται ως τιμές ένα σύνολο μαθημάτων που παρακολουθεί.
Κάθε οντότητα έχει διάφορα στοιχεία που την προσδιορίζουν.
Ένα τέτοιο στοιχείο ονομάζεται ιδιότητα (attribute), χαρακτηριστικό ή πεδίο της οντότητας.
Τα χαρακτηριστικά χωρίζονται σε
Στο διάγραμμα Ο/Σ οι ιδιότητες που έχει μια οντότητα παριστάνονται μέσα σε έλλειψη, με υπογραμμισμένο το πρωτεύον κλειδί.
Τα πλειότιμα χαρακτηριστικά μιας οντότητας παριστάνονται μέσα σε έλλειψη με διπλό περίγραμμα.
thumb|400px|Η συσχέτιση σε αυτό το παράδειγμα ονομάζεται "Παρακολουθεί".
Τα βέλη δείχνουν μια συσχέτιση πολλά-προς-πολλά.
Κάθε φοιτητής μπορεί να παρακολουθεί ένα ή περισσότερα μαθήματα.
Κάθε μάθημα μπορεί να παρακολουθείται από έναν ή περισσότερους μαθητές.
Από τη σχέση αυτή μπορούμε να βρούμε ποιοι φοιτητές παρακολουθούν ένα μάθημα ή ποια μαθήματα παρακολουθεί ένας φοιτητής.
Συσχέτιση (relationship) είναι η σύνδεση δύο ή περισσότερων τύπων οντοτήτων που παρουσιάζει ενδιαφέρον για σχεδιασμό.
Με συσχετίσεις μπορούν να συνδέονται και χαρακτηριστικά οντοτήτων.
Ένας τύπος συσχέτισης (σύνολο συσχετίσεων) παριστάνεται με ρόμβο.
Στο εσωτερικό αναγράφεται το όνομα με μικρά γράμματα.
Υποδεικνύουμε τα όρια της συσχέτισης με ένα δείκτη.
Ως όρια μπούμε να συναντήσουμε:
thumb|400px|Βαθμός συσχέτισης: 3 (Οι τύποι οντοτήτων ΠΡΟΜΗΘΕΥΤΗΣ, ΠΕΛΑΤΗΣ και ΠΡΟΪΟΝ παίρνουν μέρος στη συσχέτιση) Ο βαθμός μιας συσχέτισης είναι ο αριθμός των τύπων οντοτήτων που παίρνουν μέρος στη συσχέτιση.
Οι πιο συνηθισμένες συσχετίσεις είναι
Η πληθικότητα (cardinality), περιγράφει τον αριθμό στιγμιοτύπων ενός τύπου οντοτήτων που μπορούν να αντιστοιχίζονται με μία οντότητα ενός άλλου τύπου σε μια συσχέτιση.
Ο λόγος πληθικότητας ή πληθικός λόγος (cardinality ratio), είναι ο λόγος των πληθικοτήτων μιας συσχέτισης.
Μπορούμε να έχουμε συσχετίσεις με λόγο πληθικότητας:
Αδύναμη ή ασθενής οντότητα λέγεται μια οντότητα που εξαρτάται από την ύπαρξη κάποιας άλλης.
Οι αδύναμες οντότητες συμμετέχουν σε συσχετίσεις μέσω ταυτοποιητικών συσχετίσεων με ισχυρή οντότητα.
Ταυτοποιητική συσχέτιση ονομάζεται η συσχέτιση στην οποία το πρωτεύον κλειδί της ισχυρής οντότητας χρησιμοποιείται ως μέρος του πρωτεύοντος κλειδιού της αδύναμης οντότητας.
Διακριτικό ή μερικό κλειδί ονομάζεται το χαρακτηριστικό της αδύναμης οντότητας το οποίο μαζί με το πρωτεύον κλειδί της ισχυρής οντότητας είναι το πρωτεύον κλειδί της αδύναμης.
Κατά την αναπαράσταση αδύναμων οντοτήτων:
Μια επαναλαμβανόμενη ομάδα είναι ένα σύνολο δύο ή περισσότερων πλειότιμων γνωρισμάτων που έχουν μια λογική σχέση μεταξύ τους.
Είδαμε ότι τα πλειότιμα χαρακτηριστικά παριστάνονται με μια διπλή έλλειψη.
Ωστόσο, στην ιδανική περίπτωση πλειότιμα χαρακτηριστικά πρέπει να αφαιρούνται από το μοντέλο δεδομένων κατά τη φάση σχεδίασης.
Με τον τρόπο αυτό, η σχέση βρίσκεται σε δεύτερη κανονική μορφή.
Για να επιτύχουμε κάτι τέτοιο στο μοντέλο Ο/Σ προσθέτουμε μια ακόμη συσχέτιση.
Με την έννοια γενίκευση (generalization) εννοούμε τον εντοπισμό ενός συνόλου οντοτήτων (κλάση) που έχουν κοινά χαρακτηριστικά με πιο γενικευμένα αντικείμενα (υπέρκλαση).
Η εξειδίκευση (specialization) είναι το ακριβώς αντίθετο της γενίκευσης, δηλαδή ο εντοπισμός υποσυνόλων ενός τύπου οντοτήτων με κοινά χαρακτηριστικά, τα οποία τα διαφοροποιούν από τα υπόλοιπα μέλη του.
Η συσχέτιση μεταξύ κάθε υπόκλασης και υπέρκλασης ονομάζεται ISA συσχέτιση.
Σε κάθε επίπεδο της ιεραρχίας οι τύποι οντοτήτων κληρονομούν τα χαρακτηριστικά των τύπων του αμέσως ανώτερου επιπέδου.
Όταν υπάρχει περιορισμός επικάλυψης μια οντότητα δεν επιτρέπεται να ανήκει ταυτόχρονα σε δύο υποκλάσεις.
(exclusive subtypes)
Ο περιορισμός επικάλυψης συμβολίζεται με μια καμπύλη γραμμή στο διάγραμμα Ο/Σ, που τέμνει την ακμή του τύπου οντοτήτων με κάθε ISA συσχέτιση.
Υπάρχει όμως περίπτωση να μην ισχύει κανένας περιορισμός.
Στην περίπτωση αυτή ένα στιγμιότυπο μπορεί να ανήκει σε περισσότερες από μια υποκλάσεις.
(non-exclusive subtypes)
Εργαλεία ελεύθερου λογισμικού για διαγράμματα Ο/Σ
Εργαλεία που δέχονται SQL και μπορούν να παράγουν μοντέλα Ο/Σ ή και να κάνουν ανάλυση σε βάσεις δεδομένων.
Τα παρακάτω εργαλεία δεν δημιουργούν διαγράμματα Ο/Σ, αλλά απλώς σχεδιάζουν τα σχήματα χωρίς να αντιλαμβάνονται τη σημασία τους ή να παράγουν SQL.
