Σχεδίαση Βάσεων Δεδομένων Προσδιορισμός Σχέσεων Identifying Relationships 1 Copyright 2013, Oracle and/or its affiliates. All rights reserved.
Στόχοι Το μάθημα αυτό καλύπτει τους ακόλουθους στόχους: Να ερμηνεύσει και να περιγράψει τη σχέση προαιρετικότητας (optionality) Να ερμηνεύσει και να περιγράψει τη σχέση πληθικότητας (cardinality) Να συσχετίσει (συνδέσει ή ενώσει) οντότητες εφαρμόζοντας τους κανόνες της πληθικότητας και της προαιρετικότητας 2 Copyright 2013, Oracle and/or its affiliates. All rights reserved.
Σκοπός Το να μπορείτε να προσδιορίσετε τις σχέσεις μεταξύ των οντοτήτων κάνει πιο εύκολη την κατανόηση των συνδέσεων μεταξύ των διαφόρων κομματιών των δεδομένων. Οι σχέσεις σας βοηθούν να δείτε πως διαφορετικά μέρη ενός συστήματος επηρεάζουν το ένα το άλλο. Για παράδειγμα, οι οντότητες ΜΑΘΗΤΗΣ (STUDENT) και ΣΕΙΡΑ_ΜΑΘΗΜΑΤΩΝ (COURSE) συνδέονται μεταξύ τους. Προκειμένου να μοντελοποιήσουμε με ακρίβεια την επιχείρηση, οι σχέσεις μεταξύ των οντοτήτων είναι τόσο σημαντικές όσο και οι ίδιες οι οντότητες. 3 Copyright 2013, Oracle and/or its affiliates. All rights reserved.
Σχέσεις στις Οικογένειες Ποια είναι η σχέση μεταξύ τους εαυτού σας και της θείας σας, του θείου σας, των ξαδέλφων σας, της γιαγιά σας, κλπ.; Πως θα ήταν η κοινωνία εάν δεν κατηγοριοποιούσε τις σχέσεις μεταξύ των ανθρώπων, αλλά αντιθέτως αναφερόταν στους ανθρώπους απλά με το όνομά τους; Πως θα μπορούσατε να εξηγήσετε σε κάποιον πως η Τζένη είναι η ξαδέλφη σας; Θα ήταν μια μακρά και πιθανόν μπερδεμένη σύσταση, κάτι όπως, «Αυτή είναι η Τζένη, το παιδί της γυναίκας που έχει τους ίδιους γονείς με τους γονείς μου η οποία είναι γυναίκα», ή «Αυτή είναι η Τζένη, το παιδί της αδελφής της μητέρας μου», ή «Αυτή είναι η Τζένη, της θείας μου το παιδί», ή το ευκολότερο όλων, «Αυτή είναι η Τζένη, η ξαδέλφη μου». Παρατηρήστε ότι εξακολουθούμε να χρησιμοποιούμε μία βασική σχέση ακόμα και στην μεγαλύτερη σύσταση αυτή του παιδιού προς το γονιό. Χωρίς αυτή τη σχέση, θα ήταν πολύ δύσκολο να συστήσουμε κάποιον πέραν του να δώσουμε του όνομά του! 4 Copyright 2013, Oracle and/or its affiliates. All rights reserved.
Σχέσεις στα Μοντέλα Δεδομένων Σχέσεις: Αντιπροσωπεύουν κάτι σημασίας ή σπουδαιότητας για την επιχείρηση Δείχνουν το πως οι οντότητες συσχετίζονται μεταξύ τους Υπάρχουν μόνο μεταξύ οντοτήτων (ή μιας οντότητας και αυτής) Είναι αμφίδρομες Παρατηρούνται και στα δύο άκρα Έχουν προαιρετικότητα Έχουν πληθικότητα 5 Copyright 2013, Oracle and/or its affiliates. All rights reserved.
Τι είναι η Προαιρετικότητα σε μία σχέση; Οι σχέσεις είναι είτε υποχρεωτικές είτε προαιρετικές. Σκεφτείτε τις δύο οντότητες ΕΡΓΑΖΟΜΕΝΟΣ (EMPLOYEE) και ΔΟΥΛΕΙΑ (JOB). Βασισμένοι στο τι ξέρετε σχετικά με τις περιπτώσεις των οντοτήτων, μπορείτε να καθορίσετε την προαιρετικότητα απαντώντας σε δύο ερωτήσεις: Κάθε εργαζόμενος πρέπει να έχει μια δουλειά; Με άλλα λόγια, είναι αυτό μια υποχρεωτική ή προαιρετική σχέση για έναν εργαζόμενο; Κάθε δουλειά πρέπει να γίνεται από έναν εργαζόμενο; Με άλλα λόγια, είναι αυτό μια υποχρεωτική ή προαιρετική σχέση για μια δουλειά; 6 Copyright 2013, Oracle and/or its affiliates. All rights reserved.
Τι είναι η Πληθικότητα σε μια Σχέση; Η πληθικότητα μετρά τη ποσότητα από κάτι. Σε μία σχέση, καθορίζει το βαθμό στον οποίο μία οντότητα σχετίζεται με μία άλλη απαντώντας την ερώτηση, «Πόσοι/ες/α;» Για παράδειγμα: Πόσες δουλειές μπορεί να κάνει ένας εργαζόμενος; Μία δουλειά μόνο; Ή παραπάνω από μία δουλειά; Πόσοι εργαζόμενοι μπορούν να κάνουν μια συγκεκριμένη δουλειά; Ένας εργαζόμενος μόνο; Ή παραπάνω από ένας εργαζόμενοι; Σημείωση: Η πληθικότητα μιας σχέσης απαντά μόνο το εάν ο αριθμός είναι στον ενικό ή στον πληθυντικόˈ, δεν απαντά με ένα συγκεκριμένο πληθυντικό αριθμό. 7 Copyright 2013, Oracle and/or its affiliates. All rights reserved.
Προαιρετικότητα και πληθικότητα Παραδείγματα: Κάθε ΕΡΓΑΖΟΜΕΝΟΣ (EMPLOYEE) πρέπει να έχει μία και μοναδική ΔΟΥΛΕΙΑ (JOB) Κάθε ΔΟΥΛΕΙΑ (JOB) μπορεί να γίνει από έναν ή περισσότερους ΕΡΓΑΖΟΜΕΝΟΥΣ (EMPLOYEEs) Κάθε ΠΡΟΪΟΝ (PRODUCT) πρέπει να κατατάσσεται σε ένα και μοναδικό ΤΥΠΟ ΠΡΟΪΟΝΤΟΣ (PRODUCT TYPE) Κάθε ΤΥΠΟΣ ΠΡΟΪΟΝΤΟΣ (PRODUCT TYPE) μπορεί να ταξινομήσει ένα ή περισσότερα ΠΡΟΪΟΝΤΑ (PRODUCTs) 8 Copyright 2013, Oracle and/or its affiliates. All rights reserved.
Σχέσεις Κάθε ΘΕΣΗ (SEAT) μπορεί να πωληθεί σε ένα ή περισσότερους ΕΠΙΒΑΤΕΣ (PASSENGERs) Κάθε ΕΠΙΒΑΤΗΣ (PASSENGER) μπορεί να αγοράσει μία ΘΕΣΗ (SEAT) Η ΘΕΣΗ (SEAT) πωλείται σε κάποιο ΕΠΙΒΑΤΗ (PASSENGER) (ή ΕΠΙΒΑΤΕΣ (PASSENGERs) ως εκ τούτου, υπεράριθμες κρατήσεις ) Ο ΕΠΙΒΑΤΗΣ (PASSENGER) αγοράζει μια ΘΕΣΗ ή κάνει κράτηση για αυτή 9 Copyright 2013, Oracle and/or its affiliates. All rights reserved.
Επιχειρηματικό Σενάριο 1 Ποιες είναι οι σχέσεις στο ακόλουθο επιχειρηματικό σενάριο; «Μας αρέσει να ταξινομούμε όλη μας τη μουσική κάθε τραγούδι ανάλογα με τον τύπο. Οι διάφοροι τύποι είναι ροκ, τζαζ, κάντρι, κλασική, ποπ, νέας αποχής, κλπ. Μπορούμε να προσθέσουμε και νέους τύπους ανάλογα με τις ανάγκες. ΣΧΕΣΗ 10 Copyright 2013, Oracle and/or its affiliates. All rights reserved.
Επιχειρηματικό Σενάριο 1 (συνέχεια) ΣΧΕΣΗ Στη πραγματικότητα, πρόσφατα προσθέσαμε ένα νέο τύπο για τη ραπ μουσική. Αντιλαμβανόμαστε πως ένα τραγούδι μπορεί να ταξινομηθεί σε περισσότερους από έναν τύπους, αλλά για το σκοπό μας, επιλέγουμε μόνο έναν κύριο τύπο ταξινόμησης για κάθε τραγούδι». 11 Copyright 2013, Oracle and/or its affiliates. All rights reserved.
Επιχειρηματικό Σενάριο 1 (συνέχεια) Η οντότητα ΤΡΑΓΟΥΔΙ (SONG) έχει ένα ΤΥΠΟ (TYPE): ως εκ τούτου, έχει μια σχέση η οποία περιλαμβάνει και τη προαιρετικότητα και τη πληθικότητα. Προαιρετικότητα (optionality)= απαραίτητη ή προαιρετική; Κάθε ΤΡΑΓΟΥΔΙ (SONG) πρέπει να ταξινομηθεί βάσει ενός (και μοναδικού) ΤΥΠΟΥ. Κάθε ΤΥΠΟΣ (TYPE) μπορεί να είναι μια ταξινόμηση ενός ή περισσοτέρων ΤΡΑΓΟΥΔΙΩΝ (SONGs). new age TYPE country rock jazz classical pop SONG Stairway to Heaven Green Dolphin Street Minute Waltz Pachelbel Canon Thriller Stand By Your Man 12 Copyright 2013, Oracle and/or its affiliates. All rights reserved.
Επιχειρηματικό Σενάριο 1 (συνέχεια) SONG Πληθικότητα (cardinality)= Πόσα, ή σε ποιο βαθμό; Κάθε ΤΡΑΓΟΥΔΙ (SONG) πρέπει να ταξινομείται κατά ένα (και μοναδικό) ΤΥΠΟ (TYPE). TYPE Stairway to Heaven Green Dolphin Street Κάθε ΤΥΠΟΣ (TYPE) μπορεί να είναι μια ταξινόμηση για ένα ή περισσότερα ΤΡΑΓΟΥΔΙΑ (SONGs). new age rock jazz classical Minute Waltz Pachelbel Canon Thriller pop Stand By Your Man country 13 Copyright 2013, Oracle and/or its affiliates. All rights reserved.
Επιχειρηματικό Σενάριο 1 (συνέχεια) Το ΤΡΑΓΟΥΔΙ (SONG) έχει ένα ΤΥΠΟ (TYPE) Τι θα συμβεί εάν ο ΤΥΠΟΣ (TYPE) για ένα συγκεκριμένο ΤΡΑΓΟΥΔΙ (SONG) δεν υπάρχει; Αν οι επιχειρησιακοί κανόνες αναφέρουν πως κάθε ΤΡΑΓΟΥΔΙ (SONG) πρέπει να έχει ένα ΤΥΠΟ (TYPE), τότε πρέπει να προστεθεί ένας επιπλέον ΤΥΠΟΣ (TYPE). 14 Copyright 2013, Oracle and/or its affiliates. All rights reserved.
Επιχειρηματικό Σενάριο 1 (συνέχεια) Το ΤΡΑΓΟΥΔΙ (SONG) έχει ένα ΤΥΠΟ (TYPE) Μπορείτε να έχετε έναν ΤΥΠΟ (TYPE) χωρίς κάποιο ΤΡΑΓΟΥΔΙ (SONG); Γιατί θα είχατε έναν ΤΥΠΟ (TYPE) χωρίς κάποιο ΤΡΑΓΟΥΔΙ (SONG); 15 Copyright 2013, Oracle and/or its affiliates. All rights reserved.
Επιχειρηματικό Σενάριο 1 (συνέχεια) Το ΤΡΑΓΟΥΔΙ (SONG) έχει ένα ΤΥΠΟ (TYPE) Σε πόσους ΤΥΠΟΥΣ (TYPEs) μπορεί να ανήκει ένα ΤΡΑΓΟΥΔΙ (SONG); Οι κανόνες της επιχείρησης καθορίζουν την πληθικότητα. 16 Copyright 2013, Oracle and/or its affiliates. All rights reserved.
Επιχειρηματικό Σενάριο 1 (συνέχεια) Εάν οι επιχειρηματικοί κανόνες αναφέρουν πως ένα ΤΡΑΓΟΥΔΙ (SONG) μπορεί να ανήκει σε περισσότερους από έναν ΤΥΠΟΥΣ (TYPEs), η πληθικότητα θα δηλωνόταν ως: Κάθε ΤΡΑΓΟΥΔΙ (SONG) πρέπει να ταξινομείται βάσει ενός ή περισσοτέρων ΤΥΠΩΝ (TYPEs). 17 Copyright 2013, Oracle and/or its affiliates. All rights reserved.
Επιχειρηματικό Σενάριο 2 Ποιες είναι οι σχέσεις στο ακόλουθο επιχειρηματικό σενάριο; «Στο εστιατόριό μας, ένας πελάτης περπατά μέχρι τον πάγκο και δίνει τη παραγγελία του. Ένας πελάτης μπορεί να παραγγείλει μόνο για τον εαυτό του, ή για τον εαυτό του και για άλλους. Για παράδειγμα, μια μητέρα παραγγέλνει για τον εαυτό της και για τα παιδιά της. ΣΧΕΣΗ Ο ΠΕΛΑΤΗΣ (CUSTOMER) πραγματοποιεί ΠΑΡΑΓΓΕΛΙΕΣ (ORDERS) Μία ΠΑΡΑΓΓΕΛΙΑ (ORDER) πραγματοποιείται από ένα ΠΕΛΑΤΗ (CUSTOMER) 18 Copyright 2013, Oracle and/or its affiliates. All rights reserved.
Επιχειρηματικό Σενάριο 2 (συνέχεια) Θεωρούμε ότι η μητέρα είναι ο πελάτης στον οποίο ανήκει η παραγγελία και είναι υπεύθυνος για τη πληρωμή. Μέσα σε κάποιο χρονικό διάστημα, ένας πελάτης μπορεί να κάνει όσες παραγγελίες θέλει». ΣΧΕΣΗ Ο ΠΕΛΑΤΗΣ (CUSTOMER) πραγματοποιεί ΠΑΡΑΓΓΕΛΙΕΣ (ORDERS) Μία ΠΑΡΑΓΓΕΛΙΑ (ORDER) πραγματοποιείται από ένα ΠΕΛΑΤΗ (CUSTOMER) 19 Copyright 2013, Oracle and/or its affiliates. All rights reserved.
Επιχειρηματικό Σενάριο 2 (συνέχεια) Ο ΠΕΛΑΤΗΣ (CUSTOMER) έχει ΠΑΡΑΓΓΕΛΙΕΣ (ORDERs): προαιρετικότητα και πληθικότητα Προαιρετικότητα (optionality)= Πρέπει ή μπορεί; Κάθε ΠΑΡΑΓΓΕΛΙΑ (ORDER) πρέπει να γίνει από ένα (και μοναδικό) ΠΕΛΑΤΗ (CUSTOMER). Κάθε ΠΕΛΑΤΗΣ (CUSTOMER) πρέπει να κάνει μία ή περισσότερες ΠΑΡΑΓΓΕΛΙΕΣ (ORDERs). 20 Copyright 2013, Oracle and/or its affiliates. All rights reserved.
Επιχειρηματικό Σενάριο 2 (συνέχεια) Πληθικότητα = Πόσα; Κάθε ΠΑΡΑΓΓΕΛΙΑ (ORDER) πρέπει να γίνει από ένα (και μοναδικό) ΠΕΛΑΤΗ (CUSTOMER). Κάθε ΠΕΛΑΤΗΣ (CUSTOMER) πρέπει να κάνει μία ή περισσότερες ΠΑΡΑΓΓΕΛΙΕΣ (ORDERs). 21 Copyright 2013, Oracle and/or its affiliates. All rights reserved.
Επιχειρηματικό Σενάριο 3 Μια σχέση μπορεί να εντάξει μια οντότητα στον εαυτό της. Εξετάστε το παρακάτω σενάριο: «Πρέπει να παρακολουθούμε τους εργαζόμενους και τους managers τους. Κάθε εργαζόμενος έχει έναν manager, συμπεριλαμβανομένου του διευθύνον συμβούλου ο οποίος διαχειρίζεται τον εαυτό του/της. Κάθε manager μπορεί να διαχειρίζεται πολλούς εργαζόμενους». Εφόσον οι managers είναι και αυτοί εργαζόμενοι, και τα δύο αναφέρονται στην ίδια οντότητα: ΕΡΓΑΖΟΜΕΝΟΣ (EMPLOYEE). ΣΧΕΣΗ Ένας ΕΡΓΑΖΟΜΕΝΟΣ (EMPLOYEE) διοικεί ΕΡΓΑΖΟΜΕΝΟΥΣ (EMPLOYEEs) Ένας ΕΡΓΑΖΟΜΕΝΟΣ (EMPLOYEE) διοικείται από ένα ΕΡΓΑΖΟΜΕΝΟ (EMPLOYEE) 22 Copyright 2013, Oracle and/or its affiliates. All rights reserved.
Ορολογία Λέξεις κλειδιά που χρησιμοποιήθηκαν στο μάθημα αυτό: Πληθικότητα Προαιρετικότητα Σχέση Περίληψη Στο μάθημα αυτό, θα πρέπει να έχετε μάθει πως να: 23 Copyright 2013, Oracle and/or its affiliates. All rights reserved.
Ερμηνεύετε και περιγράφετε τη σχέση προαιρετικότητας (optionality) Ερμηνεύετε και περιγράφετε τη σχέση πληθικότητας (cardinality) Συσχετίζετε (συνδέετε ή ενώνετε) οντότητες εφαρμόζοντας τους κανόνες της πληθικότητας και της προαιρετικότητας 24 Copyright 2013, Oracle and/or its affiliates. All rights reserved.