3.2.3

3.2.3 Σχεσιακό Μοντέλο
Το σχεσιακό μοντέλο χρησιμοποιείται ευρέως και πολλά συστήματα βάσης δεδομένων βασίζονται σε αυτό. Είναι σε χαμηλότερο επίπεδο αφαιρετικότητας από το μοντέλο οντοτήτων συσχετίσεων. Χαρακτηρίζεται από απλότητα και είναι ελκυστικό στη χρήση του. Το σχεσιακό μοντέλο δεδομένων (relational data model) αναπτύχθηκε από τον Codd το 1970. Τα περισσότερα εμπορικά ΣΔΒΔ υποστηρίζουν το σχεσιακό μοντέλο δεδομένων ή επεκτάσεις αυτού.

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


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

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

ΑΒ 78155 ΑΒ 15889 Χαρισίδης Κερκινάκης Τσιμισκή 19 Εγνατία 151 Θεσσαλονίκη θεσσαλονίκη || Εικόνα 3.4 Πίνακας υπάλληλος
 * ~ ΑΤ Υπαλλήλου ||~ Επίθετο Υπαλλήλου ||~ Διεύθυνση κατοικίας ||~ Πόλη ||
 * ΑΑ 14355
 * Παπαδόπουλος
 * Βενιζέλου 4
 * Θεσσαλονίκη

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

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

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

ΑΒ 78155 ΑΒ 15889 ΑΒ 15889 Χαρισίδης Κερκινάκης Κερκινάκης Τσιμισκή 19 Εγνατία 151 Εγνατία 151 Θεσσαλονίκη Θεσσαλονίκη Θεσσαλονίκη Άννα Κωνσταντίνος Γεώργιος || Εικόνα 3.5 Πίνακας υπαλλήλων με διπλές πληροφορίες
 * ~ ΑΤ Υπαλλήλου ||~ Επίθετο ||~ Διεύθυνση ||~ Πόλη ||~ Όνομα παιδιού ||
 * ΑΑ 14355
 * Παπαδόπουλος
 * Βενιζέλου 4
 * Θεσσαλονίκη
 * **NULL**

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

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

**Ερωτήσεις / Δραστηριότητες**
 * 1) Τi είναι ένα μοντέλο δεδομένων; Να περιγραφούν οι βασικές κατηγορίες μοντέλων και να δώσετε ένα παράδειγμα σχεσιακού μοντέλου.
 * 2) Ποιο κλειδί ονομάζεται πρωτεύον και για ποιους λόγους κατά τη γνώμη σας είναι σημαντικό να υπάρχει;.
 * 3) Περιγράψτε τους λόγους που καθιστούν την ανεξαρτησία των δεδομένων σημαντική.
 * 4) Εξηγήστε τις διαφορές ανάμεσα στα τρία σχήματα εννοιολογικό, λογικό και φυσικό.
 * 5) Να δώσετε ένα παράδειγμα όπου η χρήση κενών τιμών (NULL) δημιουργεί πρόβλημα στις τιμές ενός χαρακτηριστικού / ιδιότητας.
 * 6) Για ποιους λόγους μπορεί να δημιουργηθούν διπλές πληροφορίες; Δώστε ένα παράδειγμα.
 * 7) Ποιες είναι οι διαφορές ανάμεσα στο Μοντέλο Οντοτήτων Συσχετίσεων και του Σχεσιακού Μοντέλου;
 * 8) Το σχεσιακό μοντέλο θεωρείται απλό. Μπορείτε να εξηγήσετε τους λόγους;


 * Δραστηριότητα 1**: Εννοιολογικό ή φυσικό σχήμα

Μελετήστε το παρακάτω σενάριο. Αναγνωρίστε το εννοιολογικό από το φυσικό μοντέλο. //Οι συμμαθητές της Ελένης γύρω στα 24 άτομα της ετοιμάζουν πάρτι έκπληξη για τα γενέθλιά της. Θέλουν να αγοράσουν διάφορα αναψυκτικά και χυμούς για το πάρτι, όπως πορτοκαλάδες, λεμονάδες, χυμούς και νερά. Σκέφτονται να αγοράσουν 6 συσκευασίες των 4 τεμαχίων. Όταν πάνε στο σουπερμάρκετ ανακαλύπτουν ότι τα αναψυκτικά πωλούνται σε συσκευασίες των 2, 4 και 8 τεμαχίων και πρέπει να επιλέξουν την πιο συμφέρουσα λύση για αυτούς.//

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

Πρόκειται να σχεδιάσετε το Μαθητολόγιο του σχολείου σας. Σας δίνεται ο παρακάτω πίνακας Μαθητής, αλλά λείπουν πληροφορίες που πρέπει να αποτυπωθούν στον πίνακα, ώστε να γίνει πληρέστερος. Μπορείτε να σκεφτείτε κάποιες από αυτές και να τις αποτυπώσετε ως χαρακτηριστικά/ιδιότητες του πίνακα; Χαρισίδης Κερκινάκης Τσιμισκή 19 Εγνατία 151 Θεσσαλονίκη Θεσσαλονίκη ||
 * Δραστηριότητα 2**: Πίνακας Μαθητής
 * ~ Επίθετο ||~ Διεύθυνση ||~ Πόλη ||
 * Παπαδόπουλος
 * Βενιζέλου 4
 * Θεσσαλονίκη

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