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

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

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

Transcript

1 Κεφάλαιο 4 Λογικός Σχεδιασµός Κανονικοποίηση Στο κεφάλαιο αυτό παρουσιάζονται οι βασικοί κανόνες σχεδίασης της δοµής των πινάκων στο σχεσιακό µοντέλο, και αναλύεται η τεχνική της κανονικοποίησης που είναι το βασικό εργαλείο αυτής της διαδικασίας σχεδίασης. Στο προηγούµενο κεφάλαιο αναλύσαµε τη δοµή του σχεσιακού µοντέλου βάσεων δεδοµένων και τον τρόπο µε τον οποίο τα δεδοµένα µιας εφαρµογής αποθηκεύονται στους πίνακες της βάσης. Η βασική αρχή σχεδίασης αυτού του µοντέλου, είναι η οµαδοποίηση των πεδίων των τύπων οντότητας, και η δηµιουργία πινάκων για τους τύπους οντότητας και συσχέτισης όπως αυτοί έχουν ορισθεί στο µοντέλο ο- ντοτήτων συσχετίσεων. Ωστόσο, ένα από τα βασικά ερωτήµατα που προκύπτουν κατά την πραγµατοποίηση αυτής της διαδικασίας, έχει να κάνει µε την επιλογή των πεδίων που θα ο- µαδοποιηθούν και θα σχηµατίσουν ένα πίνακα. Με ποιο κριτήριο θα γίνει αυτή η επιλογή? Πως είµαστε σίγουροι πως η οµαδοποίηση των πεδίων στους πίνακες έγινε µε τον καλύτερο δυνατό τρόπο? Με άλλα λόγια, µήπως υπάρχει κάποιος καλύτερος συνδυασµός των πεδίων, ο οποίος θα µπορούσε να οδηγήσει σε µια πιο ευέλικτη και αξιόπιστη βάση δεδοµένων? Η διαδικασία της σωστής σχεδίασης της δοµής των πινάκων της βάσης, έτσι ώστε να ικανοποιεί τις προδιαγραφές που έχουν τεθεί και ταυτόχρονα να είναι ευέλικτη και αποδοτική στη χρήση της ονοµάζεται λογικός ή εννοιολογικός σχεδιασµός (conceptual or logical design). Στις σελίδες που ακολουθούν θα παρουσιάσουµε τους βασικούς κανόνες που ακολουθούµε κατά τη λογική σχεδίαση της δοµής µιας βάσης δεδοµένων, και θα περιγράψουµε αναλυτικά την κανονικοποίηση (normalization) των πινάκων της βάσης που αποτελεί µια από τις πιο σηµαντικές διαδικασίες αυτού του είδους.

2 Κεφάλαιο 4 : Λογικός Σχεδιασµός - Κανονικοποίηση 46 ΟΙ ΒΑΣΙΚΕΣ ΑΡΧΕΣ ΣΧΕ ΙΑΣΗΣ ΤΗΣ ΟΜΗΣ ΤΟΥ ΣΧΕΣΙΑΚΟΥ ΜΟΝΤΕΛΟΥ Όπως έχει ήδη αναφερθεί, ένα από τα πρώτα βήµατα που κάνουµε κατά τη φάση της σχεδίασης των πινάκων της βάσης είναι η ταυτοποίηση των πεδίων που περιέχουν, τα οποία στη συνέχεια οµαδοποιούνται για να σχηµατίσουν αυτούς τους πίνακες. Αυτή η διαδικασία οµαδοποίησης, θα πρέπει να γίνεται έτσι ώστε τα πεδία ενός πίνακα, να συσχετίζονται µεταξύ τους και τελικά, ολόκληρη η δοµή του πίνακα να αναδεικνύει κάποια λογική. Όσο πιο ξεκάθαρη είναι αυτή η λογική, τόσο πιο εύκολη γίνεται τελικά και η σχεδίαση του σχήµατος ολόκληρης της βάσης δεδο- µένων. Ας θεωρήσουµε ως παράδειγµα για µία ακόµη φορά, τη βάση δεδοµένων της εταιρείας η δοµή της οποίας παρουσιάζεται στο σχήµα 10 (σελ 43). Θεωρώντας τον πίνακα EMPLOYEE, διαπιστώνουµε πως η δοµή του παρουσιάζει κάποια λογική, διότι τα πεδία που περιλαµβάνονται σε αυτόν, χαρακτηρίζονται από άµεση συσχέτιση µεταξύ τους. Η κάθε µια από τις πλειάδες του πίνακα, αναπαριστά και κάποιο υπάλληλο της εταιρείας. Για κάθε υπάλληλο καταχωρούµε το όνοµά του, τη διεύθυνσή του, την ηµεροµηνία γέννησής του, το φύλο του, και το µισθό του. Το πεδίο DNO είναι ξένο κλειδί και αναπαριστά τη συσχέτιση που υφίσταται ανάµεσα στους πίνακες EMPLOYEE και DEPARTMENT. Η συσχέτιση αυτή είναι ξεκάθαρη και πλήρως ορισµένη: ένας υπάλληλος πρέπει υποχρεωτικά να ανήκει σε κάποιο τµή- µα. Με τον ίδιο τρόπο µπορούµε να διαπιστώσουµε και την πλήρη σαφήνεια που χαρακτηρίζει τη συσχέτιση των πινάκων DEPARTMENT και PROJECT: ένα τµήµα µπορεί να αναλάβει πολλά έργα ταυτόχρονα. Τα πεδία MGRSSN του πίνακα DEPARTMENT και DNUM του πίνακα PROJECT είναι ξένα κλειδιά, και συσχετίζουν το κάθε τµήµα µε τον MANAGER που το διευθύνει, και το κάθε PROJECT µε το DEPARTMENT που έχει αναλάβει την υλοποίησή του. Εξετάζοντας τώρα τη λογική που αναδεικνύεται από τις σχέσεις DEPT_LOCATIONS και WORKS_ON, διαπιστώνουµε πως εδώ τα πράγµατα είναι πιο πολύπλοκα. Κάθε πλειάδα στον πίνακα DEPT_LOCATIONS περιέχει ένα κωδικό τµήµατος, και κάποια από τις τοποθεσίες στις οποίες στεγάζεται αυτό το τµήµα. Με τον ίδιο τρόπο, κάθε πλειάδα στον πίνακα WORKS_ON, περιέχει τον κωδικό SSN κάποιου EMPLOYEE, τον κωδικό κάποιου από τα PROJECTS στα οποία εργάζεται, και τον αριθµό των ωρών ανά εβδοµάδα, που απασχολείται σε αυτό το έργο. Παρά όµως αυτό τον αυξηµένο βαθµό πολυπλοκότητας, το νόηµα που αναδεικνύεται από αυτούς τους δύο πίνακες, δεν είναι δύσκολο να αποκαλυφθεί: ο πίνακας DEPT_ LOCATIONS αναφέρεται σε ένα πεδίο πολλαπλής τιµής (multivalued attribute) ενώ ο πίνακας WORKS_ON υλοποιεί τη σχέση M:N που υφίσταται ανάµεσα στους πίνακες EMPLOYEE και PROJECT. Σε γενικές γραµµές λοιπόν, µπορούµε να ισχυρισθούµε, πως το σχεσιακό σχήµα της βάσης δεδοµένων της εταιρείας, χαρακτηρίζεται από καλή οργάνωση όσον αφορά την ευκολία ανάδειξης της λογικής που κρύβεται πίσω από αυτό. Η τελευταία πρόταση της προηγούµενης παραγράφου αποτελεί ουσιαστικά και το βασικό κανόνα σχεδίασης της δοµής των πινάκων της βάσης. Σύµφωνα µε τον κανόνα αυτό, θα πρέπει να οργανώνουµε τους πίνακες έτσι ώστε µια απλή ανάγνωση του σχεσιακού σχήµατος να είναι αρκετή για να καταλάβουµε το είδος της

3 Σχεσιακές Βάσεις εδοµένων Θεωρία και Εφαρµογές 47 πληροφορίας που θα καταχωρούµε σε κάθε περίπτωση. Αυτό τυπικά σηµαίνει να δηµιουργούµε ένα ξεχωριστό πίνακα για κάθε τύπο οντότητας και για κάθε τύπο συσχέτισης (αυτό ισχύει για συσχετίσεις µε πολλαπλότητα M:N) και σε καµιά περίπτωση να µη συνδυάζουµε πεδία διαφορετικών τύπων οντότητας, στον ίδιο πίνακα. Τυπικά εάν ακολουθήσουµε ένα προς ένα, τα έξι βήµατα απεικόνισης του µοντέλου οντοτήτων συσχετίσεων στο σχεσιακό µοντέλο, µπορούµε να διασφαλίσουµε ένα αξιόπιστο σχήµα βάσεως δεδοµένων, όσον αφορά τη λογική του οργάνωση. Τι θα συµβεί όµως εάν δεν ακολουθήσουµε τον παραπάνω κανόνα και τοποθετήσουµε στον ίδιο πίνακα, πεδία που ανήκουν σε διαφορετικούς τύπους οντότητας? Το πιο σηµαντικό από τα προβλήµατα που θα παρουσιαστούν στην περίπτωση αυτή, είναι η εµφάνιση περιττών δεδοµένων (redundant data) στους πίνακες της βάσης. Αυτό σηµαίνει πως καταχωρούµε την ίδια πληροφορία περισσότερες από µια φορές στον ίδιο πίνακα, κάτι που έχει ως αποτέλεσµα τόσο την άσκοπη σπατάλη αποθηκευτικού χώρου, όσο και τον κίνδυνο εµφάνισης ασυνεπών δεδοµένων (inconsistent data) στην περίπτωση κατά την οποία τροποποιήσουµε τα πεδία που καταχωρούνται περισσότερες από µια φορές. Ας υποθέσουµε για παράδειγµα πως οι πληροφορίες που αφορούν τους υπαλλήλους της εταιρείας, τα έργα στα οποία απασχολούνται, και τα τµήµατα στα οποία ανήκουν, δεν αποθηκεύονται στους πίνακες EMPLOYEE, PROJECT και DEPARTMENT σύµφωνα µε το µοντέλο που έχουµε αναπτύξει, αλλά στους πίνακες EMP_DEP (ο οποίος συσχετίζει τον κάθε υπάλληλο µε το τµήµα στο οποίο ανήκει) και EMP_PROJ (ο οποίος συσχετίζει τον κάθε υπάλληλο µε το έργο στο οποίο απασχολείται). Οι δύο αυτοί πίνακες θα έχουν την ακόλουθη δοµή : EMP_DEP ENAME SSN BDATE ADDRESS DNUMBER DNAME DMGRSSN EMP_PROJ SSN PNUMBER HOURS ENAME PNAME PLOCATION Εάν παρατηρήσουµε προσεκτικά τη δοµή αυτών των δύο πινάκων, θα διαπιστώσουµε πως δεν παραβιάζει τον βασικό µας κανόνα σχεδίασης, διότι τα πεδία που περιλαµβάνονται σε αυτούς τους πίνακες, συσχετίζονται µεταξύ τους, και περιγράφουν µε αρκετή σαφήνεια τη φύση της πληροφορίας που καταχωρούµε σε αυτούς. Παρά το γεγονός όµως αυτό οι δύο αυτοί πίνακες, περιέχουν πεδία που ανήκουν σε διαφορετικούς τύπους οντότητας. Ο πίνακες EMP_DEP περιέχει τα πεδία ENAME, SSN, BDATE και ADDRESS του τύπου οντότητας EMPLOYEE και τα πεδία DNUMBER, DNAME και DMGRSSN του τύπου οντότητας DEPARTMENT. Με τον ίδιο τρόπο, ο πίνακας EMP_PROJ, περιέχει τα πεδία SSN και ENAME του τύπου οντότητας EMPLOYEE, τα πεδία PNUMBER, PNAME και PLOCATION του τύπου οντότητας PROJECT και το πεδίο HOURS του τύπου συσχέτισης WORKS_ON.

4 Κεφάλαιο 4 : Λογικός Σχεδιασµός - Κανονικοποίηση 48 Αυτή η λανθασµένη σχεδίαση των πινάκων, προκαλεί την καταχώρηση σε αυτούς περιττών δεδοµένων, δηλαδή τιµών που καταχωρούνται περισσότερες από µια φορές. Για να γίνει το γεγονός αυτό πιο εύκολα αντιληπτό, σε επόµενη σελίδα παρουσιάζουµε ένα στιγµιότυπο αυτών των πινάκων µε δεδοµένα από τους πίνακες EMPLOYEE, DEPARTMENT και PROJECT. Σε κάθε πίνακα έχει προστεθεί και µια επιπλέον στήλη (Α/Α) µε αύξουσα αρίθµηση. Αυτή η στήλη προφανώς δεν ανήκει στο µοντέλο της βάσης αλλά έχει προστεθεί προκειµένου να αναφερόµαστε στις εγγραφές των πινάκων µε µεγαλύτερη ευκολία. Από τα στιγµιότυπα των δύο πινάκων που παρουσιάζονται στη συνέχεια, γίνεται εύκολα αντιληπτός ο λόγος για τον οποίο η χρήση αυτής της εσφαλµένης δοµής οδηγεί σε απώλεια αποθηκευτικού χώρου. Πράγµατι, στον πίνακα EMP_DEP οι τι- µές των πεδίων DNUMBER, DNAME και DMGRSSN επαναλαµβάνονται σε κάθε εγγραφή, σε αντίθεση µε το σωστό σχεσιακό µοντέλο (Σχήµα 10) στο οποίο για κάθε τµήµα, υπάρχει µια και µοναδική εγγραφή στον πίνακα DEPARTMENT ενώ η µοναδική πληροφορία που επαναλαµβάνεται σε κάθε εγγραφή του πίνακα EMPLOYEE, είναι ο κωδικός του τµήµατος στον οποίο ανήκει ο κάθε υπάλληλος της εταιρείας. Η κατάσταση είναι ακόµη χειρότερη στον πίνακα EMP_PROJ όπου επαναλαµβάνονται όχι µόνο οι πληροφορίες που αφορούν το PROJECT αλλά και οι πληροφορίες που αφορούν τον EMPLOYEE. Αντίθετα, στο σωστό σχεσιακό σχήµα, τα στοιχεία για κάθε EMPLOYEE και για κάθε PROJECT καταχωρούνται µόνο µια φορά στους οµώνυµους πίνακες, και η µοναδική πληροφορία που επαναλαµβάνεται στον πίνακα WORKS_ON είναι ο συνδυασµός των πρωτευόντων κλειδιών των δύο πινάκων. Το δεύτερο και σοβαρότερο πρόβληµα που ανακύπτει από τη λανθασµένη σχεδίαση του σχεσιακού σχήµατος µιας βάσης δεδοµένων, είναι οι ανωµαλίες που προκύπτουν κατά τις διάφορες διαδικασίες τροποποίησης του περιεχοµένου της βάσης (update anomalies). Όπως έχουµε αναφέρει στο προηγούµενο κεφάλαιο, αυτές οι διαδικασίες µπορεί να ανήκουν σε τρεις διαφορετικές κατηγορίες: εισαγωγή νέων εγγραφών στους πίνακες της βάσης, διαγραφή υπαρχόντων εγγραφών, και τροποποίηση του περιεχοµένου των εγγραφών των πινάκων της βάσης. Αυτό σηµαίνει πως αυτές οι ανωµαλίες που συσχετίζονται µε την τροποποίηση του περιεχοµένου της βάσης, µπορούν να εµφανιστούν και στις τρεις παραπάνω περιπτώσεις, όπως φαίνεται από τα παραδείγµατα που ακολουθούν: Ανωµαλίες που εµφανίζονται κατά τη διαδικασία της εισαγωγής νέων εγγραφών (insertion anomalies): έστω ότι θέλουµε να προσθέσουµε µια νέα εγγραφή στον πίνακα EMP_DEP. Αυτή η εγγραφή εκτός από τα χαρακτηριστικά του EMPLOYEE, θα πρέπει να περιλαµβάνει και τα χαρακτηριστικά του DEPARTMENT στο οποίο εργάζεται ο EMPLOYEE. Εάν ο EMPLOYEE δεν έχει ακόµη τοποθετηθεί σε κανένα τµήµα, τα πεδία της νέας εγγραφής που αφορούν το DEPARTMENT, θα λάβουν την τιµή NULL. Στην αντίθετη περίπτωση θα λάβουν τις τιµές εκείνες που αντιστοιχούν στο τµήµα στο οποίο τοποθετείται ο EMPLOYEE. Το πρόβληµά µας σε αυτή τη διαδικασία εισαγωγής της νέας εγγραφής, είναι πως θα πρέπει να είµαστε ιδιαίτερα προσεκτικοί όσον αφορά τις τιµές του DEPARTMENT που θα χρησιµοποιήσουµε, διότι αυτές θα πρέπει να είναι κάθε φορά οι σωστές τιµές. Αντίθετα, στο σωστό σχεσιακό µοντέλο, δεν υπάρχει αυτό το πρόβληµα, διότι η διαδικασία καταχώρησης κάποιου υπαλλήλου, δεν έχει καµία

