bd normalization

32
ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΜΑΤΙΚΗ ΕΝΟΤΗΤΑ ΠΛΗ-11 " Αρχές Τεχνολογίας Λογισμικού " ΕΝΑΛΛΑΚΤΙΚΟ ∆Ι∆ΑΚΤΙΚΟ ΥΛΙΚΟ " Εισαγωγή στην Κανονικοποίηση Βάσεων ∆εδομένων " ∆ρ. Βασίλης ∆ελής Μέλος ΣΕΠ ΠΛΗ11 Πάτρα, Αύγουστος 2008

Upload: stelios-xen

Post on 29-Nov-2014

237 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: BD Normalization

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

ΘΕΜΑΤΙΚΗ ΕΝΟΤΗΤΑ ΠΛΗ-11

" Αρχές Τεχνολογίας Λογισµικού "

ΕΝΑΛΛΑΚΤΙΚΟ ∆Ι∆ΑΚΤΙΚΟ ΥΛΙΚΟ

" Εισαγωγή στην Κανονικοποίηση Βάσεων ∆εδοµένων "

∆ρ. Βασίλης ∆ελής Μέλος ΣΕΠ – ΠΛΗ11

Πάτρα, Αύγουστος 2008

Page 2: BD Normalization

Εισαγωγή στην κανονικοποίηση Β∆ Β∆ – 25/8/08

2

ΠΕΡΙΕΧΟΜΕΝΑ 1 Εισαγωγή ..............................................................................................................3 2 Πλεονασµός ή επανάληψη;...................................................................................6

2.1 Εξάλειψη του πλεονασµού ...........................................................................7 2.2 Παραπλανητικές περιπτώσεις ......................................................................7 2.3 Επιχειρησιακοί κανόνες (business rules)......................................................8

3 Πλειότιµα κατηγορήµατα .......................................................................................9 4 Συναρτησιακές εξαρτήσεις (functional dependencies) ........................................12 5 ∆εύτερη κανονική µορφή ....................................................................................14 6 Τρίτη κανονική µορφή .........................................................................................15 7 Κανονική µορφή Boyce-Codd .............................................................................17 8 Αποδόµηση και ιδιότητες ....................................................................................19

8.1 ∆ιατήρηση των κατηγορηµάτων .................................................................19 8.2 Άρση του πλεονασµού ...............................................................................19 8.3 Αποδόµηση χωρίς απώλεια σύνδεσης .......................................................19 8.4 ∆ιατήρηση των εξαρτήσεων .......................................................................21

9 Αποδόµηση σε BCNF .........................................................................................23 9.1 Έλεγχος για αποδόµηση χωρίς απώλειες σύνδεσης..................................25

Σχολιασµός/επίλυση των δραστηριοτήτων ................................................................26 Βιβλιογραφικές αναφορές ..........................................................................................32

Page 3: BD Normalization

Εισαγωγή στην κανονικοποίηση Β∆ Β∆ – 25/8/08

3

1 Εισαγωγή Το παρόν κεφάλαιο απευθύνεται στους φοιτητές που έχουν ολοκληρώσει τη µελέτη του τόµου «Βάσεις ∆εδοµένων» και έχουν κατανοήσει τις βασικές αρχές σχεδίασης σχεσιακών βάσεων δεδοµένων:

− εφαρµογή του µοντέλου οντοτήτων-συσχετίσεων (Ο-Σ) για τη σχεδίαση σε εννοιολογικό επίπεδο

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

κατηγορήµατα/πεδία) και τη µαθηµατική του θεµελίωση Με βάση τα παραπάνω, οι σχέσεις που απαρτίζουν το λογικό σχήµα µιας βάσης δεδοµένων πρέπει να χαρακτηρίζονται από τις εξής βασικές ιδιότητες: α) δεν υπάρχουν πάνω από µία πλειάδες µε ίδια ακριβώς στοιχεία στην ίδια σχέση, β) οι πλειάδες µιας σχέσης είναι µη-διατεταγµένες, γ) κάθε στοιχείο µιας πλειάδας είναι ατοµικό (atomic - µη σύνολο). Ωστόσο ένα σχεσιακό σχήµα µε τις πιο πάνω ιδιότητες µπορεί να έχει άλλα µη-επιθυµητά χαρακτηριστικά, όπως για παράδειγµα να εµφανίζει πλεονασµό (redundancy), και διάφορες δυσλειτουργίες (anomalies) εξ’ αιτίας αυτού. Συνήθως, αν οι αρχές σχεδίασης και µετάβασης από το µοντέλο Ο-Σ στο σχεσιακό επίπεδο έχουν εφαρµοστεί µε προσοχή και ακρίβεια, το προκύπτον λογικό σχήµα δεν εµφανίζει τα πιο πάνω µη επιθυµητά χαρακτηριστικά. Στη συνέχεια αυτού του κεφαλαίου θα παρουσιάσουµε τις απαραίτητες έννοιες και τις τεχνικές ελέγχου ενός σχεσιακού σχήµατος και µετατροπής του σε ένα ισοδύναµο απαλλαγµένο από τις προαναφερθείσες παρενέργειες. Η διαδικασία αυτή ονοµάζεται κανονικοποίηση (normalisation) και περιλαµβάνει τεχνικές το αποτέλεσµα των οποίων κατατάσσει ένα σχεσιακό σχήµα σε διάφορες κανονικές µορφές (normal forms), τις οποίες θα περιγράψουµε. Σε ό,τι αφορά στο ύφος της παρουσίασης των επόµενων ενοτήτων, θα προσπαθήσουµε να κρατήσουµε µια καλή ισορροπία ανάµεσα στη διαισθητική παρουσίαση και κατανόηση των εννοιών (που εν τέλει βασίζεται στον κανόνα πως κάθε σχέση πρέπει να παρέχει πληροφορία για µία µόνο έννοια/πράγµα1) και στο µαθηµατικό φορµαλισµό τους που βασίζεται στην έννοια της συναρτησιακής εξάρτησης (functional dependency). Αλλά ας δούµε ένα σύντοµο παράδειγµα, θεωρώντας την πιο κάτω σχέση ΦΟΙΤΗΤΗΣ που αποτυπώνει πληροφορίες για τους φοιτητές ενός συγκεκριµένου τµήµατος του ΕΑΠ: ΑΜ Ονοµ/µο ∆ιεύθυνση Κωδ-ΘΕ ΘΕ ΣΕΠ ΣΕΠ-email

123 ΓΕΩΡΓΙΟΥ ΝΙΚΟΣ ΦΙΛΟΛΑΟΥ 12 ΠΛΗ11 ΤΕΧΝΟΛΟΓΙΑ

ΛΟΓΙΣΜΙΚΟΥ ∆ΕΛΗΣ [email protected]

123 ΓΕΩΡΓΙΟΥ ΝΙΚΟΣ ΦΙΛΟΛΑΟΥ 12 ΠΛΗ12 ΜΑΘΗΜΑΤΙΚΑ Ι ΡΑΜΦΟΣ [email protected]

123 ΓΕΩΡΓΙΟΥ ΝΙΚΟΣ ΦΙΛΟΛΑΟΥ 12 ΠΛΗ10 ΕΙΣΑΓΩΓΗ ΣΤΗΝ

ΠΛΗΡΟΦΟΡΙΚΗ ΡΟΤΙ∆ΗΣ [email protected]

134 ΛΕΚΑΣ ΜΑΡΙΟΣ ΜΑΡΑΘΩΝΟΣ 2 ΠΛΗ11 ΤΕΧΝΟΛΟΓΙΑ

ΛΟΓΙΣΜΙΚΟΥ ∆ΕΛΗΣ [email protected]

H σχέση αυτή ικανοποιεί τις προαναφερθείσες βασικές ιδιότητες (µάλιστα γι’ αυτό το λόγο λέγεται πως βρίσκεται στην πρώτη κανονική µορφή first normal form – 1NF, στοιχείο που θα αναλύσουµε αργότερα). Είναι φανερό πως η σχέση παρέχει

1 είτε αυτή είναι ‘οντότητα’ είτε ‘συσχέτιση’, µε βάση την ορολογία των ∆ΟΣ

Page 4: BD Normalization

Εισαγωγή στην κανονικοποίηση Β∆ Β∆ – 25/8/08

4

πληροφορίες για δύο έννοιες/οντότητες, αυτές του φοιτητή και των θεµατικών ενοτήτων που παρακολουθεί. Αρχικά, µε µια διαισθητική µατιά φαίνεται χρήσιµη αυτή η συµπύκνωση όλης της πληροφορίας σε µια σχέση µια κι αυτό διευκολύνει τη διατύπωση ερωτήσεων προς τη βάση δεδοµένων. Ωστόσο, η σχέση αυτή παρουσιάζει τα ακόλουθα µη-επιθυµητά χαρακτηριστικά:

− επανάληψη πληροφορίας (πλεονασµός) – Ένα µεγάλο ποσοστό πληροφορίας επαναλαµβάνεται. Το ονοµ/µο κι η διεύθυνση του φοιτητή, το όνοµα της ενότητας, το όνοµα και το email του ΣΕΠ επαναλαµβάνονται συχνά, άσκοπα. Για κάθε εγγραφή φοιτητή σε κάποια θεµατική ενότητα, π.χ. την ΠΛΗ10, πρέπει να εισάγουµε εκ νέου το όνοµα της ενότητας, καθώς και το όνοµα και email του ΣΕΠ που είναι υπεύθυνος στο τµήµα του φοιτητή γι’ αυτή την ενότητα. Ο πλεονασµός αυτός, εκτός από σπατάλη αποθηκευτικού χώρου δηµιουργεί κι άλλα προβλήµατα, εννοιολογικά και πρακτικά:

− δυσλειτουργία ενηµέρωσης (update anomaly) – Ο πλεονασµός δυσχεραίνει την ενηµέρωση των δεδοµένων, αφού π.χ. η αλλαγή του ΣΕΠ για την ενότητα ΠΛΗ11 για το εν λόγω τµήµα, απαιτεί την τροποποίηση όλων των εγγραφών που σχετίζονται µε την ενότητα ΠΛΗ11. Αν για οποιοδήποτε λόγο αυτό δεν επιτευχθεί, τότε η βάση δεδοµένων θα βρεθεί στην ασυνεπή κατάσταση (inconsistent state) να διατηρεί δύο διαφορετικά ονόµατα ΣΕΠ για την ίδια ενότητα στο ίδιο τµήµα.

− δυσλειτουργία εισαγωγής (insertion anomaly) – Έστω πως το πρωτεύον κλειδί για τη σχέση είναι το ζευγάρι (ΑΜ, Κωδ. ΘΕ). Κάθε νέα εγγραφή στη σχέση πρέπει να εισάγει µια τιµή για τα δύο αυτά πεδία. Αυτό σηµαίνει πως δε µπορούµε να αποτυπώσουµε στο εν λόγω σχήµα µια νέα θεµατική ενότητα αν δεν προηγηθεί η εγγραφή τουλάχιστο ενός φοιτητή στην ενότητα αυτή (το ΑΜ δε µπορεί να έχει τιµή NULL). Αντίστοιχα, δε µπορούµε να καταχωρίσουµε στοιχεία για ένα φοιτητή αν δε προηγηθεί η εγγραφή του σε τουλάχιστο µία θεµατική ενότητα.

− δυσλειτουργία διαγραφής (deletion anomaly) – Ανάλογα µε το προηγούµενο παράδειγµα, σε µερικές περιπτώσεις η διαγραφή µιας εγγραφής έχει σαν αποτέλεσµα τη διαγραφή άλλης χρήσιµης πληροφορίας. Π.χ. η διαγραφή του φοιτητή Γεωργίου µπορεί να προκαλέσει και τη διαγραφή της πληροφορίας για την ενότητα ‘Μαθηµατικά Ι’ αν µόνο ο εν λόγω φοιτητής ήταν µέχρι ώρας εγγεγραµµένος στην εν λόγω ενότητα. Με αντίστοιχο τρόπο, η διαγραφή µιας ενότητας µπορεί να προκαλέσει την ανεπιθύµητη διαγραφή ενός φοιτητή.

