Πρόλογος Μέρος Ι Εισαγωγή στα συστήματα βάσεων δεδομένων Μια βόλτα στις βάσεις δεδομένων...25

Σχετικά έγγραφα
Περιεχόμενα. Μέρος Ι Εισαγωγή στα συστήματα βάσεων δεδομένων Πρόλογος... 33


Πρόλογος Μέρος Ι Μια βόλτα στις βάσεις δεδομένων Μια βόλτα στις βάσεις δεδομένων...25

Μετατροπή Σχήματος Ο/Σ σεσχεσιακό

Σχεσιακό Μοντέλο Δεδομένων

Σχεσιακό Μοντέλο Περιορισμοί Μετατροπή ER σε Σχεσιακό Παράδειγμα.. Εργαστήριο Βάσεων Δεδομένων. Relational Model

Το Σχεσιακό Μοντέλο. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Μετατροπή Σχήματος Ο/Σ σε Σχεσιακό

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ ασκήσεις και ερωτήσεις

Μετατροπή Σχήματος Ο/Σ σεσχεσιακό

Ένας απλός τρόπος αναπαράστασης δεδομένων: ένας διδιάστατος πίνακας που λέγεται σχέση Γνωρίσματα

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

Ένας απλός τρόπος αναπαράστασης δεδομένων: ένας διδιάστατος πίνακας που λέγεται σχέση Γνωρίσματα

Βάσεις δεδομένων. (2 ο μάθημα) Ηρακλής Βαρλάμης

Βάσεις Δεδομένων : Σχεσιακό Μοντέλο 1. Ένας απλός τρόπος αναπαράστασης δεδομένων: ένας διδιάστατος πίνακας που λέγεται σχέση.

Μετατροπή Σχήµατος Ο/Σ σε Σχεσιακό

Σχεδιασµός µιας Β. Εισαγωγή. Μετατροπή σε σχεσιακό -> είσοδο σε ένα Σ Β. Εισαγωγή. Ιδέες Ο/Σ Σχέσεις Σχεσιακό Σ Β

Μετατροπή Σχήματος Ο/Σ σε Σχεσιακό Σχήμα. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

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

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

Μετατροπή Σχήματος Ο/Σ σε Σχεσιακό Σχήμα. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Βάσεις Δεδομένων. Εισαγωγή Ανάλυση Απαιτήσεων. Φροντιστήριο 1 ο

Συναρτησιακές Εξαρτήσεις και Κανονικοποίηση

Το Σχεσιακό Μοντέλο. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Μετατροπή Σχήματος Ο/Σ σε Σχεσιακό Σχήμα. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Μάθημα: Συστήματα Διαχείρισης Βάσεων Δεδομένων Αναλυτικό Διάγραμμα Μελέτης


Πληροφοριακού Συστήματος Ενημέρωσης Καιρικών Συνθηκών

Κανονικοποίηση. Σημασιολογία Γνωρισμάτων. Άτυπες Οδηγίες. Παράδειγμα. Αξιολόγηση Σχεσιακών Σχημάτων ΒΔ. Περιττές Τιμές και Ανωμαλίες Ενημέρωσης

Εισαγωγή. Σχεδιασµός µιας Β

Σχεδιασμός μιας Β : Βήματα

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

Άσκηση 2 - Κεχρής, Κεφάλαιο 8: Κανονικοποίηση

Copyright 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley, ΕλληνικήΈκδοση, ίαυλος

Εργαστήριο Βάσεων Δεδομένων. Relational Model Σχεσιακό Μοντέλο

Εισαγωγή στις βάσεις δεδομένων - Η ανατομία μιας βάσης δεδομένων

Διάγραμμα Οντοτήτων - Συσχετίσεων

Βάσεις Δεδομένων. Σχεσιακό Μοντέλο Μετατροπή Διαγράμματος Οντοτήτων Συσχετίσεων (E-R) σε σχεσιακό. Φροντιστήριο 3 ο

ΘΕΜΑΤΑ. Θέμα 1 ο Σύμφωνα με τους παραπάνω πίνακες και τη θέση που έχουν τα ξένα κλειδιά βρείτε τους

Εισαγωγή στις Βάσεις Δεδομένων (ΒΔ)

Σχεδιασμός μιας εφαρμογής ΒΔ: Βήματα. 1. Συλλογή και Ανάλυση Απαιτήσεων(requirement analysis)

Εισαγωγή στις Βάσεις Δεδομένων (ΒΔ)

Επεξεργασία Ερωτήσεων

Σχεσιακό Μοντέλο. Σχεδιασμός Βάσεων Δεδομένων Μάθημα 2 ο Μαρία Χαλκίδη

Τίτλος Πακέτου Certified Computer Expert-ACTA

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


Σχεδιασµός µιας Β. Ένας απλός τρόπος αναπαράστασης δεδοµένων: ένας διδιάστατος πίνακας που λέγεται σχέση Γνωρίσµατα

Περιεχόμενα. Μέρος Ι Εισαγωγή στα συστήματα βάσεων δεδομένων Πρόλογος... 33

Εισαγωγή στην Επεξεργασία Ερωτήσεων. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Επεξεργασία Ερωτήσεων

Εισαγωγή στην Επεξεργασία Ερωτήσεων. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Λίγα λόγια από το συγγραφέα...7

A ΕΠΑ.Λ ΕΦΑΡΜΟΓΕΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 5 η ΕΝΟΤΗΤΑ: ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ. Εκπαιδευτικοί: ΓΑΛΑΝΟΣ ΓΕΩΡΓΙΟΣ ΜΠΟΥΣΟΥΝΗΣ ΚΩΝΣΤΑΝΤΙΝΟΣ

Εισαγωγή στην πληροφορική

Εργασία Συστήματα Βάσεων Δεδομένων. Θέμα

Βάσεις δεδομένων. (3 ο μάθημα) Ηρακλής Βαρλάμης

Κανονικοποίηση. Παύλος Εφραιμίδης. Βάσεις Δεδομένων Κανονικοποίηση 1

PROJECT ΕΡΓΑΣΤΗΡΙΩΝ ΒΑΣΕΩΝ ΔΕΔΟΜΕΝΩΝ Ι. Τμήμα Μηχανικών Πληροφορικής Τ.Ε.

Διάγραμμα Οντοτήτων Συσχετίσεων (ΔΟΣ) Entity Relationship Diagram (ERD)

Διαχείριση Δεδομένων

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

Απεικόνιση Διαγράμματος Οντοτήτων-Συσχετίσεων σε Σχεσιακό Μοντέλο Δεδομένων

ΜοντέλοΟντοτήτωνΣυσχετίσεων & ΔιάγραμμαΟντοτήτων Συσχετίσεων. Μοντέλο Οντοτήτων Συσχετίσεων

ΕΞΕΤΑΣΤΕΑ ΥΛΗ (SYLLABUS) MASTER IN OFFICE microsoft access ΕΚΔΟΣΗ 1.0. Σόλωνος 108,Τηλ Φαξ

Εκπαιδευτικό Εργαλείο Κανονικοποίησης

ΕΣΔ 232: ΟΡΓΑΝΩΣΗ ΔΕΔΟΜΕΝΩΝ ΣΤΗ ΚΟΙΝΩΝΙΑ ΤΗΣ ΠΛΗΡΟΦΟΡΙΑΣ. Ακαδημαϊκό Έτος , Εαρινό Εξάμηνο. Εργαστηριακή Άσκηση 2 24/01/2012

