🔵Κ3 - Σχεδιασμός Βάσεων Δεδομένων

3.1 Εισαγωγή

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

Εικόνα: Στάδια σχεδιασμού βάσης δεδομένων

 

 

 

3.1.1 Ανάλυση Απαιτήσεων

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

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

 

 

 

3.1.2. Εννοιολογικός, Λογικός και Φυσικός Σχεδιασμός Εννοιολογικός Σχεδιασμός

Στον Εννοιολογικό Σχεδιασμό περιγράφονται οι οντότητες του πραγματικού κόσμου καθώς και οι συσχετίσεις μεταξύ τους.

 

Παράδειγμα

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

 

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

 

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

 

 

 

Λογικός Σχεδιασμός

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

 

 

 

Φυσικός Σχεδιασμός

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

 

 

 

 

 

 

💪 Δραστηριότητα 

 

 

 

📝🔗 Ερωτηματολόγιο 📝🔗

 

 

 

 


 

 

 

3.2 Μοντέλα Δεδομένων

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

 

 

 

3.2.1. Εννοιολογικό, Λογικό και Φυσικό Σχήμα (Μοντέλο)

Εικόνα: Εννοιολογικό, Λογικό και Φυσικό σχήμα

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

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

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

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

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

 

 

 

3.2.2. Μοντέλο Οντοτήτων Συσχετίσεων

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

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

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

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

Εικόνα: Σχηματική αναπαράσταση της οντότητας Υπάλληλοι

 

Oι συσχετίσεις ανάμεσα στις οντότητες αναπαριστώνται με ρόμβο. Παράδειγμα:

Εικόνα: Σχηματική αναπαράσταση της συσχέτισης

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

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

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

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

 

 

 

3.2.3 Σχεσιακό Μοντέλο

Το σχεσιακό μοντέλο χρησιμοποιείται ευρέως και πολλά συστήματα βάσης δεδομένων βασίζονται σε αυτό. Είναι σε χαμηλότερο επίπεδο αφαιρετικότητας από το μοντέλο οντοτήτων συσχετίσεων. Χαρακτηρίζεται από απλότητα και είναι ελκυστικό στη χρήση του. Τα περισσότερα εμπορικά ΣΔΒΔ υποστηρίζουν το σχεσιακό μοντέλο δεδομένων ή επεκτάσεις αυτού.

 

Οι βασικοί στόχοι του σχεσιακού μοντέλου είναι:

  • Η υποστήριξη της ανεξαρτησίας των δεδομένων, έτσι ώστε αλλαγές στη φυσική δομή να μην απαιτούν αλλαγές στα προγράμματα εφαρμογής
  • Η αποφυγή της επανάληψης δεδομένων, όταν τα ίδια δεδομένα αποθηκεύονται πολλές φορές σε διαφορετικές περιοχές της ΒΔ

 

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

 

Εικόνα: Πίνακας υπάλληλος

 

Στην προηγούμενη εικόνα παρουσιάζεται ο πίνακας υπαλλήλων μιας εταιρείας όπου ο υπάλληλος που προσδιορίζεται από τον αριθμό της Αστυνομικής ταυτότητας ΑΒ 15889 ονομάζεται Κερκινάκης, κατοικεί στην Θεσσαλονίκη και μένει στην διεύθυνση Εγνατίας 151.

Για κάθε χαρακτηριστικό/ιδιότητα υπάρχει ένα σύνολο επιτρεπτών τιμών, το οποίο καλείται πεδίο ορισμού του χαρακτηριστικού/ ιδιότητας.

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

 

 

Υπάρχουν περιπτώσεις στις οποίες δε γνωρίζουμε την τιμή ενός χαρακτηριστικού. Στην παραπάνω εικόνα, παρατηρούμε ότι εφόσον ο Παπαδόπουλος δεν έχει παιδιά, η ιδιότητα Όνομα παιδιού έχει την τιμή NULL (κενή τιμή). H κενή τιμή είναι διαφορετική από 0 ή από τον χαρακτήρα <>. Μία κενή τιμή συνήθως δε δημιουργεί πρόβλημα, ωστόσο καλό είναι οι τιμές NULL να αποφεύγονται διότι δημιουργούνται δυσκολίες στη διατύπωση ερωτημάτων. Τονίζεται ότι δεν επιτρέπονται να υπάρχουν κενές τιμές στα κλειδιά ενός πίνακα.

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

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

 

 

 

