ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι. Ενότητα 11: Εξαρτήσεις πολλαπλών τιμών - 4NF, 1NF, 2NF, 3NF, Μελέτη Περίπτωσης

Σχετικά έγγραφα
ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι. Ενότητα 10: Εισαγωγικά περί κανονικοποίησης Συναρτησιακές εξαρτήσεις BCNF. Ευαγγελίδης Γεώργιος Τμήμα Εφαρμοσμένης Πληροφορικής

Βάσεις Δεδομένων Ι. Παραδείγματα. Γεώργιος Ευαγγελίδης, Καθηγητής Τμήμα Εφαρμοσμένης Πληροφορικής

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι. Ενότητα 2: Μοντελο Συσχετίσεων Οντοτήτων, Μελέτη Περίπτωσης: Η βάση δεδομένων των CD

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι. Ενότητα 7α: SQL (NULL, Διαίρεση) Ευαγγελίδης Γεώργιος. Τμήμα Εφαρμοσμένης Πληροφορικής ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι. Ενότητα 7β: SQL (Πρακτική Εξάσκηση 1) Ευαγγελίδης Γεώργιος. Τμήμα Εφαρμοσμένης Πληροφορικής ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι

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

ΒΟΗΘΗΤΙΚΕΣ ΣΗΜΕΙΩΣΕΙΣ

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

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

ΔΙΔΑΣΚΩΝ: Δρ. Στυλιανός Τσίτσος

Λογιστικές Εφαρμογές Εργαστήριο

Εισαγωγή στους Αλγορίθμους

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

Υδραυλικά & Πνευματικά ΣΑΕ

ΣΤΑΤΙΣΤΙΚΗ ΑΝΑΛΥΣΗ ΜΕ ΧΡΗΣΗ Η/Υ

Εισαγωγή στους Αλγορίθμους

Διαχείριση Χρόνου & Δίκτυα στη Διοίκηση Έργων. Κηρυττόπουλος Κωνσταντίνος Επ. Καθηγητής ΕΜΠ

Μοντελοποίηση Λογικών Κυκλωμάτων

ΜΑΘΗΜΑΤΙΚΑ ΓΙΑ ΟΙΚΟΝΟΜΟΛΟΓΟΥΣ

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι. Ενότητα 8: SQL (Πρακτική Εξάσκηση 2) Ευαγγελίδης Γεώργιος. Τμήμα Εφαρμοσμένης Πληροφορικής ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι

Εκκλησιαστικό Δίκαιο. Ενότητα 10η: Ιερά Σύνοδος της Ιεραρχίας και Διαρκής Ιερά Σύνοδος Κυριάκος Κυριαζόπουλος Τμήμα Νομικής Α.Π.Θ.

3 η ΕΝΟΤΗΤΑ Συναρτήσεις στο MATLAB

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι Ενότητα 3:

Επιχειρησιακή Έρευνα

ΣΤΑΤΙΣΤΙΚΗ ΕΠΙΧΕΙΡΗΣΕΩΝ

Λογιστική Κόστους Ενότητα 12: Λογισμός Κόστους (2)

ΜΑΘΗΜΑ: ΗΛΕΚΤΡΟΤΕΧΝΙΑ-ΗΛΕΚΤΡΟΝΙΚΗ ΕΡΓΑΣΤΗΡΙΟ

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

Ιστορία της μετάφρασης

ΝΟΜΙΣΜΑΤΙΚΗ ΟΙΚΟΝΟΜΙΚΗ ΠΟΛΙΤΙΚΗ. Ενότητα 3: Αγορά Χρήματος και επιτόκια. Γεώργιος Μιχαλόπουλος Τμήμα Λογιστικής-Χρηματοοικονομικής

ΜΑΘΗΜΑΤΙΚΑ ΓΙΑ ΟΙΚΟΝΟΜΟΛΟΓΟΥΣ

Μικροβιολογία & Υγιεινή Τροφίμων

Πληροφοριακά Συστήματα & Περιβάλλον Ασκήσεις