Μετατροπή Σχήµατος Ο/Σ σε Σχεσιακό

Σχεσιακή Άλγεβρα και Σχεσιακός Λογισμός. Σχεσιακή Άλγεβρα Σχεσιακός Λογισμός

Διαδικασία σχεδιασμού Β.Δ.

Χρήστος Στασινός. ουλεύοντας με τη. Microsoft Access ΑΘΗΝΑ

Σχεσιακή Άλγεβρα. Παύλος Εφραιμίδης. Βάσεις Δεδομένων Σχεσιακή Άλγεβρα 1

Θέματα ανακεφαλαίωσης

ΘΕ ΠΛΗ11 2η ΓΡΑΠΤΗ ΕΡΓΑΣΙΑ (ΓΕ2) ΕΝΔΕΙΚΤΙΚΗ ΕΠΙΛΥΣΗ

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

Μετατροπή Σχήµατος Ο/Σ σε Σχεσιακό


ÈÛ ÁˆÁ ÛÙÈ μ ÛÂÈ Â ÔÌ ÓˆÓ

#1.1 Τι είναι η Βάση Δεδομένων

Σχεσιακό Μοντέλο. Εισαγωγή. Βάσεις εδοµένων : Σχεσιακό Μοντέλο 1

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ - ΤΜΗΥΠ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι

Πληροφορική 2. Βάσεις Δεδομένων (Databases)

Εργαστήριο «Τεχνολογία Πολιτισμικού Λογισμικού» Ενότητα. Επεξεργασία πινάκων

Κεφάλαιο 4 Σχεδίαση Βάσεων Δεδομένων

Σύβακας Σταύρος ΠΕ19,MSc. IT ΣΥΒΑΚΑΣ ΣΤΑΥΡΟΣ ΕΡΩΤΗΜΑΤΑ

Επεξεργασία Ερωτήσεων

Εισαγωγή στην. Εισαγωγή Σ Β. Αρχεία ευρετηρίου Κατάλογος. συστήματος. Αρχεία δεδομένων

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ

Εργαστήριο 6 ο 7 ο / Ερωτήματα Ι

Βάσεις Δεδομένων Ενότητα 4


Certified Data Base Designer (CDBD)

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ - ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΣΒΔ - ΕΙΣΑΓΩΓΗ ΣΤΟ ΜΟΝΤΕΛΟ ΟΝΤΟΤΗΤΩΝ ΣΥΣΧΕΤΙΣΕΩΝ ΤΜΗΜΑ ΠΟΛΙΤΙΣΜΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΣ

Εργαστήριο Βάσεων Δεδομένων. Εισαγωγικό Φροντιστήριο Βασικές Έννοιες - Ανάλυση Απαιτήσεων

Βάσεις Δεδομένων. Σταύρος Βαλσαμίδης Βάσεις Δεδομένων Διάγραμμα Ο-Σ 1

K15 Ψηφιακή Λογική Σχεδίαση 7-8: Ανάλυση και σύνθεση συνδυαστικών λογικών κυκλωμάτων

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

Το εσωτερικό ενός Σ Β

Βάσεις Δεδομένων. Μιχάλης Μαλιάππης

Βάση Δεδομένων: συλλογή από σχετιζόμενα δεδομένα Σύστημα Διαχείρισης Βάσεων Δεδομένων (ΣΔΒΔ): λογισμικό για δημιουργία και χρήση μιας βάσης δεδομένων

Transcript:

Περιεχόμενα Πρόλογος... 21 Μέρος Ι Εισαγωγή στα συστήματα βάσεων δεδομένων. 23 1 Μια βόλτα στις βάσεις δεδομένων...25 1.1 Η πρώτη βάση δεδομένων... 26 1.1.1 Άλλοι τρόποι...26 1.1.2 Απαιτήσεις της εφαρμογής...29 1.1.3 Δημιουργία της βάσης...31 1.1.4 MS Access...34 1.2 Ένα βήμα μπροστά: κλειδιά και πρώτη κανονική μορφή... 37 1.2.1 Πρωτεύον κλειδί...38 1.3 Σύνθετες ιδιότητες οντοτήτων... 42 1.4 Περισσότεροι τύποι δεδομένων... 44 1.5 Συμπεράσματα και προοπτικές... 45 1.6 Περίληψη... 46 1.7 Ασκήσεις... 47 2 Το σχεσιακό μοντέλο...49 2.1 Εισαγωγή στο σχεσιακό μοντέλο... 50 2.2 Κεντρικές έννοιες του σχεσιακού μοντέλου... 52 2.3 Ιδιότητες των σχέσεων... 54 2.3.1 Μοναδικότητα πλειάδων...55 2.3.2 Διάταξη πλειάδων...55 2.3.3 Διάταξη γνωρισμάτων...56 2.3.4 Ατομικότητα...57 2.4 Είδη σχέσεων... 59 2.5 Η ερμηνεία και το κατηγόρημα μιας σχέσης... 60 5

6 Περιεχόμενα 2.6 Σχέσεις και κλειδιά... 61 2.6.1 Υπερκλειδί... 62 2.7 Σχεσιακή άλγεβρα και βασικές πράξεις... 63 2.7.1 Κλειστότητα... 63 2.7.2 Ένωση... 64 2.7.3 Τομή... 66 2.7.4 Διαφορά... 68 2.7.5 2.7.6 Γινόμενο... 69 Επιλογή... 70 2.7.7 Προβολή... 72 2.7.8 2.7.9 Σύζευξη... 73 Διαίρεση... 77 2.7.10 Σύνοψη και συναρτήσεις συνάθροισης... 80 2.7.11 Ενημέρωση... 83 3 Σημασιολογική μοντελοποίηση με το μοντέλο Οντοτήτων/Συσχετίσεων...91 3.1 Εισαγωγή... 92 3.2 Οντότητες και ιδιότητες οντοτήτων... 92 3.2.1 Κατηγορίες ιδιοτήτων... 94 3.2.2 Ακεραιότητα οντοτήτων... 95 3.3 Συσχετίσεις... 96 3.4 Περιορισμοί... 97 3.4.1 Λόγος πληθικότητας... 97 3.4.2 Περιορισμοί συμμετοχής... 99 3.4.3 Παραδείγματα περιορισμών... 100 3.5 Κλειδιά... 106 3.5.1 Πρωτεύον κλειδί συσχετίσεων... 108 3.6 Σχεδιασμός... 110 3.6.1 Ποιες οντότητες αναπαριστούν τις έννοιες της βάσης... 110 3.6.2 Οντότητες ή ιδιότητες... 111 3.7 Διαγράμματα Ο/Σ... 113 3.8 Ασθενείς οντότητες... 114 4 Μετατροπή του μοντέλου Οντοτήτων/Συσχετίσεων σε σχεσιακό...117 4.1 Γενικοί κανόνες μετασχηματισμού... 118 4.2 Ισχυρές οντότητες... 119 4.3 Ασθενείς οντότητες... 119 4.4 Συσχετίσεις... 119