Τα πιο πάνω προβλήµατα προκύπτουν στην ουσία επειδή η σχέση ΦΟΙΤΗΤΗΣ αποτυπώνει πληροφορία για δύο έννοιες/οντότητες, τους φοιτητές και τις θεµατικές τους ενότητες. Μια λύση συνεπώς θα ήταν η αποδόµηση (decomposition) της σχέσης σε περισσότερες µικρότερες σχέσεις. Προφανώς, η αποδόµηση επιβαρύνει το κόστος επεξεργασίας ερωτήσεων προς τη βάση δεδοµένων, αφού οι τελικές µικρότερες σχέσεις συχνά πρέπει να ‘συνδεθούν’ (µε την πράξη της σύνδεσης-join) για να εξαχθεί η επιθυµητή πληροφορία. Για την εξάλειψη της πλειοψηφίας των πιο πάνω προβληµάτων ένα καλό σενάριο αποδόµησης θα ήταν το ακόλουθο: ΦΟΙΤΗΤΗΣ (ΑΜ, Ονοµ/µο, ∆ιεύθυνση) ΘΕΜΑΤΙΚΗ ΕΝΟΤΗΤΑ (Κωδ-ΘΕ, ΘΕ, ΣΕΠ, ΣΕΠ-email) ΕΓΓΡΑΦΗ (ΑΜ, Κωδ-ΘΕ) Η πιο πάνω αποδόµηση συνιστά µια διαδικασία κανονικοποίησης. Όπως έχει ήδη επισηµανθεί, συχνά η κανονικοποίηση προκαλεί µείωση της απόδοσης στην επεξεργασία ερωτηµάτων αφού κανείς συχνά πρέπει να καταφύγει στην (χρονοβόρα) πράξη της σύνδεσης για να αντλήσει την επιθυµητή πληροφορία από τις διασπασµένες πλέον σχέσεις. Από την άλλη πλευρά ωστόσο, το αποτέλεσµα της κανονικοποίησης γενικά ευνοεί τις ενηµερώσεις, αφού απ’ ότι είδαµε και στο πιο

Page 5: BD Normalization

Εισαγωγή στην κανονικοποίηση Β∆ Β∆ – 25/8/08

5

πάνω παράδειγµα, η ενηµέρωση µιας πληροφορίας πριν την κανονικοποίηση µπορεί να απαιτεί επέµβαση σε πολλές εγγραφές ενώ µετά την κανονικοποίηση µόλις σε µία! Πρέπει να γίνει κατανοητό πως µια επιλογή αποδόµησης δεν είναι πάντα τόσο εύκολη όσο το πιο πάνω παράδειγµα καταδεικνύει, αφού µια σχέση µπορεί να περιλαµβάνει εκατοντάδες πεδία των οποίων η κατανόηση κι εννοιολογική ταξινόµηση να µην είναι καθόλου εύκολη υπόθεση. Γι’ αυτό το λόγο θα πρέπει να ορίσουµε αλγοριθµικές διαδικασίες α) κατ’ αρχήν για την ανίχνευση προβληµάτων σαν το πιο πάνω σε ένα σχεσιακό σχήµα, β) και στη συνέχεια για την ορθή αποδόµηση του σχήµατος. Στη διαδικασία της κανονικοποίηση υπάρχουν διάφορα στάδια, ή κανονικές µορφές, που ονοµάζονται πρώτη κανονική µορφή (first normal form – 1NF), δεύτερη κανονική µορφή (second normal form – 2NF), τρίτη κανονική µορφή (third normal form – 3NF), Boyce-Codd κανονική µορφή (BCNF), τέταρτη κανονική µορφή (fourth normal form – 4NF), πέµπτη κανονική µορφή (fifth normal form – 5NF). Πρέπει να σηµειωθεί πως δεν υπάρχει καµία σχεδιαστική ή θεωρητική υποχρέωση για κανονικοποίηση στο µέγιστο βαθµό. Η σχετική απόδοση στην επεξεργασία ερωτηµάτων πρέπει να λαµβάνεται υπόψη κι αυτό θα µπορούσε σε κάποιες περιπτώσεις να ερµηνευτεί ως απαίτηση για κανονικοποίηση µέχρι τη δεύτερη ή τρίτη κανονική µορφή. Στην πράξη η ανάγκη για κανονικοποίηση στην πλειοψηφία των περιπτώσεων εξαντλείται στην τρίτη κανονική µορφή ή στην Boyce-Codd κανονική µορφή (µια πιο περιοριστική εκδοχή της 3NF), και γι΄ αυτό στο παρόν κεφάλαιο θα παρουσιάσουµε τις πρώτες 4 βασικές κανονικές µορφές. Τέλος, πρέπει να επισηµανθεί πως η αποδόµηση των σχέσεων πρέπει πάντα να εξασφαλίζει την αντίστροφη διαδικασία, δηλαδή τη σύνθεση των αρχικών σχέσεων από τις κανονικοποιηµένες, αν αυτό χρειαστεί. Αν µπορούµε να µειώσουµε τον πλεονασµό χωρίς απώλειες ‘πληροφορίας’ από τα δεδοµένα µας, αυτό είναι δείγµα σωστού σχεδιασµού αφού συχνά η πλεονάζουσα πληροφορία µπορεί να εξαχθεί από τα υπόλοιπα δεδοµένα της βάσης µας. ∆ΡΑΣΤΗΡΙΟΤΗΤΑ 1-1 Μελετώντας την πληροφορία που αποτυπώνει η σχέση ΦΟΙΤΗΤΗΣ όπως αυτή αρχικά παρουσιάστηκε στην Ενότητα 1, προσπαθήστε να σχεδιάσετε µε βάση το µοντέλο οντοτήτων-συσχετίσεων µια βάση δεδοµένων η οποία θα συντηρεί την πληροφορία αυτή, µε βάση τις σχεδιαστικές αρχές που έχετε διδαχτεί. Στη συνέχεια εφαρµόστε τους κανόνες µετάβασης σε σχεσιακό σχήµα για το ∆ΟΣ που προτείνατε. Σχολιάστε το αποτέλεσµα, σε σχέση και µε τις διαδικασίες κανονικοποίησης όπως συνοπτικά παρουσιάστηκαν στην Ενότητα 1.

Page 6: BD Normalization

Εισαγωγή στην κανονικοποίηση Β∆ Β∆ – 25/8/08

6

2 Πλεονασµός ή επανάληψη; Στην προηγούµενη ενότητα είδαµε πως ένα σηµαντικό βήµα για την εξασφάλιση συνέπειας κι ορθότητας σε µια σχεσιακή βάση δεδοµένων είναι η εξάλειψη του πλεονασµού. Πότε όµως υπάρχει πλεονασµός;

Κωδ-ΣΕΠ Επώνυµο

123 ΓΕΩΡΓΙΟΥ

124 ΝΙΚΟΛΑΟΥ

125 ΒΑΣΙΛΕΙΟΥ

126 ΓΕΩΡΓΙΟΥ

Σχήµα 2.1 Παράδειγµα µη πλεονάζουσας επανάληψης

Χρειάζεται προσοχή για τη διάκριση του πλεονασµού (redundancy) από την απλή επανάληψη (duplication) µιας τιµής. Το Σχήµα 2.1 παρουσιάζει µια σχέση που διατηρεί στοιχεία µελών ΣΕΠ. Στο συγκεκριµένο στιγµιότυπο η τιµή ‘ΓΕΩΡΓΙΟΥ’ επαναλαµβάνεται στη στήλη ‘Επώνυµο’, ωστόσο δεν αποτελεί πλεονάζουσα πληροφορία (αφού αναφέρεται σε άλλο κωδικό ΣΕΠ, συνεπώς η διαγραφή της θα αποτελούσε απώλεια πληροφορίας).

Κωδ-ΘΕ Κωδ-ΣΕΠ Επώνυµο

ΠΛΗ11 123 ΓΕΩΡΓΙΟΥ

ΠΛΗ12 124 ΝΙΚΟΛΑΟΥ

ΠΛΗ10 123 ΓΕΩΡΓΙΟΥ

ΠΛΗ11 125 ΒΑΣΙΛΕΙΟΥ

Σχήµα 2.2 Παράδειγµα πλεονάζουσας επανάληψης – πίνακας ‘ΘΕ-ΣΕΠ’

Αντίθετα, το Σχήµα 2.2 που αποτυπώνει τις θεµατικές ενότητες για τις οποίες είναι υπεύθυνα τα µέλη ΣΕΠ, παρουσιάζει παράδειγµα πλεοναστικής επανάληψης, αφού η διαγραφή του επωνύµου του ΣΕΠ στην τρίτη εγγραφή δεν οδηγεί σε απώλεια πληροφορίας (συνάγεται από τα δεδοµένα της πρώτης γραµµής). Υπάρχουν άλλα παραδείγµατα πλεονασµού στο εν λόγω παράδειγµα; π.χ. η ενότητα ‘ΠΛΗ11’ φαίνεται να επαναλαµβάνεται στην 4η εγγραφή, αποτελεί ωστόσο η εγγραφή αυτή πλεονασµό; ∆ΡΑΣΤΗΡΙΟΤΗΤΑ 2-1 Ο επόµενος πίνακας απεικονίζει τις παραγγελίες ανταλλακτικών αυτοκινήτων από διάφορους πελάτες:

Κωδ-πελάτη Επώνυµο-πελ Κωδ-ανταλ Περιγραφή-ανταλλακτικού Ποσότητα

Π4 ΓΕΩΡΓΙΟΥ Α7 Φανάρι 1

Π4 ΓΕΩΡΓΙΟΥ Α2 Προφυλακτήρας 3

Π2 ΓΕΩΡΓΙΟΥ Α2 Προφυλακτήρας 3

Π8 ΒΑΣΙΛΕΙΟΥ Α4 Προφυλακτήρας 1

Ποιες από τις πιο κάτω περιπτώσεις αποτελούν παραδείγµατα πλεονασµού;

Page 7: BD Normalization

Εισαγωγή στην κανονικοποίηση Β∆ Β∆ – 25/8/08

7

α) οι δύο εµφανίσεις του κωδικού ‘Π4’ β) οι δύο εµφανίσεις του ‘ΓΕΩΡΓΙΟΥ’ στις γραµµές 1 και 2 γ) οι δύο εµφανίσεις του ‘ΓΕΩΡΓΙΟΥ’ στις γραµµές 1 και 3 δ) οι δύο εµφανίσεις του ‘Προφυλακτήρας’ στις γραµµές 4 και 3 ε) οι δύο εµφανίσεις της ποσότητας ‘1’ στις γραµµές 1 και 4

2.1 Εξάλειψη του πλεονασµού Μια ικανοποιητική λύση στο πρόβληµα του πλεονασµού που αντιµετωπίσαµε στο παράδειγµα του Σχήµατος 2.2 είναι η εφαρµογή της αποδόµησης (βλ. Σχήµα 2.3), η οποία δεν προκαλεί καµία απώλεια πληροφορίας για τη δοθείσα σχέση.

Κωδ-ΘΕ Κωδ-ΣΕΠ Κωδ-ΣΕΠ Επώνυµο

ΠΛΗ11 123 123 ΓΕΩΡΓΙΟΥ

ΠΛΗ12 124 124 ΝΙΚΟΛΑΟΥ

ΠΛΗ10 123 125 ΒΑΣΙΛΕΙΟΥ

ΠΛΗ11 125

Σχήµα 2.3 Εξάλειψη πλεονασµού µε αποδόµηση

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

2.2 Παραπλανητικές περιπτώσεις Στη συζήτηση που προηγήθηκε στις προηγούµενες ενότητες έµµεσα υπονοήθηκε ότι η ύπαρξη πλεονασµού µπορεί απλά να διαπιστωθεί µε οπτικό έλεγχο των περιεχοµένων µιας σχέσης/πίνακα. Αυτό ωστόσο δεν ισχύει πάντα στην πράξη, αφού οι εγγραφές ενός πίνακα υπόκεινται σε διάφορες τροποποιήσεις.

Κωδ-ΘΕ Κωδ-ΣΕΠ Επώνυµο

ΠΛΗ11 123 ΓΕΩΡΓΙΟΥ

ΠΛΗ12 124 ΝΙΚΟΛΑΟΥ

ΠΛΗ11 125 ΒΑΣΙΛΕΙΟΥ

Σχήµα 2.4 στιγµιότυπο του πίνακα ‘ΘΕ-ΣΕΠ’

Για παράδειγµα, θεωρείστε το στιγµιότυπο του πίνακα ΘΕ-ΣΕΠ του σχήµατος 2.4. Ο απλός οπτικός έλεγχος των συγκεκριµένων τιµών δεν αποκαλύπτει κάποιο πλεονασµό. Μάλιστα, αν ο πίνακας αυτός πρέπει να υπακούει στον κανόνα ‘κάθε µέλος ΣΕΠ µπορεί να είναι υπεύθυνο για το πολύ µία θεµατική ενότητα’, τότε µπορούµε µε βεβαιότητα να ισχυριστούµε πως ο πιο πάνω πίνακας δεν εµφανίζει πλεονασµό και συνεπώς δε χρειάζεται αποδόµηση. Αν ωστόσο ένα µέλος ΣΕΠ µπορεί να είναι υπεύθυνο για παραπάνω από µία ενότητες, τότε µια πιθανή προσθήκη της εγγραφής <’ΠΛΗ21’, 125, ‘ΒΑΣΙΛΕΙΟΥ’> θα δηµιουργούσε πλεονασµό. Μπορείτε να δείτε γιατί;

Page 8: BD Normalization

Εισαγωγή στην κανονικοποίηση Β∆ Β∆ – 25/8/08

8

