Κεφάλαιο 9 Συσχετίσεις



Σχετικά έγγραφα
Κεφάλαιο 11 Ερωτήµατα

Στο κεφάλαιο αυτό περιγράφεται η τρόπος δηµιουργίας και διαχείρισης πινάκων µέσα από το περιβάλλον της Microsoft

τουργικών χαρακτηριστικών πού έχουν µετατρέψει την αλληλεπίδραση του χρήση µε την εφαρµογή σε µια εύκολη και ευχάριστη διαδικασία.

Κεφάλαιο 2 Μοντέλο Οντοτήτων Συσχετίσεων

Microsoft Access 2000 Η Microsoft Access έχει όλα τα χαρακτηριστικά ενός κλασικού συστήµατος διαχείρισης σχεσιακών βάσεων δεδοµένων (RDBMS). εν είναι

Κεφάλαιο 3 Σχεσιακό Μοντέλο

Γνωριµία µε τη Microsoft Access

ηµιουργία Β.. ανειστική Βιβλιοθήκη Μάθηµα 5 Ορισµός σχέσεων - Σύνδεση πινάκων

ΗΜΙΟΥΡΓΙΑ ΙΣΤΟΣΕΛΙ ΑΣ ΣΤΟ MICROSOFT WORD

Κεφάλαιο 7 Εισαγωγή στη Microsoft Access

Εγχειρίδιο Χρήσης της Microsoft Access

Εισαγωγή και επεξεργασία δεδοµένων

M:N, είναι προφανές, πως οι βαθµοί των µαθητών του σχολείου θα καταχωρηθούν σε ένα ενδιάµεσο πίνακα (ας τον ονοµάσουµε ΒΑΘΜΟΛΟΓΙΑ) που θα περιέχει

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

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

Ο ΗΓΙΕΣ ΓΙΑ ΤΟ ΚΛΕΙΣΙΜΟ ΧΡΗΣΗΣ ΣΤΟ DYNAMICS NAV INNOVERA ERP

Ηλεκτρονικοί Υπολογιστές ΙI. Βάσεις Δεδομένων. Ακαδημαϊκό Έτος Εργαστήριο 2. Διαφάνεια 1. Κάπαρης Αναστάσιος

Εργαστήριο 5o. Σχέσεις πινάκων Ακεραιότητα αναφορών. Ευάγγελος Γ. Καραπιδάκης

ηµιουργία παρουσιάσεων (Power Point)

Τελεστές σύγκρισης. Τελεστής Παράδειγµα Η τιµή που παίρνει το πεδίο. Λογικοί τελεστές. And <10 And >20 Μικρότερη από 10 και µεγαλύτερη από 20

Έτος Ετήσιος ιακινηθέντα Μερίδιο Τζίρος Κεφάλαια Αγοράς

3. Σηµειώσεις Access. # Εισαγωγή ψηφίου ή κενού διαστήµατος. Επιτρέπονται τα ση-

ζωγραφίζοντας µε τον υπολογιστή


Εργαστήριο 8o. Ερωτήματα επιλογής Παραμετρικά ερωτήματα Ερωτήματα δημιουργίας πεδίων. Ευάγγελος Γ. Καραπιδάκης

Σχεσιακό Μοντέλο Τα πρώτα συστήµατα Βάσεων δεδοµένων ήταν βασισµένα στο ιεραρχικό ή στο δικτυακό µοντέλο δεδοµένων. Το σχεσιακό µοντέλο πρωτοπαρουσιάσ

Κεφάλαιο 4 Λογικός Σχεδιασµός Κανονικοποίηση

ΑΝΑΖΗΤΗΣΗ ΣΕ ΗΛΕΚΤΡΟΝΙΚΕΣ ΒΙΒΛΙΟΘΗΚΕΣ

του και από αυτόν επιλέγουµε το φάκελο εµφανίζεται ένα παράθυρο παρόµοιο µε το ακόλουθο:

Εφαρµογή EXTRA. ιαδικασία εξαγωγής της Μηχανογραφικής. έκδοσης ισοζυγίου στην εφαρµογή Extra Λογιστική ιαχείριση.

ΠΕΡΙΕΧΟΜΕΝΑ. Περιγραφή της αρχικής οθόνης κάθε τάξης α. Εικονίδια επιλογής θεµατικών ενοτήτων β. Εικονίδια διαφυγής...

αν γνωρίζουµε ότι η εν λόγω επιχείρηση αγόρασε στο χρονικό διάστηµα έως ΦΠΑ Προµήθεια αγοράς Μεταφορικά αγοράς % (δρχ/κιλό)

Εγχειρίδιο χρήσης του λογισµικού «Ταξινοµούµε»

Ενότητα. Επεξεργασία πινάκων

8. Σηµειώσεις Access. Κατηγορίες φόρµας ως προς τον τρόπο προβολής των δεδοµένων

Εργαστηριακές Ασκήσεις Σελίδα 1

πως αντιγράφουµε ή µεταφέρουµε κείµενο

Οδηγίες για το Βιβλίο Κοστολογίου στα Γ κατηγορίας βιβλία

Εισαγωγή στις Βάσεις Δεδομζνων II

ΣΧΕΣΙΑΚΟ ΜΟΝΤΕΛΟ. Relational Model Μαθ. #9

Εισαγωγή στις Βάσεις εδοµένων και την Access

Βάσεις Δεδομένων 3η εργαστηριακή άσκηση

Αναγνώριση υποθεµάτων αρχείων Αντιγραφή κειµένου Αντιγραφη εικόνων Αντιγραφή video

Περιορισµοί στην Access - ηµιουργία Πίνακα

Εφαρµογή Βusiness. ιαδικασίες Μετασχηµατισµών Παραστατικών

Οδηγίες Χρήσης. Εφαρµογής Κτηµατολογίου. Έκδοση 1.0. Οκτώβριος Σύνταξη: Εθνικό και Καποδιστριακό Πανεπιστήµιο Αθηνών

Ηλεκτρονικές Υπηρεσίες: ηλώσεις Μαθηµάτων Συγγραµµάτων, Ηλεκτρονικό Ταχυδροµείο, Πιστοποιητικό Ασφάλειας

Εργαστηριακός Οδηγός. Βάσεις Δεδομένων της Γ' Τάξης ΕΠΑΛ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΤΜΗΜΑ ΜΑΘΗΜΑΤΙΚΩΝ

Περιεχόμενα. Κεφάλαιο 1 Εισαγωγή στην Access Κεφάλαιο 2 Χειρισμός πινάκων... 27

ιαχείριση Στόλου Οχηµάτων

Διάλεξη 04: Εννοιολογική Σχεδίαση Βάσης Δεδομένων II (Entity Relationship Modelling) Διδάσκων: Παναγιώτης Ανδρέου

Εργαστήριο «Τεχνολογία Πολιτισμικού Λογισμικού» Ενότητα. Σχεδίαση Βάσεων Δεδομένων

Αρχική σελίδα. Κατάσταση. Άµεση πρόσβαση

internet είναι το δίκτυο των υπολογιστών που είναι συνδεδεµένοι µεταξύ τους.

ΟΜΗ ΤΗΣ ΕΦΑΡΜΟΓΗΣ... 3 ΕΡΩΤΗΣΕΙΣ... 5 ΕΡΕΥΝΕΣ... 8

Η αναλυτική περιγραφή της γλώσσας SQL αποτελεί αντικείµενο των σελίδων που ακολουθούν. Η ΓΛΩΣΣΑ ΟΡΙΣΜΟΥ Ε ΟΜΕΝΩΝ

παράθυρα ιδακτικό υλικό µαθητή Πλήκτρα για να το παράθυρο Λωρίδα τίτλου Πλαίσιο παραθύρου

Department of Computer Science University of Cyprus. EPL342 Databases. Lecture 5: ER II. Data Modeling Using the ER Model