Περιεχόμενα 7 4.4.1 Ένα προς ένα... 119 4.4.2 Ένα προς πολλά... 122 4.4.3 Πολλά προς πολλά... 123 4.5 Σύνθετες ιδιότητες... 124 4.6 Πλειότιμες ιδιότητες... 124 5 Κανονικοποίηση...125 5.1 Πρώτη κανονική μορφή... 126 5.2 Συναρτησιακές εξαρτήσεις... 132 5.2.1 Γενικά γα τις συναρτησιακές εξαρτήσεις... 132 5.2.2 Τετριμμένες συναρτησιακές εξαρτήσεις... 136 5.3 Εγκλεισμός ή θήκη του συνόλου εξαρτήσεων... 138 5.3.1 Ισοδύναμα σύνολα εξαρτήσεων... 139 5.3.2 Μη αναγώγιμα (ελάχιστα) σύνολα εξαρτήσεων... 140 5.4 Δεύτερη κανονική μορφή... 141 5.5 Τρίτη κανονική μορφή... 146 5.5.1 Περιγραφή και ορισμός της τρίτης κανονικής μορφής... 146 5.5.2 Ενημέρωση της βάσης με εισαγωγή πλειάδων... 150 5.5.3 Ενημέρωση της βάσης με διαγραφή πλειάδων... 152 5.5.4 Ενημέρωση της βάσης με τροποποίηση πλειάδων... 153 5.5.5 Απόδοση στα ερωτήματα... 156 5.6 Περίληψη κεφαλαίου... 159 ΜΕΡΟΣ ΙΙ Η δομημένη γλώσσα ερωτημάτων... 161 6 Εισαγωγή...163 6.1 Η αρχή... 163 6.2 Το πρότυπο... 163 6.3 Διάλεκτοι... 164 6.4 Για την πληρότητα... 164 6.5 Περιγραφή της βάσης δεδομένων για τα παραδείγματα... 164 7 Απλά ερωτήματα επιλογής...167 7.1 Προβολή και περιορισμός, ερωτήματα σε έναν πίνακα... 168 7.1.1 Το πιο απλό ερώτημα... 168 7.1.2 Συστήματα διαχείρισης και περιβάλλοντα επεξεργασίας ερωτημάτων... 169 7.1.3 Επιλογή πεδίων από πίνακα... 173

8 Περιεχόμενα 7.2 Μετονομασία πεδίων στο αποτέλεσμα... 174 7.3 Περιορισμός εγγραφών... 175 7.3.1 Συγκρίσεις κειμένου και αλφαριθμητικών... 177 7.3.2 Συγκρίσεις με ημερομηνίες... 178 7.3.3 Ασκήσεις... 179 7.4 Πεδία και αλγεβρικές παραστάσεις... 186 7.4.1 Παρατήρηση για τον υπολογισμό ποσοστού... 187 7.4.2 Ασκήσεις... 188 7.5 Ταξινόμηση δεδομένων... 189 7.5.1 Ασκήσεις... 190 7.6 Περίληψη κεφαλαίου... 192 7.7 Επαναληπτικές ασκήσεις... 193 8 Περισσότερα για τα ερωτήματα επιλογής...195 8.1 Απαλοιφή διπλοεγγραφών... 196 8.1.1 Ασκήσεις... 197 8.2 Χειρισμός άγνωστων τιμών... 198 8.3 Ταίριασμα κειμένου και χαρακτήρων... 199 8.3.1 Ασκήσεις... 200 8.4 Οι λογικοί τελεστές... 201 8.4.1 Ασκήσεις... 207 8.5 Ο τελεστής συνόλου... 208 8.5.1 Ασκήσεις... 210 8.6 Ο τελεστής περιοχής τιμών... 210 8.6.1 Ασκήσεις... 211 8.7 Περίληψη κεφαλαίου... 213 8.8 Επαναληπτικές ασκήσεις... 214 9 Συναρτήσεις συνάθροισης και ερωτήματα ομαδοποίησης...217 9.1 Συναρτήσεις συνάθροισης... 218 9.1.1 Γενικά για τις συναρτήσεις συνάθροισης... 218 9.1.2 Υπολογισμός του αθροίσματος... 219 9.1.3 Υπολογισμός του μέσου όρου... 220 9.1.4 Υπολογισμός της μικρότερης και της μεγαλύτερης τιμής... 220 9.1.5 Καταμέτρηση του πλήθους... 221 9.2 Ομαδοποίηση και συναρτήσεις συνάθροισης... 223 9.2.1 Ασκήσεις... 225 9.3 Περιορισμός εγγραφών σε ερωτήματα ομαδοποίησης με συναρτήσεις συνάθροισης... 227

Περιεχόμενα 9 9.3.1 Μια ολοκληρωμένη πρόταση... 228 9.3.2 Ασκήσεις... 229 9.4 Περίληψη κεφαλαίου... 231 9.5 Επαναληπτικές ασκήσεις... 232 10 Ερωτήματα επιλογής με σύζευξη πινάκων...233 10.1 Καρτεσιανό γινόμενο και σύζευξη... 234 10.2 Ψευδώνυμα πινάκων... 238 10.3 Ερωτήματα σε πίνακες με συσχέτιση ένα προς πολλά... 239 10.3.1 Ασκήσεις... 243 10.4 Ερωτήματα σε πίνακες με συσχέτιση πολλά προς πολλά... 248 10.4.1 Ασκήσεις... 250 10.5 Εξωτερικές συζεύξεις... 254 10.6 Οι σχεσιακές πράξεις αφαίρεσης και τομής με τη χρήση εξωτερικών συζεύξεων... 260 10.6.1 Ασκήσεις... 263 10.7 Σύζευξη με περισσότερα από ένα πεδία... 264 10.8 Αυτοσύζευξη... 266 10.9 Άλλες (εξωτικές) συζεύξεις... 268 10.10 Περίληψη κεφαλαίου... 272 10.11 Επαναληπτικές ασκήσεις... 273 11 Ερωτήματα επιλογής με ομαδοποίηση σε πολλούς πίνακες...275 11.1 Γενικά για ερωτήματα σύνοψης σε πολλούς πίνακες... 276 11.2 Ανάλυση ενός παραδείγματος... 277 11.3 Ασκήσεις με απαντήσεις... 278 11.4 Περίληψη κεφαλαίου... 285 11.5 Επαναληπτικές ασκήσεις... 285 12 Υποερωτήματα...289 12.1 Υποερωτήματα... 290 12.1.1 Απλά υποερωτήματα... 290 12.1.2 Ασκήσεις... 296 12.1.3 Ένωση... 298 12.2 Εύρεση της τομής δύο συνόλων με υποερώτημα... 301 12.3 Περίληψη κεφαλαίου... 302