ΣΧΕΔΙΟ ΣΤΟΝ Η/Υ. Ενότητα 4: Εντολή σχεδίασης Arc Εντολές επεξεργασίας Copy, Explode. Παπαδόπουλος Χρήστος Τμήμα Διαχείρισης Εκκλησιαστικών Κειμηλίων

Διαφωτισμός και διαμόρφωση των πολιτικών ιδεολογιών στην Ελλάδα

Οικονομετρία. Εξειδίκευση του υποδείγματος. Μορφή της συνάρτησης: Πολυωνυμική, αντίστροφη και αλληλεπίδραση μεταβλητών

Μαθηματικά Ενότητα 11: Θεώρημα Μέσης Τιμής Μονοτονία Συνάρτησης

Εισαγωγή στους Αλγορίθμους

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ

Θεωρία Πιθανοτήτων & Στατιστική

Τίτλος Μαθήματος: Μαθηματική Ανάλυση Ενότητα Β. Διαφορικός Λογισμός

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι. Ενότητα 9α: Περιορισμοί (Constraints) Εναύσματα (Triggers) Ευαγγελίδης Γεώργιος Τμήμα Εφαρμοσμένης Πληροφορικής

Μαθηματικά. Ενότητα 7: Μη Πεπερασμένα Όρια. Σαριαννίδης Νικόλαος Τμήμα Λογιστικής και Χρηματοοικονομικής

2 n N: 0, 1,..., n A n + 1 A

Αυτοματοποιημένη χαρτογραφία

ΑΝΑΓΝΩΡΙΣΗ ΠΡΟΤΥΠΩΝ. ΕΝΟΤΗΤΑ: Γραμμικές Συναρτήσεις Διάκρισης. ΔΙΔΑΣΚΟΝΤΕΣ: Βλάμος Π. Αυλωνίτης Μ. ΙΟΝΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ

Μαθηματικά Διοικητικών & Οικονομικών Επιστημών

Βιομηχανικοί Ελεγκτές


Οικονομικά Μαθηματικά

Οικονομία των ΜΜΕ. Ενότητα 9: Εταιρική διασπορά και στρατηγικές τιμολόγησης

Οικονομικά Μαθηματικά

Λογιστική Κόστους Ενότητα 8: Κοστολογική διάρθρωση Κύρια / Βοηθητικά Κέντρα Κόστους.

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

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

Τίτλος Μαθήματος: Εργαστήριο Φυσικής Ι

Τίτλος Μαθήματος: Ηλεκτρονικοί Υπολογιστές IΙΙ. Διδάσκων: Επίκουρος Καθηγητής Αθανάσιος Σταυρακούδης

ΣΤΑΤΙΣΤΙΚΗ ΑΝΑΛΥΣΗ ΜΕ ΧΡΗΣΗ Η/Υ

ΓΡΑΜΜΙΚΟΣ & ΔΙΚΤΥΑΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

Εφαρμογές Συστημάτων Γεωγραφικών Πληροφοριών

Εισαγωγή στους Αλγορίθμους Φροντιστήριο 1

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ

Εφαρμογές Συστημάτων Γεωγραφικών Πληροφοριών

Εφαρμογές Συστημάτων Γεωγραφικών Πληροφοριών

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

Θεσμοί Ευρωπαϊκών Λαών Ι 19 ος -20 ος αιώνας

Λογιστικές Εφαρμογές Εργαστήριο

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

Μαθηματικά. Ενότητα 13: Κυρτότητα Συνάρτησης Σαριαννίδης Νικόλαος Τμήμα Λογιστικής και Χρηματοοικονομικής

ΜΑΘΗΜΑΤΙΚΑ ΓΙΑ ΟΙΚΟΝΟΜΟΛΟΓΟΥΣ

Εισαγωγή στους Αλγορίθμους Ενότητα 10η Άσκηση Αλγόριθμος Dijkstra

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

Νέες Τεχνολογίες και Καλλιτεχνική Δημιουργία

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι. Ενότητα 5: SQL (Απλή SELECT) Ευαγγελίδης Γεώργιος. Τμήμα Εφαρμοσμένης Πληροφορικής ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι

Υπολογιστές Ι. Άδειες Χρήσης. Δομή του προγράμματος. Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης

Υπολογιστικά & Διακριτά Μαθηματικά

Γενικά Μαθηματικά Ι. Ενότητα 12: Κριτήρια Σύγκλισης Σειρών. Λουκάς Βλάχος Τμήμα Φυσικής ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ

ΓΡΑΜΜΙΚΟΣ & ΔΙΚΤΥΑΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

Οργανωσιακή Συμπεριφορά Ενότητα 1: Η έννοια της οργάνωσης και διοίκησης

Εκκλησιαστικό Δίκαιο

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι. Ενότητα 1: Ορισμοί βασικών εννοιών: Μια πρώτη μοντελοποίηση. Ευαγγελίδης Γεώργιος Τμήμα Εφαρμοσμένης Πληροφορικής

ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι

ΓΡΑΜΜΙΚΟΣ & ΔΙΚΤΥΑΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

Κανονικές Μορφές. Συνενώσεις Άνευ Απωλειών. Προσοχή με τις τιμές null στην αποσύνθεση

Μαθηματικά. Ενότητα 6: Ασκήσεις Ορίων Συνάρτησης. Σαριαννίδης Νικόλαος Τμήμα Λογιστικής και Χρηματοοικονομικής

Εισαγωγή στην Διοίκηση Επιχειρήσεων

Μαθηματικά. Ενότητα 12: Ακρότατα Συνάρτησης Σαριαννίδης Νικόλαος Τμήμα Λογιστικής και Χρηματοοικονομικής

Λογισμός 3. Ενότητα 19: Θεώρημα Πεπλεγμένων (γενική μορφή) Μιχ. Γ. Μαριάς Τμήμα Μαθηματικών ΑΝΟΙΚΤΑ ΑΚΑ ΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ

ΔΙΕΘΝΕΙΣ ΕΠΕΝΔΥΣΕΙΣ ΚΑΙ ΔΙΕΘΝΕΣ ΕΜΠΟΡΙΟ

Θεσμοί Ευρωπαϊκών Λαών Ι 19 ος -20 ος αιώνας

CAD / CAM. Ενότητα #10: Βιομηχανικά Συστήματα Ελέγχου. Δημήτριος Τσελές Τμήμα Μηχανικών Αυτοματισμού T.E.

Τίτλος Μαθήματος: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ

Εισαγωγή στους Αλγορίθμους Ενότητα 11η Άσκηση - Σταθμισμένος Χρονοπρογραμματισμός Διαστημάτων

Οικονομετρία Ι. Ενότητα 9: Αυτοσυσχέτιση. Δρ. Χαϊδώ Δριτσάκη Τμήμα Λογιστικής & Χρηματοοικονομικής

Lecture 24: Functional Dependencies and Normalization IV


Οργανωσιακή Συμπεριφορά Ενότητα 7: Κοινωνικοποίηση και διοίκηση της οργάνωσης

ΓΡΑΜΜΙΚΟΣ & ΔΙΚΤΥΑΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

Γενικά Μαθηματικά Ι. Ενότητα 15: Ολοκληρώματα Με Ρητές Και Τριγωνομετρικές Συναρτήσεις Λουκάς Βλάχος Τμήμα Φυσικής

Transcript:

Ενότητα 11: Εξαρτήσεις πολλαπλών τιμών - 4NF, 1NF, 2NF, 3NF, Μελέτη Περίπτωσης Ευαγγελίδης Γεώργιος

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύπου άδειας χρήσης, η άδεια χρήσης αναφέρεται ρητώς. 2

Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα. Το έργο «Ανοικτά Ακαδημαϊκά Μαθήματα στο Πανεπιστήμιο Μακεδονίας» έχει χρηματοδοτήσει μόνο τη αναδιαμόρφωση του εκπαιδευτικού υλικού. Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους. 3

Μέρος 1 Εξαρτήσεις πολλαπλών τιμών 4NF 4

Παράδειγμα προβλήματος TRACK_CONTRIB(cd_id, track_position, performer_id, composer_id, lyricist_id) Κλειδί = {όλα τα πεδία} FDs = {} Είναι όμως καλός πίνακας; Εξαρτήσεις πολλαπλών τιμών (MVD) 5