η σύνθεση ενός υπολογιστή

ΠΕΡΙΕΧΟΜΕΝΑ. Εικονίδια ιαχείρισης Φορολογικών ηλώσεων. ηµιουργία Φορολογούµενου. ηµιουργία και υπολογισµός του εντύπου ΕΣΠ

Διάλεξη 08: Αντιστοίχηση Εννοιολογικού σε Σχεσιακό Μοντέλο (ER/EER to Relational) Διδάσκων: Παναγιώτης Ανδρέου

Αρχίστε αµέσως το πρόγραµµα xline Εσόδων Εξόδων.

MEGASOFT ΤΜΗΜΑ ΥΠΟΣΤΗΡΙΞΗΣ. Οδηγός Ρυθµίσεων Συγχρονισµού PrismaWin Pos Sync

Διάλεξη 07: Σχεσιακό Μοντέλο II (Relational Data Model) Διδάσκων: Παναγιώτης Ανδρέου

Ασφάλειες Database Οδηγίες Χρήσης Εφαρµογής

ΝΟΜΟΤΕΛΕΙΑ Οδηγίες Χρήσης Internet 1

ΣΧΕΣΙΑΚΟ ΜΟΝΤΕΛΟ (Relational Model) Μαθ. #10

Η ΕΝΝΟΙΑ ΤΟΥ Ε ΟΜΕΝΟΥ ΚΑΙ ΤΟΥ ΤΥΠΟΥ Ε ΟΜΕΝΩΝ

Κλειδιά (keys) Λογικά, σκεφτόµαστε για «κλειδιά» σαν τα δεδοµένα (τα πεδία) εκείνα τα οποία µας επιτρέπουν να ξεχωρίσουµε τις διάφορες εγγραφές

Pylon Entry. Πόροι. Στη διαδικασία αυτή περιγράφεται η Δημιουργία- Μεταβολή-Διαγραφή Αναζήτηση Πόρων

ΙΕΥΘΥΝΣΗ ΛΙΜΕΝΙΚΩΝ ΥΠΟ ΟΜΩΝ

Οδηγός Εξαγωγής Συγκεντρωτικών Καταστάσεων. ΚΕΠΥΟ και Ηλεκτρονικού Ισοζυγίου. στο InnovEra 3 R2 για τον RTC client

Τοµέας Εϖιµόρφωσης & Κατάρτισης

ΒΑΣΙΚΕΣ Ο ΗΓΙΕΣ ΧΡΗΣΗΣ

Department of Computer Science University of Cyprus. EPL342 Databases. Lecture 8: RM II. Relational Model. (Chapter )

2 Ο Ε.Κ.Φ.Ε. ΗΡΑΚΛΕΙΟΥ. Οδηγίες χρήσης PDFCreator

Περιεχόµενα...2 Βασικές Λειτουργίες...4 ηµιουργία και Αποθήκευση εγγράφων...4 Μετακίνηση µέσα στο έγγραφο...4 Επιλογή κειµένου...

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

Θα συµπληρώσετε τα απαραίτητα στοιχεία που βρίσκονται µε έντονα γράµµατα για να δηµιουργήσετε την νέα εταιρεία.

Οδηγίες για την κατασκευή του αρχείου «Ταυτότητα (α+β) 2» 1. Αποκρύπτουµε τους άξονες και το παράθυρο άλγεβρας: Παράθυρο προβολή

ΕΓΧΕΙΡΙ ΙΟ Ο ΗΓΙΩΝ ΧΡΗΣΤΗ. Η λ ε κ τ ρ ο ν ι κ ή Υ π ο β ο λ ή. Α. Κ.Α. και Α.Κ.Ε.

Βάσεις Δεδομένων (Databases)

Εισαγωγή Κεφάλαιο 1: Εγκατάσταση της Access Κεφάλαιο 2: Βάσεις δεδομένων και δομικά στοιχεία της Access

ENOTHTA: ΒΑΣΕΙΣ Ε ΟΜΕΝΩΝ MS ACCESS

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Τεχνική Σχεδίαση

11. Επεξεργασία κειµένου µε το Microsoft Word

Ενότητα. Σχεδίαση Βάσεων Δεδομένων

Version X. Οδηγίες χρήσης

Κεφάλαιο Χρήση κειµενογράφου. 4.1 Εισαγωγή Σκοπός Τι θα µάθεις

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ACCESS

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

ΥΠΗΡΕΣΙΑ WEBMAIL ΚΥΠΕΣ

eλογιστής Οδηγίες Χρήσης Εφαρµογής

Κων/νου Στυλιάδη. Το Πρόγραµµα Επεξεργασίας Βάσεων Δεδοµένων. Access for Windows

Πληροφοριακού Συστήµατος ιαχείρισης & Παρακολούθησης

Το Ηλεκτρονικό Ταχυδροµείο ( ) είναι ένα σύστηµα που δίνει την δυνατότητα στον χρήστη να ανταλλάξει µηνύµατα αλλά και αρχεία µε κάποιον άλλο

Η εταιρεία είναι οργανωµένη σε τµήµατα Κάθε ΤΜΗΜΑένα όνοµα, κωδικό και έναν εργαζόµενο που διευθύνει το τµήµα. Αποθηκεύεται η ηµεροµηνία που ανέλαβε

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

Τοµέας Εϖιµόρφωσης & Κατάρτισης

Transcript:

Κεφάλαιο 9 Συσχετίσεις Το κεφάλαιο αυτό διαπραγµατεύεται τη δηµιουργία και διαχείριση των συσχετίσεων που υφίστανται ανάµεσα στους πίνακες µιας σχεσιακής βάσης δεδοµένων. Όπως έχει ήδη αναφερθεί, ο ρόλος των συσχετίσεων (relationships) σε µια σχεσιακή βάση δεδοµένων, είναι η διασύνδεση των πινάκων της βάσης, µε τέτοιο τρόπο, ώστε να είναι δυνατή η ανάκτηση δεδοµένων, που συσχετίζονται µεταξύ τους, αλλά βρίσκονται αποθηκευµένα σε διαφορετικούς πίνακες. Ο τρόπος µε τον οποίο λαµβάνουν χώρα αυτού του είδους οι συσχετίσεις, καθορίζεται κατά το στάδιο του λογικού σχεδιασµού της βάσης, που οδηγεί τελικά στη δηµιουργία του µοντέλου ο- ντοτήτων συσχετίσεων (entity relationship model). Τα βασικά χαρακτηριστικά αυτού του µοντέλου, περιλαµβάνουν τις οντότητες που συµµετέχουν στο σύστηµα, καθώς και τις συσχετίσεις που υφίστανται ανάµεσα σε αυτές τις οντότητες. Αυτές οι συσχετίσεις καθορίζουν µε µονοσήµαντο τρόπο το είδος της αλληλεπίδρασης που υφίσταται ανάµεσα στις οντότητες της εφαρ- µογής, και χαρακτηρίζονται από το βαθµό και την πολλαπλότητά τους. Ο βαθµός (degree) της συσχέτισης καθορίζει το πλήθος των τύπων οντότητας που συµµετέχουν σε αυτή, ενώ η πολλαπλότητά της (cardinality) έχει να κάνει µε το πλήθος των στιγµιότυπων του κάθε τύπου οντότητας που χρησιµοποιούνται στη σχέση. Οι πιο πολλές συσχετίσεις ορίζονται ανάµεσα σε δύο τύπους οντότητας, ενώ όσον αφορά την πολλαπλότητά της, µια συσχέτιση µπορεί να χαρακτηριστεί ως συσχέτιση 1:1, 1:Ν ή Μ:Ν. Έχοντας δηµιουργήσει το µοντέλο οντοτήτων συσχετίσεων για την εφαρµογή που πρόκειται να υλοποιήσουµε, µπορούµε να κατασκευάσουµε πάρα πολύ εύκολα το σχεσιακό µοντέλο, χρησιµοποιώντας τα βήµατα που περιγράψαµε στο θεωρητικό µέρος των σηµειώσεων. Εναλλακτικά µπορούµε να ορίσουµε τους πίνακες της βάσης και στη συνέχεια, εφαρµόζοντας τις αρχές της κανονικοποίησης, να καταλήξουµε τελικά σε ένα σχήµα που να ικανοποιεί τις ανάγκες µας. Και στις δύο περιπτώσεις το αποτέλεσµα είναι ένα σύνολο πινάκων που αναπαριστούν τις οντότητες και τις συσχετίσεις της εφαρµογής και του οποίου η δοµή είναι τέτοια που να διασφαλίζει τη σωστή διαχείριση των δεδοµένων της εφαρµογής, όπως αυτή επιβάλλεται από τους κανόνες ακεραιότητας οι οποίοι θα πρέπει να ικανοποιούνται σε κάθε περίπτωση.