10 Περιεχόμενα 13 Ενσωματωμένες συναρτήσεις...305 13.1 Εισαγωγή... 305 13.2 Συναρτήσεις για αριθμούς... 305 13.3 Συναρτήσεις αλφαριθμητικών... 307 13.4 Συναρτήσεις ημερομηνίας και ώρας... 307 13.5 Ασκήσεις... 309 14 Ενημέρωση της βάσης δεδομένων...313 14.1 Διαγραφή δεδομένων... 314 14.1.1 Διαγραφή όλων των δεδομένων... 314 14.1.2 Διαγραφή δεδομένων υπό όρους... 314 14.1.3 Διαγραφή δεδομένων με υποερωτήματα... 315 14.1.4 Ασκήσεις... 316 14.2 Τροποποίηση δεδομένων... 317 14.2.1 Απλές περιπτώσεις... 317 14.2.2 Ενημέρωση με βάση την τιμή ενός πεδίου... 318 14.2.3 Ενημέρωση σύνθετου κλειδιού: απόψεις και προβλήματα... 319 14.2.4 Τροποποίηση δεδομένων με υποερωτήματα... 322 14.2.5 Ασκήσεις... 323 14.3 Εισαγωγή δεδομένων... 324 14.3.1 Ένα πρόβλημα με διαδοχική εισαγωγή και διαγραφή... 326 14.3.2 Εισαγωγή δεδομένων με υποερώτημα... 328 14.3.3 Ασκήσεις... 330 14.4 Περίληψη κεφαλαίου... 331 15 Η γλώσσα ορισμού δεδομένων...333 15.1 Δημιουργία βάσης δεδομένων... 334 15.2 Δημιουργία πινάκων... 334 15.2.1 Η λίστα πεδίων... 335 15.2.2 Τύποι δεδομένων... 336 15.2.3 Λίστα περιορισμών... 339 15.2.4 Ξένα κλειδιά... 340 15.2.5 Συσχέτιση πολλά προς πολλά... 343 15.2.6 Δείκτες και περιορισμοί μοναδικότητας... 344 15.2.7 Πυροδοτήσεις (εναύσματα) για τα ξένα κλειδιά... 347

Περιεχόμενα 11 15.3 Τροποποίηση δομής πίνακα... 351 15.3.1 Ασκήσεις με απαντήσεις... 353 15.4 Επαναληπτικές ασκήσεις... 360 16 Όψεις...363 16.1 Εισαγωγικά... 364 16.2 Πλεονεκτήματα και μειονεκτήματα στη χρήση των όψεων... 366 16.2.1 Πλεονεκτήματα της χρήσης όψεων... 366 16.2.2 Μειονεκτήματα της χρήσης όψεων... 366 16.3 Παραδείγματα χρήσης των όψεων... 367 16.4 Όψεις και ερωτήματα σύζευξης... 368 16.5 Όψεις με ομαδοποίηση... 370 16.6 Ενημέρωση όψεων... 371 16.7 Διαγραφή όψεων... 374 17 Ασφάλεια βάσεων δεδομένων...375 17.1 Εκχώρηση δικαιωμάτων σε χρήστες... 376 17.2 Ανάκληση δικαιωμάτων... 380 17.3 Κανόνες ασφαλείας στην πράξη... 381 17.4 Η πικρή χαρά μιας ιστοσελίδας... 382 18 Αποθηκευμένες διαδικασίες...385 18.1 Απλό παράδειγμα χωρίς παραμέτρους... 386 18.2 Απλό παράδειγμα με παραμέτρους... 386 18.3 Διαδικασίες με πολλές εντολές... 388 18.4 Ολική συμμετοχή σε συσχέτιση ένα προς πολλά... 390 18.5 Ασκήσεις... 392 19 Εναύσματα...393 19.1 Γενικά για τα εναύσματα... 394 19.2 Πλεονεκτήματα και μειονεκτήματα της χρήσης εναυσμάτων... 398 19.2.1 Πλεονεκτήματα... 398 19.2.2 Μειονεκτήματα... 399 19.3 Εφαρμογές των εναυσμάτων... 399 19.3.1 Αλλαγή τιμών... 399 19.3.2 Πυροδοτήσεις ακεραιότητας αναφορών... 401

12 Περιεχόμενα ΜΕΡΟΣ ΙIΙ Παραδείγματα και εφαρμογές...405 20 Καταγραφή γεννήσεων σε μια μαιευτική κλινική...407 20.1 Το πρόβλημα: περιγραφή και ανάλυση απαιτήσεων... 407 20.2 Σχεδίαση μοντέλου Οντοτήτων/Συσχετίσων... 408 20.2.1 Γενικά... 408 20.2.2 Ιδιότητες των οντοτήτων... 410 20.2.3 Παιδιά, ιδιότητα ή οντότητα;... 413 20.3 Μετατροπή σε σχεσιακό μοντέλο... 414 20.4 Κανονικοποίηση... 415 20.5 Πίνακες, ερωτήματα, όψεις, και φόρμες... 415 20.5.1 Πίνακες MySQL... 415 20.5.2 MS Access... 417 20.5.3 Ερωτήματα στη βάση μαιευτηρίου... 422 20.6 Προγραμματισμός της εφαρμογής... 429 20.6.1 Γενικά... 429 20.6.2 Επεξεργασία πινάκων... 429 20.6.3 Ερωτήματα και όψεις... 436 20.6.4 Εκθέσεις... 445 20.6.5 Φόρμες... 446 20.7 Ο θρίαμβος του σχεσιακού μοντέλου... 448 20.8 Συμπεράσματα... 456 Βιβλιογραφία... 457 Ευρετήριο... 459

100 ΜΕΡΟΣ Ι Εισαγωγή στα συστήματα βάσεων δεδομένων 3.4.3 Παραδείγματα περιορισμών Θα αναλύσουμε τα παραπάνω, σχετικά με το λόγο πληθικότητας και την υποχρεωτική ή μερική συμμετοχή, μέσα από μερικά παραδείγματα. Σε όλες τις περιπτώσεις θα επικεντρώσουμε το ενδιαφέρον μας στην ελάχιστη και τη μέγιστη πληθικότητα της συμμετοχής ενός συνόλου οντοτήτων σε ένα σύνολο συσχετίσεων. Από την ελάχιστη πληθικότητα θα βγουν συμπεράσματα για την υποχρεωτική ή τη μερική συμμετοχή. Από τη μέγιστη πληθικότητα θα βγουν συμπεράσματα για το λόγο πληθικότητας. Συσχέτιση 1:1 με μερική και υποχρεωτική συμμετοχή Θεωρήστε δύο σύνολα οντοτήτων E και F που συμμετέχουν στο σύνολο συσχετίσεων R. Οι ξεχωριστές οντότητες κάθε συνόλου παριστάνονται με σημεία εντός ενός οβάλ σχήματος που παριστάνει το σύνολο οντοτήτων. Το πλήθος μελών κάθε συνόλου είναι ενδεικτικό, και σε καμία περίπτωση δεν περιορίζεται στο 5 ή στο 7 που χρησιμοποιούνται ως παραδείγματα. Σχήμα 3.3 Παράδειγμα συσχέτισης 1:1. Ας δούμε πρώτα το σύνολο οντοτήτων E και τη συμμετοχή του στο σύνολο συσχετίσεων R. Παρατηρούμε ότι υπάρχουν μέλη του συνόλου, όπως το e 4, τα οποία δεν συμμετέχουν στη συσχέτιση. 2 Επομένως, αφού έστω και ένα μέλος του συνόλου έχει μηδενική συμμετοχή, η ελάχιστη πληθικότητα συμμετοχής του συνόλου οντοτήτων E στο σύνολο συσχετίσεων R είναι: mincard(e, R) = 0 (3.2) 2 Αυτό δηλώνεται στο σχήμα με το γεγονός πως καμία γραμμή ένωσης δεν ενώνει το e 4 με κάποιο από τα μέλη του R.