💪 Δραστηριότητα 

 

 

 

📝🔗 Ερωτηματολόγιο 📝🔗

 

 

 


 

 

 

3.3 Διαγραμματική Αναπαράσταση Συσχετίσεων Οντοτήτων

Το μοντέλο οντοτήτων συσχετίσεων (ERM) αποτελεί την βάση του διαγράμματος οντοτήτων συσχετίσεων (ERD).Το διάγραμμα οντοτήτων συσχετίσεων αναπαριστά με εννοιολογικό τρόπο τις βάσεις δεδομένων. Απεικονίζει τα κύρια συστατικά των βάσεων δεδομένων: οντότητες (entities), ιδιότητες γνωρίσματα (attributes) και συσχετίσεις (relationships). Η οντότητα αντιπροσωπεύει τόσο συγκεκριμένα αντικείμενα όσο και αφηρημένα γεγονότα και καταστάσεις.

 

 

 

3.3.1. Οντότητες, Στιγμιότυπα, Γνωρίσματα - Ιδιότητες και Κλειδιά

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

 

Μία οντότητα (entity) είναι ένα σύνολο από στιγμιότυπα του ίδιου τύπου που έχουν κοινές ιδιότητες ή γνωρίσματα. Για παράδειγμα, το σύνολο των καθηγητών ενός σχολείου αποτελούν την οντότητα Καθηγητής. Ο καθηγητής «Στέφανος Λαζάρου» ανήκει στην οντότητα Καθηγητής.

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

Μία οντότητα είναι κάτι που είναι «σημαντικό» για μία επιχείρηση ή έναν οργανισμό και για το οποίο η επιχείρηση ή ο οργανισμός θέλει να ξέρει ορισμένα βασικά πράγματα. Για παράδειγμα, ένα σχολείο χρειάζεται να αποθηκεύσει δεδομένα σχετικά με τους Μαθητές, τους Καθηγητές, τα Μαθήματα και τους Βαθμούς. Οι Μαθητές, οι Καθηγητές, τα Μαθήματα και οι Βαθμοί για το σχολείο θεωρούνται οντότητες, βασικά δηλαδή πράγματα για τα όποια υπάρχει ανάγκη να αποθηκεύσουμε κάποιες πληροφορίες. Πρέπει να γνωρίζουμε δηλαδή ποιοι είναι οι μαθητές μας και ποιά μαθήματα παρακολουθούν. Η οντότητα μπορεί να θεωρηθεί και ως σύνολο από στιγμιότυπα. Σε ένα σχολείο η οντότητα Μαθητής μπορεί να έχει ως στιγμιότυπα τον Παύλο, την Ελένη, τον Νίκο και τον Άλεξ
 

Στον παρακάτω πίνακα παρουσιάζονται παραδείγματα οντοτήτων και αντίστοιχων στιγμιότυπων.

Εικόνα: Παραδείγματα οντοτήτων και αντίστοιχων στιγμιότυπων

 

Κάθε οντότητα περιγράφεται από ένα σύνολο από γνωρίσματα (attributes) ή ιδιότητες. 

Για παράδειγμα, η οντότητα Μαθητής έχει ως γνωρίσματα τον αριθμό μητρώου, το όνομα, το επίθετο, την διεύθυνση και το τμήμα. Όταν τα γνωρίσματα αυτά πάρουν συγκεκριμένες τιμές, τότε αναφερόμαστε στα στιγμιότυπα της αντίστοιχης οντότητας. Για παράδειγμα, ένας συγκεκριμένος μαθητής, δηλαδή ένα στιγμιότυπο της οντότητας Μαθητής, μπορεί να έχει ως αριθμό μητρώου το 4589543, ως όνομα το Ανδρέας, ως επίθετο το Παπαϊωάννου, ως διεύθυνση το Εγνατίας 12 και ως τμήμα το Β1. Δηλαδή, κάθε στιγμιότυπο μιας οντότητας έχει συγκεκριμένες τιμές (values) για τα αντίστοιχα γνωρίσματα της οντότητας.