Κεφάλαιο 9 : Συσχετίσεις 146 Στις επόµενες σελίδες παρουσιάζεται ο τρόπος µε τον οποίο µπορούµε να δη- µιουργήσουµε και να επεξεργαστούµε τις συσχετίσεις που υφίστανται ανάµεσα στους πίνακες της βάσης, µέσα από το περιβάλλον της Microsoft Access. ΗΜΙΟΥΡΓΙΑ ΣΥΣΧΕΤΙΣΕΩΝ ΣΤΗ MICROSOFT ACCESS Η δηµιουργία και διαχείριση συσχετίσεων στη Microsoft Access, µπορεί να πραγµατοποιηθεί µέσα από ένα ειδικό πλαίσιο διαλόγου το οποίο εµφανίζεται εάν από το κεντρικό µενού επιλογών της εφαρµογής, επιλέξουµε «Εργαλεία» και στη συνέχεια «Σχέσεις». Στην περίπτωση αυτή εµφανίζεται στην οθόνη του υπολογιστή µας το παράθυρο του επόµενου σχήµατος. Σχήµα 44 : Το κεντρικό παράθυρο διαχείρισης συσχετίσεων στη Microsoft Access Το παράθυρο αυτό αρχικά είναι άδειο, διότι ακόµη δεν έχει ορισθεί καµία σχέση. Για να ορίσουµε δε αυτού του είδους τις συσχετίσεις, θα πρέπει να καθορίσουµε δύο ειδών πληροφορίες: (α) τους πίνακες µεταξύ των οποίων θα ορίσουµε τη συσχέτιση, και (β) τα πεδία αυτών των πινάκων τα οποία και θα συσχετιστούν µεταξύ τους. Στις σελίδες που ακολουθούν, θα χρησιµοποιήσουµε ως παράδειγµα, τη βάση δεδοµένων της εταιρείας που αναλύσαµε στο θεωρητικό µέρος των σηµειώσεων. Είναι σηµαντικό να αναφερθεί στο σηµείο αυτό, πως οι συσχετίσεις ανάµεσα στους πίνακες της βάσης, θα πρέπει να ορισθούνε πριν την καταχώρηση δεδοµένων σε αυτούς. Εάν καταχωρήσουµε δεδοµένα σε ένα πίνακα και στη συνέχεια επιχειρήσουµε να τον συµπεριλάβουµε σε κάποια συσχέτιση, είναι πιθανόν να αντιµετωπίσουµε προβλήµατα στην περίπτωση κατά την οποία λαµβάνει χώρα παραβίαση κάποιων από τους κανόνες ακεραιότητας.

Σχεσιακές Βάσεις εδοµένων Θεωρία και Εφαρµογές 147 Για να καθορίσουµε τους πίνακες που θα συµµετέχουν σε κάποια συσχέτιση, µεταφέρουµε το δείκτη του ποντικιού µέσα στο κεντρικό παράθυρο των συσχετίσεων, και στη συνέχεια πατάµε το δεξί πλήκτρο του. Στην περίπτωση αυτή, θα εµφανιστεί στην οθόνη του υπολογιστή µας, το επόµενο πλαίσιο διαλόγου: Σχήµα 45 : Καθορισµός των πινάκων που θα συµµετάσχουν στη νέα συσχέτιση Το παράθυρο αυτό φέρει τον τίτλο «Εµφάνιση Πίνακα», και περιέχει τα ο- νόµατα όλων των πινάκων που περιλαµβάνονται στη βάση δεδοµένων της εταιρείας. Εκτός από τους πίνακες, το παράθυρο αυτό περιλαµβάνει και τα ερωτήµατα που έχουµε δηµιουργήσει, και τα οποία όντας στην πραγµατικότητα πίνακες µπορούν και αυτά να συµµετάσχουν στις συσχετίσεις της εφαρµογής. Προκειµένου τώρα να καθορίσουµε κάποιο πίνακα ο οποίος θα χρησιµοποιηθεί σε κάποια συσχέτιση, δεν έχουµε παρά να τον επιλέξουµε µε το ποντίκι, και να πατήσουµε το κουµπί «Προσθήκη». Στην περίπτωση αυτή ο πίνακας θα εµφανιστεί στο κεντρικό παράθυρο διαχείρισης των συσχετίσεων, όπως φαίνεται στο ακόλουθο σχήµα: Σχήµα 46 : Προσθήκη πινάκων στο κεντρικό παράθυρο των συσχετίσεων

Κεφάλαιο 9 : Συσχετίσεις 148 Στο παραπάνω παράδειγµα επιλέξαµε τον πίνακα EMPLOYEE ως τον πίνακα που θα χρησιµοποιήσουµε στη νέα συσχέτιση. Ως ένα παράδειγµα µιας τέτοιας συσχέτισης, ας δηµιουργήσουµε τη συσχέτιση WORKS_FOR, η οποία συσχετίζει τους τύπους οντότητας DEPARTMENT και EMPLOYEE. Η συσχέτιση αυτή έχει πολλαπλότητα 1:N ένα τµήµα περιλαµβάνει πολλούς υπαλλήλους. Σύµφωνα µε τη βασική θεωρία, προκειµένου να υλοποιήσουµε αυτή τη συσχέτιση θα πρέπει να προσθέσουµε το πρωτεύον κλειδί του πίνακα DEPARTMENT στον πίνακα EMPLOYEE. Για το λόγο αυτό ο πίνακας EMPLOYEE περιλαµβάνει εκτός από τα πεδία του, και το πεδίο DNO το οποίο αντιστοιχεί στο πεδίο DNUMBER του πίνακα DEPARTMENT, και αποτελεί, σύµφωνα µε τα όσα έχουµε αναφέρει στο κεφάλαιο του λογικού σχεδιασµού της βάσης, ξένο κλειδί (foreign key). Για να συνεχίσουµε τώρα τη δηµιουργία αυτής της συσχέτισης, επιλέγουµε από το παραπάνω παράθυρο τον πίνακα DEPARTMENT, και χρησιµοποιώντας την ίδια διαδικασία, τον εµφανίζουµε και αυτόν στο κεντρικό παράθυρο διαχείρισης συσχετίσεων της εφαρµογής. Σχήµα 47 : Οι πίνακες EMPLOYEE και DEPARTMENT που θα συµµετάσχουν στη συσχέτιση WORKS_FOR Παρατηρώντας το παραπάνω σχήµα, δεν είναι δύσκολο να διαπιστώσει κανείς, πως ο κάθε πίνακας εµφανίζεται µαζί µε όλα τα πεδία που περιέχει, και πως το πρωτεύον κλειδί του είναι γραµµένο µε έντονα γράµµατα. Στο παράδειγµά µας, το πρωτεύον κλειδί του πίνακα EMPLOYEE είναι το πεδίο SSN, ενώ το πρωτεύον κλειδί του πίνακα DEPARTMENT είναι το πεδίο DNUMBER. Για να δηµιουργήσουµε τώρα τη συσχέτιση ανάµεσα σε αυτούς τους πίνακες, θα πρέπει να ανατρέξου- µε στο λογικό µοντέλο σχεδιασµού της βάσης και να εντοπίσουµε το κοινό πεδίο αυτών των πινάκων. Σύµφωνα µε τα όσα αναφέραµε στην προηγούµενη παράγραφο, ο κωδικός του τµήµατος στο οποίο εργάζεται ο κάθε υπάλληλος, καταχωρείται στο πεδίο DNO του πίνακα EMPLOYEE. Εποµένως η συσχέτιση ανάµεσα στους πίνακες EMPLOYEE και DEPARTMENT, θα λάβει χώρα δια της συσχέτισης των πεδίων DNO και DNUMBER αυτών των πινάκων. Στην ορολογία της Microsoft Access, ο πίνακας DEPARTMENT στον οποίο ανήκει το πρωτεύον κλειδί DNUMBER ονο-