Κεφάλαιο 3 Σημασιολογική μοντελοποίηση με μοντέλο Οντοτήτων/Συσχετίσεων 101 γεγονός που δηλώνει ότι κάποια μέλη του συνόλου E δεν συσχετίζονται με κάποιο μέλος του συνόλου F, ή με άλλα λόγια ότι η συμμετοχή του συνόλου οντοτήτων E στο σύνολο συσχετίσεων R είναι μερική. Ας εξετάσουμε τώρα τη μέγιστη πληθικότητα. Παρατηρήστε ότι από κανένα μέλος του συνόλου E δεν ξεκινούν περισσότερες από μία γραμμές ένωσης με τα μέλη του συνόλου R. Άρα κάθε μέλος του συνόλου E συμμετέχει στο σύνολο συσχετίσεων R το πολύ μία φορά, επομένως: maxcard(e, R) = 1 (3.3) γεγονός που δηλώνει ότι κανένα μέλος του συνόλου οντοτήτων E δεν μπορεί να συσχετιστεί με μέλη του συνόλου οντοτήτων F, μέσω του συνόλου συσχετίσεων R, περισσότερες από μία φορές. Κάθε τέτοια σύνδεση είναι δυνατό να συμβεί μόνο μία φορά. Ας στρέψουμε τώρα την ανάλυση στη συμμετοχή του συνόλου οντοτήτων F στο σύνολο συσχετίσεων R. Διατηρώντας την ίδια συλλογιστική με την προηγούμενη ανάλυση, παρατηρούμε ότι: mincard(f, R) = 1 (3.4) Η συμμετοχή του συνόλου οντοτήτων F στο σύνολο συσχετίσεων F είναι υποχρεωτική. Δηλαδή κάθε μέλος του συνόλου οντοτήτων F συσχετίζεται με κάποιο μέλος της οντότητας E, μέσω του συνόλου συσχετίσεων R. Αυτό σημαίνει επίσης ότι δεν γίνεται να υπάρξει νέο μέλος στο σύνολο οντοτήτων F χωρίς να υπάρξει ταυτόχρονα η σύνδεσή του (μέσω του συνόλου R) με κάποιο μέλος του συνόλου E. Θυμηθείτε ότι αυτό δεν ισχύει για το σύνολο E. Σε εκείνη την περίπτωση, λόγω της μερικής συμμετοχής, είναι δυνατό να υπάρξει ένα νέο μέλος του E χωρίς να απαιτείται η συσχέτισή του με κάποιο μέλος του F. Όσον αφορά τη μέγιστη πληθικότητα συμμετοχής του συνόλου οντοτήτων F στο σύνολο συσχετίσεων R, όπως και προηγουμένως παρατηρούμε ότι από κανένα μέλος του συνόλου E δεν ξεκινούν περισσότερες από μία γραμμές ένωσης με τα μέλη του συνόλου R. Άρα κάθε μέλος του συνόλου F συμμετέχει στο σύνολο συσχετίσεων R το πολύ μία φορά, επομένως: maxcard(f, R) = 1 (3.5) Επομένως ισχύει ό,τι ίσχυε και για το E. Αν θυμηθούμε ότι από την ελάχιστη πληθικότητα μπορούμε να καταλήξουμε σε συμπέρασμα για τη μερική ή υποχρεωτική συμμετοχή, και ότι από τη μέγιστη πληθικότητα μπορούμε να καταλήξουμε σε

102 ΜΕΡΟΣ Ι Εισαγωγή στα συστήματα βάσεων δεδομένων συμπέρασμα για το λόγο πληθικότητας, τότε για τη συσχέτιση μεταξύ των E και F μπορούμε να πούμε ότι: Λόγος πληθικότητας Από τις σχέσεις 3.3 και 3.5 καταλήγουμε στο συμπέρασμα ότι η συσχέτιση μεταξύ του συνόλου οντοτήτων E και του συνόλου οντοτήτων F είναι 1:1. Συμμετοχή Από τις σχέσεις 3.2 και 3.4 καταλήγουμε στο συμπέρασμα πως η συμμετοχή στο σύνολο συσχετίσεων R για τα σύνολα οντοτήτων E και F είναι μερική και υποχρεωτική αντίστοιχα. Μπορείτε να φανταστείτε πολλά παραδείγματα που να αντιστοιχούν στην παραπάνω ανάλυση. Ένα από τα πιο συνηθισμένα είναι το παράδειγμα με τις πόλεις και τους δημάρχους. Σκεφτείτε λοιπόν τη διαδικασία καταγραφής όλων των δήμων και των αντίστοιχων δημάρχων, π.χ. για τις ανάγκες ου υπουργείου Εσωτερικών. Θεωρήστε ότι το σύνολο E αντιστοιχεί στους δήμους, το σύνολο F στους δημάρχους, και η εκλογή στο σύνολο R. Κάθε δήμαρχος εκλέγεται σε ένα μόνο δήμο, η συμμετοχή του δημάρχου στη συσχέτιση εκλέγει έχει μέγιστη πληθικότητα το 1, και δεν είναι δυνατόν κάποιος/α να είναι δήμαρχος σε περισσότερους από έναν δήμους. Τι γίνεται με την ελάχιστη πληθικότητα; Αν η βάση καταγράφει μόνο τους δημάρχους, 3 τότε η ελάχιστη πληθικότητα είναι 1. Κάποιος ή είναι δήμαρχος, οπότε καταγράφεται στη βάση δεδομένων, ή δεν είναι δήμαρχος, οπότε δεν καταγράφεται καθόλου. Αντίστοιχα, η ελάχιστη πληθικότητα στη συμμετοχή των δήμων είναι 1, επειδή κάθε δήμος κάνει εκλογές, ανεξάρτητα από το αν εκλέξει τελικά δήμαρχο ή όχι. Η ύπαρξη ενός δήμου στη βάση δεδομένων δεν εξαρτάται από το αν έχει δήμαρχο ή όχι. 4 Δήμος Εκλέγει Δήμαρχος Σχήμα 3.4 Κάθε δήμος εκλέγει ένα δήμαρχο, και κάθε δήμαρχος διοικεί ένα δήμο. Παράδειγμα συσχέτισης 1:1. 3 4 και όχι τους υποψηφίους δημάρχους στις τοπικές εκλογές ή κάτι άλλο Μην ξεχνάτε ότι υπάρχει και το ενδεχόμενο ακύρωσης εκλογικών αποτελεσμάτων, σχηματισμού νέων δήμων, παραίτησης δημάρχου, κ.λπ. Ο δήμος υπάρχει πριν και ανεξάρτητα από το δήμαρχό του. Ο δήμαρχος είναι εκείνος του οποίου η οντότητα εξαρτάται από το δήμο: δεν υπάρχει δήμαρχος γενικά και αόριστα, χωρίς να διοικεί κάποιο συγκεκριμένο δήμο.