5 Σχεσιακές Βάσεις εδοµένων Θεωρία και Εφαρµογές 49 σχέση µε τη διαδικασία καταχώρησης κάποιου τµήµατος. Η κάθε εγγραφή καταχωρείται στο δικό της πίνακα, και κάθε φορά που καταχωρούµε ένα νέο EMPLOYEE, το µόνο που έχουµε να κάνουµε είναι να καταχωρήσουµε εκτός από τα πεδία του τον κωδικό του τµήµατος στο οποίο πρόκειται να τοποθετηθεί. Επιπλέον, χρησιµοποιώντας το σωστό σχεσιακό µοντέλο, δεν έχουµε πρόβλη- µα στο να καταχωρήσουµε στη βάση ένα DEPARTMENT που δεν έχει καθόλου EMPLOYEES. Αντίθετα η διαδικασία αυτή είναι δύσκολο να πραγµατοποιηθεί στο εσφαλµένο σχεσιακό µοντέλο που χρησιµοποιεί τον πίνακα EMP_DEP. Στο µοντέλο αυτό για να είναι δυνατή µια τέτοια καταχώρηση, θα πρέπει η νέα εγγραφή να εµφανίζει τιµές NULL στα πεδία που αφορούν τον EMPLOYEE αφού θέλουµε να καταχωρήσουµε ένα άδειο τµήµα. Ένα όµως από αυτά τα πεδία είναι και το πεδίο SSN που αποτελεί και το πρωτεύον κλειδί του πίνακα EMP_DEP, και το οποίο σύµφωνα µε τον δεύτερο κανόνα ακεραιότητας δεν µπορεί να πάρει την τιµή NULL. Αλλά α- κόµη και εάν ήταν δυνατή η προσθήκη αυτής της εγγραφής, το πρόβληµα παραµένει. Πράγµατι, εάν αργότερα καταχωρήσουµε και τον EMPLOYEE που λείπει τοποθετώντας τον ταυτόχρονα σε κάποιο τµήµα, η πρώτη εγγραφή δεν θα είναι πλέον αναγκαία, και θα πρέπει να τη διαγράψουµε. Όλα αυτά τα προβλήµατα δεν εµφανίζονται όταν χρησιµοποιούµε το σωστό σχεσιακό σχήµα, διότι εκεί, η καταχώρηση ενός τµή- µατος δεν έχει καµία απολύτως σχέση µε την καταχώρηση ενός υπαλλήλου τα πεδία του κάθε τύπου οντότητας καταχωρούνται στο δικό τους ξεχωριστό πίνακα το καθένα. Ανωµαλίες που εµφανίζονται κατά τη διαδικασία της διαγραφής υπαρχόντων εγγραφών (deletion anomalies): το πρόβληµα που προκύπτει κατά τη διαγραφή των εγγραφών του πίνακα έχει να κάνει µε το γεγονός πως η κάθε εγγραφή περιέχει δεδοµένα από δύο τύπους οντότητας ταυτόχρονα. Στο παράδειγµά µας, τα στοιχεία για τα τµήµατα της εταιρείας τοποθετούνται στον ίδιο πίνακα µε τα στοιχεία των υπαλλήλων της εταιρείας. Αυτό σηµαίνει πως αν διαγράψουµε όλους τους υπαλλήλους από τον πίνακα EMP_DEP, θα χάσουµε και όλα τα στοιχεία που αφορούν τα τµήµατα της εταιρείας κάτι που βέβαια δεν είναι επιθυµητό. Αντίθετα, στο σωστό σχεσιακό σχήµα, τα στοιχεία των διαφόρων τύπων οντότητας της εφαρµογής βρίσκονται καταχωρηµένα σε διαφορετικούς πίνακες, και η διαγραφή των εγγραφών του ενός πίνακα, αφήνει ανεπηρέαστα τα περιεχόµενα των υπολοίπων πινάκω ν. Ανωµαλίες που εµφανίζονται κατά τη διαδικασία της τροποποίησης των περιεχοµένων των εγγραφών του πίνακα (modification anomalies): επειδή η ε- σφαλµένη δοµή του πίνακα EMP_DEP προκαλεί την εµφάνιση επαναλαµβανόµενων πεδίων, είναι προφανές, πως εάν η τιµή κάποιου από αυτά τα πεδία τροποποιηθεί, αυτή η αλλαγή θα πρέπει να µεταφερθεί και σε όλα τα στιγµιότυπα αυτού του πεδίου. Για παράδειγµα, εάν αλλάξουµε τον κωδικό SSN του MANAGER του τµήµατος µε κωδικό αριθµό 5, θα πρέπει να αλλάξουµε αυτή την τιµή σε όλους τους υπαλλήλους της εταιρείας που εργάζονται σε αυτό το τµήµα στην αντίθετη περίπτωση η βάση µας θα χαρακτηρίζεται από την παρουσία ασυνεπών δεδοµένων. Αντίθετα στο σωστό σχεσιακό σχήµα, αυτή η αλλαγή µπορεί να πραγµατοποιηθεί χωρίς κανένα πρόβληµα.

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

7 Σχεσιακές Βάσεις εδοµένων Θεωρία και Εφαρµογές 51 Εποµένως, ένας δεύτερος κανόνας που θα πρέπει να ακολουθήσουµε κατά το στάδιο της σχεδίασης του σχεσιακού σχήµατος µιας βάσης δεδοµένων, είναι η οργάνωση της δοµής των πινάκων µε τέτοιο τρόπο ώστε να µην εµφανίζονται στις εγγραφές των πινάκων της βάσης, επαναλαµβανόµενα πεδία. Σε µια πιο αυστηρή θεωρητική περιγραφή, µπορούµε να ορίσουµε και άλλους κανόνες σχεδίασης του σχεσιακού σχήµατος µιας βάσης δεδοµένων. Μιλώντας γενικά αυτοί οι κανόνες απαγορεύουν την προσθήκη στους βασικούς πίνακες της βάσης, πεδίων, που να λαµβάνουν NULL τιµές, ή εάν κάτι τέτοιο δεν µπορεί να αποφευχθεί, να ισχύει µόνο για ένα µικρό ποσοστό των εγγραφών του πίνακα, και όχι για την πλειοψηφία των εγγραφών. Περισσότερες λεπτοµέρειες πάνω στο θέµα αυτό µπορούν να βρεθούν στη βιβλιογραφία. ΣΥΝΑΡΤΗΣΙΑΚΕΣ ΕΞΑΡΤΗΣΕΙΣ Η έννοια της συναρτησιακής εξάρτησης (functional dependency) κατέχει κεντρική θέση στη θεωρία των σχεσιακών βάσεων δεδοµένων, και ορίζεται ως µια συσχέτιση ανάµεσα στα πεδία ενός πίνακα. Πιο συγκεκριµένα, ένα πεδίο B κάποιου πίνακα θεωρείται συναρτησιακώς εξαρτώµενο από ένα πεδίο Α του ίδιου πίνακα, όταν σε κάθε χρονική στιγµή, η τιµή του Α καθορίζει µονοσήµαντα την τιµή του Β. Σε µια ισοδύναµη διατύπωση, µπορούµε να περιγράψουµε την παραπάνω συσχέτιση ανάµεσα στα πεδία Α και Β λέγοντας πως το πεδίο Α προσδιορίζει συναρτησιακά το πεδίο Β. Για αυτή τη συναρτησιακή εξάρτηση, χρησιµοποιούµε το συµβολισµό Α Β, ενώ ισοδύναµα µπορούµε να γράψουµε και Β = Β(Α). Είναι προφανές πως τα πεδία Α και Β µπορεί να είναι τόσο απλά (atomic) όσο και σύνθετα (composite) πεδία. Για παράδειγµα, στον πίνακα WORKS_ON, ο συνδυασµός των πεδίων {ESSN, PNO} που αποτελεί και το πρωτεύον κλειδί του πίνακα καθορίζει µονοσήµαντα την τιµή του πεδίου HOURS. Στην περίπτωση αυτή µπορούµε να γράψουµε {ESSN, PNO} HOURS. Σε ένα οποιοδήποτε πίνακα µιας σχεσιακής βάσης δεδοµένων, όλα τα πεδία του πίνακα που δεν ανήκουν στο πρωτεύον κλειδί του, εξαρτώνται συναρτησιακά από τα πεδία του πρωτεύοντος κλειδιού. Ένα παράδειγµα συναρτησιακής εξάρτησης είναι η SSN LNAME ανάµεσα στα πεδία SSN και LNAME του πίνακα EMPLOYEE. Πράγµατι, γνωρίζοντας τον κωδικό αριθµό ενός υπαλλήλου, προσδιορίζουµε µονοσήµαντα το επώνυµό του. Αντίθετα, η συσχέτιση LNAME SSN δεν είναι έγκυρη, διότι είναι πιθανόν να υπάρχουν υπάλληλοι µε το ίδιο επώνυµο, και οι οποίοι ασφαλώς, θα χαρακτηρίζονται από διαφορετικό κωδικό SSN. Μιλώντας γενικά, η ισχύς της συσχέτισης Α Β δεν προϋποθέτει και την ισχύ της συσχέτισης Β Α. Η συναρτησιακή εξάρτηση µιας οµάδας πεδίων από κάποια άλλη, µπορεί να είναι τόσο ολική (full dependency) όσο και µερική (partial dependency). ύο ο- µάδες πεδίων Χ και Υ λέµε ότι χαρακτηρίζονται από ολική εξάρτηση, όταν η αφαίρεση έστω και ενός από τα πεδία του Χ, καταργεί την εξάρτηση X Y. Στην αντίθετη περίπτωση, όταν δηλαδή η εν λόγω εξάρτηση διατηρείται ακόµη και µετά την αφαίρεση του πεδίου από το σύνολο πεδίων Χ, τότε οι δύο οµάδες πεδίων χαρα-

8 Κεφάλαιο 4 : Λογικός Σχεδιασµός - Κανονικοποίηση 52 κτηρίζονται από µερική εξάρτηση. Ας σηµειωθεί πως σε όλες σχεδόν τις περιπτώσεις η οµάδα πεδίων Υ, περιλαµβάνει συνήθως µόνο ένα πεδίο. Ας θεωρήσουµε για παράδειγµα τον πίνακα EMP_PROJ του εσφαλµένου σχεσιακού σχήµατος και τη συναρτησιακή εξάρτηση {SSN, PNUMBER} HOURS. Αυτή η εξάρτηση είναι έγκυρη, διότι η γνώση του κωδικού SSN του υ- παλλήλου και του κωδικού του έργου στο οποίο απασχολείται, ταυτοποιεί µονοσήµαντα το πλήθος των ωρών που εργάζεται ο υπάλληλος σε αυτό το έργο. Εάν τώρα αφαιρέσουµε το πεδίο SSN, η εξάρτηση PNUMBER HOURS, δεν υφίσταται πλέον, διότι η γνώση του κωδικού του υπαλλήλου δεν αρκεί για να ταυτοποιήσουµε το πλήθος των ωρών που απασχολείται σε κάποιο έργο απαιτείται και η γνώση του κωδικού αυτού του έργου. Με τον ίδιο τρόπο δεν υφίσταται ούτε η εξάρτηση SSN HOURS που αποµένει εάν αφαιρέσουµε το πεδίο PNUMBER. Εφ όσον λοιπόν η εξάρτηση {SSN, PNUMBER} HOURS καταργείται εάν αφαιρέσουµε έστω και ένα πεδίο από αυτή, τα πεδία HOURS και {SSN, PNUMBER}, είναι ολικώς ε- ξαρτηµένα (fully dependent). Αντίθετα, αν θεωρήσουµε την εξάρτηση {SSN, PNUMBER} ΕΝΑΜΕ αυτή δεν καταργείται εάν αφαιρέσουµε το πεδίο PNUMBER. Πράγµατι, η συναρτησιακή εξάρτηση SSN ENAME που αποµένει µετά την αφαίρεση του εν λόγω πεδίου, είναι έγκυρη, διότι η τιµή του κωδικού SSN για ένα υπάλληλο, καθορίζει µονοσήµαντα το όνοµά του. Στην περίπτωση αυτή λέµε πως τα πεδία {SSN, PNUMBER} και ENAME είναι µερικώς εξαρτηµένα (partially dependent). ύο πεδία Α και Β χαρακτηρίζονται από έµµεση συναρτησιακή εξάρτηση όταν υπάρχει ένα τρίτο πεδίο C τέτοιο ώστε Α C και C Β ή ισοδύναµα όταν ισχύουν οι συσχετίσεις C = C(A) και B = B(C). Εάν επιπλέον το πεδίο C δεν ανήκει στα πεδία κλειδιά του πίνακα, τότε η εν λόγω εξάρτηση λέγεται µεταβατική εξάρτηση (transitive dependency). Μια συναρτησιακή εξάρτηση µπορεί να είναι µόνιµη ή προσωρινή, ανάλογα µε το χρονικό διάστηµα για το οποίο ισχύει. Για παράδειγµα η συσχέτιση SSN LNAME του πίνακα EMPLOYEE είναι µόνιµη διότι ο κωδικός SSN ενός υπαλλήλου δεν πρόκειται να αλλάξει ποτέ. Αντίθετα, η συσχέτιση DNUMBER MGRSSN του πίνακα DEPARTMENT είναι προσωρινή, διότι είναι πιθανόν σε κάποια χρονική στιγµή να λάβει χώρα αντικατάσταση του MANAGER κάποιου τµήµατος µε κάποιο άλλο υπάλληλο της εταιρείας. Ένα τελευταίο είδος εξάρτησης που θα µας απασχολήσει στο σηµείο αυτό είναι η συναρτησιακή εξάρτηση δύο πεδίων A και B εκ των οποίων το ένα πεδίο είναι πεδίο πολλαπλής τιµής (multivalued dependency). Στην περίπτωση αυτή η γνώση του Α δεν καθορίζει µονοσήµαντα την τιµή του Β, αλλά ένα σύνολο τιµών για το Β που είναι γνωστό και καθορισµένο εκ των προτέρων. Μια τέτοια εξάρτηση θα είχαµε για παράδειγµα εάν στον πίνακα EMP_DEP προσθέταµε ως πεδίο και την τοποθεσία του τµήµατος DLOCATION. Επειδή ένα τµήµα µπορεί να έχει γραφεία σε περισσότερες από µια τοποθεσίες, η γνώση του κωδικού DNUMBER για ένα τµήµα δεν προσδιορίζει µονοσήµαντα την τοποθεσία του τµήµατος, αλλά συσχετίζεται µε ένα µια ολόκληρη οµάδα τιµών.