Σχεσιακές Βάσεις εδοµένων Θεωρία και Εφαρµογές 149 µάζεται πρωτεύοντας πίνακας, ενώ ο πίνακας EMPLOYEE στον οποίο ανήκει το ξένο κλειδί DNO ονοµάζεται σχετιζόµενος πίνακας. Η δηµιουργία της συσχέτισης ανάµεσα σε αυτά τα δύο πεδία γίνεται πάρα πολύ εύκολα χρησιµοποιώντας το ποντίκι. Αρχικά επιλέγουµε το πεδίο DNUMBER του πίνακα DEPARTMENT, χρησιµοποιώντας το αριστερό πλήκτρο του ποντικιού. Στη συνέχεια, κρατώντας συνεχώς πατηµένο αυτό το πλήκτρο, µετακινούµε το ποντίκι, µέχρι ο δείκτης του να έλθει πάνω από το πεδίο του άλλου πίνακα που θέλου- µε να συµµετάσχει στη συσχέτιση στην προκειµένη περίπτωση το πεδίο DNO του πίνακα EMPLOYEE. Μόλις ο δείκτης του ποντικιού έλθει ακριβώς πάνω από αυτό το πεδίο, απελευθερώνουµε το δεξί πλήκτρο του που όλο αυτό το διάστηµα κρατούσαµε πατηµένο. Εάν όλη αυτή η διαδικασία έγινε σωστά, τότε στην οθόνη του υπολογιστή µας θα εµφανιστεί το επόµενο πλαίσιο διαλόγου: Σχήµα 48 : Καθορισµός των ιδιοτήτων της νέας συσχέτισης Αυτό το παράθυρο φέρει τον τίτλο «Επεξεργασία Σχέσεων» και επιτρέπει τον καθορισµό των χαρακτηριστικών της σχέσης που πρόκειται να δηµιουργήσουµε. Στο επάνω µέρος του και στα πεδία «Πίνακας / Ερώτηµα» και «Σχετιζόµενος πίνακας / Ερώτηµα» εµφανίζει τα ονόµατα των δύο πινάκων ή ερωτηµάτων που θα συµµετέχουν στη νέα συσχέτιση. Τα πεδία αυτά είναι απενεργοποιηµένα, και εποµένως αυτοί οι πίνακες δεν µπορούν να αντικατασταθούν από άλλους. Ακριβώς κάτω από τα ονόµατα των πινάκων, εµφανίζονται τα συσχετιζόµενα πεδία τους. Στο παράδειγµά µας, το πεδίο DΝUMBER του πίνακα DEPARTMENT πρόκειται να συσχετιστεί µε το πεδίο DNO του πίνακα EMPLOYEE. Τα πεδία αυτά µπορούν να αντικατασταθούν από άλλα, εάν κάτι τέτοιο είναι επιθυµητό. Για να λάβει χώρα µια τέτοια αντικατάσταση, εµφανίζουµε τα περιεχόµενα του πλαισίου λίστας που περιλαµβάνει το πεδίο που θέλουµε να αντικαταστήσουµε, και επιλέγουµε στη θέση του, κάποιο άλλο πεδίο:

Κεφάλαιο 9 : Συσχετίσεις 150 Σχήµα 49 : Καθορισµός των συσχετιζόµενων πεδίων των δύο πινάκων Επιπλέον µπορούµε για τους ίδιους πίνακες να δηµιουργήσουµε και δεύτερη συσχέτιση ανάµεσα σε άλλα πεδία, χρησιµοποιώντας το κουµπί «ηµιουργία νέου» και επιλέγοντας αυτά τα επιπλέον πεδία από το επόµενο πλαίσιο διαλόγου. Σχήµα 50 : ηµιουργία και δεύτερης συσχέτισης ανάµεσα στους ίδιους πίνακες Πριν προχωρήσουµε στα επόµενα βήµατα της διαδικασίας, είναι σηµαντικό να αναφέρουµε στο σηµείο αυτό, κάποια πράγµατα σχετικά µε τη φύση των πεδίων που συσχετίζουµε. Στις πιο πολλές περιπτώσεις, αυτά τα πεδία είναι πεδία κλειδιά (key attributes), που ταυτοποιούν τις εγγραφές των πινάκων µε µοναδικό τρόπο. Πιο συγκεκριµένα, το ένα από τα πεδία είναι το πρωτεύον κλειδί του ενός πίνακα, ενώ το άλλο είναι το ξένο κλειδί που έχει προστεθεί στον άλλο πίνακα για να υλοποιήσει τη σχέση πολλαπλότητας 1:N που υφίσταται ανάµεσά στον πρωτεύοντα και στο συσχετιζόµενο πίνακα. Κατά τη διαδικασία συσχέτισης αυτών πεδίων µε τη διαδικασία που παρουσιάσαµε στις προηγούµενες παραγράφους, η κίνηση του ποντικιού, γίνεται από το πρωτεύον προς το ξένο κλειδί, ή ισοδύναµα, από τον πρωτεύοντα προς τον σχετιζόµενο πίνακα. Τα δύο πεδία που πρόκειται να συσχετίσουµε, δεν είναι υποχρεωτικό να έχουν το ίδιο όνοµα, αλλά θα πρέπει υποχρεωτικά να είναι του ιδίου τύπου δεδοµένων. Υπάρχουν ωστόσο δύο περιπτώσεις στις οποίες αυτός ο περιορισµός δεν υφίσταται. Η πρώτη περίπτωση αφορά τη δυνατότητα συ-