Κεφάλαιο 3 Σημασιολογική μοντελοποίηση με μοντέλο Οντοτήτων/Συσχετίσεων 103 Συσχέτιση 1:N με μερική και υποχρεωτική συμμετοχή Θεωρήστε δύο σύνολα οντοτήτων E και F που συμμετέχουν στο σύνολο συσχετίσεων R. Σχήμα 3.5 Παράδειγμα συσχέτισης 1:Ν. Για το σύνολο οντοτήτων E και τη συμμετοχή του στο σύνολο συσχετίσεων R, παρατηρούμε ότι υπάρχουν μέλη του συνόλου E, όπως το e 4, τα οποία δεν συμμετέχουν στη συσχέτιση. Επομένως η ελάχιστη πληθικότητα συμμετοχής του συνόλου οντοτήτων E στο σύνολο συσχετίσεων R είναι: mincard(e, R) = 0 (3.6) Αυτό σημαίνει ότι κάποια μέλη του συνόλου E δεν συσχετίζονται αναγκαστικά με κάποιο μέλος του συνόλου F, ή με άλλα λόγια ότι η συμμετοχή του συνόλου ο- ντοτήτων E στο σύνολο συσχετίσεων R είναι μερική. Για τη μέγιστη πληθικότητα, παρατηρούμε ότι από κάποια μέλη του συνόλου E ξεκινούν περισσότερες από μία γραμμές ένωσης με τα μέλη του συνόλου R. Δηλαδή κάθε μέλος του συνόλου E συμμετέχει δυνητικά στο σύνολο συσχετίσεων R περισσότερες από μία φορές, επομένως: maxcard(ε, R) = Ν (3.7) γεγονός που δηλώνει ότι τα μέλη του συνόλου οντοτήτων E μπορούν να συσχετιστούν με μέλη του συνόλου οντοτήτων F, μέσω του συνόλου συσχετίσεων R, περισσότερες από μία φορές. Κάθε τέτοια σύνδεση είναι δυνατό να συμβεί πολλές φορές για τα μέλη του E. Όσον αφορά τη συμμετοχή του συνόλου οντοτήτων F στο σύνολο συσχετίσεων R, παρατηρούμε ότι: mincard(f, R) = 1 (3.8)

104 ΜΕΡΟΣ Ι Εισαγωγή στα συστήματα βάσεων δεδομένων Για κάθε μέλος του συνόλου F υπάρχει μία γραμμή ένωσης με μέλος του συνόλου συσχετίσεων R, επομένως η συμμετοχή του συνόλου οντοτήτων F στο σύνολο συσχετίσεων F είναι υποχρεωτική. Με άλλα λόγια, κάθε μέλος του συνόλου ο- ντοτήτων F συσχετίζεται με κάποιο μέλος της οντότητας E, μέσω του συνόλου συσχετίσεων R. Αυτό σημαίνει επίσης ότι δεν γίνεται να υπάρξει νέο μέλος στο σύνολο οντοτήτων F χωρίς να υπάρξει ταυτόχρονα η σύνδεσή του (μέσω του συνόλου R) με κάποιο μέλος του συνόλου E. Θυμηθείτε τη σχετική συζήτηση της προηγούμενης ενότητας. Σχετικά με τη μέγιστη πληθικότητα συμμετοχής του συνόλου οντοτήτων F στο σύνολο συσχετίσεων R, παρατηρούμε ότι από κανένα μέλος του συνόλου F δεν ξεκινούν περισσότερες από μία γραμμές ένωσης με τα μέλη του συνόλου R. Δηλαδή κάθε μέλος του συνόλου F συμμετέχει στο σύνολο συσχετίσεων R το πολύ μία φορά, επομένως: maxcard(f, R) = 1 (3.9) Συνοψίζοντας την ανάλυση του παραδείγματος, μπορούμε να πούμε ότι: Λόγος πληθικότητας Από τις σχέσεις 3.7 και 3.9 καταλήγουμε στο συμπέρασμα πως η συσχέτιση μεταξύ του συνόλου οντοτήτων E και του συνόλου οντοτήτων F είναι 1:N. Συμμετοχή Από τις σχέσεις 3.6 και 3.8 καταλήγουμε στο συμπέρασμα πως η συμμετοχή στο σύνολο συσχετίσεων R για τα σύνολα οντοτήτων E και F είναι μερική και υποχρεωτική αντίστοιχα. (0,Ν) (1,1) Μητέρα Έχει Παιδί Σχήμα 3.6 Μητέρες και παιδιά, ένα παράδειγμα συσχέτισης 1:Ν. Τα παραπάνω μπορούν να γίνουν ευκολότερα αντιληπτά με το παράδειγμα ενός μαιευτηρίου που καταγράφει τις μητέρες και τα παιδιά τα οποία φέρνουν στο κόσμο. Κάθε παιδί έχει ακριβώς μία μητέρα ούτε περισσότερες από μία, ούτε καμία. Κάθε (δυνητική) μητέρα μπορεί να έχει πολλά παιδιά, μπορεί όμως να καταγραφεί στη βάση πριν από τη γέννηση του πρώτου παιδιού της, επομένως μπορεί να μην έχει κανένα παιδί. Μπορεί λοιπόν στην ανάλυση που προηγήθηκε να αντιστοιχιστεί το σύνολο οντοτήτων E με τις μητέρες και το σύνολο οντοτήτων F με τα παιδιά. Η συσχέτιση μητέρα έχει παιδί έχει λόγο πληθικότητας 1:Ν, επειδή μια

Κεφάλαιο 3 Σημασιολογική μοντελοποίηση με μοντέλο Οντοτήτων/Συσχετίσεων 105 μητέρα μπορεί να έχει πολλά παιδιά, το κάθε παιδί όμως έχει μία μόνο μητέρα. Το σύνολο οντοτήτων παιδί έχει υποχρεωτική συμμετοχή στη συσχέτιση έχει, επειδή δεν μπορεί να υπάρξει παιδί χωρίς αντίστοιχο μέλος στο σύνολο οντοτήτων μητέρα. Το σύνολο οντοτήτων μητέρα έχει μερική συμμετοχή στο σύνολο συσχετίσεων έχει, επειδή κάποιο άτομο μπορεί να δηλωθεί ως μητέρα πριν καταχωρηθεί το παιδί της, πριν δηλαδή γίνει η αντιστοίχιση με κάποιο μέλος του συνόλου οντοτήτων παιδί. Συσχέτιση Ν:Ν με μερική και υποχρεωτική συμμετοχή Θεωρήστε δύο σύνολα οντοτήτων E και F που συμμετέχουν στο σύνολο συσχετίσεων R. 6 Σχήμα 3.7 Παράδειγμα συσχέτισης Ν:Ν. Υπάρχει μέλος του E το e 4, το οποίο δεν συμμετέχει στη συσχέτιση R. Δηλαδή ισχύει: mincard(e, R) = 0 (3.10) επομένως η συμμετοχή του συνόλου οντοτήτων E στο σύνολο συσχετίσεων R είναι μερική. Για τη μέγιστη πληθικότητα, παρατηρούμε ότι υπάρχουν μέλη του E με περισσότερες από μία συμμετοχές, όπως το e 2 : maxcard(ε, R) = Ν (3.11) Για το σύνολο οντοτήτων F, παρατηρούμε ότι όλα τα μέλη του συμμετέχουν στο σύνολο συσχετίσεων R: mincard(f, R) = 1 (3.12) επομένως η συμμετοχή του συνόλου οντοτήτων F στο σύνολο συσχετίσεων R είναι υποχρεωτική. Όπως και στην περίπτωση του συνόλου E, έτσι και εδώ υπάρχουν μέλη του συνόλου F με πολλαπλή συμμετοχή στο σύνολο συσχετίσεων R:

106 ΜΕΡΟΣ Ι Εισαγωγή στα συστήματα βάσεων δεδομένων maxcard(f, R) = N (3.13) Από τις μέγιστες πληθικότητες συμπεραίνουμε ότι ο λόγος πληθικότητας είναι πολλά προς πολλά (Ν:Μ). Αυτό σημαίνει ότι πολλά μέλη του E, μέσω του συνόλου R, συνδέονται με πολλά μέλη του F. 3.5 Κλειδιά Τα μέλη των συνόλων, είτε οντοτήτων, είτε συσχετίσεων, θα πρέπει να είναι διακριτά μεταξύ τους. Επίσης, θα πρέπει να υπάρχει η δυνατότητα να διακρίνονται μεταξύ τους μέσω των διαφορετικών τιμών στις ιδιότητες τους, και μάλιστα με μοναδικό τρόπο. Δεν θα πρέπει να υπάρχει σύγχυση μεταξύ των μελών ενός συνόλου οντοτήτων. Επίσης υπάρχει και ο περιορισμός της μοναδικής ύπαρξης κάθε μέλους του συνόλου. Για παράδειγμα, το σύνολο οντοτήτων φοιτητής δεν μπορεί να έχει δύο μέλη που να αντιστοιχούν στον ίδιο φοιτητή. Τέτοιες ιδιότητες που μπορούν να πάρουν τιμές με βάση τις οποίες θα διακρίνονται τα μέλη ενός συνόλου οντοτήτων λέγονται κλειδιά. Σε κάθε οντότητα είναι πιθανό να υπάρχουν αρκετές ιδιότητες οι οποίες μπορούν να χρησιμοποιηθούν για τη διάκριση ανάμεσα στα μέλη ενός συνόλου οντοτήτων. Για παράδειγμα, στα αυτοκίνητα ο αριθμός πλαισίου της μηχανής τους και ο α- ριθμός κυκλοφορίας είναι ιδιότητες με μοναδικές τιμές. Επομένως μπορεί η κάθε μία από αυτές να χρησιμοποιηθεί ως ιδιότητα αναγνώρισης (ή αλλιώς ως αναγνωριστικό) των μελών του συνόλου οντοτήτων αυτοκίνητο. Το ίδιο συμβαίνει και με τον αριθμό φορολογικού μητρώου και τον αριθμό κοινωνικής ασφάλισης στους υπαλλήλους μιας εταιρείας. Σε άλλες περιπτώσεις αρκούν απλούστερες ιδιότητες ώστε να είναι μοναδική η αναγνώριση κάθε μέλους. Για παράδειγμα, για το σύνολο των ομάδων μιας επαγγελματικής κατηγορίας ποδοσφαίρου, το όνομα της ομάδας μπορεί να χρησιμεύσει ως αναγνωριστική ιδιότητα. Οι ομάδες είναι λίγες, και φροντίζουν από μόνες τους να αποκτήσουν ένα μοναδικό όνομα. 5 Ανεξάρτητα από τις πολλές ή τις λίγες επιλογές που έχει ο σχεδιαστής μιας βάσης δεδομένων, τελικά πρέπει για κάθε οντότητα να επιλέξει μια ιδιότητα ως μοναδικό αναγνωριστικό. Την ιδιότητα αυτή την ονομάζουμε πρωτεύον κλειδί. 5 Πώς αλλιώς θα πείσουν άλλωστε τους οπαδούς τους για το μοναδικό θέαμα που προσφέρουν;

Κεφάλαιο 3 Σημασιολογική μοντελοποίηση με μοντέλο Οντοτήτων/Συσχετίσεων 107 Είναι πιθανό το πρωτεύον κλειδί, όπως και κάθε κλειδί, να αποτελείται από ένα συνδυασμό περισσοτέρων ιδιοτήτων. Για παράδειγμα, σε ένα τμήμα πανεπιστημίου, κάθε φοιτητής έχει ένα μοναδικό αριθμό μητρώου. Αν μια βάση δεδομένων ασχολείται μόνο με τους φοιτητές, έστω, του τμήματος Οικονομικών Επιστημών, τότε το πενταψήφιο νούμερο του αριθμού μητρώου είναι επαρκές ως πρωτεύον κλειδί του συνόλου οντοτήτων φοιτητής. Όμως σε μια βάση δεδομένων όλου του πανεπιστημίου, π.χ. για την τήρηση καταστάσεων δανεισμού βιβλίων από την κεντρική βιβλιοθήκη, αυτό δεν είναι αρκετό. Αυτό συμβαίνει επειδή μπορεί να έχουν τον ίδιο αριθμό μητρώου φοιτητές από διαφορετικά τμήματα. Επομένως είναι α- νάγκη να προστεθεί και το τμήμα στο σύνολο ιδιοτήτων που προσδιορίζουν μοναδικά ένα φοιτητή σε ολόκληρο το πανεπιστήμιο. Τέτοια κλειδιά που αποτελούνται από περισσότερες από μία ιδιότητες, δηλαδή αποτελούνται από ένα σύνολο ιδιοτήτων το οποίο είναι υποσύνολο των ιδιοτήτων της οντότητας, ονομάζονται σύνθετα. Κλειδιά. Κάθε οντότητα έχει τουλάχιστον ένα κλειδί. Δεν είναι δυνατό να υπάρχουν ίδιες τιμές σε όλες τις ιδιότητες για τα διαφορετικά μέλη του συνόλου των οντοτήτων. Υποψήφια κλειδιά. Κάθε ελάχιστο δυνατό υποσύνολο των ιδιοτήτων μιας οντότητας που μπορεί να χρησιμοποιηθεί ως μοναδικό αναγνωριστικό της οντότητας ονομάζεται υποψήφιο κλειδί. Υπάρχει περίπτωση μια οντότητα να έχει περισσότερα από ένα υποψήφια κλειδιά. Πρωτεύον κλειδί. Το υποψήφιο κλειδί που επιλέγεται από το σχεδιαστή της βάσης δεδομένων ως μοναδικό αναγνωριστικό της οντότητας ονομάζεται πρωτεύον κλειδί. Σύνθετο κλειδί. Όταν ένα κλειδί αποτελείται από μία μόνο ιδιότητα ονομάζεται απλό. Σε άλλες περιπτώσεις, όπου αποτελείται από συνδυασμό περισσότερων από μία ιδιότητες, ονομάζεται σύνθετο κλειδί. Κάτι που δεν έχει προκύψει από τη μέχρι τώρα συζήτηση, αλλά το οποίο πρέπει να τονιστεί ιδιαίτερα, είναι ότι το πρωτεύον κλειδί πρέπει να επιλέγεται από εκείνες τις ιδιότητες των οντοτήτων οι οποίες δεν αλλάζουν συχνά τιμές. Για παράδειγμα, η ηλικία ενός προσώπου δεν πρέπει να αποτελεί μέρος ενός πρωτεύοντος κλειδιού: αυτή αλλάζει κάθε χρόνο! Επίσης το εξάμηνο φοίτησης των φοιτητών, η χιλιομετρική απόσταση που έχει διανύσει ένα αυτοκίνητο, η διεύθυνση ενός προσώπου, κ.λπ., είναι κακά παραδείγματα από ιδιότητες που μπορούν να τοποθετηθούν ως μέρος του πρωτεύοντος κλειδιού. Αντιθέτως, ο αριθμός φορολογικού μη-