2.3 Επιχειρησιακοί κανόνες (business rules) Με βάση την πιο πάνω ενότητα, είναι φανερό πως η δοµή και τα περιεχόµενα µιας σχέσης/πίνακα δεν είναι αρκετά για να συµπεράνει κανείς οτιδήποτε περί πλεονασµού. Αυτό που κανείς χρειάζεται να γνωρίζει είναι η ‘λογική’ και οι κανόνες της εφαρµογής που χαρακτηρίζουν τα δεδοµένα2. Ενδεικτικά παραδείγµατα τέτοιων κανόνων, χρήσιµα για την περίπτωσή µας είναι τα ακόλουθα:

1. κάθε µέλος ΣΕΠ έχει ένα µοναδικό κωδικό, και αντίστροφα (ουσιαστικά, το κατηγόρηµα ‘Κωδ-ΣΕΠ’ είναι κλειδί για την οντότητα ‘µέλος ΣΕΠ’)

2. κάθε µέλος ΣΕΠ µπορεί να είναι υπεύθυνο για περισσότερες της µιας θεµατικής ενότητας (π.χ. να διδάσκει σε πολλά τµήµατα)

3. κάθε θεµατική ενότητα µπορεί να διδάσκεται από περισσότερα του ενός µέλη ΣΕΠ (π.χ. σε πολλά διαφορετικά τµήµατα)

Η γνώση αυτών των κανόνων είναι σηµαντική, και συµπληρώνει το εννοιολογικό µοντέλο της βάσης δεδοµένων µε γνώµονα µια συγκεκριµένη εφαρµογή. Μόνο τότε ο σχεδιαστής είναι σε θέση να αναγνωρίσει τυχόν προβλήµατα και να προχωρήσει στη σχεδίαση ενός σχεσιακού σχήµατος χωρίς πλεονασµό. ∆ΡΑΣΤΗΡΙΟΤΗΤΑ 2-2 Έστω ο ακόλουθος επιχειρησιακός κανόνας: «κάθε εργαζόµενος σχετίζεται µε ένα µοναδικό µισθό». Ποιες από τις παρακάτω προτάσεις φαίνεται να είναι εννοιολογικά ορθές: 1. ο µισθός ενός εργαζόµενου δεν αλλάζει ποτέ 2. δε µας ενδιαφέρει µια ιστορική αποτύπωση των απολαβών ενός εργαζόµενου 3. όλοι οι εργαζόµενοι έχουν τον ίδιο µισθό

2 θυµηθείτε µια σχετική συζήτηση για τον τρόπο που κανείς καθορίζει του λόγους πληθικότητας σε ένα διάγραµµα ∆ΟΣ (βλ. κείµενο Ε∆Υ της ΠΛΗ11 µε όνοµα αρχείου ‘BD-notes1-ennoiologikos-sxediasmos.zip’)

Page 9: BD Normalization

Εισαγωγή στην κανονικοποίηση Β∆ Β∆ – 25/8/08

9

3 Πλειότιµα κατηγορήµατα Μια από τις βασικές ιδιότητες µιας κανονικοποιηµένης σχέσης/πίνακα είναι πως οι τιµές των πεδίων πρέπει να είναι ‘ατοµικές’, µε άλλα λόγια µια ορθή σχεσιακή σχεδίαση δε πρέπει να επιτρέπει πλειότιµα πεδία σχέσεων/πινάκων. Έστω πως ένα µέλος ΣΕΠ µπορεί να είναι υπεύθυνο για πολλές θεµατικές ενότητες. Στην περίπτωση πινάκων που επιτρέπουν πλειότιµα πεδία, αυτό θα µπορούσε να αποτυπωθεί όπως στο παράδειγµα του σχήµατος 3.1.

Κωδ-ΣΕΠ Επώνυµο ΘΕ

12 ΓΕΩΡΓΙΟΥ ΠΛΗ11, ΠΛΗ10, ΠΛΗ12

13 ΝΙΚΟΛΑΟΥ ΠΛΗ21

Σχήµα 3.1 Παράδειγµα πλειότιµων πεδίων

Η δοµή του πίνακα του σχήµατος 3.1 είναι αρκετά περίπλοκη, αφού ουσιαστικά οι τιµές του πεδίου ‘ΘΕ’ µπορεί να είναι οι ίδιες εµφωλιασµένοι πίνακες, όπως στην περίπτωση της πρώτης εγγραφής του πίνακα. Ένας τέτοιος σχεδιασµός πάσχει από διάφορα θεωρητικά και πρακτικά µειονεκτήµατα:

1. µια τέτοια µορφή αποτελεί µια ασύµµετρη αναπαράσταση συµµετρικών δεδοµένων. Τα δεδοµένα είναι συµµετρικά µε την έννοια πως ένα µέλος ΣΕΠ µπορεί να είναι υπεύθυνο για πολλές δυνητικά θεµατικές ενότητες, ενώ αντίστροφα µια θεµατική ενότητα µπορεί να διδάσκεται δυνητικά (σε διαφορετικά τµήµατα) από πολλά µέλη ΣΕΠ. Ωστόσο στο πιο πάνω παράδειγµα πίνακα ένα µέλος ΣΕΠ µπορεί να σχετιστεί µε µια λίστα θεµατικών ενοτήτων, το αντίστροφο όµως δεν ισχύει.

2. η επεξεργασία ερωτήσεων που αφορούν στο πεδίο ‘ΘΕ’ είναι πιο πολύπλοκη αφού κανείς πρέπει να καταφύγει στη χρήση του τελεστή like (σε κλασσικό σύστηµα διαχείρισης βάσεων δεδοµένων που δεν υποστηρίζει πλειότιµα πεδία, οπότε για την αναπαράσταση αυτών των πεδίων κανείς πρέπει να καταφύγει στη χρήση συµβολοσειρών)

3. οι εγγραφές του πίνακα έχουν διαφορετικό µήκος λόγω του διαφορετικών µεγεθών των τιµών του πεδίου ‘ΘΕ’. Αν για κάποιο λόγο οι εγγραφές έπρεπε να µετατραπούν σε σταθερού µήκους, θα χρειαζόταν συµπλήρωση ‘NULL’ τιµών

4. δε µπορεί να ορίσει κανείς θεωρητικά άνω όριο στο µήκος ενός πλειότιµου πεδίου – ωστόσο είναι ευκολότερη η αναπαράσταση κι υλοποίηση εγγραφών µη πεπερασµένου αριθµού παρά πεδίων µη πεπερασµένου µήκους

Ο πιο εύκολος τρόπος εξάλειψης των πλειότιµων πεδίων είναι µια ‘κάθετη’ αναδιάρθρωση του πίνακα µε την κατάλληλη επανάληψη τιµών (βλ. Σχήµα 3.2)

Κωδ-ΣΕΠ Επώνυµο ΘΕ

12 ΓΕΩΡΓΙΟΥ ΠΛΗ11

12 ΓΕΩΡΓΙΟΥ ΠΛΗ10

12 ΓΕΩΡΓΙΟΥ ΠΛΗ12

13 ΝΙΚΟΛΑΟΥ ΠΛΗ21

Σχήµα 3.2 Εξάλειψη πλειότιµων πεδίων – περίπτωση Α’

Page 10: BD Normalization

Εισαγωγή στην κανονικοποίηση Β∆ Β∆ – 25/8/08

10

Ωστόσο το αποτέλεσµα του σχήµατος 3.2 εµφανίζει συµπτώµατα πλεονασµού (το βλέπετε;). Έτσι, ένας δεύτερος τρόπος εξάλειψης πλειότιµων πεδίων (µάλιστα, επιτυγχάνοντας περισσότερα βήµατα στη διαδικασίας της πλήρους κανονικοποίησης) είναι η αποδόµηση του πίνακα σε δύο πίνακες, µε τέτοιο τρόπο ώστε το πλειότιµο πεδίο να αποτελέσει ξεχωριστό πίνακα και τα υπόλοιπα πεδία να παραµείνουν σε ένα δεύτερο πίνακα. Φυσικά, κανείς πρέπει να φροντίσει για τη σύνδεση των δύο πινάκων, έτσι το τελικό αποτέλεσµα είναι το ακόλουθο:

Κωδ-ΣΕΠ Επώνυµο ΘΕ ∆ιδάσκων-ΣΕΠ

12 ΓΕΩΡΓΙΟΥ ΠΛΗ11 12

13 ΝΙΚΟΛΑΟΥ ΠΛΗ10 12

ΠΛΗ12 12

ΠΛΗ21 13

Σχήµα 3.3 Εξάλειψη πλειότιµων πεδίων – περίπτωση Β’

Μια τρίτη περίπτωση εξάλειψης του πλειότιµου πεδίου είναι η επαναληπτική παράθεση ξεχωριστών πεδίων µε τα ίδια χαρακτηριστικά (βλ. Σχήµα 3.4)

Κωδ-ΣΕΠ Επώνυµο ΘΕ1 ΘΕ2 ΘΕ3

12 ΓΕΩΡΓΙΟΥ ΠΛΗ10 ΠΛΗ11 ΠΛΗ12

13 ΝΙΚΟΛΑΟΥ ΠΛΗ21

Σχήµα 3.4 Εξάλειψη πλειότιµων πεδίων – περίπτωση Γ’

Η αναπαράσταση του σχήµατος 3.4 παραµένει ιδιαίτερα πολύπλοκη κι εξακολουθεί να πάσχει από τα προβλήµατα που σχολιάστηκαν πιο πάνω (π.χ. προσπαθήστε να δώσετε σε sql ένα απλό ερώτηµα του τύπου «ποιο µέλος ΣΕΠ διδάσκει την ενότητα ΠΛΗ11», έχοντας να ανιχνεύσετε όλες τις πιθανές εµφανίσεις της τιµής ‘ΠΛΗ11’ και στα τρία υποψήφια πεδία....). Ωστόσο µια τέτοια αναπαράσταση θα ήταν χρήσιµη αν η επιχειρησιακή λογική της εφαρµογής διαφοροποιούσε εννοιολογικά τα τρία πεδία. Για παράδειγµα, αν κάθε µέλος ΣΕΠ µπορεί να είναι υπεύθυνο µόνο για ένα το πολύ τµήµα κάθε ακαδηµαϊκό έτος και η σηµασιολογία των πεδίων είναι η ακόλουθη

− το πεδίο ΘΕ1 αφορά στην ενότητα που διδάσκει το µέλος ΣΕΠ το τρέχον έτος,

− το πεδίο ΘΕ2 αφορά στην ενότητα που δίδασκε το µέλος ΣΕΠ το προηγούµενο έτος,

− το πεδίο ΘΕ3 αφορά στην ενότητα που δίδασκε το µέλος ΣΕΠ το προ-προηγούµενο έτος,

τότε η πιο πάνω αναπαράσταση είναι απολύτως έγκυρη. Τα προβλήµατα προκύπτουν αν η συγκεκριµένη εκδοχή επιλεγεί για την αποτύπωση πλειότιµων πεδίων χωρίς εννοιολογική διάκριση. ∆ΡΑΣΤΗΡΙΟΤΗΤΑ 3-1 Έστω οι ακόλουθοι πίνακες που αφορούν στους τίτλους σπουδών των εργαζόµενων µιας επιχείρησης και τις σχετικές ηµεροµηνίες κτήσης. Σχολιάστε τα σχετικά πλεονεκτήµατα/µειονεκτήµατα των δύο δοµών: 1. ΕΡΓΑΖΟΜΕΝΟΣ (ΑΜ, ΤΙΤΛΟΣ, ΗΜ/ΝΙΑ_ΚΤΉΣΗΣ)

Page 11: BD Normalization

Εισαγωγή στην κανονικοποίηση Β∆ Β∆ – 25/8/08

11

2. ΕΡΓΑΖΟΜΕΝΟΣ (ΑΜ, ΤΙΤΛΟΣ1, ΗΜ/ΝΙΑ1, ΤΙΤΛΟΣ2, ΗΜ/ΝΙΑ2, ΤΙΤΛΟΣ3, ΗΜ/ΝΙΑ3) Με βάση τη συζήτηση που προηγήθηκε µπορούµε να ορίσουµε πλέον τυπικά την πρώτη κανονική µορφή. Ορισµός Μια σχέση βρίσκεται στην πρώτη κανονική µορφή (1NF) αν και µόνο αν τα πεδία της περιέχουν µόνο ατοµικές τιµές. Η πρώτη κανονική µορφή είναι µια θεµελιώδεις µορφή οργάνωσης σχεσιακών δεδοµένων. Φυσικά αυτή η µορφή κανονικοποίησης δεν αρκεί για να εξασφαλίσει πλήρη αποφυγή των προβληµάτων του πλεονασµού (δες σχετική συζήτηση στην Ενότητα 1).

Page 12: BD Normalization

Εισαγωγή στην κανονικοποίηση Β∆ Β∆ – 25/8/08

12