9 Σχεσιακές Βάσεις εδοµένων Θεωρία και Εφαρµογές 53 Με βάση την έννοια της συναρτησιακής εξάρτησης, µπορούµε τώρα να περάσουµε στην περιγραφή της διαδικασίας κανονικοποίησης του σχεσιακού σχήµατος µιας βάσης δεδοµένων που επιτρέπει τη σωστή σχεδίαση του σχήµατος της βάσης σύµφωνα µε τα όσα έχουν αναφερθεί στις προηγούµενες σελίδες. ΚΑΝΟΝΙΚΟΠΟΙΗΣΗ Η διαδικασία της κανονικοποίησης (normalization process) προτάθηκε από τον Codd το 1970, και η βασική της λειτουργία, είναι να δέχεται ως είσοδο το σχεσιακό σχήµα µιας βάσης δεδοµένων και να εφαρµόζει πάνω του µια σειρά από ελέγχους προκειµένου να διαπιστώσει εάν ανήκει ή όχι σε κάποια κανονική µορφή. Ο Codd εισήγαγε τρεις κανονικές µορφές, την πρώτη, δεύτερη και τρίτη κανονική µορφή οι οποίες συσχετίζονται µε τις συναρτησιακές εξαρτήσεις που υφίστανται ανάµεσα στα πεδία των πινάκων της βάσης, ενώ αργότερα προτάθηκαν άλλες δύο κανονικές µορφές η τέταρτη και η πέµπτη οι οποίες στηρίζονται σε άλλου είδους εξαρτήσεις (multivalued dependencies και join dependencies). Σε µία πρώτη περιγραφή, η κανονικοποίηση εφαρµόζεται πάνω σε ένα σχεσιακό σχήµα, και προσπαθεί να το µετασχηµατίσει σε µια νέα µορφή, η οποία να είναι απαλλαγµένη από τις διάφορες ανωµαλίες εισαγωγής, διαγραφής και τροποποίησης εγγραφών που παρουσιάσαµε σε προηγούµενες σελίδες. Πιο συγκεκριµένα, αυτή η µεθοδολογία αναλύει τη δοµή των πινάκων του σχεσιακού σχήµατος µε βάση τα πρωτεύοντα κλειδιά τους και τις συναρτησιακές εξαρτήσεις που υφίστανται ανάµεσα στα πεδία τους, και. στη συνέχεια ελέγχει αυτές τις δοµές προκειµένου να διαπιστώσει εάν ικανοποιούν κάποιες συνθήκες. Εάν οι εν λόγω συνθήκες δεν ικανοποιούνται, λαµβάνει χώρα διάσπαση των πινάκων της βάσης σε µικρότερους πίνακες, κάθε ένας εκ των οποίων, ικανοποιεί πλέον αυτές τις συνθήκες. Μια κανονική µορφή ορίζεται ως η «κατάσταση» στην οποία βρίσκεται µια σχέση όσον αφορά τους τύπους των εξαρτήσεων που υφίστανται ανάµεσα στα πεδία της. Επειδή γενικά αυτές οι εξαρτήσεις οδηγούν σε προβληµατική συµπεριφορά του σχήµατος της βάσης όπως είναι για παράδειγµα η εµφάνιση επαναλαµβανόµενων πεδίων θα πρέπει να αποµακρυνθούν από τους πίνακες. Για το λόγο αυτό η κανονικοποίηση πραγµατοποιείται σε µια ακολουθία βηµάτων, µε το κάθε βήµα να περιλαµβάνει την αποµάκρυνση από τη δοµή των πινάκων κάποιου τύπου συναρτησιακής εξάρτησης, διαδικασία, η οποία έχει ως αποτέλεσµα, τη µετάβαση του σχεσιακού σχήµατος, από µια κανονική µορφή σε µια άλλη. Πιο συγκεκριµένα, οι διαδικασίες που θα πρέπει να λάβουν χώρα για τη µετάβαση των σχεσιακών σχηµάτων σε κάθε µια από τις πέντε κανονικές µορφές που έχουν ορισθεί, είναι οι ακόλουθες : Πρώτη Κανονική Μορφή (1 st Normal Form, 1NF): Για να φέρουµε ένα πίνακα σε πρώτη κανονική µορφή, θα πρέπει να αποµακρύνουµε τις επαναλαµβανόµενες οµάδες πεδίων, έτσι ώστε η τοµή µιας γραµµής και µιας στήλης του πίνακα, να αντιστοιχεί πάντα σε µια απλή τιµή. εύτερη Κανονική Μορφή (2 nd Normal Form, 2NF): Για να φέρουµε ένα πίνακα σε δεύτερη κανονική µορφή, θα πρέπει πρώτα να τον φέρουµε σε πρώτη κα-

10 Κεφάλαιο 4 : Λογικός Σχεδιασµός - Κανονικοποίηση 54 νονική µορφή, και στη συνέχεια να αποµακρύνουµε όλες τις µερικές συναρτησιακές εξαρτήσεις (partial dependencies) που υφίστανται ανάµεσα στα πεδία του. Τρίτη Κανονική Μορφή (3 rd Normal Form, 3NF): Για να φέρουµε ένα πίνακα σε τρίτη κανονική µορφή, θα πρέπει πρώτα να τον φέρουµε σε δεύτερη κανονική µορφή, και στη συνέχεια να αποµακρύνουµε όλες τις µεταβατικές συναρτησιακές εξαρτήσεις (transitive dependencies) που υφίστανται ανάµεσα στα πεδία του. Τέταρτη Κανονική Μορφή (4 th Normal Form, 4NF): Για να φέρουµε ένα πίνακα σε τέταρτη κανονική µορφή, θα πρέπει πρώτα να τον φέρουµε σε τρίτη κανονική µορφή και στη συνέχεια να αποµακρύνουµε όλες τις συναρτησιακές εξαρτήσεις που περιλαµβάνουν πεδία πολλαπλών τιµών (multivalued dependencies). Πέµπτη Κανονική Μορφή (5 th Normal Form, 5NF) : Για να φέρουµε ένα πίνακα σε πέµπτη κανονική µορφή θα πρέπει πρώτα να τον φέρουµε σε τέταρτη κανονική µορφή, και στη συνέχεια να αποµακρύνουµε όλες τις υπόλοιπες εξαρτήσεις που ενδεχοµένως έχουν παραµείνει στη δοµή του, µετά την εφαρµογή των παραπάνω διαδικασιών. Εκτός από τις πέντε κανονικές µορφές που περιγράψαµε παραπάνω, µια επιπλέον κανονική µορφή που χρησιµοποιείται σε αρκετές περιπτώσεις, είναι η κανονική µορφή των Boyce-Codd (Boyce Codd Normal Form, BCNF). Η BCNF, µπορεί να θεωρηθεί ως µια πιο αυστηρά διατυπωµένη 3NF. Αυτό σηµαίνει πως ένας πίνακας που βρίσκεται σε BCNF βρίσκεται αυτόµατα και σε 3NF το αντίστροφο όµως δεν ισχύει. Η BCNF θα µελετηθεί αναλυτικά στις επόµενες σελίδες. Στο σχήµα που ακολουθεί αναπαρίστανται µε γραφικό τρόπο, τα βήµατα που θα πρέπει να ακολουθήσουµε προκειµ ένου να µετασχηµατίσουµε µια µη κανονικοποιηµένη σχέση από την πρώτη έως και την πέµπτη κανονική µορφή.

11 Σχεσιακές Βάσεις εδοµένων Θεωρία και Εφαρµογές 55 Μη κανονικοποιηµένη σχέση Κανονικοποιηµένη σχέση (1NF) Κανονικοποιηµένη σχέση (2NF) Κανονικοποιηµένη σχέση (3NF) Κανονικοποιηµένη σχέση (BCNF) Κανονικοποιηµένη σχέση (4NF) Κανονικοποιηµένη σχέση (5NF) Αποµάκρυνση επαναλαµβανόµενων πεδίων Αποµάκρυνση µερικών συσχετίσεων Αποµάκρυνση µεταβατικών συσχετίσεων Αποµάκρυνση των υπόλοιπων συσχετίσεων Αποµάκρυνση συσχετίσεων µε πεδία πολλαπλών τιµών Αποµάκρυνση όλων των υπόλοιπων ανωµαλιών Σχήµα 11 : Τα έξι βήµατα της κανονικοποίησης µιας δεδοµένων Μετά την παραπάνω συνοπτική περιγραφή των βασικών αρχών της κανονικοποίησης, ας περάσουµε τώρα στην αναλυτική παρουσίαση των πέντε κανονικών µορφών στις οποίες είναι δυνατό να βρεθούν τα σχήµατα των πινάκων µιας σχεσιακής βάσης δεδοµένων. Πρώτη κανονική µορφή (1 st Normal Form, 1NF) Η πρώτη κανονική µορφή δηµιουργήθηκε για να αποτρέψει την εµφάνιση στα πεδία ενός πίνακα σύνθετων τιµών, πολλαπλών τιµών καθώς και συνδυασµούς αυτών των δύο. Ένας πίνακας λέµε ότι βρίσκεται σε 1NF, όταν η τιµή του κάθε πεδίου σε κάθε πλειάδα, είναι ατοµική δηλαδή δεν µπορεί να διασπαστεί σε µικρότερες µονάδες πληροφορίας. Εάν ένας πίνακας περιέχει πεδία πολλαπλών τι- µών, τότε θα πρέπει να µετασχηµατιστεί µε τέτοιο τρόπο, ώστε σε κάθε κελί του να βρίσκεται µια απλή τιµή. Για να κατανοήσουµε τη διαδικασία µετατροπής ενός πίνακα σε πρώτη κανονική µορφή, ας υποθέσουµε πως ο πίνακας DEPARTMENT δεν έχει τη δοµή που έχουµε ορίσει στο Σχήµα 10, αλλά περιλαµβάνει τα ακόλουθα πεδία : DEPARTMENT DNAME DNUMBER DMGRSSN DLOCATIONS

12 Κεφάλαιο 4 : Λογικός Σχεδιασµός - Κανονικοποίηση 56 Σύµφωνα µε το µοντέλο της εταιρείας, που παρουσιάσαµε στα προηγούµενα κεφάλαια, ένα τµήµα της µπορεί να έχει γραφεία σε περισσότερες από µια τοποθεσίες. Αυτό σηµαίνει πως η στήλη DLOCATIONS θα περιέχει για κάθε τµήµα περισσότερες από µια τιµές όπως φαίνεται στο ακόλουθο παράδειγµα. DNAME DNUMBER DMGRSSN DLOCATIONS Research Bellaire Sugarland Houston Administration Stafford Headquarters Houston Ο πίνακας DEPARTMENT στην παραπάνω µορφή, δεν ακολουθεί τον ορισµό της σχέσης που έχουµε δώσει για το σχεσιακό µοντέλο και θα πρέπει να µετασχηµατιστεί. Υπάρχουν δύο είδη µετασχηµατισµών που µπορούµε να εφαρµόσουµε. Ο ένας µετασχηµατισµός είναι να ορίσουµε για κάθε τιµή του πεδίου DLOCATIONS και µια ξεχωριστή πλειάδα στην περίπτωση αυτή το πρωτεύον κλειδί του πίνακα που θα προκύψει, θα είναι ο συνδυασµός των πεδίων DNUMBER και DLOCATION: DNAME DNUMBER DMGRSSN DLOCATION Research Bellaire Research Sugarland Research Houston Administration Stafford Headquarters Houston Μετά την εφαρµογή αυτού του µετασχηµατισµού, ο πίνακας βρίσκεται σε 1NF, διότι σε κάθε κελί του περιέχει µια απλή τιµή. Ωστόσο, χαρακτηρίζεται από την παρουσία επαναλαµβανόµενων πεδίων, κάτι που σηµαίνει πως κατά τη διαχείριση του περιεχοµένου του, θα εµφανιστούν οι ανωµαλίες εισαγωγής, διαγραφής και τροποποίησης εγγραφών που παρουσιάσαµε σε προηγούµενες σελίδες. Για το λόγο αυτό, µια δεύτερη εναλλακτική λύση που µπορούµε να εφαρµόσουµε, είναι να αποµακρύνουµε το πεδίο DLOCATIONS που δηµιουργεί το πρόβληµα µε τις πολλαπλές τιµές που περιέχει, και να το τοποθετήσουµε σε ένα άλλο πίνακα στον πίνακα DEPT_LOCATIONS µαζί µε το πρωτεύον κλειδί του πίνακα DEPARTMENT. Τα δύο αυτά πεδία θα αποτελούν και το πρωτεύον κλειδί του πίνακα DEPT_LOCATIONS. DEPARTMENT DNAME DNUMBER DMGRSSN Research Administration Headquarters DEPT_LOCATIONS DNUMBER DLOCATION 5 Bellaire 5 Sugarland 5 Houston 4 Stafford 1 Houston

13 Σχεσιακές Βάσεις εδοµένων Θεωρία και Εφαρµογές 57 Μετά την εφαρµογή αυτού του µετασχηµατισµού, οι πίνακες DEPARTMENT και DEPT_LOCATIONS βρίσκονται σε 1NF, και επιπλέον δεν περιέχουν τιµές που να επαναλαµβάνονται. Εποµένως ανάµεσα στις δύο προσεγγίσεις που µπορούµε να ακολουθήσουµε για να φέρουµε τον πίνακα DEPARTMENT σε 1NF, θα επιλέξουµε την τελευταία. Είναι σηµαντικό να αναφερθεί στο σηµείο αυτό, πως τα πεδία πολλαπλών τι- µών σε ένα πίνακα που επιβάλλουν το µετασχηµατισµό του σε 1NF, µπορεί να είναι τόσο απλά, όσο και σύνθετα όπως συµβαίνει για παράδειγµα στο ακόλουθο σχεσιακό σχήµα : EMP_PROJ SSN ENAME PROJECTS PNUMBER HOURS εν είναι δύσκολο να διαπιστώσει κανείς, πως η ύπαρξη σύνθετων πεδίων που ταυτόχρονα είναι και πεδία πολλαπλών τιµών ισοδυναµεί µε την ύπαρξη ενός πίνακα µέσα σε ένα άλλο. Αυτού του είδους οι σχέσεις λέγονται ένθετες (nested relations) και διατηρούν όλα τα χαρακτηριστικά µιας σχέσης. Στο παραπάνω παράδειγµα, για κάθε EMPLOYEE ορίζεται και ένας ξεχωριστός πίνακας που περιέχει τον κωδικό του έργου στο οποίο απασχολείται καθώς και τον αριθµό των ωρών που εργάζεται εβδοµαδιαίως σε αυτό το έργο. Στον ένθετο αυτό πίνακα, που ορίζεται για κάθε υπάλληλο της εταιρείας, δεν πρέπει να υπάρχουν εγγραφές που να φέρουν την ίδια τιµή για το πεδίο PNUMBER εποµένως το πεδίο PNUMBER, θα αποτελεί πρωτεύον κλειδί του ένθετου πίνακα. Σύµφωνα µε την ορολογία του σχεσιακού µοντέλου, τα κλειδιά αυτού του είδους, ονοµάζονται µερικά πρωτεύοντα κλειδιά (partial primary keys). Ένα στιγµιότυπο αυτού του σχεσιακού σχήµατος, παρουσιάζεται στη συνέχεια. PROJECTS SSN ENAME PNUMBER HOURS Smith, John B Narayan, Ramesh K English, Joyce A Wong, Franklin Zelaya, Alicia J Jabbar, Ahmad V Wallace, Jennifer S Borg, James E 20 NULL