108 ΜΕΡΟΣ Ι Εισαγωγή στα συστήματα βάσεων δεδομένων τρώου ή ο αριθμός κοινωνικής ασφάλισης είναι καλά παραδείγματα: οι τιμές τους δεν αλλάζουν σχεδόν ποτέ. 3.5.1 Πρωτεύον κλειδί συσχετίσεων Όπως οι οντότητες, έτσι και οι συσχετίσεις, οι οποίες είναι ειδικού τύπου οντότητες, πρέπει να έχουν πρωτεύον κλειδί δηλαδή ένα σύνολο ιδιοτήτων που να μπορούν να προσδιορίσουν μοναδικά κάθε μέλος του συνόλου. Για παράδειγμα, στη συσχέτιση πελάτης επιλέγει προϊόν, 6 θα πρέπει κάθε πελάτης και κάθε προϊόν να μπορεί να προσδιοριστεί μοναδικά. Αυτό μπορεί να γίνει με το πρωτεύον κλειδί του πελάτη και του προϊόντος αντίστοιχα. Έτσι γίνεται και με την επιλογή, για παράδειγμα την παραγγελία του προϊόντος: θα πρέπει να μπορεί να προσδιοριστεί, με μη αμφιλεγόμενο τρόπο, σε ποιον πελάτη και σε ποιο προϊόν αντιστοιχεί κάθε επιλογή. Το πρωτεύον κλειδί των συσχετίσεων εξαρτάται από το λόγο πληθικότητας της συσχέτισης. Για τις δυαδικές συσχετίσεις ισχύουν τα εξής: 1:1 Το πρωτεύον κλειδί της συσχέτισης μπορεί να είναι κάποιο από τα πρωτεύονται κλειδιά είτε από τη μία, είτε από την άλλη από τις συμμετέχουσες οντότητες. Για παράδειγμα, στη συσχέτιση η πόλη εκλέγει δήμαρχο το πρωτεύον κλειδί της συσχέτισης εκλέγει μπορεί να είναι το πρωτεύον κλειδί της οντότητας πόλη ή της οντότητας δήμαρχος. 1:Ν ή Ν:1 Στη συσχέτιση 1:Ν ή Ν:1 τοποθετείται ως πρωτεύον κλειδί, το πρωτεύον κλειδί της οντότητας με μέγιστη πληθικότητα συμμετοχής το 1. Κάτι τέτοιο είναι προφανές, επειδή σε διαφορετική περίπτωση θα υπήρχε σύγχυση και δεν θα μπορούσε να γίνει μοναδικός προσδιορισμός των μελών του συνόλου. Για παράδειγμα, στη συσχέτιση μητέρα έχει παιδί πρωτεύον κλειδί της συσχέτισης έχει είναι το πρωτεύον κλειδί της οντότητας παιδί. Κάθε παιδί συμμετέχει μόνο μία φορά στη συσχέτιση, 7 επομένως το πρωτεύον κλειδί της οντότητας παιδί μπορεί επίσης να είναι μοναδικό και στη συσχέτιση έχει. Αντιθέτως, μια μητέρα ενδεχομένως να έχει δύο ή και περισσότερα παιδιά. Επομένως η χρήση του πρωτεύοντος κλειδιού μόνο από 6 7 Εύκολα μπορεί να γίνει αντιληπτό πως πρόκειται για συσχέτιση με λόγο πληθικότητας Ν:Ν, αφού κάθε πελάτης μπορεί ενδεχομένως να επιλέξει πολλά προϊόντα, και κάθε προϊόν μπορεί να επιλεγεί από πολλούς διαφορετικούς πελάτες. Δεν είναι δυνατόν ένα παιδί να έχει περισσότερες από μία μητέρες.

Κεφάλαιο 3 Σημασιολογική μοντελοποίηση με μοντέλο Οντοτήτων/Συσχετίσεων 109 την οντότητα μητέρα δεν είναι επαρκής για το μοναδικό προσδιορισμό των μελών του συνόλου οντοτήτων έχει. Φανταστείτε την εξής ερώτηση και α- πάντηση. Ένα παιδί απαντά στην ερώτηση «ποια είναι η μητέρα σου;» με ένα μοναδικό όνομα. Μια μητέρα, από την άλλη πλευρά, απαντά στην ερώτηση «ποιο είναι το παιδί σου;» ενδεχομένως με δύο ή περισσότερα ονόματα. Το συμπέρασμα που πρέπει να βγει από την παραπάνω συζήτηση είναι ότι σε συσχετίσεις με λόγο πληθικότητας 1:Ν ή Ν:1, η μετέχουσα οντότητα με μέγιστη πληθικότητα συμμετοχής 1 καθορίζει το πρωτεύον κλειδί της συσχέτισης. Ν:Ν Στη συσχέτιση πολλά προς πολλά τοποθετείται ως πρωτεύον κλειδί ο συνδυασμός πρωτεύοντος κλειδιού από τις δύο μετέχουσες οντότητες. Η συσχέτιση έχει σύνθετο κλειδί. 8 Εξαιτίας της πολλαπλής συμμετοχής κάθε μέλους από τα σύνολα των μετεχουσών οντοτήτων, είναι αδύνατο να προσδιοριστεί μοναδικά κάποιο μέλος του συνόλου συσχετίσεων μόνο από τον πρωτεύον κλειδί της μίας από τις δύο οντότητες. Για παράδειγμα, στη συσχέτιση φοιτητής δηλώνει μάθημα κάθε δήλωση 9 αντιστοιχεί σε ένα συνδυασμό φοιτητή/μαθήματος. Επειδή κάθε φοιτητής μπορεί να δηλώσει περισσότερα από ένα μαθήματα και κάθε μάθημα μπορεί να δηλωθεί από πολλούς φοιτητές, χρειάζεται ο συνδυασμός από τα πρωτεύοντα κλειδιά, π.χ. αριθμός μητρώου και κωδικός μαθήματος, για να γίνει μοναδικά αναγνωρίσιμη κάθε δήλωση. Έτσι το σύνολο οντοτήτων δήλωση έχει σύνθετο κλειδί. Τα παραπάνω ισχύουν για δυαδικές συσχετίσεις. Οι συσχετίσεις ανώτερου βαθμού θα εξεταστούν σε επόμενη ενότητα. 8 9 Πολλές φορές γίνεται παρανόηση, και πολλοί νεοεισερχόμενοι στις βάσεις δεδομένων λένε ότι η συσχέτιση έχει δύο πρωτεύοντα κλειδιά. Η τοποθέτηση αυτή είναι απολύτως λανθασμένη. Καμία οντότητα και καμία συσχέτιση δεν έχει δύο πρωτεύοντα κλειδιά, αλλά μόνο ένα. Το πρωτεύον κλειδί μπορεί βέβαια να είναι σύνθετο, όπως ακριβώς συμβαίνει και εδώ. Αυτό όμως σε καμία περίπτωση δεν σημαίνει ότι η συσχέτιση έχει δύο πρωτεύοντα κλειδιά. Αν ο αναγνώστης είναι φοιτητής ή φοιτήτρια, πρέπει να αποφύγει εδώ ένα πιθανό λάθος: εδώ με τον όρο δήλωση δεν εννοείται το χαρτί της υπεύθυνης δήλωσης που κατατίθεται με τη μορφή αίτησης στη γραμματεία, το οποίο ενδεχομένως περιλαμβάνει πολλά μαθήματα. Εδώ η δήλωση αντιστοιχεί σε κάθε γραμμή που αντιστοιχεί σε κάθε μάθημα. Η δήλωση πέντε μαθημάτων με αίτηση στη γραμματεία σημαίνει πέντε καταχωρίσεις στη βάση δεδομένων, σε πέντε μέλη του συνόλου συσχετίσεων δήλωση.