4 Συναρτησιακές εξαρτήσεις (functional dependencies) Έστω µια σχέση R και δύο κατηγορήµατά της A, B. Το κατηγόρηµα Β της σχέσης εξαρτάται συναρτησιακά (ή απλά εξαρτάται) από το κατηγόρηµα Α αν και µόνο αν κάθε δυνητική τιµή του Α στη σχέση σχετίζεται µε µία µοναδική (δυνητικά και NULL) τιµή του Β. Ισοδύναµα, στην περίπτωση αυτή το Α καθορίζει συναρτησιακά (ή απλά καθορίζει) το Β, και ονοµάζεται ορίζουσα του Β. Πιο τυπικά, αν t1 και t2 είναι δύο πλειάδες της σχέσης R, τότε αν t1(A) = t2(A) τότε ισχύει t1(Β) = t2(Β). Και σ’ αυτή την περίπτωση, η ερµηνεία κι εφαρµογή του ορισµού αυτού δεν πρέπει να περιορίζεται σε συγκεκριµένα στιγµιότυπα µιας σχέσης πίνακα (δηλαδή σε ένα οπτικό έλεγχο των τιµών) αλλά στα δυνητικά στιγµιότυπα, εν τέλει δηλαδή στους επιχειρησιακούς κανόνες της εφαρµογής. Αν το κατηγόρηµα Α είναι ορίζουσα του Β, τότε αυτό συµβολίζεται ως ακολούθως

Α → Β (συµβολισµός συναρτησιακής εξάρτησης)

(εναλλακτικός συµβολισµός συναρτησιακής εξάρτησης)

Τα Α και Β µπορεί να είναι και σύνολα κατηγορηµάτων (περιλαµβάνουν τα µονοσύνολα). Σε αυτή την περίπτωση έχουµε τον ακόλουθο συµβολισµό

(C, D) → (E, F) ή ισοδύναµα,

Ένα προφανές συµπέρασµα είναι πως αν το Α είναι υποψήφιο κλειδί, τότε η εξάρτηση Α → Β ισχύει πάντα (γιατί;). Επίσης, αν Α → Β τότε (Α, Χ) → Β, για κάθε Χ. Μάλιστα λόγω αυτής της συνέπειας, θεωρώντας τα σύνολα κατηγορηµάτων Α, Β, ορίζουµε πως το Β εξαρτάται πλήρως συναρτησιακά (ή απλά εξαρτάται πλήρως) από το Α, αν το Β δεν εξαρτάται από κανένα υποσύνολο του Α. Έστω το ακόλουθο σχεσιακό σχήµα ΦΟΙΤΗΤΗΣ (ΑΜ, Ονοµ/µο, ∆ιεύθυνση) ΘΕΜΑΤΙΚΗ ΕΝΟΤΗΤΑ (Κωδ-ΘΕ, ΘΕ, ΣΕΠ, ΣΕΠ-email) ΕΓΓΡΑΦΗ (ΑΜ, Κωδ-ΘΕ) Μπορούµε να αναγνωρίσουµε τις ακόλουθες συναρτησιακές εξαρτήσεις: ΑΜ → Ονοµ/µο ΑΜ → ∆ιεύθυνση Κωδ-ΘΕ → ΘΕ Κωδ-ΘΕ → ΣΕΠ ΣΕΠ → ΣΕΠ-email

A B

C

D

E

F

Page 13: BD Normalization

Εισαγωγή στην κανονικοποίηση Β∆ Β∆ – 25/8/08

13

Για µια ακόµη φορά θα επισηµάνουµε τη σηµασία των επιχειρησιακών κανόνων στον καθορισµό των συναρτησιακών εξαρτήσεων. Για παράδειγµα, ο κανόνας πως κάθε θεµατική ενότητα διδάσκεται από ένα µέλος ΣΕΠ (απορρέει από την τέταρτη πιο πάνω εξάρτηση) ίσως να µην είναι πολύ ρεαλιστικός (π.χ. στην περίπτωση που µια ενότητα διδάσκεται σε πολλά τµήµατα, ο κανόνας αυτός δεν είναι καθόλου ρεαλιστικός). Κανείς µπορεί να αναρωτηθεί, ισχύουν οι ακόλουθες εξαρτήσεις; Ονοµ/µο → ΑΜ ΘΕ → Κωδ-ΘΕ Με βάση το στιγµιότυπο της Ενότητας 1, δε φαίνεται να παραβιάζονται οι κανόνες αυτοί κατ’ αρχήν. Ωστόσο, επειδή όπως έχουµε επισηµάνει το στιγµιότυπο ενός πίνακα δεν αρκεί γι’ αυτού του είδους τις κρίσεις, κανείς πρέπει να καταφύγει στην επιχειρησιακή λογική της εφαρµογής του. Με βάση αυτή λοιπόν, η πρώτη από τις δύο πιο πάνω εξαρτήσεις δε φαίνεται ρεαλιστική, αφού οι περιπτώσεις συνωνυµίας είναι δεδοµένες σε ένα µεγάλο πανεπιστηµιακό ίδρυµα και συνεπώς το ίδιο ονοµ/µο ενός φοιτητή δε µπορεί να δεσµεύει την αντιστοίχισή του µε ξεχωριστό αριθµό µητρώου. Η δεύτερη εξάρτηση ωστόσο φαίνεται πιο ρεαλιστική. Αυτή θα παραβιαζόταν αν το πρόγραµµα σπουδών επέτρεπε το ίδιο όνοµα για ενότητες διαφορετικών ετών, σε κάποιο γνωστικό αντικείµενο. Π.χ. θα µπορούσε να περιλαµβάνει τα «Μαθηµατικά για Η/Υ» µε κωδικό ΠΛΗ21, κι αντικείµενο θέµατα συνδυαστικής για το δεύτερο έτος σπουδών ενός προγράµµατος Πληροφορικής και τα «Μαθηµατικά για Η/Υ» µε κωδικό ΠΛΗ31, κι αντικείµενο θέµατα γραφοθεωρίας για το τρίτο έτος σπουδών. Σε µια τέτοια περίπτωση, η τελευταία εξάρτηση δε θα ίσχυε. Στις σχέσεις συναρτησιακής εξάρτησης ισχύει η µεταβατική ιδιότητα, δηλαδή αν το Α είναι η ορίζουσα του Β και το Β είναι η ορίζουσα του Γ, τότε το Α είναι η ορίζουσα και του Γ (το Α µεταβατικά καθορίζει το Γ, ενώ το Α άµεσα καθορίζει το Β). Σε τέτοιες περιπτώσεις ισχύει κι ο ακόλουθος συµβολισµός:

Α → Β → Γ ∆ΡΑΣΤΗΡΙΟΤΗΤΑ 4-1 Στο ακόλουθο παράδειγµα εξαρτήσεων, κάθε πελάτης χαρακτηρίζεται µονοσήµαντα από ένα κωδικό (Κωδ-πελάτη), το ίδιο και κάθε πωλητής (Κωδ-πωλητή). Κωδ-πελάτη → Κωδ-πωλητή → Ονοµ/µο πωλητή Ποιοί κανόνες είναι συµβατοί µε το πιο πάνω διάγραµµα; 1. ένας πελάτης µπορεί να εξυπηρετείται από πολλούς πωλητές 2. ένας πωλητής µπορεί να εξυπηρετεί πολλούς πελάτες 3. πολλοί πωλητές µπορεί να έχουν το ίδιο όνοµα 4. ένας πωλητής µπορεί να έχει πολλά ονόµατα

A Β Γ

Page 14: BD Normalization

Εισαγωγή στην κανονικοποίηση Β∆ Β∆ – 25/8/08

14

5 ∆εύτερη κανονική µορφή Η δεύτερη κανονική µορφή (second normal – 2NF) είναι ένα επίπεδο κανονικοποίησης που αντιµετωπίζει τις δυσλειτουργίες (θυµηθείτε τη συζήτηση στην Ενότητα 1) που δε µπορεί να χειριστεί η πρώτη κανονική µορφή. ∆ιαισθητικά, ο στόχος της δεύτερης κανονικής µορφής είναι να εξασφαλίσει πως µια σχέση/πίνακας αποτυπώνει πληροφορία που αφορά σε µια µόνο έννοια/οντότητα. Ορισµός Μια σχέση βρίσκεται στη δεύτερη κανονική µορφή (2NF) αν και µόνο αν α) είναι στην πρώτη κανονική µορφή και β) κάθε κατηγόρηµα που δε συµµετέχει σε κλειδί εξαρτάται συναρτησιακά πλήρως από κάθε υποψήφιο κλειδί της σχέσης. Έστω η σχέση ΦΟΙΤΗΤΗΣ (ΑΜ, Ονοµ/µο, Κωδ-ΘΕ, ΘΕ) και οι εξαρτήσεις ΑΜ → Ονοµ/µο, Κωδ-ΘΕ → ΘΕ Ας υποθέσουµε πως το ζευγάρι (ΑΜ, Κωδ-ΘΕ)είναι το µόνο υποψήφιο κλειδί (συνεπώς το πρωτεύον κλειδί). Η σχέση δε βρίσκεται σε δεύτερη κανονική µορφή γιατί τα κατηγορήµατα Ονοµ/µο, ΘΕ δεν εξαρτώνται πλήρως από το κλειδί (αφού το καθένα από αυτά εξαρτάται από υποσύνολο του κλειδιού). Κι αυτό γιατί στη γενική περίπτωση ένας φοιτητής µπορεί να δηλώσει πολλές δυνητικά θεµατικές ενότητες ενώ αντίστροφα κάθε θεµατική ενότητα µπορεί δυνητικά να επιλεγεί από πολλούς φοιτητές. Έτσι, η σχέση αυτή παρουσιάζει όλα τα ανεπιθύµητα χαρακτηριστικά και δυσλειτουργίες που παρουσιάστηκαν στην Ενότητα 1, λόγω ύπαρξης πλεονασµού. Η λύση είναι η αποδόµηση της σχέσης ΦΟΙΤΗΤΗΣ µε τρόπο που να αποµακρύνει τα κατηγορήµατα που δεν εξαρτώνται πλήρως από το κλειδί, δηµιουργώντας το πιο κάτω σχήµα (τα κλειδιά εµφανίζονται υπογραµµισµένα): ΦΟΙΤΗΤΗΣ (ΑΜ, Ονοµ/µο) ΘΕΜΑΤΙΚΗ ΕΝΟΤΗΤΑ (Κωδ-ΘΕ, ΘΕ) ΕΓΓΡΑΦΗ (ΑΜ, Κωδ-ΘΕ) Μπορείτε να επαληθεύσετε πως το πιο πάνω σχήµα είναι σε δεύτερη κανονική µορφή και παράλληλα απαλλαγµένο από τα προβλήµατα που παρουσιάστηκαν στην εισαγωγική ενότητα. Άρα, µήπως βρήκαµε οριστικά τη λύση για τα προβλήµατα του πλεονασµού στο σχεσιακό µοντέλο;

Page 15: BD Normalization

Εισαγωγή στην κανονικοποίηση Β∆ Β∆ – 25/8/08

15

6 Τρίτη κανονική µορφή Θεωρείστε την ακόλουθη σχέση ΘΕΜΑΤΙΚΗ ΕΝΟΤΗΤΑ (Κωδ-ΘΕ, ΘΕ, ΣΕΠ, ΣΕΠ-email) Έστω πως το κατηγόρηµα ‘ΘΕ’ δεν είναι µοναδικό για κάθε κωδικό ενότητας, συνεπώς το κατηγόρηµα ‘Κωδ-ΘΕ’ είναι το µοναδικό υποψήφιο κλειδί. Ισχύουν οι ακόλουθες εξαρτήσεις: Κωδ-ΘΕ → ΘΕ Κωδ-ΘΕ → ΣΕΠ (αυτή η εξάρτηση σηµαίνει πως µια ενότητα διδάσκεται

από ένα µόνο µέλος ΣΕΠ – το δεχόµαστε ως παραδοχή) ΣΕΠ → ΣΕΠ-email Λόγω µεταβατικότητας µπορούµε να συνάγουµε την εξάρτηση Κωδ-ΘΕ → ΣΕΠ-email Συνεπώς η πιο πάνω σχέση είναι σε δεύτερη κανονική µορφή (βλέπετε γιατί;). Ας δούµε λοιπόν το ακόλουθο στιγµιότυπο Κωδ-ΘΕ ΘΕ ΣΕΠ ΣΕΠ-email

ΠΛΗ11 ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ ∆ΕΛΗΣ [email protected]

ΠΛΗ12 ΜΑΘΗΜΑΤΙΚΑ Ι ∆ΕΛΗΣ [email protected]

ΠΛΗ10 ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ ∆ΕΛΗΣ [email protected]