14 Κεφάλαιο 4 : Λογικός Σχεδιασµός - Κανονικοποίηση 58 Για να µετασχηµατίσουµε τον πίνακα αυτό σε 1NF, θα πρέπει να δηµιουργήσουµε ένα νέο πίνακα, και να µεταφέρουµε σε αυτόν τόσο τα πεδία του ένθετου πίνακα (που είναι τα PNUMBER και HOURS) όσο και το πρωτεύον κλειδί του πίνακα EMP_PROJ (που είναι το SSN). Έτσι οι δύο νέοι πίνακες που θα προκύψουν θα είναι οι EMP_PROJ1 SSN ENAME και EMP_PROJ2 SSN PNUMBER HOURS µε δεδοµένα SSN ENAME Smith, John B Narayan, Ramesh K English, Joyce A Wong, Franklin Zelaya, Alicia J Jabbar, Ahmad V Wallace, Jennifer S Borg, James E Όπως µπορεί εύκολα να διαπιστώσει κανείς ο πίνακας EMP_PROJ2, είναι στην πραγµ ατ ικότητα ο πίνακας WORKS_ON SSN PNUMBER HOURS NULL εύτερη κανονική µορφή (2 nd Normal Form, 2NF) Η δεύτερη κανονική µορφή προκύπτει από την πρώτη κανονική µορφή, εάν µετασχηµατίσουµε τη δοµή του πίνακα, µε τέτοιο τρόπο ώστε να αποµακρυνθούν όλες οι µερικές συναρτησιακές εξαρτήσεις (partial dependencies) που υφίστανται ανάµεσα στα πεδία του. Με άλλα λόγια ένας πίνακας βρίσκεται σε δεύτερη κανονική µορφή, όταν όλα τα πεδία που δεν ανήκουν στο πρωτεύον κλειδί του πίνακα, εξαρτώνται συναρτησιακώς µόνο από τα πεδία του πρωτεύοντος κλειδιού, και µάλιστα, µέσω πλήρους συναρτησιακής εξάρτησης (full dependency). Επειδή ο ορισµός της πλήρους και της µερικής συναρτησιακής εξάρτησης µεταξύ δύο πεδίων X και Υ εφαρµόζεται µόνο όταν το Χ περιλαµβάνει περισσότερα από ένα πεδία, είναι προφανές πως η αναγωγή ενός πίνακα στη δεύτερη κανονική µορφή, έχει νόηµα µόνο όταν το πρωτεύον κλειδί του είναι σύνθετο. Αντίθετα, όταν το κλειδί του πίνακα είναι ένα απλό πεδίο, η αναγωγή του πίνακα σε 1NF, τον µετασχηµατίζει αυτό- µατα και σε 2NF. Ένα παράδειγµα ενός πίνακα που δεν είναι σε δεύτερη κανονική µορφή, είναι ο πίνακας EMP_PROJ που ορίσαµε στις προηγούµενες σελίδες. Μελετώντας τις τι- µές που έχουµε καταχωρήσει σε αυτόν τον πίνακα, διαπιστώνουµε πως ο πίνακας

15 Σχεσιακές Βάσεις εδοµένων Θεωρία και Εφαρµογές 59 είναι σε 1NF, διότι, το κάθε κελί του περιέχει µια απλή τιµή. Ωστόσο δεν είναι σε 2NF διότι περιέχει µερικές συναρτησιακές εξαρτήσεις (partial dependencies). Για να κατανοήσουµε καλύτερα αυτό το παράδειγµα, στο ακόλουθο σχήµα παρουσιάζουµε τη δοµή του πίνακα EMP_PROJ και τις συναρτησιακές εξαρτήσεις που υφίστανται ανάµεσα στα πεδία του. SSN PNUMBER HOURS ENAME PNAME PLOCATION fd1 fd2 fd3 Από το παραπάνω σχήµα διαπιστώνουµε πως η δοµή του πίνακα EMP_PROJ περιέχει τρεις πλήρεις συναρτησιακές εξαρτήσεις, την fd1 που ορίζεται ως {SSN, PNUMBER} HOURS, την fd2 που ορίζεται ως SSN ENAME, και την fd3 που ορίζεται ως PNUMBER {PNAME, PLOCATION} ο συµβολισµός που χρησι- µοποιήθηκε στην fd3 υποδηλώνει πως η γνώση του PNUMBER ταυτοποιεί µονοσήµαντα τα πεδία PNAME και PLOCATION. Επίσης, το πρωτεύον κλειδί του πίνακα, είναι σύνθετο, και αποτελείται από το συνδυασµό των πεδίων SSN και PNUMBER. Ας θεωρήσουµε τώρα τη συναρτησιακή εξάρτηση {SSN, PNUMBER} ENAME. Αυτή είναι µια µερική συναρτησιακή εξάρτηση, διότι εάν αφαιρέσουµε το πεδίο PNUMBER από αυτή, η εξάρτηση που αποµένει και που είναι η SSN ENAME, εξακολουθεί να ισχύει (στην πραγµατικότητα είναι η fd2). Στην περίπτωση αυτή λέµε πως το πεδίο ENAME παραβιάζει τη συνθήκη της δεύτερης κανονικής µορφής. Το ίδιο ισχύει και για τις εξαρτήσεις {SSN, PNUMBER} PNAME και {SSN, PNUMBER} PLOCATION οι οποίες δεν καταργούνται εάν αφαιρέσουµε το πεδίο SSN, αφού εκφυλίζονται στη συναρτησιακή εξάρτηση fd3. Εποµένως ο πίνακας EMP_PROJ στην τρέχουσα µορφή του, δε βρίσκεται σε 2NF. Για να µετασχηµατίσουµε τον πίνακα σε 2NF, θα πρέπει να τον διασπάσουµε σε µικρότερους πίνακες, µε τέτοιο τρόπο, ώστε τα πεδία που δεν ανήκουν στο πρωτεύον κλειδί του, να τοποθετηθούν µαζί µε τα πεδία του πρωτεύοντος κλειδιού, µε τα οποία συσχετίζονται µέσου πλήρους συναρτησιακής εξάρτησης. Αυτό πρακτικά σηµαίνει να δηµιουργήσουµε τόσους πίνακες όσες είναι και οι πλήρεις συναρτησιακές εξαρτήσεις των πεδίων το υ πίνακα, και ν α τοποθετήσουµε σε αυ- τούς, τα πεδία που συµµετέχουν σε αυτές τις εξαρτήσεις.έτσι, στο παράδειγµά µας, οι τρεις συναρτησιακές εξαρτήσεις fd1, fd2 και fd3, θα οδηγήσουν στη δηµιουργία των πινάκων EP1 {SSN, PNUMBER, HOURS}, EP2 {SSN, ENAME} και EP3 {PNUMBER, PNAME, PLOCATION}, κάθε ένας εκ των οποίων βρίσκεται σε 2NF.

16 Κεφάλαιο 4 : Λογικός Σχεδιασµός - Κανονικοποίηση 60 Τρίτη κανονική µορφή (3 rd Normal Form, 3NF) Η τρίτη κανονική µορφή προκύπτει από τη δεύτερη κανονική µορφή εάν µετασχηµατίσουµε τον πίνακα µε τέτοιο τρόπο ώστε να αποµακρυνθούν όλες οι µεταβατικές συναρτησιακές εξαρτήσεις (transitive dependencies) που υφίστανται ανάµεσα στα πεδία του. Επαναλαµβάνουµε από τη βασική θεωρία πως µια συναρτησιακή εξάρτηση Α Β ονοµάζεται µεταβατική, όταν υπάρχει ένα πεδίο C που δεν ανήκει στο πρωτεύον κλειδί του πίνακα, τέτοιο ώστε C = C(A) και B = B(C). Ας θεωρήσουµε για παράδειγµα τον πίνακα EMP_DEP το σχήµα του οποίου απεικονίζεται στη συνέχεια, µαζί µε τις συναρτησιακές εξαρτήσεις που ορίζονται α- νάµεσα στα πεδία του. ENAME SSN BDATE ADDRESS DNUMBER DNAME DMGRSSN Αυτός ο πίνακας, βρίσκεται σε δεύτερη κανονική µορφή καθώς η δοµή του δεν χαρακτηρίζεται από µερικές συναρτησιακές εξαρτήσεις, όχι όµως και σε τρίτη κανονική µορφή, διότι ανάµεσα στα πεδία του υπάρχουν µεταβατικές εξαρτήσεις. Μια τέτοια εξάρτηση ορίζεται ανάµεσα στα πεδία SSN και DMGRSSN, καθώς ισχύουν οι σχέσεις SSN DNUMBER και DNUMBER DMGRSSN µε το πεδίο DNUMBER να µην αποτελεί τµήµα του πρωτεύοντος κλειδιού του πίνακα. Μια δεύτερη µεταβατική εξάρτηση ορίζεται µε τον ίδιο τρόπο ανάµεσα στα πεδία SSN και DNAME, καθώς µπορούµε να γράψουµε SSN DNUMBER και DNUMBER DNAME. Αυτού του είδους οι συναρτησιακές εξαρτήσεις θα πρέπε ι να αποµακρυν- θούν. Η αποµάκρυνση αυτών των εξαρτήσεων θα γίνει όπως και προηγουµένως διασπώντας τον πίνακα EMP_DEP στους πίνακες ED1 {ENAME, SSN, BDATE, ADDRESS, DNUMBER} και ED2 {DNUMBER, DNAME, DMGRSSN} κάθε έ- νας εκ των οποίων βρίσκεται τώρα σε 3NF. Κανονική µορφή των Boyce Codd (Boyce Codd Normal Form, BCNF) Η κανονική µορφή των Boyce και Codd, αποτελεί µια πιο αυστηρή διατύπωση της τρίτης κανονικής µορφής, και χρησιµοποιείται για να αποµακρύνει ανω- µαλίες που ενδέχεται να προκύψουν σε περιπτώσεις κατά τις οποίες ένας πίνακας έχει περισσότερα από ένα υποψήφια κλειδιά, τα οποία µάλιστα είναι σύνθετα, αποτελούνται δηλαδή από πολλά πεδία. Για να κατανοήσουµε καλύτερα αυτή την κανονική µορφή ας πάρουµε ως παράδειγµα τη βάση δεδοµένων ενός εκπαιδευτικού ιδρύµατος. Ας υποθέσουµε πως για κάθε µάθηµα που διδάσκεται σε αυτό το ίδρυµα, οι µαθητές εκτός από τις ώρες διδασκαλίας µπορούν να παρακολουθήσουν και κάποια µαθήµατα πρόσθετης διδακτικής στήριξης τα οποία πραγµατοποιούνται από κάποιο άλλο καθηγητή (advisor). Όσοι µαθητές επιθυµούν να παρακολουθήσουν αυτό το πρόγραµµα, θα πρέπει να δηλώ-

17 Σχεσιακές Βάσεις εδοµένων Θεωρία και Εφαρµογές 61 σουν τα µαθήµατα στη Γραµµατεία, η οποία θα καταχωρεί τα στοιχεία των µαθητών, των καθηγητών, και των µαθηµάτων, σύµφωνα µε το ακόλουθο µοντέλο : Κάθε µαθητής µπορεί να δηλώσει περισσότερα από ένα µαθήµατα Για κάθε µάθηµα, ο κάθε µαθητής έχει ένα και µοναδικό καθηγητή Για κάθε µάθηµα υπάρχουν πολλοί καθηγητές που το διδάσκουν Κάθε καθηγητής µπορεί να διδάξει ένα µόνο µάθηµα Κάθε καθηγητής διδάσκει σε πολλούς µαθητές ταυτόχρονα. Ας υποθέσουµε επίσης πως τα στοιχεία για αυτ ή την εφαρµ ογή καταχωρούνται στον πίνακα CLASS {StudentId, Lesson, Advisor} ένα στιγµιότυπο του οποίου παρουσιάζεται στη συνέχεια : StudentId Lesson Advisor 123 Physics Brown 123 Music Jones 456 Biology Stewart 789 Physics Lenon 999 Physics Brown Μελετώντας προσεκτικά τη δοµή του πίνακα και τις βασικές υποθέσεις του µοντέλου, µπορούµε να ταυτοποιήσουµε τις ακόλουθες συναρτησιακές εξαρτήσεις ανάµεσα στα πεδία του. StudentId Lesson (multivalued dependency ο κάθε µαθητής µπορεί να δηλώσει πολλά µαθήµατα τα οποία µπορούµε να ανακτήσουµε γνωρίζοντας τον κωδικό του µαθητή) {StudentId, Lesson} Advisor: η γνώση του κωδικού του µαθητή και κάποιου από τα µαθήµατα που έχει δηλώσει επιτρέπει την ταυτοποίηση του καθηγητή που το διδάσκει Lesson Advisor (multivalued dependency το κάθε µάθηµα διδάσκεται από πολλούς καθηγητές τους οποίους µπορούµε να ανακτήσουµε γνωρίζοντας το όνοµα του µαθήµατος) Advisor Lesson: η γνώση του ονόµατος του καθηγητή επιτρέπει την ταυτοποίηση του µαθήµατος που διδάσκει. Advisor StudentId (multivalued dependency ένας καθηγητής µπορεί να διδάξει σε πολλούς µαθητές ταυτόχρονα τους οποίους µπορούµε να ανακτήσουµε εάν γνωρίζουµε το όνοµα του καθηγητή). Επιπλέον, δεν είναι δύσκολο να διαπιστώσουµε, πως ο εν λόγω πίνακας διαθέτει δύο υποψήφια κλειδιά, τα οποία µάλιστα είναι σύνθετα πεδία. Τα κλειδιά αυτά είναι ο συνδυασµός των πεδίων {StudentId, Lesson} που ταυτοποιεί µονοσήµαντα την τιµή του Advisor, και ο συνδυασµός των πεδίων {StudentId, Advisor} που ταυτοποιεί µονοσήµαντα την τιµή του Lesson. Στο παράδειγµά µας επιλέγουµε ως πρωτεύον κλειδί το συνδυασµό {StudentId, Lesson}. Σε ποια κανονική µορφή βρίσκεται αυτός ο πίνακας? Παρατηρώντας προσεκτικά τη δοµή του µπορούµε εύκολα να βγάλουµε το συµπέρασµα ότι βρίσκεται σε