Ορισμός MVD X Y Έχω τον πίνακα R(Χ, Υ, Ζ) Όταν δυο διαφορετικές εγγραφές του R έχουν τα ίδια Χ, τότε υπάρχει μια τρίτη εγγραφή που και αυτή έχει το ίδιο Χ, αλλά έχει το Υ της πρώτης εγγραφής και το Ζ της δεύτερης. Πρακτικά, τα Υ και Ζ είναι ανεξάρτητα μεταξύ τους, και συνεπώς έχουμε όλους τους δυνατούς συνδυασμούς τους για δεδομένο Χ. 6

Επιστροφή στο παράδειγμα (1) T8(cd_id, track_position, track_duration, rec_id, rec_duration, song_id, performer_id, composer_id, lyricist_id) Σε μια εγγραφή του Τ8, τα performer_id, composer_id, lyricist_id είναι ανεξάρτητα μεταξύ τους. Για ένα track που έχει 4 ερμηνευτές, 3 συνθέτες και 2 στιχουργούς, χρειάζομαι 24 εγγραφές με τα υπόλοιπα πεδία να έχουν τις ίδιες τιμές σε όλες αυτές τις εγγραφές! 7

Επιστροφή στο παράδειγμα (2) Εδώ, εκτός των δυο FDs: 4. rec_id song_id, rec_duration 6. cd_id, track_position rec_id, track_duration Έχω και τις εξής MVDs: 9. rec_id performer_id 10. song_id composer_id 11. song_id lyricist_id 8

Είδη MVD Τετριμμένες: Χ Υ και Υ Χ ή Χ Υ = {όλα τα πεδία} Μη-τετριμμένες: διαφορετικά 9

Κανόνες για MVD Κάθε FD είναι MVD: Χ Υ τότε Χ Υ Τομής: Χ Υ και Χ Ζ τότε Χ Υ Ζ Μεταβατικός: Χ Υ και Υ Ζ τότε Χ Ζ - Υ 10

4NF Ένας πίνακας R με MVDs είναι σε 4NF αν Για κάθε μη-τετριμμένη Α B, το Α είναι κλειδί Ένας πίνακας σε 4NF είναι σε BCNF 11

Αλγόριθμος διάσπασης 4NF Input: πίνακας R και FDs και MVDs του R Output: διάσπαση του R σε σύνολο πινάκων σε 4NF Υπολόγισε με τη βοήθεια των FDs τα κλειδιά του R. Επανέλαβε μέχρι να είναι όλοι οι πίνακες σε 4NF: Πάρε έναν πίνακα R' ο οποίος εξαιτίας μιας A B να μην είναι σε 4NF. Διάσπασε τον R' σε R1(A, B) και R2(A, υπόλοιπαπεδία). Υπολόγισε τις FDs και MVDs των R1 και R2. Υπολόγισε τα κλειδιά των R1 και R2. 12

Πλήρες παράδειγμα (7) T8(cd_id, track_position, track_duration, rec_id, rec_duration, song_id, performer_id, composer_id, lyricist_id) O T8 δεν είναι σε 4NF. Διασπώ βάσει της MVD: 9. rec_id performer_id T9(rec_id, performer_id) 4NF T10(cd_id, track_position, track_duration, rec_id, rec_duration, song_id, composer_id, lyricist_id) 13

Πλήρες παράδειγμα (8) O T10 δεν είναι σε 4NF. Διασπώ βάσει των MVD: 10. song_id composer_id 11. song_id lyricist_id T11(song_id, composer_id) 4NF T12(song_id, lyricist_id) 4NF T13(cd_id, track_position, track_duration, rec_id, rec_duration, song_id) 14

Πλήρες παράδειγμα (9) T13(cd_id, track_position, track_duration, rec_id, rec_duration, song_id) O T13 δεν έχει MVDs και δεν είναι σε BCNF. Διασπώ βάσει των FDs 4 και 6: 4. rec_id song_id, rec_duration 6. cd_id, track_position rec_id, track_duration T14(rec_id, song_id, rec_duration) BCNF+4NF T15(cd_id, track_position, rec_id, track_duration) BCNF+4NF Ο Τ15 μένει ως έχει. 15