Με βάση τις συναρτησιακές εξαρτήσεις (που υπό µία έννοια είναι µια µαθηµατική αποτύπωσης µιας κατηγορίας κανόνων επιχειρησιακής λογικής) ένα µέλος ΣΕΠ µπορεί να είναι υπεύθυνο για πολλές θεµατικές ενότητες. Άρα το πιο πάνω σχήµα είναι θεµιτό, βρίσκεται σε 2NF, ωστόσο εµφανίζει πλεονασµό σε σχέση µε το email του µέλους ΣΕΠ κι όλες συνεπώς τις ανεπιθύµητες παρενέργειες της εισαγωγικής ενότητας. Τι πήγε στραβά; Το πρόβληµα το προκαλεί η µεταβατική εξάρτηση Κωδ-ΘΕ → ΣΕΠ → ΣΕΠ-email καθώς αυτή είναι ένδειξη πως η σχέση αποτυπώνει πληροφορία για περισσότερες της µιας έννοιες (θεµατική ενότητα, µέλος ΣΕΠ). Η βασική δυσκολία είναι πως αφού ένα µέλος ΣΕΠ δυνητικά µπορεί να σχετίζεται µε πολλές θεµατικές ενότητες, αυτό οδηγεί στην πλεοναστική επανάληψη της πληροφορίας του email του. Με βάση αυτό το παράδειγµα, µπορούµε να ορίσουµε µια πιο περιοριστική κανονική µορφή από την 2NF. Ορισµός Μια σχέση βρίσκεται στην τρίτη κανονική µορφή (3NF) αν και µόνο αν α) είναι στη δεύτερη κανονική µορφή και β) κάθε κατηγόρηµα που δε συµµετέχει σε κλειδί εξαρτάται µη µεταβατικά από κάθε υποψήφιο κλειδί της σχέσης. 3

3 “The key, the whole key, and nothing but the key, so help me Codd" – αυτό είναι ένα δηµοφιλές λογοπαίγνιο της επιστηµονικής κοινότητας (διατυπώθηκε από τον Bill Kent, προς τιµήν του Edgar Codd, θεµελιωτή του σχεσιακού µοντέλου) που βοηθά στη διάκριση 2NF και 3NF. Στην πρώτη, κάθε (µη συµµετέχον σε κλειδί) πεδίο εξαρτάται από το κλειδί ενώ στη δεύτερη, κάθε τέτοιο πεδίο εξαρτάται από το κλειδί κι από τίποτα άλλο πέραν τούτου.

Page 16: BD Normalization

Εισαγωγή στην κανονικοποίηση Β∆ Β∆ – 25/8/08

16

Με βάση το νέο ορισµό, µπορούµε να αποδοµήσουµε την αρχική σχέση ως ακολούθως (τα κλειδιά υπογραµµισµένα): ΘΕΜΑΤΙΚΗ ΕΝΟΤΗΤΑ (Κωδ-ΘΕ, ΘΕ, ΣΕΠ) ΜΕΛΟΣ-ΣΕΠ (ΣΕΠ, ΣΕΠ-email) Και οι δύο πιο πάνω σχέσεις είναι σε 3NF, είµαι µια ακόµη αποδόµηση είναι δυνατή (όχι όµως κι υποχρεωτική αφού η συσχέτιση µεταξύ ΘΕ-ΣΕΠ δεν είναι πολλά-προς-πολλά): ΘΕΜΑΤΙΚΗ ΕΝΟΤΗΤΑ (Κωδ-ΘΕ, ΘΕ) ΜΕΛΟΣ-ΣΕΠ (ΣΕΠ, ΣΕΠ-email) ∆Ι∆ΑΣΚΕΙ (Κωδ-ΘΕ, ΣΕΠ) (προσέξτε, η επιλογή κλειδιού, µε βάση τους

επιχειρησιακούς κανόνες, εξασφαλίζει πως ένα µέλος ΣΕΠ µπορεί να σχετίζεται µε πολλές θεµατικές ενότητες αλλά υποχρεώνει κάθε ενότητα να έχει ένα µόνο µέλος ΣΕΠ ως υπεύθυνο)

Η τρίτη κανονική µορφή είναι σε µεγάλο βαθµό επαρκής για την πλειοψηφία των σχεσιακών βάσεων που θα σχεδιάσετε ή θα συναντήσετε και κατά κανόνα είναι το αποτέλεσµα µια ορθής σχεδίασης σε ∆ΟΣ και στη συνέχεια µετάβασης σε σχεσιακό επίπεδο. Ωστόσο, υπάρχει µια ειδική περίπτωση που µπορεί να προκύψουν δυσλειτουργίες σαν αυτές της εισαγωγικής ενότητας ακόµη και σε σχέσεις που βρίσκονται σε 3NF. Τι γίνεται για παράδειγµα αν µια σχέση έχει σύνθετα υποψήφια κλειδιά και στη δεξιά πλευρά των εξαρτήσεων υπάρχουν πεδία που συµµετέχουν σε κλειδί?

Page 17: BD Normalization

Εισαγωγή στην κανονικοποίηση Β∆ Β∆ – 25/8/08

17

7 Κανονική µορφή Boyce-Codd Θεωρείστε την ακόλουθη σχέση: ΕΓΓΡΑΦΗ-ΦΟΙΤΗΤΗ (ΑΜ, Ονοµ/µο, Κωδ-ΘΕ, ΘΕ, Ηµ/νια-εγγραφής) Έστω επίσης πως η σχέση έχει τα ακόλουθα υποψήφια κλειδιά: (ΑΜ, Κωδ-ΘΕ) (ΑΜ, ΘΕ) (Ονοµ/µο, Κωδ-ΘΕ) (Ονοµ/µο, ΘΕ) Προφανώς µε βάση αυτές τις παραδοχές, θεωρήσαµε πως το όνοµα µιας θεµατικής ενότητας την καθορίζει µονοσήµαντα, το ίδιο και το ονοµ/µο ενός φοιτητή καθορίζει µονοσήµαντα το φοιτητή. Συνεπώς ισχύουν οι ακόλουθες εξαρτήσεις: Κωδ-ΘΕ → ΘΕ ΑΜ → Ονοµ/µο Προφανώς η σχέση είναι σε 3NF (οι δύο πιο πάνω εξαρτήσεις δε παραβιάζουν την τρίτη κανονική µορφή αφού τα πεδία ‘ΘΕ’ και ‘Ονοµ/µο’ συµµετέχουν σε υποψήφιο κλειδί). Επίσης παρατηρούµε τα εξής:

− υπάρχουν περισσότερα του ενός υποψήφια κλειδιά − τα υποψήφια κλειδιά της σχέσης είναι σύνθετα − τα υποψήφια κλειδιά έχουν επικαλύψεις πεδίων

Σε αυτή την περίπτωση, ενώ έχουµε την ένδειξη πως η σχέση αφορά σε µια συσχέτιση δύο εννοιών που καθορίζεται από τα υποψήφια κλειδιά (συσχέτιση µεταξύ φοιτητή και θεµατικής ενότητας), υπάρχουν πεδία τα οποία δεν αφορούν απόλυτα µόνο την έννοια στην οποία αφορά η σχέση. Έτσι, ενώ η σχέση αφορά στη συσχέτιση δύο οντοτήτων, το να περιέχονται στη σχέση δύο κατηγορήµατα για κάθε οντότητα (ακόµη κι αν αυτά καθορίζουν µονοσήµαντα την οντότητα), παραπέµπει σε κάποιας µορφής πλεονασµό. Ο ενδεδειγµένος τρόπο θα ήταν οι «έξτρα» πληροφορίες αυτές για κάθε οντότητα να παρέχονταν σε ξεχωριστές σχέσεις. Έτσι για παράδειγµα εύκολα µπορούµε να διαπιστώσουµε πως η πιο πάνω σχέση υποφέρει από τα προβλήµατα του πλεονασµού, παρατηρώντας το στιγµιότυπο του σχήµατος 7.1 (π.χ. επανάληψη του ονόµατος της θεµατικής ενότητας). ΑΜ Ονοµ/µο Κωδ-ΘΕ ΘΕ Ηµ/νια-εγγραφής

123 ΓΕΩΡΓΙΟΥ ΝΙΚΟΣ ΠΛΗ11 ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ 2/9/2008

123 ΓΕΩΡΓΙΟΥ ΝΙΚΟΣ ΠΛΗ12 ΜΑΘΗΜΑΤΙΚΑ Ι 2/9/2008

134 ΝΙΚΟΛΑΟΥ ΓΙΩΡΓΟΣ ΠΛΗ11 ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ 1/9/2008

134 ΝΙΚΟΛΑΟΥ ΓΙΩΡΓΟΣ ΠΛΗ12 ΜΑΘΗΜΑΤΙΚΑ Ι 1/9/2008

Σχήµα 7.1 Παράδειγµα πλεονασµού σε 3NF σχέση

Στη συνέχεια παρουσιάζουµε τον ορισµό µιας ελαφρά πιο αυστηρής κανονικής µορφής.

Page 18: BD Normalization

Εισαγωγή στην κανονικοποίηση Β∆ Β∆ – 25/8/08

18

Ορισµός Μια σχέση R βρίσκεται στην κανονική µορφή Boyce-Codd (BCNF) αν και µόνο αν όποτε υπάρχει εξάρτηση της µορφής Χ→Α στην R, και το Α δεν ανήκει στο Χ, τότε το Χ είναι υποψήφιο κλειδί. Μια αποδόµηση που αναιρεί τα πιο πάνω προβλήµατα και καθιστά το προκύπτον σχήµα σε BCNF είναι η ακόλουθη (τα κλειδιά υπογραµµισµένα): ΦΟΙΤΗΤΗΣ (ΑΜ, Ονοµ/µο) ΘΕΜΑΤΙΚΗ-ΕΝΟΤΗΤΑ (Κωδ-ΘΕ, ΘΕ) ΕΓΓΡΑΦΗ (ΑΜ, Κωδ-ΘΕ, Ηµ/νια-εγγραφής) Όπως είναι φανερό, κάθε σχέση από τις πιο πάνω αναφέρεται σε µια συγκεκριµένη έννοια (τους φοιτητές, τις θεµατικές ενότητες και τη συσχέτιση µεταξύ των δύο, αντίστοιχα). Το σχήµα πλέον δε χαρακτηρίζεται από καµία δυσλειτουργία εξαιτίας πλεονασµού. ∆ΡΑΣΤΗΡΙΟΤΗΤΑ 7-1 Η δραστηριότητα έχει σαν στόχο να εµβαθύνει την κατανόησή σας στις διαφορές µεταξύ 3NF και BCNF. Έστω η σχέση ΣΙΝΕΜΑ (ΤΑΙΝΙΑ, ΘΕΑΤΡΟ, ΠΟΛΗ) η οποία διατηρεί την πληροφορία του ποια ταινία παίζεται σε ποιό κινηµατογραφικό θέατρο και ποιά πόλη, κάθε στιγµή. Θεωρώντας πως µια ταινία σε µια πόλη δε µπορεί να παίζεται σε παραπάνω από ένα θέατρα, και πως το όνοµα του κινηµατογράφου καθορίζει µονοσήµαντα και την πόλη (κατά κάποιο τρόπο δηλαδή, αν αναφερόµαστε σε θέατρο-αλυσίδα η πόλη θα φαίνεται και στο όνοµα του κινηµατογράφου) σας ζητείται να: 1. βρείτε τα υποψήφια κλειδιά της σχέσης 2. βρείτε τις συναρτησιακές εξαρτήσεις 3. δείξτε πως η σχέση είναι σε 3NF αλλά όχι σε BCNF 4. σχολιάστε τη διαφορά 3NF και BCNF

Page 19: BD Normalization

Εισαγωγή στην κανονικοποίηση Β∆ Β∆ – 25/8/08

19

8 Αποδόµηση και ιδιότητες Μέχρι τώρα, η προσέγγισή µας στον έλεγχο ενός σχεσιακού σχήµατος αποτελείται από δύο βήµατα: α) η εξέταση για το αν το σχήµα βρίσκεται σε κάποια κανονική µορφή, κι αν όχι, β) η αποδόµηση του σχήµατος µε τρόπο που το προκύπτον σχήµα να ικανοποιεί τους περιορισµούς της εν λόγω µορφής. Το αποτέλεσµα της αποδόµησης µιας σχέσης R αποτελείται από ένα σύνολο προβολών (projection, µε την έννοια της σχεσιακής άλγεβρας) της R που µάλιστα έχουν κοινά πεδία (διαφορετικά η πληροφορία που διατηρεί τη σύνδεση µεταξύ αυτών των σχέσεων και δίνει τη δυνατότητα σύνθεσης της R θα έχει χαθεί). Προφανώς µια τυχαία αποδόµηση δεν εγγυάται την ‘αποκατάσταση’ του αρχικού σχήµατος. Οι επιθυµητές ιδιότητες µιας αποδόµησης είναι οι ακόλουθες:

8.1 ∆ιατήρηση των κατηγορηµάτων Είναι µια προφανής ιδιότητα, αφού το προκύπτον σχήµα πρέπει να αποτυπώνει την πληροφορία που περιέχει το αρχικό σχήµα.

8.2 Άρση του πλεονασµού Μια ακόµη προφανής ιδιότητα, αφού όλη η θεωρία της κανονικοποίησης στηρίζεται στην ανάγκη εξάλειψης του πλεονασµού και αρνητικών συνεπειών του.