Τα γνωρίσματα για τα οποία είναι υποχρεωτικό να έχουν τιμή, ονομάζονται υποχρεωτικά γνωρίσματα (mandatory attributes). Για παράδειγμα, στις περισσότερες επιχειρήσεις είναι απαραίτητο να είναι γνωστά τα ονοματεπώνυμα των ατόμων που διαδραματίζουν κάποιο ρόλο στις διαδικασίες της επιχείρησης. Άλλα γνωρίσματα, όπως είναι για παράδειγμα το κινητό τηλέφωνο, είναι προαιρετικό να έχουν μία τιμή, εκτός και αν πρόκειται για εταιρείες κινητής τηλεφωνίας. Τα γνωρίσματα αυτά λέγονται προαιρετικά γνωρίσματα (optional attributes).

Στον παρακάτω πίνακα παρουσιάζονται παραδείγματα οντοτήτων και αντίστοιχων γνωρισμάτων.

 

Εικόνα: Παραδείγματα οντοτήτων και αντίστοιχων γνωρισμάτων

 

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

 

 

 

💪 Δραστηριότητα 

 

 

 

📝🔗 Ερωτηματολόγιο 📝🔗

 

 

 


 

 

 

3.3.2. Συσχετίσεις μεταξύ Οντοτήτων - Τύποι Συσχετίσεων

Γενικά, οι σχέσεις (relationships) μας βοηθούν να δούμε πώς τα διάφορα μέρη ενός συστήματος επηρεάζουν το ένα το άλλο. Για παράδειγμα, οι οντότητες ΜΑΘΗΤΗΣ (STUDENT) και ΜΑΘΗΜΑ (COURSE) συνδέονται μεταξύ τους. Κάθε μαθητής μπορεί να επιλέξει, για παράδειγμα το μάθημα «Εφαρμογές Πληροφορικής». Για να μοντελοποιήσουμε με ακρίβεια την επιχείρηση ή τον οργανισμό, οι σχέσεις μεταξύ των οντοτήτων είναι εξίσου σημαντικές με τις ίδιες τις οντότητες.

 

Στη συνέχεια παραθέτουμε κάποια παραδείγματα σχέσεων μεταξύ διαφόρων οντοτήτων:

  • Οι ΕΡΓΑΖΟΜΕΝΟΙ έχουν ΘΕΣΕΙΣ ΕΡΓΑΣΙΑΣ 
  • Οι ΘΕΣΕΙΣ ΕΡΓΑΣΙΑΣ κατέχονται από ΕΡΓΑΖΟΜΕΝΟΥΣ 
  • Τα ΠΡΟΪΟΝΤΑ κατατάσσονται σύμφωνα με τον ΤΥΠΟ ΤΟΥ ΠΡΟΪΟΝΤΟΣ 
  • Ο ΤΥΠΟΣ ΤΟΥ ΠΡΟΪΟΝΤΟΣ αποτελεί μια κατηγοριοποίηση για ένα ΠΡΟΪΟΝ 
  • Οι ΑΝΘΡΩΠΟΙ κάνουν ΚΡΑΤΗΣΕΙΣ ΕΙΣΙΤΗΡΙΩΝ 
  • Οι ΚΡΑΤΗΣΕΙΣ ΕΙΣΙΤΗΡΙΟΥ γίνονται από ΑΝΘΡΩΠΟΥΣ

 

 

 