18 Κεφάλαιο 4 : Λογικός Σχεδιασµός - Κανονικοποίηση 62 τρίτη κανονική µορφή, αφού δεν περιέχει ούτε µερικές αλλά ούτε και µεταβατικές συναρτησιακές εξαρτήσεις. Το συµπέρασµα αυτό είναι σωστό, αλλά παρόλα αυτά, δε µας διασφαλίζει την απουσία των ανωµαλιών που παρουσιάζονται κατά την εισαγωγή, διαγραφή και τροποποίηση εγγραφών. Ας υποθέσουµε για παράδειγµα πως ο µαθητής µε κωδικό 456 επιθυµεί να αλλάξει το µάθηµα που δήλωσε, από Βιολογία σε Μαθηµατικά. Εάν τροποποιήσουµε το περιεχόµενο της αντίστοιχης γραµµής του πίνακα, έτσι ώστε να καταγράψουµε την παραπάνω µεταβολή, θα χάσουµε την πληροφορία πως ο καθηγητής Stewart διδάσκει Βιολογία. Τα πράγµατα είναι ακόµη χειρότερα, εάν ο εν λόγω µαθητής ακυρώσει εντελώς τη συµµετοχή του στο πρόγραµµα διδακτικής στήριξης. Στην περίπτωση αυτή, θα πρέπει να διαγράψουµε την αντίστοιχη γραµµή από τον πίνακα CLASS, αλλά αυτή η διαγραφή θα οδηγήσει και σε πλήρη απώλεια όλων των δεδοµένων που αφορούν τον καθηγητή Stewart ό- σον αφορά τα µαθήµατα που διδάσκει στο πρόγραµµα πρόσθετης διδακτικής στήριξης. Οι παραπάνω ανωµαλίες δεν περιορίζονται µόνο στις διαδικασίες διαγραφής και τροποποίησης των εγγραφών του πίνακα, αλλά παρουσιάζονται και κατά το στάδιο της εισαγωγής νέων εγγραφών. Έστω πως σε κάποια χρονική στιγµή εκδηλώνεται ενδιαφέρον για την παρακολούθηση του µαθήµατος Computer Networks υπεύθυνος του οποίου ορίζεται ο καθηγητής Tanenbaum. Η πληροφορία όµως αυτή θα καταχωρηθεί στον πίνακα CLASS, µόνο όταν κάποιος µαθητής προσέλθει στη Γραµµατεία και δηλώσει αυτό το µάθηµα και αυτό, επειδή οι εγγραφές του πίνακα προϋποθέτουν και την καταχώρηση του κωδικού γι αυτόν το µαθητή. Το γεγονός δε, πως αυτός ο κωδικός αποτελεί µέρος του πρωτεύοντος κλειδιού, κάνει τα πράγµατα ακόµη χειρότερα. Πράγµατι, εάν ο εν λόγω κωδικός δεν ανήκε στο πρωτεύον κλειδί, η παραπάνω πληροφορία θα µπορούσε να καταχωρηθεί, προσθέτοντας την πλειάδα {NULL, Computer Networks, Tanenbaum}. Από τη στιγµή όµως που το πεδίο StudentId αποτελεί µέρος του πρωτεύοντος κλειδιού του πίνακα, η εν λόγω καταχώρηση δεν µπορεί να πραγµατοποιηθεί, διότι θα λάβει χώρα παραβίαση του δεύτερου κανόνα ακεραιότητας (entity integrity constraint), σύµφωνα µε τον οποίο κανένα από τα πεδία του πρωτεύοντος κλειδιού του πίνακα, δεν µπορεί να λάβει την τιµή NULL. Η εµφάνιση όλων αυτών των προβληµάτων, οφείλεται στο γεγονός, πως ο πίνακας CLASS διαθέτει δύο υποψήφια σύνθετα κλειδιά, τα οποία έχουν ένα κοινό πεδίο το StudentId. Αυτή είναι µια κατάσταση, η οποία δεν παρατηρείται αρκετά συχνά, αλλά εν τούτοις, θα πρέπει να λαµβάνεται υπ όψιν κατά το στάδιο της σχεδίασης µιας βάσης δεδοµένων. Οι Boyce και Codd, προκειµένου να άρουν την παραπάνω αδυναµία της τρίτης κανονικής µορφής, προχώρησαν στον ορισµό της οµώνυµης κανονικής µορφής ο οποίος διατυπώνεται ως εξής : «Μια σχέση βρίσκεται στην κανονική µορφή των Boyce Codd (BCNF), αν και µόνο αν κάθε πεδίο του πίνακα που ταυτοποιεί µονοσήµαντα κάποιο άλλο πεδίο, είναι υποψήφιο κλειδί του πίνακα». Εφαρµόζοντας τον παραπάνω ορισµό στον πίνακα CLASS, διαπιστώνουµε πως αυτός δεν βρίσκεται στην BCNF πράγµατι το πεδίο Advisor παρά το γεγονός πως ταυτοποιεί µονοσήµαντα το πεδίο Lesson (σύµφωνα µε τη συναρτησιακή εξάρτηση Advisor Lesson), δεν αποτελεί τµήµα του υποψήφιου κλειδιού του πίνακα.

19 Σχεσιακές Βάσεις εδοµένων Θεωρία και Εφαρµογές 63 Για να φέρουµε τον πίνακα CLASS σε BCNF, θα πρέπει κατά τα γνωστά να τον διασπάσουµε σε µικρότερους πίνακες, κάθε ένας εκ των οποίων θα βρίσκεται σε BCNF. Σε αυτή τη διαδικασία της διάσπασης, το πεδίο Advisor που ταυτοποιεί µονοσήµαντα κάποιο άλλο πεδίο αλλά παρόλα αυτά δεν ανήκει στο υποψήφιο κλειδί του πίνακα, θα τοποθετηθεί σε µία άλλη σχέση, και ταυτόχρονα θα γίνει το πρωτεύον κλειδί της. Στην προκειµένη περίπτωση, η διάσπαση µπορεί να γίνει µε δύο τρόπους : (α) CLASS1 {StudentId, Advisor} και CLASS2 {Advisor, Lesson} ή (β) CLASS1 {StudentId, Lesson} και CLASS2 {Advisor, Lesson} και στις δύο περιπτώσεις, το πεδίο Advisor θα αποτελέσει πρωτεύον κλειδί του πίνακα CLASS2. Τέταρτη κανονική µορφή (4 th Normal Form, 4NF) Μετασχηµατίζοντας ένα πίνακα σε BCNF, είµαστε πλέον σίγουροι πως η δο- µή του δεν περιέχει ανεπιθύµητες συναρτησιακές εξαρτήσεις που θα µπορούσαν να οδηγήσουν στην εµφάνιση ανωµαλιών κατά την εισαγωγή, διαγραφή και τροποποίηση δεδοµένων. Παρά το γεγονός όµως αυτό, τέτοιου είδους ανωµαλίες ενδέχεται να υπάρξουν εάν υφίσταται κάποια συσχέτιση µεταξύ δύο πεδίων, εκ των οποίων το ένα να είναι πεδίο πολλαπλών τιµών (multivalued dependencies). Ας θεωρήσουµε ως παράδειγµα το πληροφοριακό σύστηµα του σχολείου, και ας περιοριστούµε στη σχέση που καθορίζει για το κάθε µάθηµα, τα ονόµατα των καθηγητών που το διδάσκουν, καθώς και τους τίτλους των διδακτικών βιβλίων που χρησιµοποιούνται. Στην περιγραφή που ακολουθεί, υποθέτουµε ότι ισχύουν οι ακόλουθες παραδοχές : Κάθε µάθηµα µπορεί να διδαχθεί από πολλούς καθηγητές Σε κάθε µάθηµα µπορούν να χρησιµοποιηθούν περισσότερα από ένα βιβλία Για κάθε µάθηµα χρησιµοποιούνται πάντα τα ίδια βιβλία, ανεξάρτητα από τον καθηγητή που το διδάσκει. Από την παραπάνω περιγραφή καθίσταται προφανές πως εάν χρησιµοποιήσουµε για τη ν καταχώρηση όλων αυτών των πληροφοριών τον πίνακα OFFERING {COURSE, INSTRUCTOR, TEXTBOOK}, υπάρχουν δύο συναρτησιακές εξαρτήσεις στις οποίες συµµετέχουν πεδία πολλαπλών τιµών. Οι εξαρτήσεις αυτές είναι οι Course Instructor και Course Textbook, µε τα πεδία Instructor και Textbook, να µπορούν να λάβουν περισσότερες από µια τιµές, σε κάθε εξάρτηση. Στο παρακάτω σχήµα, παρουσιάζεται ο πίνακας OFFERING µε ένα σύνολο ενδεικτικών εγγραφών στην µη κανονικοποιηµένη και στην κανονικοποιηµένη του µορφή. COURSE M anagement Finance INSTRUCTOR TEXTBOOK White Drucker Green Peters Black Weston Gray Gilford Μη κανονικ οποιηµένη µορφή του πίνακα OFFERING

20 Κεφάλαιο 4 : Λογικός Σχεδιασµός - Κανονικοποίηση 64 COURSE INSTRUCTOR TEXTBOOK Management White Drucker Management Green Drucker Management Black Drucker Management White Peters Management Green Peters Management Black Peters Finance Gray Weston Finance Gray Gilford Κανονικοποιηµένη µορφή του πίνακα OFFERING Ο πίνακας OFFERING στην κανονικοποιηµένη του µορφή διαθέτει ένα σύνθετο κλειδί το συνδυασµό των πεδίων COURSE, INSTRUCTOR και TEXTBOOK και βρίσκεται σε BCNF, αφού όλα τα πεδία του που ταυτοποιούν µονοσήµαντα κάποια άλλα πεδία ανήκουν στο πεδίο κλειδί του πίνακα. Ωστόσο, ό- πως µπορεί εύκολα να διαπιστωθεί, ο πίνακας περιέχει περιττά δεδοµένα, τα οποία προκαλούν όλες εκείνες τις ανωµαλίες που παρουσιάσαµε στις προηγούµενες παραγράφους. Εάν για παράδειγµα θελήσουµε να προσθέσουµε ένα καινούριο βιβλίο στον παραπάνω πίνακα, θα πρέπει να καταχωρήσουµε τρεις εγγραφές, µια για κάθε εκπαιδευτικό, διότι στην αντίθετη περίπτωση θα φαίνεται πως αυτό το βιβλίο χρησιµοποιείται από ένα µόνο καθηγητή. Οι παραπάνω ανωµαλίες προκύπτουν όταν σε ένα πίνακα υπάρχουν τουλάχιστον τρία πεδία ας τα ονοµάσουµε A, B και C τέτοια ώστε για κάθε τιµή του Α, να υπάρχει ένα σύνολο τιµών για το B, και ένα σύνολο τιµών για το C και ταυτόχρονα το σύνολο τιµών του Β είναι ανεξάρτητο από το σύνολο τιµών του C και αντίστροφα. Οι εξαρτήσεις αυτού του είδους ονοµάζονται εξαρτήσεις πολλαπλών τιµών (multivalued dependencies). Για να αποµακρύνουµε αυτές τις ανωµαλίες, θα πρέπει κατά τα γνωστά να διασπάσουµε τον πίνακα σε δύο µικρότερους πίνακες διαχωρίζοντας τα πεδία B και C σύµφωνα µε τον ορισµό που δώσαµε προηγουµένως. Έτσι ο πίνακας OFFERING, θα διαχωριστεί στους πίνακες TEACHER {COURSE, INSTRUCTOR} και TEXT {COURSE, TEXTBOOK} κάθε ένας εκ των οποίων βρίσκεται σε 4NF. Πέµπτη κανονική µορφή (5 th Normal Form, 5NF) Τέλος η πέµπτη κανονική µορφή, χρησιµοποιείται όταν οι πίνακες που προκύπτουν από την τέταρτη κανονική µορφή, χαρακτηρίζονται από εξαρτήσεις σύζευξης (join dependencies). Αυτού του είδους οι εξαρτήσεις απαγορεύουν τη διάσπαση ενός πίνακα σε µικρότερους πίνακες οι οποίοι εάν συνδυαστούν εκ νέου να µπορούν να αναδηµιουργήσουν τους αρχικούς πίνακες. Περισσότερες λεπτοµέρειες σχετικά µε την πέµπτη κανονική µορφή, µπορούν να βρεθούν στη βιβλιογραφία.

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