8.3 Αποδόµηση χωρίς απώλεια σύνδεσης Ας θεωρήσουµε το επόµενο σχήµα το οποίο παρέχει πληροφορίες των εγγραφών των φοιτητών σε θεµατικές ενότητες: ΕΓΓΡΑΦΗ (ΑΜ, Κωδ-ΘΕ, Ηµ/νια, Αίθουσα, Μέλος-ΣΕΠ) Έστω επίσης η ακόλουθη αποδόµηση: ΕΓΓΡΑΦΗ1 (ΑΜ, Κωδ-ΘΕ, Ηµ/νια) ΕΓΓΡΑΦΗ2 (Ηµ/νια, Αίθουσα, Μέλος-ΣΕΠ) Η εν λόγω αποδόµηση έχει διάφορα προβλήµατα. Κατ’ αρχήν ας θεωρήσουµε το επόµενο στιγµιότυπο της σχέσης ΕΓΓΡΑΦΗ: ΑΜ Κωδ-ΘΕ Ηµ/νια Αίθουσα Μέλος-ΣΕΠ

123 ΠΛΗ11 2/9/2008 ΑΑ-21 ∆ΕΛΗΣ

123 ΠΛΗ12 2/9/2008 ΑΑ-21 ΓΕΩΡΓΙΟΥ

134 ΠΛΗ11 1/9/2008 ΑΑ-21 ∆ΕΛΗΣ

1351 ΠΛΗ21 2/9/2008 ΠΑ-2 ΝΙΚΟΛΑΟΥ

138 ΠΛΗ22 5/9/2008 ΠΑ-6 ΑΝΤΩΝΙΟΥ

Τα στιγµιότυπα του σχήµατος της αποδόµησης είναι τα ακόλουθα:

Page 20: BD Normalization

Εισαγωγή στην κανονικοποίηση Β∆ Β∆ – 25/8/08

20

ΑΜ Κωδ-ΘΕ Ηµ/νια

123 ΠΛΗ11 2/9/2008

123 ΠΛΗ12 2/9/2008

134 ΠΛΗ11 1/9/2008

1351 ΠΛΗ21 2/9/2008

138 ΠΛΗ22 5/9/2008

Ηµ/νια Αίθουσα Μέλος-ΣΕΠ

2/9/2008 ΑΑ-21 ∆ΕΛΗΣ

2/9/2008 ΑΑ-21 ΓΕΩΡΓΙΟΥ

1/9/2008 ΑΑ-21 ∆ΕΛΗΣ

2/9/2008 ΠΑ-2 ΝΙΚΟΛΑΟΥ

5/9/2008 ΠΑ-6 ΑΝΤΩΝΙΟΥ

Έστω πως θέλουµε τώρα να ανακτήσουµε τους αριθµούς µητρώου των φοιτητών που επιβλέπονται από το µέλος ΣΕΠ ‘ΝΙΚΟΛΑΟΥ’. Προφανώς θα χρειαστεί να εφαρµόσουµε την πράξη της φυσικής σύνδεσης στις σχέσεις ΕΓΓΡΑΦΗ1, ΕΓΓΡΑΦΗ2 και το αποτέλεσµα θα είναι οι εξής 11 εγγραφές: ΑΜ Κωδ-ΘΕ Ηµ/νια Αίθουσα Μέλος-ΣΕΠ

123 ΠΛΗ11 2/9/2008 ΑΑ-21 ∆ΕΛΗΣ

123 ΠΛΗ11 2/9/2008 ΑΑ-21 ΓΕΩΡΓΙΟΥ

123 ΠΛΗ11 2/9/2008 ΠΑ-2 ΝΙΚΟΛΑΟΥ

123 ΠΛΗ12 2/9/2008 ΑΑ-21 ∆ΕΛΗΣ

123 ΠΛΗ12 2/9/2008 ΑΑ-21 ΓΕΩΡΓΙΟΥ

123 ΠΛΗ12 2/9/2008 ΠΑ-2 ΝΙΚΟΛΑΟΥ

1351 ΠΛΗ21 2/9/2008 ΑΑ-21 ∆ΕΛΗΣ

1351 ΠΛΗ21 2/9/2008 ΑΑ-21 ΓΕΩΡΓΙΟΥ

1351 ΠΛΗ21 2/9/2008 ΠΑ-2 ΝΙΚΟΛΑΟΥ

134 ΠΛΗ11 1/9/2008 ΑΑ-21 ∆ΕΛΗΣ

138 ΠΛΗ22 5/9/2008 ΠΑ-6 ΑΝΤΩΝΙΟΥ

Το αποτέλεσµα περιλαµβάνει µερικές ‘περίεργες’ εγγραφές που δεν υπήρχαν στο αρχικό στιγµιότυπο. Εξ’ αιτίας αυτών των επιπλέον εγγραφών, δε µπορούµε πια να ανακτήσουµε την πληροφορία των φοιτητών που επιβλέπει το µέλος-ΣΕΠ ‘ΝΙΚΟΛΑΟΥ’. Ένα τέτοιο παράδειγµα αποδόµησης ονοµάζεται αποδόµηση µε απώλεια σύνδεσης (lossy join decomposition). Μια αποδόµηση χωρίς απώλεια σύνδεσης (lossless join decomposition) είναι αυτή που εγγυάται πως το αρχικό στιγµιότυπο είναι πλήρως ανακτήσιµο από το προκύπτον σχήµα µετά την αποδόµηση. Προφανώς, ο µόνος τρόπος ανάκτησης είναι µέσω της πράξης της φυσικής σύνδεσης (γιατί;). Ας δούµε όµως πιο προσεκτικά γιατί στο πιο πάνω παράδειγµα είχαµε απώλειες πληροφορίας. Το κοινό κατηγόρηµα στις δύο σχέσεις που προέκυψαν µετά την αποδόµηση είναι το πεδίο ‘Ηµ/νια’. Το πεδίο αυτό δε παίρνει µοναδικές τιµές, δηλαδή πολλές εγγραφές µπορούν να συµβούν την ίδια ηµεροµηνία κι αυτή ουσιαστικά είναι

Page 21: BD Normalization

Εισαγωγή στην κανονικοποίηση Β∆ Β∆ – 25/8/08

21

η αιτία του παράδοξου (µε την έννοια πως αυτό δε ταυτίζεται µε την αρχική σχέση) αποτελέσµατος της φυσικής σύνδεσης των δύο τελικών σχέσεων. Ορισµός Η αποδόµηση µιας σχέσης R σε ένα σύνολο σχέσεων R1, R2, ..., Rn ονοµάζεται ‘αποδόµηση χωρίς απώλειες σύνδεσης’ αν και µόνο αν η σχέση R είναι το αποτέλεσµα της φυσικής σύνδεσης των σχέσεων R1, R2, ..., Rn. Πρέπει να σηµειωθεί πως κατά την αποδόµηση µε εφαρµογή της πράξης της προβολής, είναι δυνατό να προκύψουν σχέσεις που περιέχουν πάνω από µία ίδιες πλειάδες, οι οποίες φυσικά διαγράφονται εφόσον µε βάση το σχεσιακό µοντέλο µια σχέση είναι ένα σύνολο το οποίο εξ’ ορισµού δεν έχει διπλότιµα µέλη.

8.4 ∆ιατήρηση των εξαρτήσεων Η τελευταία αυτή ιδιότητα είναι σηµαντική, ωστόσο όχι πάντα επιτεύξιµη4. Έστω η σχέση R(A, B, C, D) η οποία χαρακτηρίζεται από ένα σύνολο εξαρτήσεων F που περιλαµβάνουν και τις ακόλουθες: Α → B, Α → C Aν αποδοµήσουµε τη σχέση R στις σχέσεις R1(A, B), R2(B, C, D), η εξάρτηση Α → C δε µπορεί να ελεγχθεί κοιτώντας µόνο µία από τις σχέσεις που προκύπτουν. Ένας τέτοιος ‘ατοµικός’ έλεγχος για τη διατήρηση των εξαρτήσεων µετά από µια διαδικασία αποδόµησης είναι επιθυµητός, ώστε να αποφεύγεται η πολυπλοκότητα του ελέγχου µε χρήση συνδέσεων. Ακόµη κι αν το σύνολο F’ των εξαρτήσεων που προκύπτουν ατοµικά από τις σχέσεις R1, R2, ..., Rn, ως αποτέλεσµα της αποδόµησης της R, είναι διαφορετικό από το σύνολο F των εξαρτήσεων της R, η διατήρηση των εξαρτήσεων ως ιδιότητα ισχύει αν F και F’ είναι ισοδύναµα (δηλαδή το F προκύπτει από το F’ µε εφαρµογή του κανόνα της µεταβατικότητας). Έστω η επόµενη σχέση, ΦΟΙΤΗΤΗΣ (ΑΜ, Μέλος-ΣΕΠ, Αρ_γραφείου) και οι ακόλουθες εξαρτήσεις: ΑΜ → Μέλος-ΣΕΠ ΑΜ → Αρ_γραφείου Μέλος-ΣΕΠ → Αρ_γραφείου Αποδοµώντας την ΦΟΙΤΗΤΗΣ στο ακόλουθο 3NF σχήµα ΦΟΙΤΗΤΗΣ1 (ΑΜ, Μέλος-ΣΕΠ) ΦΟΙΤΗΤΗΣ2 (ΑΜ, Αρ_γραφείου) πλέον δε µπορούµε να εκµαιεύσουµε την εξάρτηση Μέλος-ΣΕΠ → Αρ_γραφείου από τις εξαρτήσεις των δύο τελικών σχέσεων (ΑΜ → Μέλος-ΣΕΠ, ΑΜ → Αρ_γραφείου).

4 Η διατήρηση των συναρτησιακών εξαρτήσεων δεν είναι πάντα δυνατή στην Boyce-Codd κανονική µορφή (βλ. ∆ραστηριότητα 7.1), ενώ αντίθετα είναι δυνατή στην 3NF κανονική µορφή. Και οι δύο κανονικές µορφές ωστόσο µπορούν να εξασφαλίσουν αποδόµηση χωρίς απώλειες σύνδεσης.

Page 22: BD Normalization

Εισαγωγή στην κανονικοποίηση Β∆ Β∆ – 25/8/08

22

∆ΡΑΣΤΗΡΙΟΤΗΤΑ 8-1 Με βάση το παράδειγµα της Ενότητας 8.4, δώστε ένα τρόπο αποδόµησης σε 3NF που να διατηρεί τις εξαρτήσεις. Σχολιάστε την απάντησή σας.

Page 23: BD Normalization

Εισαγωγή στην κανονικοποίηση Β∆ Β∆ – 25/8/08

23

9 Αποδόµηση σε BCNF Σε αυτή την ενότητα θα παρουσιάσουµε ένα τρόπο αποδόµησης ενός σχεσιακού σχήµατος που οδηγεί σε BCNF µορφή, σε πλήρη κανονικοποίηση δηλαδή. Η πρώτη µέθοδος που θα παρουσιάσουµε είναι πολύ απλή και µάλιστα εύκολα εφαρµόσιµη µε βάση τις εξαρτήσεις του σχήµατος και µόνο. Στην συντριπτική πλειοψηφία των περιπτώσεων η µέθοδος αυτή οδηγεί σε σωστά κανονικοποιηµένο σχήµα5. Στη συνέχεια θα παρουσιάσουµε και µια δεύτερη µέθοδο που εξασφαλίζει σωστά αποτελέσµατα κανονικοποίησης σε κάθε περίπτωση. Μέθοδος Α’ Με βάση αυτή την προσέγγιση, κάθε ορίζουσα (αριστερό µέλος εξάρτησης) που δεν είναι υποψήφιο κλειδί, γίνεται κλειδί σε νέα σχέση στην οποία προσθέτουµε ως πεδία τα εξαρτόµενα κατηγορήµατα της ορίζουσας. Τα υποψήφια κλειδιά του παλιού πίνακα µαζί µε τα αµέσως (κι όχι µεταβατικά) εξαρτώµενα πεδία τους θα παραµείνουν στο συµπτυγµένο πλέον παλιό πίνακα. Αυτή η διαδικασία µπορεί να εφαρµοστεί επαναληπτικά µέχρι το αποτέλεσµα να είναι σε BCNF µορφή. Μάλιστα, είναι πολύ εύκολο να εφαρµόσει κανείς τη µέθοδο αυτή αλγοριθµικά µε ‘σχηµατικό’ τρόπο, λαµβάνοντας υπόψη µόνο τις συναρτησιακές εξαρτήσεις του αρχικού σχήµατος. Στο Σχήµα 9.1 η διαδικασία αυτή εφαρµόζεται επαναληπτικά µε γραφικό τρόπο και µάλιστα σε δύο ισοδύναµες εκδοχές, στο σχήµα R(Α,B,C,D,Ε,F,G) δίνοντας τελικά το αποτέλεσµα R1(Α,B,F) R2(Α,C) R3(C,D,Ε) R4(F,G) Μέθοδος Β’ Η µέθοδος αυτή είναι επίσης επαναληπτική και στηρίζεται στην εξέταση των συναρτησιακών εξαρτήσεων. Για κάθε σχέση R και για κάθε εξάρτηση της µορφής (µάλιστα προσθέτουµε στο δεξί µέρος όλα τα Βi, i = 1...ν, τα οποία εξαρτώνται από το (Α1, Α2, ..., Αν))