Πλήρες παράδειγμα (10) Τελικό 4NF Σχήμα: SONG(song_id, song_title) COMPOSER(composer_id, composer_name) LYRICIST(lyricist_id, lyricist_name) PERFORMER(performer_id, performer_name) CD(cd_id, cd_title, year, company_id) COMPANY(company_id, company_name) REC_PERF(rec_id, performer_id) SONG_COMP(song_id, composer_id) SONG_LYR(song_id, lyricist_id) RECORDING(rec_id, song_id, rec_duration) TRACK(cd_id, track_position, rec_id, track_duration) 16

Ποιο είναι το αντίστοιχο EER; 17

Να και το αντίστοιχο ER 18

Μέρος 2 1NF, 2NF, 3NF 19

1NF Ένας πίνακας R είναι σε 1NF όταν τα πεδία ορισμού όλων των πεδίων του περιέχουν μόνο ατομικές τιμές, και οι τιμές των πεδίων αποτελούνται από μία μόνο τέτοια τιμή. Παράδειγμα πίνακα που δεν είναι σε 1NF (από First Normal Form πηγη:wikipedia): 20

2NF Ένας πίνακας R είναι σε 2NF αν και μόνο αν είναι σε 1NF και κάθε πεδίο του που δεν ανήκει σε κλειδί δεν εξαρτάται από υποσύνολο κάποιου υποψήφιου κλειδιού. Αν για παράδειγμα R(A, B, C) και Β C, τότε ο R δεν είναι σε 2FN. Πρέπει να διασπαστεί σε R1(B, C) και R2(A, B). 21

2NF παράδειγμα (1) (από Second Normal Form πηγή: Wikipedia): Κλειδί: {Employee, Skill} FD: Employee Current_Work_Location 22

2NF παράδειγμα (2) 23

3NF Ένας πίνακας R είναι σε 3NF αν είναι σε 2NF και κάθε πεδίο που δεν ανήκει σε κλειδί δεν εξαρτάται από πεδίο που δεν ανήκει σε κλειδί. Αν για παράδειγμα R(A, B, C) και Β C, τότε ο R δεν είναι σε 3FN. Πρέπει να διασπαστεί σε R1(B, C) και R2(A, B). 24

3NF παράδειγμα (1) (από Third Normal Form πηγή: Wikipedia): Κλειδί: {Tournament, Year} FD: Winner Winner_Date_of_Birth 25

3NF παράδειγμα (2) 26

Πίνακες 3NF που δεν είναι BCNF (από Boyce-Codd Normal Form πηγή: Wikipedia): Υποψήφια κλειδιά: {Court, Start Time}, {Court, End Time}, {Rate Type, Start Time}, {Rate Type, End Time} FD: Rate Type Court 27

BCNF παράδειγμα 28

Ανέφικτη BCNF (1) (από Boyce-Codd Normal Form πηγή: Wikipedia): FDs:Person, Shop_Type Nearest_ShopNearest_Shop Shop_Type Υποψήφια κλειδιά:{person, Shop_Type}{Person, Nearest_Shop} 29

Ανέφικτη BCNF (2) Παρόλο που οι πίνακες είναι σε BCNF, τώρα έχουμε ένα νέο σοβαρό πρόβλημα: δεν υπάρχει εγγύηση ότι ικανοποιείται η FD Person, Shop_Type Shop 30

Μέρος 3 Μελέτη Περίπτωσης 31

On-line κρατήσεις εισιτηρίων (1) Υπάρχουν χώροι όπου γίνονται καλλιτεχνικές εκδηλώσεις. Μια εκδήλωση μπορεί να γίνει σε διαφορετικούς χώρους ακόμη και την ίδια ημερομηνία. Αυτό το ονομάζουμε παράσταση. Υποθέτουμε ότι μια εκδήλωση γίνεται μια φορά σε έναν χώρο μια συγκεκριμένη ημερομηνία. Σε μια εκδήλωση συμμετέχουν ένας ή παραπάνω καλλιτέχνες και τα ονόματά τους εμφανίζονται στο πρόγραμμα με συγκεκριμένη σειρά. Οι χώροι έχουν θέσεις που ανήκουν σε συγκεκριμένες τιμολογιακές κατηγορίες. 32