Οι σχέσεις είναι χαρακτηρίζονται ως υποχρεωτικές (mandatory) ή προαιρετικές (optional). Θεωρήστε τις δύο οντότητες ΕΡΓΑΖΟΜΕΝΟΣ (EMPLOYEE) και ΘΕΣΗ ΕΡΓΑΣΙΑΣ (JOB). Για να μπορέσουμε να καθορίσουμε το είδος της σχέσης που διέπει τις παραπάνω οντότητες θα πρέπει να απαντήσουμε στα παρακάτω δύο ερωτήματα:

  • Πρέπει κάθε εργαζόμενος να έχει μια θέση εργασίας; Με άλλα λόγια, αυτό είναι ένα υποχρεωτικό ή προαιρετικό για κάθε εργαζόμενο; 
  • Πρέπει κάθε θέση εργασίας να αντιστοιχεί σε έναν υπάλληλο; Με άλλα λόγια, αυτό είναι ένα υποχρεωτικό ή προαιρετικό για κάθε θέση εργασίας;

 

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

Για παράδειγμα:

  • Σε πόσες θέσεις εργασίας μπορεί ένας υπάλληλος να εργάζεται; Σε μία θέση εργασίας μόνο ή σε περισσότερες από μία; 
  • Πόσοι υπάλληλοι μπορούν να κατέχουν μια συγκεκριμένη θέση εργασίας; Ένας υπάλληλος μόνο ή περισσότεροι από έναν εργαζόμενο;

 

Ο πληθάριθμος μιας σχέσης απαντάει στο ερώτημα αν το πλήθος είναι ένα ή περισσότερα από ένα. Δεν δίνει απάντηση με ένα συγκεκριμένο πλήθος για παράδειγμα τέσσερα (4). 

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

 

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

 

 

 

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

  • Ένα προς πολλά 1:M 
  • Πολλά προς πολλά M:Μ 
  • Ένα προς ένα 1:1 

 

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

Ένα προς πολλά 1:M 

Ένας ζωγράφος ζωγραφίζει πολλούς πίνακες, αλλά κάθε πίνακας αποτελεί δημιούργημα ενός μόνο ζωγράφου. Η σχέση «Ο ζωγράφος ζωγραφίζει πίνακες» είναι μία σχέση «ένα προς πολλά». Το «ένα» είναι από την πλευρά της οντότητας «ΖΩΓΡΑΦΟΣ», ενώ το «πολλά» είναι από την πλευρά της οντότητας «ΠΙΝΑΚΑΣ». 

 

Πολλά προς πολλά M:Μ 

Ένας εργαζόμενος μπορεί να μάθει πολλές δεξιότητες και κάθε δεξιότητα μπορεί να κατακτηθεί από πολλούς εργαζόμενους. Η σχέση «Ο εργαζόμενος μαθαίνει μία δεξιότητας» είναι μία σχέση «πολλά προς πολλά». Το «πολλά» είναι και από την πλευρά της οντότητας «ΕΡΓΑΖΟΜΕΝΟΣ», αλλά και από την πλευρά της οντότητας «ΔΕΞΙΟΤΗΤΑ». 

 

Ένα προς ένα 1:1 

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

 

 

 

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

 

 

 

💪 Δραστηριότητα: Αναγνώριση Τύπων Συσχετίσεων

Προσδιορίστε τους διάφορους τύπους σχέσεων από τις παρακάτω προτάσεις: 

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

 

 

 

📝🔗 Ερωτηματολόγιο 📝🔗

 

 

 


 

 

 

3.3.3 Μοντελοποίηση Συσχετίσεων Οντοτήτων και ER Διάγραμμα

 

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

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

 

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

 

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

 

 

 

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

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

 

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

 

 

 

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

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

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

 

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

 

 

 

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

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

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

 

 

 

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

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

  •  Κάθε εργαζόμενος έχει μία θέση εργασίας 
  • Κάθε θέση εργασίας απασχολεί εργαζόμενους

 

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

 

 

 

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

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

  • Κάθε εργαζόμενος κατέχει ακριβώς μία θέση εργασίας.
Σχήμα: Απεικόνιση πληθάριθμου σχέσης «ένα»

 

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

 

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

 

 

 

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

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

  • Κάθε εργαζόμενος έχει οπωσδήποτε μία θέση εργασίας. 
  • Κάθε εργασίας μπορεί να απασχολεί εργαζόμενους. Δεν είναι υποχρεωτικό δηλαδή για μία θέση εργασίας να υπάρχουν οπωσδήποτε εργαζόμενοι».

 

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

 

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

 

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

 

 

 

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

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

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

 

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

 

 

 