(Α1, Α2, ..., Αν) → (Β1, Β2, ..., Βν) η οποία παραβιάζει την BCNF µορφή (δηλαδή το (Α1, Α2, ..., Αν) δεν είναι υποψήφιο κλειδί) δηµιουργούµε νέα σχέση R’ µε τα κατηγορήµατα Α1, Α2, ... Αν, Β1, Β2, ... Βν. Φυσικά τα Αi, αποτελούν το κλειδί της νέας σχέσης. Στη σχέση R πλέον παραµένουν τα αρχικά κατηγορήµατα πλην των Βi. Γραφικά αυτό φαίνεται στο Σχήµα 9.2, όπου η αρχική σχέση R αποδοµείται σε δύο νέες σχέσεις (οι δύο πλήρεις κύκλοι) που διαµορφώνονται από µια τριµερή διαµέριση των αρχικών κατηγορηµάτων.

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

Page 24: BD Normalization

Εισαγωγή στην κανονικοποίηση Β∆ Β∆ – 25/8/08

24

Σχήµα 9.1 παράδειγµα BCNF αποδόµησης – µέθοδος Α’ ∆ΡΑΣΤΗΡΙΟΤΗΤΑ 9-1 Εφαρµόστε τη δεύτερη µέθοδο αποδόµησης σε όλες τις περιπτώσεις σχηµάτων µε πλεονασµό που συναντήσαµε µέχρι τώρα.

A

B

C

F

D

E

G

A

B

F

G

A C

D

EB

F

G

CA

C

D

E

A

B

F

F

G

A C

D

E

B

F

CA

C

D

E

F

G

A

B

F

A C

C

D

EF G

Page 25: BD Normalization

Εισαγωγή στην κανονικοποίηση Β∆ Β∆ – 25/8/08

25

∆ΡΑΣΤΗΡΙΟΤΗΤΑ 9-2 Εφαρµόστε τη δεύτερη µέθοδο αποδόµησης στο παράδειγµα του Σχήµατος 9.1.

Σχήµα 9.2 γραφικό παράδειγµα BCNF αποδόµησης – µέθοδος Β’

9.1 Έλεγχος για αποδόµηση χωρίς απώλειες σύνδεσης Κλείνοντας αυτή την ενότητα, θα παρουσιάσουµε ένα απλό τρόπου ελέγχου για το αν µια αποδόµηση δεν παρουσιάζει απώλειες σύνδεσης, αφήνοντας στον αναγνώστη τον προβληµατισµό του γιατί η συγκεκριµένη τεχνική ‘δουλεύει’:

1. Έστω η σχέση R 2. Έστω F το σύνολο όλων των συναρτησιακών εξαρτήσεων πάνω στην R και

F’ το σύνολο όλων των εξαρτήσεων που µπορούν να παραχθούν από το F (µε βάση την ιδιότητα της µεταβατικότητας)

3. Έστω R1 και R2 µια αποδόµηση της R 4. Η αποδόµηση δεν παρουσιάζει απώλειες σύνδεσης αν τουλάχιστο µία από τις

ακόλουθες εξαρτήσεις ανήκει στο F’ R1 ∩ R2 → R1

R1 ∩ R2 → R2 ∆ΡΑΣΤΗΡΙΟΤΗΤΑ 9-3 Αποδείξτε πως η µέθοδος αποδόµησης που παρουσιάστηκε στο παράδειγµα του Σχήµατος 9.1 δε χαρακτηρίζεται από απώλειες σύνδεσης.

Αi Bi λοιπά πεδία

Page 26: BD Normalization

Εισαγωγή στην κανονικοποίηση Β∆ Β∆ – 25/8/08

26

Σχολιασµός/επίλυση των δραστηριοτήτων ∆ΡΑΣΤΗΡΙΟΤΗΤΑ 1-1 Στη µέχρι τώρα µελέτη σας του αντικειµένου των Βάσεων ∆εδοµένων, στα πλαίσια της ενότητας ΠΛΗ-11, διδαχτήκατε την προσέγγιση εννοιολογικής µοντελοποίησης µιας βάσης δεδοµένων µε εφαρµογή του µοντέλου Οντοτήτων-Συσχετίσεων και στη συνέχεια ένα σύνολο κανόνων µετάβασης από ένα εννοιολογικό σχήµα σε ένα σχεσιακό σχήµα. Αυτή η µεθοδολογία, αν ακολουθηθεί σωστά, εξασφαλίζει πως κάθε δοµικό στοιχείο του µοντέλου Ο-Σ αφορά σε µία µόνο έννοια (οντότητα ή συσχέτιση) και πως τελικά στο προκύπτον σχεσιακό σχήµα κάθε σχέση θα εξακολουθεί να αφορά σε µία µόνο έννοια, αντίστοιχα, και κατά πάσα πιθανότητα το τελικό σχεσιακό σχήµα θα είναι απαλλαγµένο από προβλήµατα πλεονασµού. Συνεπώς, η εφαρµογή αυτής της top-down προσέγγισης στη σχεδίαση βάσεων δεδοµένων έχει σαν αποτέλεσµα µεταξύ άλλων και την εξασφάλιση σηµαντικών επιθυµητών ιδιοτήτων του τελικού σχεδίου της βάσης (του σχεσιακού σχήµατος). Φυσικά, λάθη ή παραλείψεις µπορεί πάντα να προκύψουν στη διαδικασία της µοντελοποίησης, ειδικά όταν η υπό σχεδίαση βάση δεδοµένων είναι µεγάλη ή πολύπλοκη, ή αν για οποιοδήποτε λόγο έχει υιοθετηθεί µια προσέγγιση διαφορετική από την top-down λογική της µοντελοποίησης µε ∆ΟΣ. Στον αντίποδα για παράδειγµα των όσων έχετε διδαχτεί, ας φανταστούµε την υπερβολικά ακραία περίπτωση όπου όλη η πληροφορία που διαχειρίζεται ένα συγκεκριµένο περιβάλλον µοντελοποιείται σαν µια µοναδική σχέση, η καθολική σχέση (universal relation) που περιλαµβάνει όλα τα δεδοµένα της συγκεκριµένης βάσης (κατά µία έννοια, η σύνδεση όλων των επιµέρους σχέσεων µιας καλύτερα οργανωµένης βάσης). Σε αυτή την περίπτωση υπάρχουν αναµενόµενα προβλήµατα σαν αυτά που συζητήθηκαν στην εισαγωγική ενότητα. Σε τέτοιες συνεπώς bottom-up προσεγγίσεις ο ρόλος της θεωρίας κανονικοποίησης είναι πολύ σηµαντικός. Ας δούµε όµως λίγο πιο προσεκτικά το στιγµιότυπο της σχέσης ΦΟΙΤΗΤΗΣ που παρουσιάστηκε στην Ενότητα 1. Στην ουσία, αποτελεί µια ‘καθολική’ αναπαράσταση του µικρόκοσµου εκείνου που διαχειρίζεται εγγραφές φοιτητών σε θεµατικές ενότητες του ΕΑΠ. Αναγνωρίζουµε πληροφορίες που αφορούν σε µέλη ΣΕΠ, θεµατικές οντότητες και φοιτητές. Σχετικά εύκολα φαντάζοµαι θα µπορείτε να µοντελοποιήσετε αυτού του τύπου τα δεδοµένα µε το ακόλουθο διάγραµµα, θεωρώντας κατ’ αρχήν πως µια θεµατική ενότητα διδάσκετε από ένα µέλος ΣΕΠ:

Ο µικρόκοσµός µας τελικά αναπαρίσταται µε τα ακόλουθα δοµικά στοιχεία ενός µοντέλου Ο-Σ:

ΦΟΙΤΗΤΗΣ ΕΓΓΡΑΦΗ ΘΕ

ΣΕΠ

∆Ι∆ΑΣΚΕΙ

Μ Ν

Μ

1

Page 27: BD Normalization

Εισαγωγή στην κανονικοποίηση Β∆ Β∆ – 25/8/08

27

Οντότητες ΦΟΙΤΗΤΗΣ (ΑΜ, Ονοµ/µο, ∆ιεύθυνση) ΣΕΠ (ΣΕΠ, ΣΕΠ-email) ΘΕΜΑΤΙΚΗ ΕΝΟΤΗΤΑ (Κωδ-ΘΕ, ΘΕ) Συσχετίσεις ∆Ι∆ΑΣΚΕΙ (ΘΕΜΑΤΙΚΗ ΕΝΟΤΗΤΑ, ΣΕΠ) λόγου πληθικότητας Μ-1 ΕΓΓΡΑΦΗ (ΘΕΜΑΤΙΚΗ ΕΝΟΤΗΤΑ, ΦΟΙΤΗΤΗΣ) λόγου πληθικότητας Μ-Ν Με εφαρµογή των κανόνων µετάβασης σε σχέσεις εύκολα καταλήγουµε στο ακόλουθο λογικό σχήµα: ΦΟΙΤΗΤΗΣ (ΑΜ, Ονοµ/µο, ∆ιεύθυνση) ΘΕΜΑΤΙΚΗ ΕΝΟΤΗΤΑ (Κωδ-ΘΕ, ΘΕ, ΣΕΠ) ΣΕΠ (ΣΕΠ, ΣΕΠ-email) ΕΓΓΡΑΦΗ (ΑΜ, Κωδ-ΘΕ) Aν επίσης υποθέσουµε πως ένα µέλος ΣΕΠ θα σχετίζεται υποχρεωτικά µε µία τουλάχιστο θεµατική ενότητα, λόγω του λόγου πληθικότητας της ∆Ι∆ΑΣΚΕΙ µπορούµε ισοδύναµε να συµπτύξουµε το πιο πάνω σχήµα στο τελικό, ΦΟΙΤΗΤΗΣ (ΑΜ, Ονοµ/µο, ∆ιεύθυνση) ΘΕΜΑΤΙΚΗ ΕΝΟΤΗΤΑ (Κωδ-ΘΕ, ΘΕ, ΣΕΠ, ΣΕΠ-email) ΕΓΓΡΑΦΗ (ΑΜ, Κωδ-ΘΕ) Το σχήµα αυτό όµως είναι το σχήµα που προέκυψε µετά την αποδόµηση, στο παράδειγµα της Ενότητας 1. Προχωρώντας στη µελέτη του παρόντος κεφαλαίου θα σας δοθεί η δυνατότητα να συνδέσετε γνώσεις που αποκτήσατε µέχρι τώρα µε θεωρητικές έννοιες της κανονικοποίησης. Συγκεκριµένα, πώς η επιχειρησιακή λογική µιας εφαρµογής που εξετάζουµε για τον ορισµό των λόγων πληθικότητας των συσχετίσεων µπορεί να επηρεάζει και να δηµιουργεί αλληλεξαρτήσεις στις τιµές των πεδίων µιας σχέσης (που µοιάζουν λίγο µε τους κανόνες πληθικότητας των συσχετίσεων). Πώς εντέλει µια µαθηµατική θεµελίωση αυτών των αλληλεξαρτήσεων (την ονοµάζουµε συναρτησιακή εξάρτηση) µπορεί να βοηθήσει στη δηµιουργία αλγοριθµικών µηχανισµών βελτιστοποίησης σχεσιακών σχηµάτων µε τρόπο που τελικά εξοµοιώνει τα αποτελέσµατα µιας σωστής σχεδίασης µε χρήση ∆ΟΣ. Σαν άσκηση, σχεδιάστε πάλι την εν λόγω βάση δεδοµένων µε την υπόθεση αυτή τη φορά πως µια θεµατική ενότητα µπορεί να διδάσκεται από πολλά µέλη ΣΕΠ. Τι επίπτωση έχει αυτό στο τελικό σχεσιακό σχήµα; Επίσης, ακολουθώντας τη συλλογιστική της εισαγωγικής ενότητας, πώς θα αποδοµούσατε τη σχέση ΦΟΙΤΗΤΗΣ που παρουσιάστηκε εκεί, λαµβάνοντας υπόψη και την επιπλέον αυτή υπόθεση; ∆ΡΑΣΤΗΡΙΟΤΗΤΑ 2-1 α) δεν αποτελεί πλεονασµό – εφόσον διαπιστώνουµε πως το επώνυµο δε καθορίζει µονοσήµαντα και τον κωδικό ενός πελάτη, αν διαγράψουµε τον κωδικό Π4 σε µια εγγραφή, δε µπορούµε να καθορίσουµε σε ποιον ‘Γεωργίου’ αναφερόµαστε (αυτόν µε κωδικό Π4 ή Π2;) β) αποτελεί πλεονασµό – γιατί; γ) δεν αποτελεί πλεονασµό – γιατί; δ) δεν αποτελεί πλεονασµό – γιατί; ε) δεν αποτελεί πλεονασµό – γιατί;

