3.3.4

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

Ένα τυπικό παράδειγμα, αποτελεί αυτό της σχέσης μεταξύ ΠΕΛΑΤΗ και ΠΡΟΪΟΝ, όπως παρουσιάζεται στο παρακάτω διάγραμμα οντοτήτων-συσχετίσεων. Μία εταιρεία λιανικού εμπορίου πουλάει διάφορα προϊόντα σε πελάτες της. Ας υποθέσουμε ότι γίνονται δεκτοί στο σύστημα και μελλοντικοί πελάτες. Το ER διάγραμμα διαβάζεται ως εξής:
 * Ένας πελάτης μπορεί να αγοράσει ένα ή περισσότερα προϊόντα.
 * Ένα προϊόν μπορεί να αγοραστεί από έναν ή περισσότερους πελάτες.

Σχήμα 3.3.14: Οι σχέσεις «πολλά προς πολλά» κάτι κρύβουν

Για παράδειγμα, ο πελάτης Νίκος Χατζηπέτρου αγοράζει δύο μπλούζες. Το όνομα «Νίκος Χατζηπέτρου» είναι το όνομα του πελάτη και «μπλούζα» είναι το όνομα του προϊόντος. Τίθεται το εξής ερώτημα: Η ποσότητα 2 ως πληροφορία σε ποια από τις δύο οντότητες θα «αποθηκευτεί»; Στον ΠΕΛΑΤΗ ή στο ΠΡΟΪΟΝ;

Σχήμα 3.3.15: Η ποσότητα είναι γνώρισμα της …….

Είναι ξεκάθαρο ότι η πληροφορία «Ποσότητα» δεν αποτελεί γνώρισμα ούτε της οντότητας ΠΕΛΑΤΗ αλλά ούτε και της οντότητας ΠΡΟΪΟΝ. Περισσότερο φαίνεται να είναι η πληροφορία «Ποσότητα» γνώρισμα της σχέσης που συνδέει τον ΠΕΛΑΤΗ με το ΠΡΟΪΟΝ.

Σχήμα 3.3.16: Η ποσότητα είναι γνώρισμα της σχέσης

Οι συσχετίσεις όμως δεν έχουν και δεν μπορούν να έχουν γνωρίσματα. Προφανώς λείπει μία οντότητα της οποίας ένα γνώρισμα είναι η «Ποσότητα». Εισάγεται στο ER διάγραμμα η οντότητα «ΠΑΡΑΓΓΕΛΙΑ», την οποία ονομάζουμε οντότητα «τομής» (intersection entity).

Σχήμα 3.3.17: Επίλυση συσχέτισης «πολλά προς πολλά». Εισάγεται μια καινούρια οντότητα η «ΠΑΡΑΓΓΕΛΙΑ»

Με την δημιουργία μία τρίτης βοηθητικής οντότητας, όπως είναι η οντότητα «ΠΑΡΑΓΓΕΛΙΑ» στο προηγούμενο παράδειγμα, επιλύεται το πρόβλημα των συσχετίσεων «πολλά προς πολλά». Η συσχέτιση «πολλά προς πολλά» παραχωρεί την θέση της σε δύο συσχετίσεις «ένα προς πολλά». Το μοναδικό αναγνωριστικό ή κλειδί της τρίτης οντότητας προκύπτει από τον συνδυασμό των κλειδιών των δύο αρχικών οντοτήτων. Τώρα, στο ER διάγραμμα οι συσχετίσεις που ενώνουν τις δύο αρχικές οντότητες με την τρίτη βοηθητική οντότητα είναι «ένα προς πολλά».

**Ερωτήσεις / Δραστηριότητες**


 * Δραστηριότητα**: Βρείτε ένα πλαίσιο

Με βάση τα ακόλουθα ER διαγράμματα βρείτε ένα πλαίσιο το οποίο να ικανοποιεί το αντίστοιχο μοντέλο.

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


 * Δραστηριότητα**: Ονομάστε την οντότητα τομής

Επιλύστε τις σχέσεις «πολλά προς πολλά» (Μ:M) μεταξύ των οντοτήτων, όπως φαίνεται στο παρακάτω σχήμα. Βρείτε ένα αποδεκτό όνομα για την οντότητα «τομής» (intersection entity). Για κάθε οντότητα τομής προσθέσετε ένα επιπλέον γνώρισμα, το οποίο έχει νόημα για την αντίστοιχη σχέση. Ποιο είναι το κλειδί για την οντότητα τομής;

Σχήμα 3.3.19: Επίλυση συσχέτισης «πολλά προς πολλά»