Σχεσιακές Βάσεις εδοµένων Θεωρία και Εφαρµογές 151 σχετισµού πεδίου αυτόµατης αρίθµησης µε πεδίο αριθµού του οποίου όµως η ιδιότητα «Μέγεθος πεδίου» έχει τεθεί στην τιµή «Ακέραιος µεγάλου µήκους». Η δεύτερη περίπτωση, επιτρέπει το συσχετισµό πεδίου αυτόµατης αρίθµησης µε αριθµητικό πεδίο, εφόσον όµως η ιδιότητα «Μέγεθος πεδίου» και των δύο πεδίων έχει την τιµή «Αναγνωριστικό αναπαραγωγής». Τέλος όταν τα αντίστοιχα πεδία είναι πεδία αριθµών, θα πρέπει να έχουν την ίδια ρύθµιση στην ιδιότητα «Μέγεθος πεδίου». Σε περίπτωση κατά την οποία επιχειρούµε να συσχετίσουµε πεδία που δεν είναι συµβατά µεταξύ τους σύµφωνα µε τους κανόνες που θέσαµε παραπάνω, η Microsoft Access εµφανίζει ένα µήνυµα λάθους και δεν επιτρέπει τη δηµιουργία αυτής της συσχέτισης. Αυτό για παράδειγµα συµβαίνει εάν επιχειρήσουµε να συσχετίσουµε το πεδίο FName του πίνακα EMPLOYEE που είναι τύπου «Κείµενο» µε το πεδίο DNUMBER του πίνακα DEPARTMENT που είναι αριθµητικό πεδίο. Έχοντας καθορίσει τα πεδία των πινάκων που θα συµµετάσχουν στη νέα συσχέτιση, µπορούµε να δηµιουργήσουµε τη συσχέτιση πατώντας το κουµπί που φέρει τον τίτλο «ηµιουργία» και βρίσκεται στο δεξί µέρος του παραθύρου. Για να ακυρώσουµε την όλη διαδικασία, χρησιµοποιούµε το κουµπί «Άκυρο». Για την ώρα ό- µως και πριν κλείσουµε το παράθυρο, ας µελετήσουµε τα υπόλοιπα πλαίσια ελέγχου που εµφανίζονται σε αυτό. Καταρχήν, στο κάτω µέρος του παραθύρου, και δίπλα από το πλαίσιο κειµένου που φέρει τον τίτλο «Τύπος Συσχέτισης», εµφανίζεται η φράση «ένα προς πολλά». Αυτή προφανώς είναι και η πολλαπλότητα της συσχέτισης που πρόκειται να δηµιουργήσουµε. Όπως µπορούµε εύκολα να παρατηρήσουµε, δεν υ- πάρχει η δυνατότητα να µεταβάλλουµε τον τύπο της συσχέτισης. Αυτό γίνεται διότι µε τον τρόπο που περιγράψαµε στις προηγούµενες σελίδες, µπορούµε να κατασκευάσουµε µόνο εκείνες τις συσχετίσεις των οποίων η πολλαπλότητα είναι 1:Ν. Ο τρόπος µε τον οποίο κατασκευάζουµε συσχετίσεις διαφορετικής πολλαπλότητας, θα παρουσιαστεί στη συνέχεια. Το άλλο σηµαντικό στοιχείο που εµφανίζεται στο παραπάνω παράθυρο, είναι ένα πλαίσιο ελέγχου που φέρει τον τίτλο «Ενεργοποίηση ακεραιότητας αναφορών». Αυτό το πλαίσιο, την πρώτη φορά που εµφανίζεται το παράθυρο, δεν είναι επιλεγµένο. Εάν το επιλέξουµε ενεργοποιούνται άλλα δύο πλαίσια ελέγχου που βρίσκονται κάτω από αυτό, και τα οποία φέρουν τους τίτλους «ιαδοχική ενηµέρωση των σχετικών εγγραφών» και «ιαδοχική διαγραφή των σχετικών εγγραφών» αντίστοιχα. Ενεργοποιώντας αυτά τα δύο πλαίσια επιτρέπουµε στην εφαρµογή να διαχειριστεί τις διαδικασίες ενηµέρωσης και διαγραφής δεδοµένων από τους πίνακες, έτσι ώστε να µην παραβιάζονται οι κανόνες ακεραιότητας (integrity constraints) που διασφαλίζουν τη συνέπεια των δεδοµένων της εφαρµογής. Για να κατανοήσουµε καλύτερα αυτή τη διαδικασία, ας επιστρέψουµε για λίγο στη θεωρητική πλευρά του θέµατος. Όπως έχουµε αναφέρει κατά το στάδιο της περιγραφής του σχεσιακού µοντέλου, ένα από τα πιο σοβαρά προβλήµατα που χαρακτηρίζουν την οµαδοποίηση των δεδοµένων σε έναν ή περισσότερους πίνακες, είναι οι διάφορες ανωµαλίες εισαγωγής, τροποποίησης και διαγραφής εγγραφών, οι οποίες εφόσον εµφανιστούν, οδηγούν σε παραβίαση των κανόνων ακεραιότητας. Ένα χαρακτηριστικό παράδειγµα µιας τέτοιας περίπτωσης, είναι η διαγραφή κάποιου από τα τµήµατα της εταιρείας. Επειδή στον πίνακα EMPLOYEE που περιέχει τα προσωπικά στοιχεία των υπαλλήλων υπάρχει το πεδίο DNO που διατηρεί τον κω-

Κεφάλαιο 9 : Συσχετίσεις 152 δικό του τµήµατος στο οποίο εργάζεται ο κάθε υπάλληλος, είναι προφανές, πως η διαγραφή του τµήµατος από τον πίνακα DEPARTMENT του οποίου ο κωδικός υ- πάρχει στο πεδίο DNO κάποιας εγγραφής του πίνακα EMPLOYEE, θα οδηγήσει στη δηµιουργία ασυνεπών δεδοµένων, διότι πλέον η εν λόγω εγγραφή θα παραπέµπει σε κάποιο ανύπαρκτο τµήµα. Το ίδιο πρόβληµα θα παρουσιαστεί και στην περίπτωση κατά την οποία λάβει χώρα αλλαγή του κωδικού για αυτό το τµήµα. Εάν στους άλλους πίνακες της βάσης, υπάρχουν εγγραφές που να αναφέρονται στο τµήµα του ο- ποίου τον κωδικό θέλουµε να µεταβάλλουµε, τότε η αλλαγή αυτού του κωδικού θα οδηγήσει σε παραβίαση του δεύτερου κανόνα της ακεραιότητας δεδοµένων (referential integrity constraint). Προκειµένου να αποτρέψουµε την εµφάνιση τέτοιου είδους προβληµάτων, θα πρέπει όλες αυτές οι διαδικασίες τροποποίησης και διαγραφής εγγραφών από τους πίνακες, να πραγµατοποιούνται, εφ όσον πρώτα διαπιστώσουµε πως δεν παραβιάζουν τους κανόνες ακεραιότητας. Τι θα συµβεί όµως, στην περίπτωση κατά την οποία λαµβάνει χώρα, παραβίαση αυτών των κανόνων? Το πιο απλό πράγµα που µπορούµε να κάνουµε, είναι να απαγορεύσουµε την πραγµατοποίηση αυτών των µεταβολών. Αυτό όµως δεν είναι η βέλτιστη λύση για όλες τις περιπτώσεις, διότι γενικά, τα δεδοµένα που καταχωρούνται στους πίνακες µιας βάσης, χαρακτηρίζονται από µεταβολές των τιµών τους. Για το λόγο αυτό, εκείνο που γίνεται στην πράξη, είναι να πραγµατοποιούνται οι επιθυµητές διαδικασίες διαγραφής και τροποποίησης εγγραφών, και στη συνέχεια, τα δεδοµένα των άλλων πινάκων που συσχετίζονται µε την εγγραφή που τροποποιήθηκε ή διαγράφηκε, να υφίσταται την ανάλογη µεταβολή, έτσι ώστε οι κανόνες ακεραιότητας να συνεχίζουν να ισχύουν. Αυτό σηµαίνει πως µπορούµε να αλλάξουµε τον κωδικό κάποιου τµήµατος, αλλά στη συνέχεια θα πρέπει να πραγµατοποιήσουµε αυτή την αλλαγή και σε όλες τις σχετικές εγγραφές του πίνακα EMPLOYEE έτσι ώστε το πεδίο DNO να συνεχίσει να παραπέµπει στο σωστό τµήµα. Με τον ίδιο τρόπο εάν διαγράψουµε κάποιο PROJECT, θα πρέπει να αφαιρέσουµε από τον πίνακα WORKS_ON όλες τις εγγραφές οι οποίες παραπέµπουν σε αυτό το PROJECT. Είναι σηµαντικό να αναφέρουµε στο σηµείο αυτό, πως σε αντίθεση µε τη διαδικασία της τροποποίησης εγγραφών, για την οποία µπορούµε να εφαρµόσουµε την παραπάνω διαδικασία χωρίς κανένα πρόβληµα, η διαγραφή µιας εγγραφής από τη βάση, θα πρέπει να γίνεται µε πολύ µεγαλύτερη προσοχή. Ας θεωρήσουµε για παράδειγµα τους πίνακες EMPLOYEE και DEPENDENT οι οποίοι περιέχουν πληροφορίες για τους υπαλλήλους της εταιρείας και για τα προστατευόµενα µέλη τους. Ε- πειδή ο τύπος οντότητας DEPENDENT είναι ασθενής τύπος οντότητας (weak entity type) και άµεσα εξαρτώµενος από τον τύπο οντότητας EMPLOYEE, είναι προφανές, πως η διαγραφή κάποιου υπαλλήλου από τη βάση η οποία σύµφωνα µε τα όσα αναφέραµε στην προηγούµενη παράγραφο θα οδηγήσει και στη διαγραφή όλων των σχετικών εγγραφών από τον πίνακα DEPENDENT µπορεί να πραγµατοποιηθεί χωρίς κανένα πρόβληµα. Πράγµατι, εφ όσον κάποιος εργαζόµενος αποχωρήσει από την εταιρεία, δεν έχουµε κανένα λόγο να διατηρούµε τις πληροφορίες που αφορούν τα µέλη της οικογενείας του και εποµένως µπορούµε να τις διαγράψουµε µε ασφάλεια. ε συµβαίνει όµως το ίδιο και µε τους πίνακες EMPLOYEE και DEPARTMENT οι οποίοι αντιστοιχούν σε ισχυρούς τύπους οντότητας ανεξάρτητους µεταξύ τους. Η συσχέτιση ανάµεσα σε αυτούς τους πίνακες, είναι N:1 και το πεδίο DNO του πίνακα EMPLOYEE είναι το ξένο κλειδί που χρησιµοποιείται για να