On-line κρατήσεις εισιτηρίων (2) Μια παράσταση έχει συγκεκριμένες τιμές εισιτηρίων για κάθε τιμολογιακή κατηγορία. Το σύστημα πουλά εισιτήρια παραστάσεων σε εγγεγραμμένους πελάτες. Κάθε κράτηση που κάνει ένας πελάτης αφορά συγκεκριμένη παράσταση. Κάθε κράτηση πελάτη μπορεί να περιέχει πολλά εισιτήρια, καθένα από τα οποία αντιστοιχεί σε μια θέση του χώρου της παράστασης και προφανώς ανήκει σε κάποια κατηγορία τιμολόγησης. 33

Πεδία προβλήματος Κχώρου, Οχώρου, αρ_θέσης, κατηγ_θέσης Κεκδήλ, Οεκδήλ, ημερομ_παράστ, κόστος_εισιτηρίου Κκαλλ, Οκαλλ, σειρά_εμφάνισης Κπελάτη, Οπελάτη, email, διεύθυνση Κκράτησης, γραμμή_κράτησης 34

FDs και MVDs προβλήματος 1. Κχώρου Οχώρου 2. Κχώρου, αρ_θέσης κατηγ_θέσης 3. Κεκδήλ Οεκδήλ 4. Κχώρου, Κεκδήλ ημερομ_παράστ 5. Κχώρου, Κεκδήλ, κατηγ_θέσης κόστος_εισιτηρίου 6. Κκαλλ Οκαλλ 7. Κεκδήλ, Κκαλλ σειρά_εμφάνισης 8. Κπελάτη Οπελάτη, email, διεύθυνση 9. Κπελάτη, Κκράτησης Κχώρου, Κεκδήλ 10. Κπελάτη, Κκράτησης, γραμμή_κράτησης αρ_θέσης 11. Κεκδήλ Κκαλλ 35

Κανονικοποίηση σε 4NF (1) Κλειδί: {Κπελάτη, Κκράτησης, γραμμή_κράτησης, Κκαλλ} Αρχικός πίνακας: R(Κχώρου, Οχώρου, αρ_θέσης, κατηγ_θέσης, Κεκδήλ, Οεκδήλ, ημερομ_παράστ, κόστος_εισιτηρίου, Κκαλλ, Οκαλλ, σειρά_εμφάνισης, Κπελάτη, Οπελάτη, email, διεύθυνση, Κκράτησης, γραμμή_κράτησης) 36

Κανονικοποίηση σε 4NF (2) Πρώτα διασπώ με τις FD 1, 3, 6, 8: R1(Κχώρου, Οχώρου) R2(Κεκδήλ, Οεκδήλ) R3(Κκαλλ, Οκαλλ) R4(Κπελάτη, Οπελάτη, email, διεύθυνση) R5(Κχώρου, αρ_θέσης, κατηγ_θέσης, Κεκδήλ, ημερομ_παράστ, κόστος_εισιτηρίου, Κκαλλ, σειρά_εμφάνισης, Κπελάτη, Κκράτησης, γραμμή_κράτησης) 37

Κανονικοποίηση σε 4NF (3) Συνεχίζω με την FD 5: Κχώρου, Κεκδήλ, κατηγ_θέσης κόστος_εισιτηρίου R6(Κχώρου, Κεκδήλ, κατηγ_θέσης, κόστος_εισιτηρίου) R7(Κχώρου, αρ_θέσης, κατηγ_θέσης, Κεκδήλ, ημερομ_παράστ, Κκαλλ, σειρά_εμφάνισης, Κπελάτη, Κκράτησης, γραμμή_κράτησης) 38

Κανονικοποίηση σε 4NF (4) Συνεχίζω με την FD 2: Κχώρου, αρ_θέσης κατηγ_θέσης R8(Κχώρου, αρ_θέσης, κατηγ_θέσης) R9(Κχώρου, αρ_θέσης, Κεκδήλ, ημερομ_παράστ, Κκαλλ, σειρά_εμφάνισης, Κπελάτη, Κκράτησης, γραμμή_κράτησης) 39