Page 28: BD Normalization

Εισαγωγή στην κανονικοποίηση Β∆ Β∆ – 25/8/08

28

∆ΡΑΣΤΗΡΙΟΤΗΤΑ 2-2 Μόνο η διατύπωση 2. είναι αληθής. Αν δεν σας είναι αυτό φανερό, ανατρέξτε σε σχετική συζήτηση για τον τρόπο που κανείς καθορίζει του λόγους πληθικότητας σε ένα διάγραµµα ∆ΟΣ (βλ. κείµενο Ε∆Υ της ΠΛΗ11 µε όνοµα αρχείου ‘BD-notes1-ennoiologikos-sxediasmos.zip’) ∆ΡΑΣΤΗΡΙΟΤΗΤΑ 3-1 Η δεύτερη εκδοχή υπερέχει της πρώτης αν υπάρχει πάνω όριο (3) στον αριθµό των τίτλων σπουδών που διατηρεί η βάση δεδοµένων και υπάρχει εννοιολογική διάκριση µεταξύ των ΤΙΤΛΟΣ1, ΤΙΤΛΟΣ2, ΤΙΤΛΟΣ3 (π.χ. ο πρώτος αντιστοιχεί σε βασικό πτυχίο, ο δεύτερος σε µεταπτυχιακό τίτλο, ο τρίτος σε διδακτορικό). Η πρώτη εκδοχή είναι µια γενική λύση που συχνά οι σχεδιαστές προτιµούν γιατί έχει µικρότερα προβλήµατα συντήρησης. Π.χ., δεν επιβάλλει πάνω όριο στον αριθµό των τίτλων σπουδών (µε βάση τη δεύτερη εκδοχή, αν το όριο αυξηθεί κατά ένα, θα πρέπει αφενός ο πίνακας να τροποποιηθεί και µερικές εφαρµογές ίσως να ξαναγραφτούν, ενώ αντίθετα στην πρώτη περίπτωση δε χρειάζεται καµία αλλαγή). Μια εναλλακτική (ακραία) παραλλαγή της πρώτης εκδοχής είναι η χρήση µιας συµβολοσειράς που θα αποθηκεύει όλους τους τίτλους σπουδών σε µια εγγραφή. Π.χ. “δίπλωµα Πολυτεχνείου, MSc”. Μπορείτε να σκεφτείτε τα σχετικά πλεονεκτήµατα και µειονεκτήµατα αυτής της παραλλαγής; ∆ΡΑΣΤΗΡΙΟΤΗΤΑ 4-1 1. ψευδές, 2. αληθές, 3. αληθές, 4. ψευδές. Μπορείτε να τεκµηριώσετε την απάντηση; ∆ΡΑΣΤΗΡΙΟΤΗΤΑ 7-1 H ενασχόληση µε τη δραστηριότητα αυτή βοηθάει για την καλύτερη κατανόηση της διαφοράς µεταξύ 3NF και BCNF. Σας προτρέπουµε να σκεφτείτε αρκετά και να προσπαθήσετε πολύ για την επίλυσή της προτού προχωρήσετε στην ανάγνωση της ενδεικτικής επίλυσης. Αξιοποιώντας την εκφώνηση, για το συγκεκριµένο παράδειγµα είναι λογικό να δεχτούµε τις ακόλουθες εξαρτήσεις: ΘΕΑΤΡΟ → ΠΟΛΗ (ΤΑΙΝΙΑ, ΠΟΛΗ) → ΘΕΑΤΡΟ Επίσης φαίνεται πως κανένα κατηγόρηµα από µόνο του δεν αποτελεί κλειδί. Το ζευγάρι (ΤΑΙΝΙΑ, ΠΟΛΗ) είναι κλειδί (αυτό προκύπτει κι από τη δεύτερη εξάρτηση εξάλλου). Επίσης το ζευγάρι (ΘΕΑΤΡΟ, ΤΑΙΝΙΑ) είναι κλειδί (πέρα από την εννοιολογική κατανόηση αυτού, αρκεί η παρατήρηση πως ΘΕΑΤΡΟ → ΠΟΛΗ, άρα και (ΘΕΑΤΡΟ, ΤΑΙΝΙΑ) → ΠΟΛΗ, για να ισχυριστούµε κάτι τέτοιο). Τέλος το ζευγάρι (ΘΕΑΤΡΟ, ΠΟΛΗ) δεν αποτελεί κλειδί (ένα θέατρο µπορεί να έχει πολλές αίθουσες που η καθεµιά να φιλοξενεί διαφορετική ταινία).

Page 29: BD Normalization

Εισαγωγή στην κανονικοποίηση Β∆ Β∆ – 25/8/08

29

Εύκολα µπορούµε να διαπιστώσουµε παραβίαση της BCNF µορφής, αφού για την εξάρτηση ΘΕΑΤΡΟ → ΠΟΛΗ το αριστερό µέλος δεν αποτελεί υποψήφιο κλειδί. Μια καλή αποδόµηση (µε βάση την Ενότητα 8) θα οδηγούσε στο εξής BCNF σχήµα: (ΘΕΑΤΡΟ, ΠΟΛΗ) (ΘΕΑΤΡΟ, ΤΑΙΝΙΑ) Ωστόσο αυτή η αποδόµηση δηµιουργεί προβλήµατα σε σχέση µε την αρχική εξάρτηση (ΤΑΙΝΙΑ, ΠΟΛΗ) → ΘΕΑΤΡΟ. ∆εν έχουµε τρόπο να την εξασφαλίσουµε αφού τα πεδία του αριστερού µέλους έχουν πια χωριστεί, κι αφού η µόνη εξάρτηση που έχει αποµείνει είναι η ΘΕΑΤΡΟ → ΠΟΛΗ. Έτσι είναι πιθανό δύο κατάλληλα στιγµιότυπα των πιο πάνω σχέσεων, αφού συνδεθούν, να παραβιάζουν την εξάρτηση (ΤΑΙΝΙΑ, ΠΟΛΗ) → ΘΕΑΤΡΟ. Για παράδειγµα: ΘΕΑΤΡΟ ΠΟΛΗ ΘΕΑΤΡΟ ΤΑΙΝΙΑ ΘΕΑΤΡΟ ΤΑΙΝΙΑ ΠΟΛΗ

ΟDEON ΠΑΤΡΑ ΟDEON MAD ΟDEON MAD ΠΑΤΡΑ

STER ΠΑΤΡΑ STER MAD STER MAD ΠΑΤΡΑ

Βλέπουµε συνεπώς πως στην αυστηρή, BCNF µορφή, µπορεί να έχουµε αδυναµία διατήρησης κάποιων εξαρτήσεων σε σχέση µε το αρχικό σχήµα. Αυτό δε µπορεί να συµβεί στην 3NF µορφή. Η δοθείσα σχέση πράγµατι είναι σε τρίτη κανονική µορφή, αφού για κάθε εξάρτηση ισχύει πως είτε το αριστερό µέλος είναι υποψήφιο κλειδί είτε το ‘δεξί µέλος είναι τµήµα κλειδιού’ (το κατηγόρηµα ΠΟΛΗ). Είναι αυτή η δεύτερη συνθήκη που ‘χαλαρώνει’ ουσιαστικά τον πιο ισχυρό ορισµό της BCNF µορφής που δεν επιτρέπει κάτι τέτοιο. Μια εναλλακτική ισοδύναµη διατύπωση του ορισµού της τρίτης κανονικής µορφής είναι η ακόλουθη: Μια σχέση R βρίσκεται σε τρίτη κανονική µορφή αν για κάθε συναρτησιακή εξάρτηση (Α1, Α2, ..., Αν) → Β, είτε το (Α1, Α2, ..., Αν) είναι υποψήφιο κλειδί είτε το Β είναι µέρος κάποιου κλειδιού. Η αρχική µας σχέση ωστόσο µπορεί εµφανίσει προβλήµατα πλεονασµού, για παράδειγµα στο στιγµιότυπο ΘΕΑΤΡΟ ΤΑΙΝΙΑ ΠΟΛΗ

ΟDEON MAD ΠΑΤΡΑ

ODEON CRAZY ΠΑΤΡΑ

υπάρχει πλεονασµός στην επανάληψη της πόλης στην οποία βρίσκεται ο κινηµατογράφος ‘ΟDEOΝ’. ∆ΡΑΣΤΗΡΙΟΤΗΤΑ 8-1 Σχολιάστε το ακόλουθο εναλλακτικό σχήµα: ΦΟΙΤΗΤΗΣ1 (ΑΜ, Μέλος-ΣΕΠ) ΦΟΙΤΗΤΗΣ2 (Μέλος-ΣΕΠ, Αρ_γραφείου)

Page 30: BD Normalization

Εισαγωγή στην κανονικοποίηση Β∆ Β∆ – 25/8/08

30

∆ΡΑΣΤΗΡΙΟΤΗΤΑ 9-2 Θα εφαρµόσουµε τη µέθοδο µε διαγραµµατικό τρόπο, επιλέγοντας σε κάθε στάδιο την σχέση που παραβιάζει τη BCNF µορφή ΣΤΑ∆ΙΟ 1 Σχέσεις: (Α, Β, C, D, E, F, G) (A, B) → F A → C C → (D, E) F → G ΣΤΑ∆ΙΟ 2 (διαµορφώσαµε νέα σχέση και από την εναποµείνασα εξαιρέσαµε το C) Σχέσεις: (Α, C), (Α, Β, D, E, F, G) (A, B) → F C → (D, E) F → G ΣΤΑ∆ΙΟ 3 Σχέσεις: (Α, C), (C, D, E), (Α, Β, F, G) (A, B) → F F → G ΣΤΑ∆ΙΟ 4 Σχέσεις: (Α, C), (C, D, E), (F, G), (Α, Β, F) (A, B) → F Κι εδώ ολοκληρώνεται η διαδικασία αφού η τελευταία εξάρτηση, που δεν εξετάστηκε, δεν παραβιάζει την BCNF. Το αποτέλεσµα ταυτίζεται µε αυτό της Ενότητας 9. ∆ΡΑΣΤΗΡΙΟΤΗΤΑ 9-3 Το σύνολο F 6 των εξαρτήσεων πάνω στη R είναι το ακόλουθο (A, B) → F A → C C → (D, E) F → G To σύνολο F’ συνεπώς περιέχει τουλάχιστο τις ακόλουθες εξαρτήσεις (A, B) → F A → C C → (D, E) C → (C, D, E) F → G F → F, G (A, B) → G A → (D, E) A → (C, D, E) A → (A, C, D, E) (A, B) → (F, G) (A, B) → (A, F, G) (A, B) → (A, B, F, G)

6 ας µη προκαλέσει σύγχυση το σύνολο εξαρτήσεων F µε το κατηγόρηµα F

Page 31: BD Normalization

Εισαγωγή στην κανονικοποίηση Β∆ Β∆ – 25/8/08

31

Εξετάζουµε στη συνέχεια όλα τα βήµατα του αριστερού σκέλους του Σχήµατος 9.1 (σαν άσκηση κάνετε κι εσείς το ίδιο για το δεξιό σκέλος).

A

B

C

F

D

E

G

A

B

F

G

A C

D

E

A

B

F

F

G

A C

D

E

A

B

F

A C

C

D

EF G

R1 ∩ R2 = A – ορίζει συναρτησιακά την R2 και η εξάρτηση αυτή ανήκει στο F’

R1 R2

R1 R2 R1 ∩ R2 = F – ορίζει συναρτησιακά την R2 και η εξάρτηση αυτή ανήκει στο F’

R1

R2

R1 ∩ R2 = C – ορίζει συναρτησιακά την R2 και η εξάρτηση αυτή ανήκει στο F’

Page 32: BD Normalization

Εισαγωγή στην κανονικοποίηση Β∆ Β∆ – 25/8/08

32

Βιβλιογραφικές αναφορές Mια καλή γενική θεώρηση της κανονικοποίησης µπορείτε να βρείτε στα ακόλουθα κλασσικά βιβλία

1. Silberschatz, Korth, Sudarshan, “Database System Concepts”, McGraw-Hill, Fifth Edition, 2005.

2. Ullman, Widom, “A First Course in Database Systems”, Prentice Hall, Third Edition, 2008.

Μια αυστηρή µαθηµατική θεµελίωση της θεωρίας κανονικοποίησης είναι διαθέσιµη στο επίσης κλασσικό βιβλίο

3. Ullman, “Principles of Database and Knowledge-Base Systems”, Computer Science Press, 1988.

Μια σύντοµη αλλά ικανοποιητική κάλυψη µπορείτε να βρείτε και στη wikipedia (http://en.wikipedia.org/wiki/Database_normalization)