Σχεσιακές Βάσεις εδοµένων Θεωρία και Εφαρµογές 153 υλοποιήσει αυτή τη συσχέτιση. Ωστόσο, η διαγραφή κάποιας εγγραφής από τον πίνακα DEPARTMENT δεν θα πρέπει να οδηγήσει στη διαγραφή όλων των υπαλλήλων της εταιρείας που δουλεύουν σε αυτό το τµήµα, καθόσον αυτοί θα εξακολουθήσουν να ανήκουν στην εταιρεία και απλά θα τοποθετηθούν σε κάποιο άλλο τµήµα. Σε µια τέτοια περίπτωση, θα πρέπει να εντοπίσουµε τους υπαλλήλους που συσχετίζονται µε το τµήµα που πρόκειται να διαγράψουµε, και να τοποθετήσουµε στο πεδίο DNO την τιµή NULL. Με τον τρόπο αυτό, δηλώνουµε πως αυτοί οι υπάλληλοι δεν ανήκουν σε κανένα τµήµα. Όλες αυτές οι διαδικασίες οι οποίες διασφαλίζουν τη συνέπεια των δεδοµένων της εφαρµογής, υποστηρίζονται πλήρως από τη Microsoft Access. Αυτό ωστόσο ι- σχύει εφόσον πληρούνται τρεις προϋποθέσεις : (α) το πεδίο που χρησιµοποιείται για τη σχέση από τον πρωτεύοντα πίνακα είναι πρωτεύον κλειδί ή έχει µοναδικό ευρετήριο, (β) τα συσχετισµένα πεδία είναι του ίδιου τύπου δεδοµένων και (γ) οι δύο πίνακες ανήκουν στην ίδια βάση δεδοµένων της Microsoft Access. Ας δούµε τώρα αναλυτικά µε ποιο τρόπο χρησιµοποιούµε αυτά τα πλαίσια ελέγχου. Εάν θέλουµε να ενεργοποιήσουµε το µηχανισµό ελέγχου της ισχύος των κανόνων ακεραιότητας, επιλέγουµε το πλαίσιο ελέγχου που φέρει τον τίτλο «Ενεργοποίηση ακεραιότητας αναφορών». Κάνοντας µόνο αυτή την επιλογή και αφήνοντας ανενεργά τα άλλα δύο πλαίσια που βρίσκονται ακριβώς από κάτω, επιβάλλουµε στην εφαρµογή να ελέγχει εάν οι διαδικασίες που πραγµατοποιούµε επηρεάζουν τις σχετικές εγγραφές των άλλων πινάκων µε τρόπο που να παραβιάζονται οι κανόνες ακεραιότητας. Στην περίπτωση δε που λαµβάνει χώρα παραβίαση αυτών των κανόνων, η Access απαγορεύει την πραγµατοποίηση αυτών των διαδικασιών, εµφανίζοντας στο χρήστη ένα µήνυµα λάθους. Έτσι εάν επιχειρήσουµε να διαγράψουµε από τον πίνακα DEPARTMENT το τµήµα µε κωδικό αριθµό 20, θα εµφανιστεί στην ο- θόνη µας το επόµενο µήνυµα που θα µας γνωστοποιεί πως αυτή η διαγραφή δεν είναι επιτρεπτή για τους λόγους που εξηγήσαµε παραπάνω. Σχήµα 51 : Μήνυµα λάθους που εµφανίζεται κατά την προσπάθεια διαγραφής δεδοµένων που συσχετίζονται µε εγγραφές άλλων πινάκων της βάσης.. Το παραπάνω µήνυµα δεν θα εµφανιστεί εάν δεν ενεργοποιήσουµε τον έλεγχο των κανόνων ακεραιότητας. Στην περίπτωση αυτή, θα λάβει χώρα από τη βάση η διαγραφή αυτού του τµήµατος, κάτι που όµως θα οδηγήσει στη δηµιουργία ασυνεπών δεδοµένων. Σε περιπτώσεις κατά τις οποίες επιθυµούµε οπωσδήποτε την πραγµατοποίηση των διαδικασιών µεταβολής του περιεχοµένου της βάσης αλλά µε τρόπο ώστε να δια-

Κεφάλαιο 9 : Συσχετίσεις 154 τηρούνται οι κανόνες ακεραιότητας, µπορούµε να χρησιµοποιήσουµε και τα άλλα δύο πλαίσια ελέγχου εκ των οποίων το πρώτο αφορά τη διαδικασία της τροποποίησης εγγραφών ενώ το δεύτερο τη διαδικασία της διαγραφής εγγραφών. Πιο συγκεκρι- µένα επιλέγοντας το πλαίσιο «ιαδοχική ενηµέρωση των σχετικών εγγραφών», κάθε φορά που αλλάζουµε το πρωτεύον κλειδί µιας εγγραφής στον πρωτεύοντα πίνακα, θα λαµβάνει χώρα αυτόµατη τροποποίηση αυτής της τιµής σε όλες τις σχετικές εγγραφές των άλλων πινάκων. Για παράδειγµα, εάν στον πίνακα DEPARTMENT αλλάξουµε τον κωδικό του τµήµατος Research από 5 σε 6, αυτή η αλλαγή θα γίνει αυτόµατα σε όλες τις εγγραφές του πίνακα EMPLOYEE που έχουν αυτή την τιµή στο πεδίο DNO. Με τον ίδιο τρόπο, εάν επιλέξουµε το πλαίσιο «ιαδοχική διαγραφή των σχετικών εγγραφών», η διαγραφή µιας εγγραφής στον πρωτεύοντα πίνακα, θα προκαλέσει και την αυτόµατη διαγραφή όλων των σχετικών εγγραφών στους άλλους πίνακες της βάσης. Με τον τρόπο αυτό, η διαγραφή κάποιας εγγραφής από τον πίνακα EMPLOYEE θα προκαλέσει και τη διαγραφή όλων των σχετικών εγγραφών στον πίνακα DEPENDENT. Ας σηµειωθεί πως η διαγραφή αυτών των εγγραφών δεν θα γίνει χωρίς τη θέλησή µας αλλά µόνο αν απαντήσουµε καταφατικά στο ερώτηµα που µας υποβάλλεται µέσα από το ακόλουθο ενηµερωτικό µήνυµα που εµφανίζεται στην οθόνη µας. Σχήµα 52 : Η διαγραφή της εγγραφής από κάποιο πίνακα θα προκαλέσει και τη διαγραφή των σχετιζόµενων εγγραφών στους άλλους πίνακες εφ όσον ο χρήστης απαντήσει καταφατικά στο παραπάνω ερώτηµα. Το τελευταίο χαρακτηριστικό της νέας συσχέτισης που καθορίζεται µέσα από το παράθυρο «Επεξεργασία Σχέσεων», έχει να κάνει µε τον τύπο του συνδέσµου που ορίζεται ανάµεσα στους δύο πίνακες. Για να καθορίσουµε αυτό το χαρακτηριστικό, χρησιµοποιούµε το κουµπί που φέρει τον τίτλο «Τύπος Συνδέσµου». Στην περίπτωση αυτή εµφανίζεται στην οθόνη του υπολογιστή µας το επόµενο πλαίσιο διαλόγου:

Σχεσιακές Βάσεις εδοµένων Θεωρία και Εφαρµογές 155 Σχήµα 53 : Καθορισµός του τύπου συνδέσµου για τη νέα συσχέτιση Αυτό το παράθυρο εµφανίζει τρεις επιλογές, οι οποίες αντιστοιχούν σε τρεις διαφορετικούς τύπους συνδέσµων. Η πρώτη επιλογή αντιστοιχεί στην εσωτερική σύζευξη (inner join ή theta join), η δεύτερη επιλογή αντιστοιχεί στην αριστερή εξωτερική σύζευξη (left outer join), και η τρίτη επιλογή αντιστοιχεί στην δεξιά εξωτερική σύζευξη (right outer join). Αυτές οι τρεις µορφές συνδέσµων, χαρακτηρίζονται από τις ακόλουθες ιδιότητες: Εσωτερική σύζευξη (inner join): χρησιµοποιώντας αυτόν τον τύπο συνδέσµου, λαµβάνει χώρα συνδυασµός εγγραφών των δύο πινάκων µόνον εάν οι τιµές των συνδεδεµένων πεδίων ικανοποιούν µια καθορισµένη συνθήκη. Αυτό στην πραγµατικότητα δεν είναι τίποτε άλλο από την πράξη της σύζευξης πινάκων της σχεσιακής άλγεβρας, η οποία υπολογίζει το καρτεσιανό γινόµενο των πινάκων και στη συνέχεια κρατά µόνο εκείνες τις γραµµές των οποίων οι τιµές των συνδεδεµένων πεδίων είναι οι ίδιες. Στο παράδειγµα της συσχέτισης των πινάκων EMPLOYEE και DEPARTMENT που παρουσιάσαµε στις προηγούµενες σελίδες, η συνθήκη επιλογής (join condition) θα έχει τη µορφή DEPARTMENT.DNUMBER = EMPLOYEE. DNO Αριστερή εξωτερική σύζευξη (left outer join): Όπως είναι γνωστό από τη θεωρία της σχεσιακής άλγεβρας, σε αυτόν τον τύπο της σύζευξης, λαµβάνει χώρα συνδυασµός όλων των εγγραφών του πίνακα που βρίσκεται στο αριστερό µέρος της πράξης, µε όλες τις εγγραφές του άλλου πίνακα, ακόµη και εάν δεν υπάρχουν αντίστοιχες τιµές στο συζευγµένο πεδίο του άλλου πίνακα. Αυτό δεν ισχύει για τον πίνακα που βρίσκεται στο δεξί µέρος της πράξης, του οποίου οι εγγραφές συνδυάζονται µε τις εγγραφές του αριστερού πίνακα µόνο όταν υπάρχουν ίδιες τιµές στα συζευγµένα πεδία. εξιά εξωτερική σύζευξη (right outer join): Με εντελώς ανάλογο τρόπο, σε αυτόν τον τύπο της σύζευξης, λαµβάνει χώρα συνδυασµός όλων των εγγραφών του

Κεφάλαιο 9 : Συσχετίσεις 156 πίνακα που βρίσκεται στο δεξί µέρος της πράξης, µε όλες τις εγγραφές του άλλου πίνακα, ακόµη και εάν δεν υπάρχουν αντίστοιχες τιµές στο συζευγµένο πεδίο του άλλου πίνακα. Αυτό δεν ισχύει για τον πίνακα που βρίσκεται στο αριστερό µέρος της πράξης, του οποίου οι εγγραφές συνδυάζονται µε τις εγγραφές του δεξιού πίνακα µόνο όταν υπάρχουν ίδιες τιµές στα συζευγµένα πεδία. Ανάλογα λοιπόν µε την περίπτωση, καθορίζουµε και τον τύπο του συνδέσµου για τη νέα συσχέτιση επιλέγοντας κάποιον από τους τρεις τύπους συνδέσµων που είναι διαθέσιµοι. ΗΜΙΟΥΡΓΙΑ ΣΥΣΧΕΤΙΣΕΩΝ ΜΕ ΠΟΛΛΑΠΛΟΤΗΤΑ 1:1 και Μ:Ν Η δηµιουργία συσχετίσεων µε τον τρόπο που περιγράψαµε παραπάνω επιτρέπει τον ορισµό συσχετίσεων µε πολλαπλότητα 1:Ν. Σε αυτού του είδους τις συσχετίσεις, το πρωτεύον κλειδί του πρωτεύοντα πίνακα προστίθεται στον σχετιζόµενο πίνακα ως ξένο κλειδί, και στη συνέχεια η συσχέτιση ορίζεται ανάµεσα στα δύο αυτά πεδία. Τι συµβαίνει όµως όταν οι συσχετίσεις που θέλουµε να δηµιουργήσουµε έχουν πολλαπλότητα 1:1 ή Μ:Ν? Στην περίπτωση αυτή θα ακολουθήσουµε την εξής διαδικασία. Στην περίπτωση συσχέτισης µε πολλαπλότητα 1:1 διαλέγουµε τον έναν από τους δύο πίνακες, και τον θεωρούµε ως τον πρωτεύοντα πίνακα. Αυτό σηµαίνει πως θα λάβει χώρα προσθήκη του πρωτεύοντος κλειδιού του στον άλλο πίνακα, ως ξένο κλειδί. Στη συνέχεια θα συσχετίσουµε αυτά τα δύο πεδία µε τον τρόπο που περιγράψαµε στις προηγούµενες σελίδες, εφ όσον όµως πρώτα, προχωρήσουµε στη µεταβολή κάποιας από τις ιδιότητές τους. Πιο συγκεκριµένα, για κάθε ένα από αυτά τα πεδία, θα ανοίξουµε τον πίνακα στον οποίο ανήκουν σε προβολή σχεδίασης, και θα θέσουµε την ιδιότητα Ευρετήριο στην τιµή «Ναι (δεν επιτρέπονται διπλότυπα)». Κάνοντας αυτού του είδους την αλλαγή και στα δύο συσχετιζόµενα πεδία, η συσχέτιση που θα προκύψει ανάµεσά τους θα έχει πολλαπλότητα ένα προς ένα. Χαρακτηριστικό παράδειγµα µιας τέτοιας συσχέτισης είναι η συσχέτιση MANAGES που υφίσταται ανάµεσα στους τύπους οντότητας EMPLOYEE και DEPARTMENT ένα τµήµα παρακολουθείται από ένα και µοναδικό MANAGER. Στην περίπτωση αυτή τα συσχετιζόµενα πεδία είναι το πεδίο SSN του πίνακα EMPLOYEE και το πεδίο MGRSSN του πίνακα DEPARTMENT. Εάν στην ιδιότητα Ευρετήριο των δύο πεδίων θέσουµε την τιµή «Ναι (δεν επιτρέπονται διπλότυπα)», τότε η συσχέτιση που θα δηµιουργηθεί ανάµεσά τους θα έχει πολλαπλότητα 1:1 όπως φαίνεται στο επόµενο σχήµα.