💪 Δραστηριότητα 

 

 

 

📝🔗 Ερωτηματολόγιο 📝🔗

 

 

 


 

 

 

3.3.4 Επίλυση Συσχετίσεων Πολλά προς Πολλά

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

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

  • Ένας πελάτης μπορεί να αγοράσει ένα ή περισσότερα προϊόντα. 
  • Ένα προϊόν μπορεί να αγοραστεί από έναν ή περισσότερους πελάτες.

 

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

 

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

 

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

 

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

 

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

 

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

 

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

 

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

 

 

 

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

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

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

 

 

 

📝🔗 Ερωτηματολόγιο 📝🔗

 

 

 


 

 

 

3.4 Μοναδικά Κλειδιά και Κανονικοποίηση (Normalization)

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

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

 

 

 

3.4.1 Πρωτεύον, Σύνθετο και Δευτερεύον κλειδί

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

Απλό ή Σύνθετο.

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

 

Σχήμα Οντότητα Μαθητής

 

 

Σχήμα Οντότητα Μαθητής

 

Απλής Τιμής ή Πολλαπλής Τιμής.

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

 

Κενό.

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

Ένα χαρακτηριστικό/ιδιότητα ενός πίνακα ονομάζεται πρωτεύον κλειδί εάν μπορεί να διαχωρίζει τις διαφορετικές γραμμές του πίνακα. Για παράδειγμα, ο αριθμός αστυνομικής ταυτότητας ή ο αριθμός φορολογικού μητρώου μπορούν να θεωρηθούν ως πρωτεύοντα κλειδιά για τον πίνακα Υπάλληλος εφόσον είναι μοναδικά για κάθε υπάλληλο. Αντίθετα, το επίθετο δε θεωρείται πρωτεύον κλειδί, διότι μπορεί να υπάρχουν πολλοί υπάλληλοι που να έχουν το ίδιο επίθετο (για παράδειγμα το επίθετο Παπαδόπουλος είναι κοινό και μπορεί να το έχουν πολλοί υπάλληλοι μιας εταιρείας ή ενός οργανισμού). Ένας πίνακας μπορεί να έχει περισσότερα από ένα πρωτεύοντα κλειδιά (για παράδειγμα ο αριθμός αστυνομικής ταυτότητας και ο αριθμός φορολογικού μητρώου). Ωστόσο, ένα μόνο επιλέγεται να χρησιμοποιηθεί. Το κλειδί που επιλέγεται καλείται πρωτεύον κλειδί (primary key) ενώ τα υπόλοιπα καλούνται δευτερεύοντα (secondary). Ως δευτερεύον κλειδί στον πίνακα υπάλληλος μπορεί να επιλεχθεί το επίθετο έτσι ώστε να διευκολύνεται ο χρήστης στην αναζήτηση κάποιου υπαλλήλου με τη χρήση του επίθετου. Σε πολλές περιπτώσεις το κλειδί ενός πίνακα μπορεί να είναι σύνθετο (composite) δηλαδή να αποτελείται από δύο ή και περισσότερα χαρακτηριστικά. Για παράδειγμα, στον πίνακα  παρουσιάζεται ένα σύνθετο κλειδί αποτελούμενο από τα χαρακτηριστικά, Επίθετο, ¨Όνομα και ¨Όνομα Πατρός. Με αυτόν τον τρόπο διαχωρίζονται οι γραμμές του πίνακα και εύκολα ξεχωρίζει η εγγραφή Παπαδόπουλος Ιωάννης του Ιωάννη από την εγγραφή Παπαδόπουλος Ιωάννης του Χρήστου.

Σχήμα Σύνθετο κλειδί

 

 

 

 

3.4.2 Κανονικοποίηση και Πρώτη Κανονική Μορφή

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

 

 

 

Οι κύριοι λόγοι είναι: 

Πρόβλημα Ενημέρωσης Δεδομένων.

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