Σχεσιακό Μοντέλο Τα πρώτα συστήµατα Βάσεων δεδοµένων ήταν βασισµένα στο ιεραρχικό ή στο δικτυακό µοντέλο δεδοµένων. Το σχεσιακό µοντέλο πρωτοπαρουσιάσ ΤΕΙ ΑΘΗΝΩΝ ΣΧΟΛΗ Σ Ο ΤΜΗΜΑ ΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ ΧΕΙΜΕΡΙΝΟ ΕΞΑΜΗΝΟ 2009-2010 Η/Υ ΙΙΙ ΒΑΣΕΙΣ Ε ΟΜΕΝΩΝ (Θεωρία) ΜΑΘΗΜΑ 3ο Σχεσιακό µοντέλο, Σχεσιακές βάσεις δεδοµένων, Σχεσιακό σχήµα βάσης δεδοµένων (Relational

Διαβάστε περισσότερα

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

Εισαγωγή στις Βάσεις Δεδομζνων II ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΣΙΑ ΠΑΝΕΠΙΣΗΜΙΟ ΚΡΗΣΗ Εισαγωγή στις Βάσεις Δεδομζνων II Ενότητα: Κανονικοποίηση Διδάσκων: Πηγουνάκης Κωστής ΤΜΗΜΑ ΟΙΚΟΝΟΜΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΣΧΟΛΗ ΚΟΙΝΩΝΙΚΩΝ ΕΠΙΣΤΗΜΩΝ Άδειες Χρήσης Το παρόν

Διαβάστε περισσότερα

Κανονικές Μορφές 8ο Φροντιστήριο. Βάρσος Κωνσταντίνος

Κανονικές Μορφές 8ο Φροντιστήριο. Βάρσος Κωνσταντίνος ΗΥ-360 Αρχεια και Βασεις εδοµενων, Τµηµα Επιστηµης Υπολογιστων, Πανεπιστηµιο Κρητης Κανονικές Μορφές Βάρσος Κωνσταντίνος 30 Νοεµβρίου 2017 Κανονικοποίηση Ορισµός 1. Κανονικοποίηση είναι µια διαδικασία

Διαβάστε περισσότερα

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

Κεφάλαιο 3 Σχεσιακό Μοντέλο Κεφάλαιο 3 Σχεσιακό Μοντέλο Στο κεφάλαιο αυτό παρουσιάζεται το σχεσιακό µοντέλο βάσεων δεδοµένων, και αναλύονται τα δοµικά του χαρακτηριστικά, οι βασικές του ιδιότητες, και ο τρόπος µε τον οποίο µπορεί

Διαβάστε περισσότερα

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

Κεφάλαιο 9 Συσχετίσεις Κεφάλαιο 9 Συσχετίσεις Το κεφάλαιο αυτό διαπραγµατεύεται τη δηµιουργία και διαχείριση των συσχετίσεων που υφίστανται ανάµεσα στους πίνακες µιας σχεσιακής βάσης δεδοµένων. Όπως έχει ήδη αναφερθεί, ο ρόλος

Διαβάστε περισσότερα

Lecture 23: Functional Dependencies and Normalization

Lecture 23: Functional Dependencies and Normalization Department of Computer Science University of Cyprus EPL342 Databases Lecture 23: Functional Dependencies and Normalization Normalization and Normal Forms (Chapter 10.3-10.4, Elmasri-Navathe 5ED) ιδάσκων:

Διαβάστε περισσότερα

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

Κανονικοποίηση. Άτυπες Οδηγίες. Παράδειγµα. Αξιολόγηση Σχεσιακών Σχηµάτων Β. Περιττές Τιµές και Ανωµαλίες Ενηµέρωσης Αξιολόγηση Σχεσιακών Σχηµάτων Β Κανονικοποίηση Παύλος Εφραιµίδης Βάσεις εδοµένων Κανονικοποίηση 1 Πως µπορούµε να κρίνουµε εάν ένα Σχεσιακό Σχήµα είναι καλό ή αποδοτικό ή αν έχει λάθη; Σε γενικές γραµµές

Διαβάστε περισσότερα

Κανονικοποίηση για Σχεσιακές Βάσεις Δεδομένων Αντζουλάτος Γεράσιμος antzoulatos@upatras.gr Τμήμα Εφαρμογών Πληροφορικής στην Διοίκηση και Οικονομία ΤΕΙ Πατρών - Παράρτημα Αμαλιάδας 06 Δεκεμβρίου 2012 Περιεχομενα

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

Διδάσκων: Παναγιώτης Ανδρέου

Διδάσκων: Παναγιώτης Ανδρέου Διάλεξη 22: Κανονικοποίηση και Συναρτησιακές Εξαρτήσεις ΙII Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Εισαγωγή στις έννοιες: Κανονικοποιήση (Normalization) και Κανονικές Μορφές (Normal

Διαβάστε περισσότερα

Κανονικές Μορφές 8ο Φροντιστήριο. Βάρσος Κωνσταντίνος

Κανονικές Μορφές 8ο Φροντιστήριο. Βάρσος Κωνσταντίνος ΗΥ-360 Αρχεια και Βασεις εδοµενων Τµηµα Επιστηµης Υπολογιστων Πανεπιστηµιο Κρητης Κανονικές Μορφές Βάρσος Κωνσταντίνος 23 Νοεµβρίου 2018 ιατήρηση Εξαρτήσεων Εστω F ένα σύνολο από συναρτησιακές εξαρτήσεις

Διαβάστε περισσότερα

Lecture 21: Functional Dependencies and Normalization

Lecture 21: Functional Dependencies and Normalization Department of Computer Science University of Cyprus EPL342 Databases Lecture 21: Functional Dependencies and Normalization Informal Design Guidelines (Chapter 14.1, Elmasri-Navathe 7ED) Demetris Zeinalipour

Διαβάστε περισσότερα

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

Κεφάλαιο 2 Μοντέλο Οντοτήτων Συσχετίσεων Κεφάλαιο 2 Μοντέλο Οντοτήτων Συσχετίσεων Στο κεφάλαιο αυτό παρουσιάζεται το µοντέλο οντοτήτων συσχετίσεων, µια από τις πιο σηµαντικές διαγραµµατικές τεχνικές που µας επιτρέπουν να καθορίσουµε τη δοµή της

Διαβάστε περισσότερα

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

Κανονικοποίηση. Παύλος Εφραιμίδης. Βάσεις Δεδομένων Κανονικοποίηση 1 Κανονικοποίηση Παύλος Εφραιμίδης Βάσεις Δεδομένων Κανονικοποίηση 1 Αξιολόγηση Σχεσιακών Σχημάτων ΒΔ Πως μπορούμε να κρίνουμε εάν ένα Σχεσιακό Σχήμα είναι καλό ή αποδοτικό ή αν έχει λάθη; Σε γενικές γραμμές

Διαβάστε περισσότερα

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

Συναρτησιακές Εξαρτήσεις και Κανονικοποίηση Συναρτησιακές Εξαρτήσεις και Κανονικοποίηση Κανονικές Μορφές - Πρώτη κανονική μορφή (1NF) - Δεύτερη κανονική μορφή (2NF) - Τρίτη κανονική μορφή (3NF) 1 Κανονικοποίηση Κανονικές Μορφές Οι σχέσεις μπορούν

Διαβάστε περισσότερα

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

Copyright 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley, ΕλληνικήΈκδοση, ίαυλος ιαφάνεια 10-1 Κεφάλαιο 10 Συναρτησιακές Εξαρτήσεις και Κανονικοποίηση για Σχεσιακές Βάσεις εδοµένων Copyright 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley, ΕλληνικήΈκδοση ίαυλος ΠεριεχόµεναΚεφαλαίου

Διαβάστε περισσότερα

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

Εισαγωγή στις Βάσεις Δεδομζνων II ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΣΙΑ ΠΑΝΕΠΙΣΗΜΙΟ ΚΡΗΣΗ Εισαγωγή στις Βάσεις Δεδομζνων II Ενότητα: Το Σχεσιακό Μοντζλο Διδάσκων: Πηγουνάκης Κωστής ΤΜΗΜΑ ΟΙΚΟΝΟΜΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΣΧΟΛΗ ΚΟΙΝΩΝΙΚΩΝ ΕΠΙΣΤΗΜΩΝ Άδειες Χρήσης Το

Διαβάστε περισσότερα

Διδάσκων: Παναγιώτης Ανδρέου

Διδάσκων: Παναγιώτης Ανδρέου Διάλεξη 20: Κανονικοποίηση και Συναρτησιακές Εξαρτήσεις Ι Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Εισαγωγή στις έννοιες: Εισαγωγή στην Κανονικοποιήση Άτυπες κατευθύνσεις για Σχεδιασμό

Διαβάστε περισσότερα

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

Η αναλυτική περιγραφή της γλώσσας SQL αποτελεί αντικείµενο των σελίδων που ακολουθούν. Η ΓΛΩΣΣΑ ΟΡΙΣΜΟΥ Ε ΟΜΕΝΩΝ Κεφάλαιο 6 SQL Στο κεφάλαιο αυτό παρουσιάζεται η δοµηµένη γλώσσα ερωτοαποκρίσεων (Structured Query Language, SQL) που χρησιµοποιείται για τη διαχείριση των δεδοµένων της βάσης. Η διαχείριση αυτή περιλαµβάνει

Διαβάστε περισσότερα

Θεωρία Κανονικοποίησης

Θεωρία Κανονικοποίησης Θεωρία Κανονικοποίησης Πρώτη Κανονική Μορφή (1NF) Αποσύνθεση Συναρτησιακές Εξαρτήσεις Δεύτερη (2NF) και Τρίτη Κανονική Μορφή (3NF) Boyce Codd Κανονική Μορφή (BCNF) Καθολική Διαδικασία Σχεδίασης ΒΔ Βασική

Διαβάστε περισσότερα

Λογικός Σχεδιασµός Σχεσιακών Σχηµάτων: Αποσύνθεση. Βάσεις εδοµένων Ευαγγελία Πιτουρά 1

Λογικός Σχεδιασµός Σχεσιακών Σχηµάτων: Αποσύνθεση. Βάσεις εδοµένων Ευαγγελία Πιτουρά 1 Λογικός Σχεδιασµός Σχεσιακών Σχηµάτων: Αποσύνθεση Βάσεις εδοµένων 2011-2012 Ευαγγελία Πιτουρά 1 Εισαγωγή Θα εξετάσουµε πότε ένα σχεσιακό σχήµα για µια βάση δεδοµένων είναι «καλό» Γενικές Οδηγίες Η Μέθοδος

Διαβάστε περισσότερα

Κεφάλαιο 8. ΣΧΕ ΙΑΣΜΟΣ ΒΑΣΕΩΝ Ε ΟΜΕΝΩΝ ΚΑΙ ΚΑΝΟΝΙΚΟΠΟΙΗΣΗ (Normalization) Ι.Β Σχεδιασµός Σχεσιακών Β και Κανονικοποίηση Σελίδα 4.1

Κεφάλαιο 8. ΣΧΕ ΙΑΣΜΟΣ ΒΑΣΕΩΝ Ε ΟΜΕΝΩΝ ΚΑΙ ΚΑΝΟΝΙΚΟΠΟΙΗΣΗ (Normalization) Ι.Β Σχεδιασµός Σχεσιακών Β και Κανονικοποίηση Σελίδα 4.1 Κεφάλαιο 8 ΣΧΕ ΙΑΣΜΟΣ ΒΑΣΕΩΝ Ε ΟΜΕΝΩΝ ΚΑΙ ΚΑΝΟΝΙΚΟΠΟΙΗΣΗ (Normalization) Ι.Β Σχεδιασµός Σχεσιακών Β και Κανονικοποίηση Σελίδα 4.1 Σύνοψη Λογικός Σχεδιασµός Σχεσιακών Βάσεων εδοµένων και Κανονικοποίηση

Διαβάστε περισσότερα

Lecture 24: Functional Dependencies and Normalization IV

Lecture 24: Functional Dependencies and Normalization IV Department of Computer Science University of Cyprus EPL342 Databases Lecture 24: Functional Dependencies and Normalization IV (Chapter 10.5, Elmasri-Navathe 5ED) ιδάσκων: Παναγιώτης Ανδρέου http://www.cs.ucy.ac.cy/courses/epl342

Διαβάστε περισσότερα

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

ΣΧΕΣΙΑΚΟ ΜΟΝΤΕΛΟ Relational Model. SQL Μαθ. #11 ΣΧΕΣΙΑΚΟ ΜΟΝΤΕΛΟ Relational Model SQL Μαθ. #11 Ε-R Model for a COMPANY database The COMPANY relational database schema A relational database instance of the COMPANY schema SQL Μια γλώσσα σχεσιακής βάσης

Διαβάστε περισσότερα

Κεφάλαιο 11 Ερωτήµατα

Κεφάλαιο 11 Ερωτήµατα Κεφάλαιο 11 Ερωτήµατα Στο κεφάλαιο αυτό περιγράφεται ο τρόπος δηµιουργίας και διαχείρισης ερωτηµάτων µέσα από το περιβάλλον της Microsoft Access. Όπως έχει ήδη αναφερθεί σε προηγούµενο κεφάλαιο, ένας από

Διαβάστε περισσότερα

Lecture 21: Functional Dependencies and Normalization

Lecture 21: Functional Dependencies and Normalization Department of Computer Science University of Cyprus EPL342 Databases Lecture 21: Functional Dependencies and Normalization Informal Design Guidelines (Chapter 10.1, Elmasri-Navathe 5ED) ιδάσκων: Παναγιώτης

Διαβάστε περισσότερα

Διδάσκων: Παναγιώτης Ανδρέου

Διδάσκων: Παναγιώτης Ανδρέου Διάλεξη 23: Κανονικοποίηση και Συναρτησιακές Εξαρτήσεις ΙV Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Εισαγωγή στις έννοιες: Κανονικές Μορφές (BCNF, Τέταρτη/4NF, Πέμπτη/5NF) Διδάσκων: Παναγιώτης

Διαβάστε περισσότερα

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

Η εταιρεία είναι οργανωµένη σε τµήµατα Κάθε ΤΜΗΜΑένα όνοµα, κωδικό και έναν εργαζόµενο που διευθύνει το τµήµα. Αποθηκεύεται η ηµεροµηνία που ανέλαβε ιάγραµµα Οντοτήτων - Συσχετίσεων Παύλος Εφραιµίδης Βάσεις εδοµένων ιάγραµµα Ο-Σ 1 Σχεδιασµός µιας Βάσης εδοµένων Τα βασικά βήµατα για το σχεδιασµό και την ανάπτυξη µιας Βάσης εδοµένων είναι: Ανάλυση Απαιτήσεων

Διαβάστε περισσότερα

Κεφάλαιο 5 Σχεσιακή Άλγεβρα

Κεφάλαιο 5 Σχεσιακή Άλγεβρα Κεφάλαιο 5 Σχεσιακή Άλγεβρα Στο κεφάλαιο αυτό παρουσιάζονται οι θεµελιώδεις πράξεις της σχεσιακής άλγεβρας που χρησιµοποιούνται για τη διαχείριση των δεδοµένων των πινάκων µιας σχεσιακής βάσης δεδοµένων.

Διαβάστε περισσότερα

Βάσεις Δεδομένων. Ενότητα 5: ΚΑΝΟΝΙΚΟΠΟΙΗΣΗ ΒΑΣΗΣ ΔΕΔΟΜΕΝΩΝ. Πασχαλίδης Δημοσθένης Τμήμα Ιερατικών σπουδών

Βάσεις Δεδομένων. Ενότητα 5: ΚΑΝΟΝΙΚΟΠΟΙΗΣΗ ΒΑΣΗΣ ΔΕΔΟΜΕΝΩΝ. Πασχαλίδης Δημοσθένης Τμήμα Ιερατικών σπουδών Βάσεις Δεδομένων Ενότητα 5: ΚΑΝΟΝΙΚΟΠΟΙΗΣΗ ΒΑΣΗΣ ΔΕΔΟΜΕΝΩΝ Πασχαλίδης Δημοσθένης Τμήμα Ιερατικών σπουδών Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό

Διαβάστε περισσότερα

Σχεδιασµός Σχεσιακών Σχηµάτων

Σχεδιασµός Σχεσιακών Σχηµάτων Βάσεις εδοµένων 2003-2004 Ευαγγελία Πιτουρά 1 Σχεδιασµός Σχεσιακών Σχηµάτων Σχεδιασµός καλών σχεσιακών σχηµάτων Μη τυπικές - γενικές κατευθύνσεις Θεωρία κανονικών µορφών που θα βασίζεται στις συναρτησιακές

Διαβάστε περισσότερα

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

Εισαγωγή στις Βάσεις Δεδομζνων II ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΣΙΑ ΠΑΝΕΠΙΣΗΜΙΟ ΚΡΗΣΗ Εισαγωγή στις Βάσεις Δεδομζνων II Ενότητα: Σχεσιακή Άλγεβρα Διδάσκων: Πηγουνάκης Κωστής ΤΜΗΜΑ ΟΙΚΟΝΟΜΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΣΧΟΛΗ ΚΟΙΝΩΝΙΚΩΝ ΕΠΙΣΤΗΜΩΝ Άδειες Χρήσης Το παρόν

Διαβάστε περισσότερα

Λογικός Σχεδιασµός Σχεσιακών Σχηµάτων

Λογικός Σχεδιασµός Σχεσιακών Σχηµάτων Εισαγωγή Θα εξετάσουµε πότε ένα σχεσιακό σχήµα για µια βάση δεδοµένων είναι «καλό» Λογικός Σχεδιασµός Σχεσιακών Σχηµάτων Γενικές Οδηγίες Η Μέθοδος της Αποσύνθεσης Επιθυµητές Ιδιότητες της Αποσύνθεσης Συνένωση

Διαβάστε περισσότερα

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

Άσκηση 2 - Κεχρής, Κεφάλαιο 8: Κανονικοποίηση Άσκηση 2 - Κεχρής, Κεφάλαιο 8: Κανονικοποίηση Εκφώνηση: Δίνεται ο παρακάτω πίνακας ΚΑΤΟΙΚΙΕΣ_ΑΓΟΡΑΣΤΩΝ τον οποίο χρησιμοποιεί μια κατασκευαστική εταιρία η οποία δραστηριοποιείται στην κατασκευή κατοικιών

Διαβάστε περισσότερα

Σχεδιασµός Σχεσιακών Σχηµάτων

Σχεδιασµός Σχεσιακών Σχηµάτων Σχεδιασµός Σχεσιακών Σχηµάτων 1 Σχεδιασµός Σχεσιακών Σχηµάτων Σχεδιασµός καλών σχεσιακών σχηµάτων Μη τυπικές - γενικές κατευθύνσεις Θεωρία κανονικών µορφών που θα βασίζεται στις συναρτησιακές εξαρτήσεις

Διαβάστε περισσότερα

antzoulatos@upatras.gr

antzoulatos@upatras.gr Κανονικοποίηση για Σχεσιακές Βάσεις Δεδομένων Αντζουλάτος Γεράσιμος antzoulatos@upatras.gr Τμήμα Εφαρμογών Πληροφορικής στην Διοίκηση και Οικονομία ΤΕΙ Πατρών - Παράρτημα Αμαλιάδας 10 Ιανουαρίου 2013 Περιεχομενα

Διαβάστε περισσότερα

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ. Πράξεις στο Σχεσιακό Μοντέλο

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ. Πράξεις στο Σχεσιακό Μοντέλο ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Χειμερινό Εξάμηνο 2013 Πράξεις Διαχείρισης Δεδομένων Σχεσιακή Άλγεβρα Δρ. Βαγγελιώ Καβακλή ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ, ΤΜΗΜΑ ΠΟΛΙΤΙΣΜΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΣ 1 Πράξεις στο Σχεσιακό

Διαβάστε περισσότερα

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

Βάσεις δεδομένων. (9 ο μάθημα) Ηρακλής Βαρλάμης Βάσεις δεδομένων (9 ο μάθημα) Ηρακλής Βαρλάμης varlamis@hua.gr Περιεχόμενα Βελτίωση σχεδιασμού Αποσύνθεση σχέσης Συναρτησιακές εξαρτήσεις Θεωρία κανονικών μορφών 1 η NF 2 η NF 3 η NF 2 Βελτίωση σχεδιασμού

Διαβάστε περισσότερα

Κανονικοποίηση Σχήµατος. Βάσεις εδοµένων Ευαγγελία Πιτουρά 1

Κανονικοποίηση Σχήµατος. Βάσεις εδοµένων Ευαγγελία Πιτουρά 1 Κανονικοποίηση Σχήµατος Ευαγγελία Πιτουρά 1 Λογικός Σχεδιασµός Σχεσιακών Σχηµάτων - Αποσύνθεση (διάσπαση) καθολικού σχήµατος Επιθυµητές ιδιότητες - διατήρηση εξαρτήσεων (F + = F + ) - όχι απώλειες στη

Διαβάστε περισσότερα

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

Κεφάλαιο 4 Σχεδίαση Βάσεων Δεδομένων Βάσεις Δεδομένων Επαγγελματικού Λυκείου Κεφάλαιο 4 Σχεδίαση Βάσεων Δεδομένων Εισηγητής Δελησταύρου Κωνσταντίνος Καθηγητής Πληροφορικής ΠΕ20 Μηχανικός Πληροφορικής Τ.Ε. M.Sc. στα Συστήματα Υπολογιστών Περιεχόμενα

Διαβάστε περισσότερα

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

τουργικών χαρακτηριστικών πού έχουν µετατρέψει την αλληλεπίδραση του χρήση µε την εφαρµογή σε µια εύκολη και ευχάριστη διαδικασία. Κεφάλαιο 10 Φόρµες Στο κεφάλαιο αυτό περιγράφεται ο τρόπος µε τον οποίο είναι δυνατή η δηµιουργία διαλόγων αλληλεπίδρασης µε το χρήση και η διαχείριση των δεδοµένων της εφαρµογής µέσα από ένα εύχρηστο

Διαβάστε περισσότερα

Κανονικές Μορφές Σχεδιασµός Σχεσιακών Σχηµάτων

Κανονικές Μορφές Σχεδιασµός Σχεσιακών Σχηµάτων Κανονικές Μορφές 1 Σχεδιασµός Σχεσιακών Σχηµάτων Γενικές Οδηγίες Η Μέθοδος της Αποσύνθεσης Επιθυµητές Ιδιότητες της Αποσύνθεσης Συνένωση Άνευ Απωλειών ιατήρηση Εξαρτήσεων Αποφυγή Επανάληψης Πληροφορίας

Διαβάστε περισσότερα

Σχεσιακές Βάσεις Δεδομένων

Σχεσιακές Βάσεις Δεδομένων Σχεσιακές Βάσεις Δεδομένων Μέρος 3ο Κανονικοποίηση Αρχείων Σχεσιακής Βάσης Δεδομένων Ιανουάριος 2006 Καραδήμας Ν. 1 Καλή& Κακή Σχεδίαση Βάσης Δεδομένων Η «κακή» σχεδίαση µπορεί να οδηγήσει σε τουλάχιστον

Διαβάστε περισσότερα

Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων

Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων 8. Κανονικοποίηση Σχεδιασμός Βάσεων Δεδομένων Χρήστος Δουλκερίδης 2017-18 Θεµατολογία Διάλεξης Σχεδιασμός

Διαβάστε περισσότερα

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

Βάσεις δεδομένων. (2 ο μάθημα) Ηρακλής Βαρλάμης Βάσεις δεδομένων (2 ο μάθημα) Ηρακλής Βαρλάμης varlamis@hua.gr Περιεχόμενα Μοντελοποίηση δεδομένων Μοντέλο Οντοτήτων Συσχετίσεων Παραδείγματα Διαγραμματικές τεχνικές Συμβολισμοί Τριαδικές συσχετίσεις 2

Διαβάστε περισσότερα

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

Θέματα ανακεφαλαίωσης Θέματα ανακεφαλαίωσης 13 Ιουνίου 2013 1. Ορίστε την έννοια σχήμα σχέσης και αναλύστε τα στοιχεία του ορισμού σας. Υποθέστε ότι θέλουμε να αποθηκεύσουμε πληροφορίες για τα μέλη ενός πεζοπορικού συλλόγου

Διαβάστε περισσότερα

ΣΧΕΔΙΑΣΜΟΣ ΒΑΣΕΩΝ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΚΑΝΟΝΙΚΟΠΟΙΗΣΗ. Σχεδιασμός Σχεσιακών ΒΔ και Κανονικοποίηση 1

ΣΧΕΔΙΑΣΜΟΣ ΒΑΣΕΩΝ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΚΑΝΟΝΙΚΟΠΟΙΗΣΗ. Σχεδιασμός Σχεσιακών ΒΔ και Κανονικοποίηση 1 ΣΧΕΔΙΑΣΜΟΣ ΒΑΣΕΩΝ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΚΑΝΟΝΙΚΟΠΟΙΗΣΗ Σχεδιασμός Σχεσιακών ΒΔ και Κανονικοποίηση 1 Σύνοψη Σχεσιακός Σχεδιασμός - Στόχοι Κριτήρια / Οδηγίες για ένα καλό Σχεδιασμό Συναρτησιακές Εξαρτήσεις - Οι

Διαβάστε περισσότερα

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

Εισαγωγή στις Βάσεις εδοµένων και την Access Μάθηµα 1 Εισαγωγή στις Βάσεις εδοµένων και την Access Τι είναι οι βάσεις δεδοµένων Μία βάση δεδοµένων (Β..) είναι µία οργανωµένη συλλογή πληροφοριών, οι οποίες είναι αποθηκευµένες σε κάποιο αποθηκευτικό

Διαβάστε περισσότερα

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

Διάγραμμα Οντοτήτων - Συσχετίσεων Διάγραμμα Οντοτήτων - Συσχετίσεων Παύλος Εφραιμίδης Βάσεις Δεδομένων Διάγραμμα Ο-Σ 1 Σχεδιασμός μιας Βάσης Δεδομένων Τα βασικά βήματα για το σχεδιασμό και την ανάπτυξη μιας Βάσης Δεδομένων είναι: Ανάλυση

Διαβάστε περισσότερα

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

Στο κεφάλαιο αυτό περιγράφεται η τρόπος δηµιουργίας και διαχείρισης πινάκων µέσα από το περιβάλλον της Microsoft Κεφάλαιο 8 Πίνακες Στο κεφάλαιο αυτό περιγράφεται η τρόπος δηµιουργίας και διαχείρισης πινάκων µέσα από το περιβάλλον της Microsoft Access. Η δηµιουργία ενός πίνακα (table) µέσα από τη Microsoft Access,

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Βάσεις δεδομένων. (3 ο μάθημα) Ηρακλής Βαρλάμης Βάσεις δεδομένων (3 ο μάθημα) Ηρακλής Βαρλάμης varlamis@hua.gr Περιεχόμενα Σχεσιακό μοντέλο δεδομένων Σχέσεις, γνωρίσματα, πλειάδες, πεδία ορισμού Πράξεις ενημέρωσης σε σχέσεις Απεικόνιση μοντέλου οντοτήτωνσυσχετίσεων

Διαβάστε περισσότερα

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

ΣΧΕΣΙΑΚΟ ΜΟΝΤΕΛΟ (Relational Model) Μαθ. #10 ΣΧΕΣΙΑΚΟ ΜΟΝΤΕΛΟ (Relational Model) Μαθ. #10 Πράξεις Αλλαγής εδοµένων INSERT (εισαγωγή) Αυτός ο τελεστής παρέχει µια λίστα από πεδία τιµών για µια καινούργια πλειάδα η οποία θα εισαχθεί σε µια σχέση R

Διαβάστε περισσότερα

2. Missing Data mechanisms

2. Missing Data mechanisms Κεφάλαιο 2 ο 2. Missing Data mechanisms 2.1 Εισαγωγή Στην προηγούµενη ενότητα περιγράψαµε κάποια από τα βασικά µοτίβα εµφάνισης των χαµένων τιµών σε σύνολα δεδοµένων. Ένα άλλο ζήτηµα που µας απασχολεί

Διαβάστε περισσότερα

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

ΣΧΕΣΙΑΚΟ ΜΟΝΤΕΛΟ. Relational Model Μαθ. #9 ΣΧΕΣΙΑΚΟ ΜΟΝΤΕΛΟ Relational Model Μαθ. #9 Σχεσιακό Μοντέλο Μεταφορά E-R ιαγράµµατος σε Σχέσεις Μια οντότητα «Ε» Μεταφράζεται σε µια σχέση της οποίας το σχήµα αποτελείται από όλα τα γνωρίσµατα του «Ε» Εάν

Διαβάστε περισσότερα

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

Βάσεις Δεδομένων. Σταύρος Βαλσαμίδης Βάσεις Δεδομένων Διάγραμμα Ο-Σ 1 Βάσεις Δεδομένων Σταύρος Βαλσαμίδης svalsam@teikav.edu.gr Βάσεις Δεδομένων Διάγραμμα Ο-Σ 1 Σχεδιασμός μιας Βάσης Δεδομένων Τα βασικά βήματα για το σχεδιασμό και την ανάπτυξη μιας Βάσης Δεδομένων είναι:

Διαβάστε περισσότερα

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

Συναρτησιακές Εξαρτήσεις. Βάσεις εδοµένων Ευαγγελία Πιτουρά 1 Συναρτησιακές Εξαρτήσεις Βάσεις εδοµένων 2011-2012 Ευαγγελία Πιτουρά 1 Εισαγωγή Θεωρία για το πότε ένας σχεδιασµός είναι «καλός» Η θεωρία βασίζεται στις Συναρτησιακές Εξαρτήσεις (Functional Dependencies)

Διαβάστε περισσότερα

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

Σχεσιακό Μοντέλο Περιορισμοί Μετατροπή ER σε Σχεσιακό Παράδειγμα.. Εργαστήριο Βάσεων Δεδομένων. Relational Model .. Εργαστήριο Βάσεων Δεδομένων Relational Model . Σχεσιακό Μοντέλο (Relational Model) Το σχεσιακό μοντέλο παρουσιάζει μια βάση ως συλλογή από σχέσεις Μια σχέση είναι ένας πίνακας με διακριτό όνομα Κάθε

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

Σχεδίαση Β.Δ. (Database Design)

Σχεδίαση Β.Δ. (Database Design) Σχεδίαση Β.Δ. (Database Design) Η σχεδίαση ενός σχήματος μιας Β.Δ. βασίζεται σε μεγάλο βαθμό στη διαίσθηση του σχεδιαστή σχετικά με τον κόσμο που θέλει να αναπαραστήσει. Η εννοιολογική σχεδίαση υπαρκτών

Διαβάστε περισσότερα

Πεδία (Attributes) Συσχετίσεις (Relationships) Κλειδιά (Identifiers) Οντότητες είναι υποψήφια αρχεία

Πεδία (Attributes) Συσχετίσεις (Relationships) Κλειδιά (Identifiers) Οντότητες είναι υποψήφια αρχεία Λογικός σχεδιασμός Αρχείων Το μοντέλο οντοτήτων Οντότητες (Entities) Πεδία (Attributes) Συσχετίσεις (Relationships) Κλειδιά (Identifiers) Οντότητες είναι υποψήφια αρχεία Τι είναι Οντότητες Είναι συλλογή

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Σχεδιασµός µιας Β. Ένας απλός τρόπος αναπαράστασης δεδοµένων: ένας διδιάστατος πίνακας που λέγεται σχέση Γνωρίσµατα Εισαγωγή Σχεσιακό Μοντέλο Σχεδιασµός µιας Β : Βήµατα Ανάλυση Απαιτήσεων Τι δεδοµένα θα αποθηκευτούν, ποιες εφαρµογές θα κτιστούν πάνω στα δεδοµένα, ποιες λειτουργίες είναι συχνές Εννοιολογικός Σχεδιασµός

Διαβάστε περισσότερα

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

Βάσεις δεδομένων. (8 ο μάθημα) Ηρακλής Βαρλάμης Βάσεις δεδομένων (8 ο μάθημα) Ηρακλής Βαρλάμης varlamis@hua.gr Περιεχόμενα SQL (συνέχεια) Φωλιασμένες υπο-ερωτήσεις Δημιουργία όψεων Πράξεις ενημέρωσης και περιορισμοί 1/5/2014 Βάσεις Δεδομένων 2 Από το

Διαβάστε περισσότερα

Κανονικές Μορφές. Αποσύνθεση (decomposition)

Κανονικές Μορφές. Αποσύνθεση (decomposition) Σχεδιασµός Σχεσιακών Σχηµάτων Κανονικές Μορφές Γενικές Οδηγίες Η Μέθοδος της Αποσύνθεσης Επιθυµητές Ιδιότητες της Αποσύνθεσης Συνένωση Άνευ Απωλειών ιατήρηση Εξαρτήσεων Αποφυγή Επανάληψης Πληροφορίας 1

Διαβάστε περισσότερα

καλών σχεσιακών σχημάτων

καλών σχεσιακών σχημάτων Εισαγωγή Θα εξετάσουμε πότε ένα σχεσιακό σχήμα για μια βάση δεδομένων είναι «καλό» Λογικός Γενικές Οδηγίες Η Μέθοδος της Αποσύνθεσης (γενική μεθοδολογία) Επιθυμητές Ιδιότητες της Αποσύνθεσης Συνένωση Άνευ

Διαβάστε περισσότερα

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

Σχεδίαση Βάσεων Δεδομένων Σχεδίαση Βάσεων Δεδομένων Τρίτη Κανονική Μορφή Third Normal Form 1 Copyright 2013, Oracle and/or its affiliates. All rights reserved. Στόχοι Το μάθημα αυτό καλύπτει τους ακόλουθους στόχους: Να προσδιορίσει

Διαβάστε περισσότερα

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

Μοντέλο Οντοτήτων-Συσχετίσεων Εισαγωγή Σχεδιασµός µιας Β : Βήµατα Ανάλυση Απαιτήσεων Τι δεδοµένα θα αποθηκευτούν, ποιες εφαρµογές θα κτιστούν πάνω στα δεδοµένα, ποιες λειτουργίες είναι συχνές Εννοιολογικός Σχεδιασµός Υψηλού-επιπέδου

Διαβάστε περισσότερα

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

Εισαγωγή Mια από τις βασικές λειτουργίες ενός σχεσιακού συστήµατος διαχείρισης βάσεων δεδοµένων είναι η διαχείριση του πληροφοριακού περιεχοµένου που ΤΕΙ ΑΘΗΝΩΝ ΣΧΟΛΗ Σ Ο ΤΜΗΜΑ ΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ ΧΕΙΜΕΡΙΝΟ ΕΞΑΜΗΝΟ 2009-2010 Η/Υ ΙΙΙ ΒΑΣΕΙΣ Ε ΟΜΕΝΩΝ (Θεωρία) ΜΑΘΗΜΑ 4ο Η γλώσσα βάσεων δεδοµένων SQL, η γλώσσα QBE. Αθανασίου Ειρήνη, MSc 1 Εισαγωγή Mια

Διαβάστε περισσότερα

καλών σχεσιακών σχημάτων

καλών σχεσιακών σχημάτων Εισαγωγή Θα εξετάσουμε πότε ένα σχεσιακό σχήμα για μια βάση δεδομένων είναι «καλό» Λογικός Σχεδιασμός Σχεσιακών Σχημάτων Γενικές Οδηγίες Η Μέθοδος της Αποσύνθεσης (γενική μεθοδολογία) Επιθυμητές Ιδιότητες

Διαβάστε περισσότερα

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

Σχεσιακό Μοντέλο. Εισαγωγή. Βάσεις εδοµένων : Σχεσιακό Μοντέλο 1 Σχεσιακό Μοντέλο Βάσεις εδοµένων 2011-2012 Ευαγγελία Πιτουρά 1 Εισαγωγή O σχεδιασμός μιας βάση δεδομένων κωδικοποιεί κάποιο μέρος του φυσικού κόσμου Ένα μοντέλο δεδομένων είναι ένα σύνολο από έννοιες για

Διαβάστε περισσότερα

Βάσεις Δεδομένων ΗγλώσσαSQL (Structured Query Language)

Βάσεις Δεδομένων ΗγλώσσαSQL (Structured Query Language) Βάσεις Δεδομένων ΗγλώσσαSQL (Structured Query Language) Παύλος Εφραιμίδης Βάσεις Δεδομένων Η Γλώσσα SQL - Μέρος Πρώτο 1 SQL - Structured Query Language (1) Ένας από τους βασικούς λόγους της απόλυτης επικράτησης

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ - ΤΜΗΥΠ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ - ΤΜΗΥΠ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι Β. Μεγαλοοικονόμου, Δ. Χριστοδουλάκης Σχεδιασμός Βάσεων Δεδομένων και Κανονικοποίηση Ακ.Έτος 2008-09 (μεβάσητιςσημειώσειςτωνsilberchatz, Korth και Sudarshan

Διαβάστε περισσότερα

Κανονικές Μορφές. Βάσεις Δεδομένων : Κανονικές Μορφές. ηλαδή, i = 1,.., n R i R. Σύντομη επανάληψη αποσύνθεσης.

Κανονικές Μορφές. Βάσεις Δεδομένων : Κανονικές Μορφές. ηλαδή, i = 1,.., n R i R. Σύντομη επανάληψη αποσύνθεσης. Κανονικές Μορφές Σύντομη επανάληψη αποσύνθεσης Βάσεις Δεδομένων 2008-2009 Ευαγγελία Πιτουρά 1 Βάσεις Δεδομένων 2008-2009 Ευαγγελία Πιτουρά 2 Αλγόριθμος Σχεδιασμού Αλγόριθμος Σχεδιασμού Ένας γενικός (θεωρητικός)

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

ΕΝ ΕΙΚΤΙΚΗ ΛΥΣΗ ΚΑΙ ΣΧΟΛΙΑ ΣΤΗΝ ΠΡΩΤΗ ΑΣΚΗΣΗ ΣΧΕ ΙΑΣΜΟΙ ΒΑΣΕΩΝ Ε ΟΜΕΝΩΝ ΕΘΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΕΙΟ Τµήµα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών Ακαδηµαϊκό Έτος 2007-2008 Μάθηµα: ΒΑΣΕΙΣ Ε ΟΜΕΩ ιδάσκων: Καθ. Ιωάννης Βασιλείου Ε ΕΙΚΤΙΚΗ ΛΥΣΗ ΚΑΙ ΣΧΟΛΙΑ ΣΤΗ ΠΡΩΤΗ ΑΣΚΗΣΗ

Διαβάστε περισσότερα

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

Η ΕΝΝΟΙΑ ΤΟΥ Ε ΟΜΕΝΟΥ ΚΑΙ ΤΟΥ ΤΥΠΟΥ Ε ΟΜΕΝΩΝ Κεφάλαιο 1 Εισαγωγή Στο κεφάλαιο αυτό παρουσιάζεται µια συνοπτική εισαγωγή στη θεωρία των βάσεων δεδοµένων και των συστηµάτων διαχείρισης βάσεων δεδοµένων, προκειµένου ο αναγνώστης να κατανοήσει τις βασικές

Διαβάστε περισσότερα

BΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ ΕΞΕΤΑΣΗ ΦΕΒΡΟΥΑΡΙΟΥ 2005

BΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ ΕΞΕΤΑΣΗ ΦΕΒΡΟΥΑΡΙΟΥ 2005 ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ BΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ ΕΞΕΤΑΣΗ ΦΕΒΡΟΥΑΡΙΟΥ 2005 ΛΥΣΕΙΣ Ι. Βασιλείου -----------------------------------------------------------------------------------------------------

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

και Κανονικοποίηση για Σχεσιακές Βάσεις Δεδομένων Αντζουλάτος Γεράσιμος antzoulatos@upatras.gr Τμήμα Εφαρμογών Πληροφορικής στην Διοίκηση και Οικονομία ΤΕΙ Πατρών - Παράρτημα Αμαλιάδας 29 Νοεμβρίου 2012

Διαβάστε περισσότερα

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 342 Βάσεις εδοµένων ιδάσκων: Γ. Σαµάρας 5η σειρά ασκήσεων: Συναρτησιακές Εξαρτήσεις και Κανονικοποίηση. Λύσεις Μέρος Α. Συναρτησιακές Εξαρτήσεις 1. Αποδείξτε

Διαβάστε περισσότερα

ΣΧΕΣΙΑΚΕΣ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ

ΣΧΕΣΙΑΚΕΣ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ ΣΧΕΣΙΑΚΕΣ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Διδάσκων του μαθήματος 2 Δρ. Λεωνίδας Φραγγίδης Τμήμα Διοίκησης Επιχειρήσεων ΤΕΙ ΑΜΘ Email: fragidis@teiemt.gr Ώρες Γραφείου: Τρίτη (10:00 12:00) Προτεινόμενα Βιβλία 3 Σχεσιακές

Διαβάστε περισσότερα

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

ΑΝΑΖΗΤΗΣΗ ΣΕ ΗΛΕΚΤΡΟΝΙΚΕΣ ΒΙΒΛΙΟΘΗΚΕΣ ΑΝΑΖΗΤΗΣΗ ΣΕ ΗΛΕΚΤΡΟΝΙΚΕΣ ΒΙΒΛΙΟΘΗΚΕΣ Μία από τις πιο σηµαντικές υπηρεσίες που προσφέρει το διαδίκτυο στην επιστηµονική κοινότητα είναι η αποµακρυσµένη πρόσβαση των χρηστών σε ηλεκτρονικές βιβλιοθήκες

Διαβάστε περισσότερα

Βάσεις Δεδομένων Η γλώσσα SQL (Structured Query Language) Εισαγωγή στην SQL (2) Ιστορικά Στοιχεία. SQL - Structured Query Language (1)

Βάσεις Δεδομένων Η γλώσσα SQL (Structured Query Language) Εισαγωγή στην SQL (2) Ιστορικά Στοιχεία. SQL - Structured Query Language (1) Βάσεις Δεδομένων Η γλώσσα SQL Structured Query Language) Παύλος Εφραιμίδης SQL - Structured Query Language 1) Ένας από τους βασικούς λόγους της απόλυτης επικράτησης των Σχεσιακών ΒΔ Εξασφαλίζει μεταφερσιμότητα

Διαβάστε περισσότερα

ΠΕΛΑΤΗΣ ΠΑΡΑΓΓΕΛΙΑ ΠΡΟΪΟΝ

ΠΕΛΑΤΗΣ ΠΑΡΑΓΓΕΛΙΑ ΠΡΟΪΟΝ ΤΕΙ ΑΘΗΝΩΝ ΣΧΟΛΗ Σ Ο ΤΜΗΜΑ ΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ ΧΕΙΜΕΡΙΝΟ ΕΞΑΜΗΝΟ 2009-2010 Η/Υ ΙΙΙ ΒΑΣΕΙΣ Ε ΟΜΕΝΩΝ (Θεωρία) ΜΑΘΗΜΑ 2ο Σχεσιακό µοντέλο (E-R model), ιάγραµµα οντοτήτων συσχετίσεων (E-R diagram), Σχεσιακό

Διαβάστε περισσότερα

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

Το Σχεσιακό Μοντέλο. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Το Σχεσιακό Μοντέλο Βάσεις Δεδομένων 2013-2014 Ευαγγελία Πιτουρά 1 Μοντελοποίηση Σχήμα (database schema): η περιγραφή της δομής της πληροφορίας που είναι αποθηκευμένη στη βδ με τη χρήση ενός μοντέλου δεδομένων

Διαβάστε περισσότερα

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

Σχεσιακό Μοντέλο. Σχεδιασμός Βάσεων Δεδομένων Μάθημα 2 ο Μαρία Χαλκίδη Σχεσιακό Μοντέλο Σχεδιασμός Βάσεων Δεδομένων Μάθημα 2 ο Μαρία Χαλκίδη Εισαγωγή Το σχεσιακό μοντέλο δεδομένων (relational data model) προτάθηκε από τον E. F. Codd το 1970 Aποτελεί ένα μέσο λογικής δόμησης

Διαβάστε περισσότερα

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

Διάλεξη 06: Σχεσιακό Μοντέλο I (Relational Data Model) Διδάσκων: Παναγιώτης Ανδρέου Διάλεξη 06: Σχεσιακό Μοντέλο I (Relational Data Model) Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Εισαγωγή στις έννοιες: Εισαγωγή στο Σχεσιακό Μοντέλο Ορισμοί Σχεσιακού Μοντέλου Σχεσιακοί

Διαβάστε περισσότερα

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

Department of Computer Science University of Cyprus. EPL342 Databases. Lecture 8: RM II. Relational Model. (Chapter ) Department of Computer Science University of Cyprus EPL342 Databases Lecture 8: RM II Relational Model (Chapter 5.2-5.3) ιδάσκων: Παναγιώτης Ανδρέου http://www.cs.ucy.ac.cy/courses/epl342 8-1 Περιεχόμενο

Διαβάστε περισσότερα

Entity-Relationship Model (Chen) Οντολογικό Σχεσιακό Μοντέλο

Entity-Relationship Model (Chen) Οντολογικό Σχεσιακό Μοντέλο Fig 3.1 Entity-Relationship Model (Chen) Οντολογικό Σχεσιακό Μοντέλο Χρησιµοποιείται για την εννοιολογική ανάλυση µιας εφαρµογής. Για τον ορισµό του λογικού σχήµατος Ένα εργαλείο (tool) το οποίο επιτρέπει

Διαβάστε περισσότερα

Lecture 22: Functional Dependencies and Normalization

Lecture 22: Functional Dependencies and Normalization Department of Computer Science University of Cyprus EPL342 Databases Lecture 22: Functional Dependencies and Normalization Functional Dependencies (Chapter 10.2, Elmasri-Navathe 5ED) ιδάσκων: Παναγιώτης

Διαβάστε περισσότερα

Διδάσκων: Παναγιώτης Ανδρέου

Διδάσκων: Παναγιώτης Ανδρέου Διάλεξη 21: Κανονικοποίηση και Συναρτησιακές Εξαρτήσεις ΙI Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Εισαγωγή στις έννοιες: Συναρτησιακές Εξαρτήσεις Κανόνες Συμπερασμού για Συναρτησιακές

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

Ορισµοί Σχεσιακού Μοντέλου και Τροποποιήσεις Σχέσεων σε SQL

Ορισµοί Σχεσιακού Μοντέλου και Τροποποιήσεις Σχέσεων σε SQL Ορισµοί Σχεσιακού Μοντέλου και Τροποποιήσεις Σχέσεων σε SQL Βάσεις εδοµένων 2011-2012 Ευαγγελία Πιτουρά 1 Εισαγωγή Μοντελοποίηση Στα προηγούµενα µαθήµατα: Εννοιολογικός Σχεδιασµός Βάσεων Δεδοµένων (µε

Διαβάστε περισσότερα

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

2. Το Μοντέλο Οντοτήτων- Συσχετίσεων Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων 2. Το Μοντέλο Οντοτήτων- Συσχετίσεων Σχεδιασμός Βάσεων Δεδομένων Χρήστος Δουλκερίδης 2017-18 Σχεδίαση Βάσεων

Διαβάστε περισσότερα

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

Σχεσιακό Μοντέλο Δεδομένων Σχεσιακό Μοντέλο Δεδομένων Παύλος Εφραιμίδης Βάσεις Δεδομένων Σχεσιακό Μοντέλο Δεδομένων 1 Μοντέλα Δεδομένων Μοντέλα Δεδομένων Σχεσιακό Ιεραρχικό Δικτυακό Tο κυρίαρχο μοντέλο δεδομένων στις σύγχρονες βάσεις

Διαβάστε περισσότερα

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

Βάσεις Δεδομένων (Databases) Βάσεις Δεδομένων (Databases) ΕΠΛ 342 Χειμερινό Εξάμηνο 2011 Διδάσκοντες Καθηγητές Γιώργος Σαμάρας (ΧΩΔ01 109) Δένδρο Επερώτησης (Query Tree) Δένδρο Επερώτησης (Query Tree) Είναι μια δενδρική δομή που αντιστοιχεί

Διαβάστε περισσότερα

Βάσεις Δεδομένων Προχωρημένα Ερωτήματα SQL

Βάσεις Δεδομένων Προχωρημένα Ερωτήματα SQL Βάσεις Δεδομένων Προχωρημένα Ερωτήματα SQL Παύλος Εφραιμίδης Βάσεις Δεδομένων SQL - Μέρος Τρίτο 1 Περιεχόμενα Προχωρημένα Ερωτήματα SQL Συνένωση Συναθροιστικές Συναρτήσεις Ομαδοποίηση Βάσεις Δεδομένων

Διαβάστε περισσότερα

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

Οδηγίες Χρήσης. Εφαρµογής Κτηµατολογίου. Έκδοση 1.0. Οκτώβριος Σύνταξη: Εθνικό και Καποδιστριακό Πανεπιστήµιο Αθηνών Τεχνική Στήριξη Πληροφοριακών Συστηµάτων Σχολείων ΥΠΟΥΡΓΕΙΟ ΕΘΝΙΚΗΣ ΠΑΙ ΕΙΑΣ & ΘΡΗΣΚΕΥΜΑΤΩΝ ΕΠΙΧΕΙΡΗΣΙΑΚΟ ΠΡΟΓΡΑΜΜΑ Κοινωνία της Πληροφορίας Έργο: ράσεις Υποστήριξης των Πληροφοριακών Συστηµάτων των σχολείων

Διαβάστε περισσότερα