Σχεσιακές Βάσεις εδοµένων Θεωρία και Εφαρµογές 157 Σχήµα 54 : Παράδειγµα συσχέτισης µε πολλαπλότητα 1:1 Τέλος για να δηµιουργήσουµε συσχετίσεις µε πολλαπλότητα Μ:Ν, θα πρέπει να κατασκευάσουµε ένα ενδιάµεσο πίνακα που να περιέχει τα πρωτεύοντα κλειδιά των πινάκων που θέλουµε να συσχετίσουµε. Ας πάρουµε για παράδειγµα τη συσχέτιση WORKS_ON που συσχετίζει τους τύπους οντότητας EMPLOYEE και PROJECT. Η συσχέτιση αυτή έχει πολλαπλότητα Μ:Ν καθώς ένα έργο πραγµατοποιείται από πολλούς υπαλλήλους αλλά ταυτόχρονα, ένας υπάλληλος µπορεί την ίδια χρονική στιγµή να συµµετέχει σε περισσότερα από ένα έργα. Για το λόγο αυτό, κατασκευάσαµε τον ενδιάµεσο πίνακα WORKS_ON που περιέχει τον κωδικό του έργου, τον κωδικό του υπαλλήλου που εργάζεται σε αυτό, καθώς και τον α- ριθµό των ωρών ανά εβδοµάδα, που ο συγκεκριµένος υπάλληλος εργάζεται στο συγκεκριµένο έργο. Στον πίνακα WORKS_ON, τα πεδία ESSN και PNO είναι ξένα κλειδιά, και ο συνδυασµός τους αποτελεί το πρωτεύον κλειδί του πίνακα, που είναι σύνθετο και ταυτοποιεί µε µοναδικό τρόπο την κάθε εγγραφή του. Για να δηµιουργήσουµε τώρα τη συσχέτιση ανάµεσα στους πίνακες EMPLOYEE και PROJECT, θα δηµιουργήσουµε δύο διαφορετικές συσχετίσεις µε πολλαπλότητα 1:Ν. Μια συσχέτιση ανάµεσα στον πίνακα EMPLOYEE και στον πίνακα WORKS_ON και µια άλλη συσχέτιση ανάµεσα στον πίνακα PROJECT και στον πίνακα WORKS_ON. Στις δύο αυτές συσχετίσεις, οι πίνακες EMPLOYEE και PROJECT θα είναι οι πρωτεύοντες πίνακες, ενώ ο πίνακας WORKS_ON θα είναι και τις δύο φορές ο σχετιζόµενος πίνακας. Οι δύο αυτές συσχετίσεις θα δηµιουργηθούν µε τον τρόπο που περιγράψαµε στις προηγούµενες σελίδες, και το αποτέλεσµα αυτής της διαδικασίας παρουσιάζεται στο επόµενο σχήµα.

Κεφάλαιο 9 : Συσχετίσεις 158 Σχήµα 55 : Παράδειγµα συσχέτισης µε πολλαπλότητα Μ:Ν. Η δηµιουργία αυτής της συσχέτισης ανάγεται στη δηµιουργία δύο συσχετίσεων 1:Ν που ορίζονται ανάµεσα στους πρωτεύοντες πίνακες EMPLOYEE και PROJECT και στον σχετιζόµενο πίνακα WORKS_ON. Προκειµένου να αποφύγουµε την εµφάνιση ασυνεπών δεδοµένων σε περιπτώσεις κατά τις οποίες λαµβάνει χώρα αλλαγή στον κωδικό του υπαλλήλου ή του έργου, θα πρέπει να ενεργοποιήσουµε το µηχανισµό ελέγχου της ισχύος των κανόνων ακεραιότητας και το πλαίσιο ελέγχου «ιαδοχική ενηµέρωση των σχετικών εγγραφών». Επιπλέον, εάν επιθυµούµε να διαγράφονται οι εγγραφές του πίνακα WORKS_ON κάθε φορά που τερµατίζεται κάποιο έργο ή κάθε φορά που κάποιος υπάλληλος δεν απασχολείται πλέον σε αυτό, θα πρέπει να επιλέξουµε και το πλαίσιο ελέγχου «ιαδοχική διαγραφή των σχετικών εγγραφών». Έτσι το παράθυρο «Επεξεργασία σχέσεων» για τη συσχέτιση 1:Ν που υφίσταται ανάµεσα στους πίνακες EMPLOYEE και WORKS_ON θα έχει τη µορφή του επόµενου σχήµατος, ενώ ανάλογη θα είναι η κατάσταση και για τη συσχέτιση που υφίσταται ανάµεσα στους πίνακες WORKS_ON και PROJECT.

Σχεσιακές Βάσεις εδοµένων Θεωρία και Εφαρµογές 159 Σχήµα 56 : Τα χαρακτηριστικά της συσχέτισης WORKS_ON ΕΠΕΞΕΡΓΑΣΙΑ ΚΑΙ ΙΑΓΡΑΦΗ ΜΙΑΣ ΣΥΣΧΕΤΙΣΗΣ Για να τροποποιήσουµε τις ιδιότητες µιας συσχέτισης ή για να τη διαγράψου- µε, θα πρέπει πρώτα να την επιλέξουµε. Ο πιο εύκολος τρόπος για να κάνουµε αυτή την επιλογή είναι να µεταφέρουµε το δείκτη του ποντικιού πάνω στη γραµµή που συνδέει τους δύο πίνακες και στη συνέχεια να πατήσουµε το αριστερό του πλήκτρο. Στην περίπτωση αυτή η γραµµή της συσχέτισης θα γίνει πιο έντονη, κάτι που δείχνει πως η συσχέτιση έχει επιλεγεί για περαιτέρω επεξεργασία. Εάν τώρα διατηρώντας τη συσχέτιση επιλεγµένη πατήσουµε το δεξί πλήκτρο του ποντικιού θα εµφανιστεί ένα µενού µε δύο επιλογές. Η επιλογή «Επεξεργασία σχέσης» εµφανίζει το παράθυρο µε τις ιδιότητες της συσχέτισης από όπου µπορούµε να αλλάξουµε τα χαρακτηριστικά της, ενώ η επιλογή «ιαγραφή», αποµακρύνει τη συσχέτιση ανάµεσα στους δύο πίνακες. Αυτή η διαδικασία διαγραφής είναι οριστική και δεν µπορεί να αναιρεθεί µε κανένα τρόπο, κάτι που η Access γνωστοποιεί στο χρήστη, εµφανίζοντας το επόµενο ενηµερωτικό µήνυµα. Σχήµα 57 : Ενηµερωτικό µήνυµα που εµφανίζεται στο χρήστη κατά τη διαδικασία διαγραφής µιας συσχέτισης. Εάν ο χρήστης διαγράψει τη συσχέτιση και στη συνέχεια θελήσει να την ξαναχρησιµοποιήσει, θα πρέπει να τη δηµιουργήσει και πάλι από την αρχή.

Κεφάλαιο 9 : Συσχετίσεις 160 Εναλλακτικά µπορούµε να εµφανίσουµε το παράθυρο των ιδιοτήτων µιας σχέσης κάνοντας double click µε το ποντίκι πάνω στη γραµµή που συνδέει τους δύο πίνακες. Επίσης µπορούµε να διαγράψουµε τη συσχέτιση, εάν την επιλέξουµε και στη συνέχεια πατήσουµε το πλήκτρο Del που βρίσκεται στο πληκτρολόγιο.