Πρόβλημα Διαγραφής Δεδομένων.

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

Οι εναλλακτικές λύσεις που έχουμε αλλά καμία δεν μπορεί να εφαρμοστεί είναι οι εξής:

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

Πρόβλημα Εισαγωγής Δεδομένων.

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

Σχήμα Πίνακας με επαναλαμβανόμενες πληροφορίες

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

Σχήμα Κατασκευή δύο πινάκων για την αποφυγή της επαναληπτικότητας των δεδομένων

 

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

 

 

 

Έχουν προταθεί πέντε κανονικές μορφές που όμως δεν θα αναλυθούν στην παρούσα ενότητα εκτός από την πρώτη κανονική μορφή.

 

Πρώτη Κανονική Μορφή (1NF)

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

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

 

Παράδειγμα πρώτης κανονικής μορφής

Θεωρείστε ότι σχεδιάζεται το Μαθητολόγιο του σχολείου σας. Κάθε μαθητής παρακολουθεί μαθήματα ανάλογα με την τάξη. Για κάθε μαθητή θα υπάρχουν τα στοιχεία του καθώς και τα μαθήματα τα οποία παρακολουθεί.

Παρατηρούμε ότι το χαρακτηριστικό Μαθήματα είναι πολλαπλής τιμής και θα αναγκαστούμε να διασπάσουμε τον πίνακα ώστε να κανονικοποιηθεί.

 

 

 

💪 Δραστηριότητα: Μαθητολόγιο (Μέρος 01)

Πρόκειται να σχεδιάσετε το Μαθητολόγιο του σχολείου σας. Σας δίνεται το παρακάτω σχήμα οντότητας Μαθητή ως βοήθεια. Δημιουργήστε πίνακες Μαθητής και Μάθημα ώστε να περιλαμβάνονται και οι βαθμοί των μαθητών σε κάθε μάθημα; Σημείωση: Μην ξεχάσετε να εφαρμόσετε κανονικοποίηση.

Μπορείτε να χρησιμοποιήστε και τον Οπτικό Σχεδιαστή ΔΒ → https://www.drawdb.app/editor 🔗

Σχήμα Οντότητα Μαθητής

Μπορείτε να χρησιμοποιήστε και τον Οπτικό Σχεδιαστή ΔΒ → https://www.drawdb.app/editor 🔗

 

 

 

💪 Δραστηριότητα: Μαθητολόγιο (Μέρος 02)

 Προσδιορίστε τα κλειδιά των πινάκων που δημιουργήσατε στην Δραστηριότητα 1 (πρωτεύον, δευτερεύον ή σύνθετο);

 

 

 

📝🔗 Ερωτηματολόγιο 📝🔗

 

 


 

 

 

3.5 Μετασχηματισμός από το Εννοιολογικό Μοντέλο στο Σχεσιακό Μοντέλο

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

Αυτή η ενότητα περιγράφει μερικές βασικές αρχές των σχεσιακών βάσεων δεδομένων (relational databases) και παρουσιάζει διάφορες τεχνικές που μπορούμε να χρησιμοποιήσουμε για να μετατρέψουμε το μοντέλο οντοτήτων συσχετίσεων (Entity Relationship model) στο σχεσιακό μοντέλο.

 

 

 

3.5.1 Εισαγωγή στις έννοιες των Σχεσιακών Βάσεων Δεδομένων

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

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

Ας μελετήσουμε τώρα την δομή του σχεσιακού μοντέλου. Ένα σχεσιακό μοντέλο μπορεί να ειδωθεί ως ένα σύνολο από δισδιάστατους πίνακες. Στους δισδιάστατους αυτούς πίνακες οργανώνονται και αποθηκεύονται τα δεδομένα. Στο παρακάτω σχήμα παρουσιάζεται ο πίνακας ΕΡΓΑΖΟΜΕΝΟΙ, όπου αποθηκεύονται πληροφορίες σχετικά με τους εργαζόμενους.

 

 

 

 

 


https://sqlzoo.net 🔗

https://www.usesql.com/demo 🔗

https://sql.js.org/examples/GUI/ 🔗