Κανονικοποίηση σε 4NF (5) Συνεχίζω με την FD 4: Κχώρου, Κεκδήλ ημερομ_παράστ R10(Κχώρου, Κεκδήλ, ημερομ_παράστ) R11(Κχώρου, αρ_θέσης, Κεκδήλ, Κκαλλ, σειρά_εμφάνισης, Κπελάτη, Κκράτησης, γραμμή_κράτησης) 40

Κανονικοποίηση σε 4NF (6) Συνεχίζω με την FD 7: Κεκδήλ, Κκαλλ σειρά_εμφάνισης R12(Κεκδήλ, Κκαλλ, σειρά_εμφάνισης) R13(Κχώρου, αρ_θέσης, Κεκδήλ, Κκαλλ, Κπελάτη, Κκράτησης, γραμμή_κράτησης) 41

Κανονικοποίηση σε 4NF (7) Συνεχίζω με την MVD 11: Κεκδήλ Κκαλλ R14(Κεκδήλ, Κκαλλ) R15(Κχώρου, αρ_θέσης, Κεκδήλ, Κπελάτη, Κκράτησης, γραμμή_κράτησης) 42

Κανονικοποίηση σε 4NF (8) Συνεχίζω με την FD 9: Κπελάτη, Κκράτησης Κχώρου, Κεκδήλ R16(Κπελάτη, Κκράτησης, Κχώρου, Κεκδήλ) R17(Κπελάτη, Κκράτησης, γραμμή_κράτησης, αρ_θέσης) Έχω τελειώσει επειδή η FD 10 ισχύει για την R17: Κπελάτη, Κκράτησης, γραμμή_κράτησης αρ_θέσης 43

Τελικό σχεσιακό σχήμα (1) R1(Κχώρου, Οχώρου) R2(Κεκδήλ, Οεκδήλ) R3(Κκαλλ, Οκαλλ) R4(Κπελάτη, Οπελάτη, email, διεύθυνση) R6(Κχώρου, Κεκδήλ, κατηγ_θέσης, κόστος_εισιτηρίου) R8(Κχώρου, αρ_θέσης, κατηγ_θέσης) R10(Κχώρου, Κεκδήλ, ημερομ_παράστ) R12(Κεκδήλ, Κκαλλ, σειρά_εμφάνισης) R14(Κεκδήλ, Κκαλλ) R16(Κπελάτη, Κκράτησης, Κχώρου, Κεκδήλ) R17(Κπελάτη, Κκράτησης, γραμμή_κράτησης, αρ_θέσης) 44

Τελικό σχεσιακό σχήμα (2) ΧΩΡΟΣ(Κχώρου, Οχώρου) ΕΚΔΗΛΩΣΗ(Κεκδήλ, Οεκδήλ) ΚΑΛΛΙΤΕΧΝΗΣ(Κκαλλ, Οκαλλ) ΠΕΛΑΤΗΣ(Κπελάτη, Οπελάτη, email, διεύθυνση) ΚΑΤΗΓ_ΘΕΣΗΣ(κατηγ_θέσης) ΤΙΜΟΛΟΓΗΣΗ(Κχώρου, Κεκδήλ, κατηγ_θέσης, κόστος_εισιτηρίου) ΘΕΣΗ(Κχώρου, αρ_θέσης, κατηγ_θέσης) ΠΑΡΑΣΤΑΣΗ(Κχώρου, Κεκδήλ, ημερομ_παράστ) ΕΚΔΗΛ_ΚΑΛΛ(Κεκδήλ, Κκαλλ, σειρά_εμφάνισης) ΚΡΑΤΗΣΗ(Κπελάτη, Κκράτησης, Κχώρου, Κεκδήλ) ΕΙΣΙΤΗΡΙΟ(Κπελάτη, Κκράτησης, γραμμή_κράτησης, αρ_θέσης) 45

Σχεσιακό σχήμα 46

Διάγραμμα ΟΣ 47

Τέλος Ενότητας