Βάσεις Δεδομένων I (Θ) Ενότητα 7: Σχεδίαση βάσεων δεδομένων - Παραδείγματα - Επανάληψη Χ. Σκουρλάς Τμήμα Μηχανικών Πληροφορικής ΤΕ Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός και αν αναφέρεται διαφορετικά Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους.
Περιγραφή Ενότητας Σκοπός του μαθήματος είναι να παρουσιάσει - επαναλάβει τις απαραίτητες έννοιες ώστε οι φοιτητές να κατανοήσουν την τεχνολογία των βάσεων δεδοµένων και των συστηµάτων βάσεων δεδοµένων. Έµφαση δίδεται στην παρουσίαση των εννοιών της μοντελοποίησης και της κανονικοποίησης. Χ. Σκουρλάς 1
Στόχος Ενότητας Κύριος στόχος του μαθήματος είναι να εφοδιάσει τους φοιτητές µε τις απαραίτητες γνώσεις έτσι ώστε να είναι ικανοί να μοντελοποιήσουν τη βάση και να σχεδιάσουν την Τρίτη κανονική μορφή. Λέξεις κλειδιά: Μοντελοποίηση, Κανονικοποίηση, Κανονικές μορφές, Πρώτη Κανονική Μορφή, Δεύτερη Κανονική Μορφή, Τρίτη Κανονική Μορφή, Κανονική Μορφή Boyce Codd. 2
Βάση αμερικανικών προεδρικών εκλογών (American elections) Στο δείγμα παρατίθενται εκλογικά αποτελέσματα για τις αναμετρήσεις από το 1952 έως το Κύριο κλειδί (year, loser). YEARWINNERW_VOTESW-PARTYW_STATELOSERL_VOTESL_PARTY EISENHOWER KENNEDY JOHNSON NIXON CARTER REAGAN BUSH CLINTON NULL REP DEM REP DEM REP DEM TEXAS MASS. TEXAS CALIF. CALIF CALIF. NULL STEVENSON NIXON GOLDWATER HUMPHREY WALLACE McGOVERN FORD CARTER ANDERSON MONDALE DOUKAKIS BUSH PERAULT NULL DEM REP DEM IND DEM IND DEM REP IND REP=REPUBLICAN, DEM=DEMOCRAT, IND=INDEPENDENT Η αναγραφή NULL σε μια θέση του πίνακα σημαίνει ότι η αντίστοιχη στήλη δεν έχει τιμή. 3
4 πίνακες της τρίτης κανονικής μορφής στους οποίους επιμερίζονται τα στοιχεία των εκλογών. Θυμηθείτε ποιο είναι το κύριο κλειδί κάθε πίνακα.
WINNERW-PARTYW_STATE EISENHOWER KENNEDY JOHNSON NIXON CARTER REAGAN BUSH CLINTON REP DEM REP DEM REP DEM TEXAS MASS. TEXAS CALIF. NULL LOSERL_PARTY STEVENSON NIXON GOLDWATER HUMPHREY WALLACE McGOVERN FORD CARTER ANDERSON MONDALE DOUKAKIS BUSH PERAULT DEM REP DEM IND DEM IND DEM REP IND YEARWINNERW_VOTES EISENHOWER KENNEDY JOHNSON NIXON CARTER REAGAN BUSH CLINTON NULL YEARLOSERL_VOTES STEVENSON NIXON GOLDWATER HUMPHREY WALLACE McGOVERN FORD CARTER ANDERSON MONDALE DOUKAKIS BUSH PERAULT NULL PRESIDENTS LOSERS ELECTION WINNER ELECTIONLOSER
Περιορισμοί Year χαρακτηρίζει μοναδικά την εκλογική αναμέτρηση. year - -> winner, w_votes, w_party, w_state (Το έτος χαρακτηρίζει μοναδικά κάποιες στήλες που περιγράφουν την εκλογική αναμέτρηση. Δηλαδή αν σκεφτούμε το έτος μίας εκλογικής αναμέτρησης τότε αυτομάτως έρχεται στο μυαλό μας ακριβώς ένας νικήτης, ο Πρόεδρος, ακριβώς ένα κόμμα, αυτό που νίκησε στις εκλογές κτλ.). winner - -> w_party, w_state (Ο νικητής, ανήκει ισόβια ως υποψήφιος στο ίδιο κόμμα και ξεκινά απο την ίδια πολιτεία). year, loser - - > l_votes. 6
Περιορισμοί (constraints) 1.Year χαρακτηρίζει μοναδικά την εκλογική αναμέτρηση 2.year - -> winner, w-votes, w-party, w_state (Το έτος χαρακτηρίζει μοναδικά κάποια πεδία που περιγράφουν την εκλογική αναμέτρηση. Δηλαδή αν σκεφτούμε το έτος μίας εκλογικής αναμέτρησης τότε αυτομάτως έρχεται στο μυαλό μας ακριβώς ένας νικήτης, ο Πρόεδρος, ακριβώς ένα κόμα, αυτό που νίκησε στις εκλογές κτλ.) 3.winner - -> w_party, w_state (Ο νικητής, ανήκει ισόβια ως υποψήφιος στο ίδιο κόμα και ξεκινά απο την ίδια πολιτεία) 4.year, loser - - > l_votes 7
Για τη μετάβαση από το μοντέλο οντοτήτων - σχέσεων σε πίνακες ακολούθησε τους εξής κανόνες Κανόνας 1: Για κάθε τύπο οντότητα θα έχεις ένα πίνακα που θα περιλαμβάνει σαν στήλες τουλάχιστον όλα τα χαρακτηριστικά (attributes) της. Το κύριο κλειδί της οντότητας, απλό ή σύνθετο, θα είναι και κύριο κλειδί του πίνακα που θα αναπαριστά την οντότητα Κανόνας 2: Έστω μια συσχέτιση σ:A(K1)-->B(K2), όπου Α(Κ1), Α(Κ2) οντότητες και K1,K2 τα κύρια κλειδιά των οντοτήτων. Αν η συσχέτιση σ είναι τύπου 1:Ν τότε (για τη συσχέτιση σ) δεν κατασκευάζεις ξεχωριστό πίνακα. Απλά προσθέτεις στα χαρακτηριστικά της οντότητας Β(Κ2) το Κ1 σα ξένο κλειδί. Κανόνας 3: Αν η παραπάνω συσχέτιση σ είναι τύπου 1:1 τότε (για τη συσχέτιση σ) δεν κατασκευάζεις ξεχωριστό πίνακα. Απλά προσθέτεις στα χαρακτηριστικά της οντότητας Β(Κ2) το Κ1 σα ξένο κλειδί ή στα χαρακτηριστικά της Α(Κ1) το Κ2 σαν ξένο κλειδί. Ποτέ και τα δύο! Κανόνας 4: Αν η σχέση είναι Μ:Ν τότε κατασκευάζεις ξεχωριστό πίνακα που περιλαμβάνει τα Κ1,Κ2, ως ξένα κλειδιά, το (Κ1,Κ2) ως σύνθετο κύριο κλειδί και τα χαρακτηριστικά της συσχέτισης, άν υπάρχουν τέτοια χαρακτηριστικά. Κανόνας 5: Αν μια συσχέτιση συνδέει παραπάνω από δύο οντότητες π.χ. τις οντότητες A(K1), Α(Κ2), Α(Κ3) με Κ1, Κ2, Κ3 κύρια κλειδιά οντοτήτων αντίστοιχα, τότε για τη συσχέτιση αυτή, συνήθως, κατασκευάζουμε ξεχωριστό πίνακα με κύριο κλειδί, συνήθως, (Κ1,Κ2,Κ3). 8
Απλουστευμένη εκπαιδευτική βάση δεδομένων
Πίνακες SurnamenameStudent_codesemesterAddressbirthdatephone ΚυριακόπουλοςΝικηφόρος213ΔΘησέως 310/10/ ΑποστόλουΖωή816ΑΑριάδνης 110/10/ ΠαπαπέτρουΝικόλαος450ΒΕιρήνης 410/10/ ΖευγαρίδηςΟρέστης346ΓΑίγλης 1023/9/ ΚοταμανίδουΕιρήνη610ΑΕιρήνης 72/2/ SurnameNameaddressProfessor _code PhoneBirthdateOffice_ Number speciality CoddTedMass /10/56201Πληροφορική UllmanJeffreyCalif /10/59101Πληροφορική WidomJenniferCalif /10/59110Πληροφορική ElmasriRamezMass /9/58231Ηλεκτρονική NavatheShamkantMass /2/59123Ηλεκτρονική Πίνακας “Professor” Πίνακας “Student” 10
Πίνακες Lesson_nameLesson_codesemestercontent Αρχές Οικονομικής ΙΑ1 Α Προγραμματισμός Η/Υ ΙΑ5 Α Ανθρώπινες Σχέσεις στην εργασίαΑ8 Α Προγραμματισμός Η/Υ ΙΙΒ5 Β Χρήμα - Πίστη - ΤράπεζεςΓ1 Γ Εισαγωγή στο Αστικό ΔίκαιοΑ4 Α Στατιστική ΕπιχειρήσεωνΒ2 Β Οικονομική της ΔιοίκησηςΓ3 Γ Ιστορία και Αρχές ΣυνεργατισμούΓ7 Γ Συστήματα Πληροφοριών ΔιοίκησηςΓ6 Γ Γενική Λογιστική ΙΑ3 Α Πίνακας “Lesson” 11
Πίνακες Student_codeLesson_codeMark 213Γ15 213Β57 450Β54 816Α56 816Α88 450Β22 346Γ19 346Γ30 610Α15 610Α37 Professor_code Lesson_code 10Α1 10Α5 20Α8 20Β5 20Γ1 30Α4 30Β2 40Γ3 40Γ7 50Γ6 50Α3 12
13
Αν teaches 1:N τότε η βάση διαφοροποιείται Καταργείται ο πίνακας teaches και προστίθεται η στήλη professor_code στον πίνακα lesson 14
Απλοποιημένη βιβλιοθήκη BOOK(ISBN, Title, Pub_code, Subject_code, Lang_Code) AUTHOR (Author_No, Surname, Name) CATEGORY (Subject_Code, Subject) WRITER (ISBN, Author_No) PUBLISHER (Pub_code, pubname, Loc) LANGUAGE(Lang_Code, Lang) 15
16
Απλοποιημένη βάση διαχείρισης προσωπικού (personnel) ENAMELANG UAGE LANG_ CODE USEEMP NO EXPRSALP_CODEPNAMEBUDGE T P_TIME ΒΑΛΑΚΟΣCOBOL ΑΠΟΘΗΚΕΣ ΒΑΛΑΚΟΣFORTR AN ΕΡΓΟ Α ΒΑΛΑΚΟΣCOBOL ΕΡΓΟ Α ΒΑΛΑΚΟΣFORTR AN ΑΠΟΘΗΚΕΣ ΚΑΜΑΡAΣCOBOL ΕΡΓΟ Α ΚΑΜΑΡAΣ PL/I, ΣΠΥΡΟΥCOBOL ΑΠΟΘΗΚΕΣ σύνθετο κύριο κλειδί = (EMPNO, LANG_CODE, P_CODE) Σχήμα Πρώτη κανονική μορφή βάσης δεδομένων προσωπικού 17
Κανόνες Kανόνας 1 −Σε μια σχέση/πίνακα δεν πρέπει να εμφανίζονται σύνθετα πεδία ορισμού ανά ιδιότητα (στήλη),δηλαδή, σε περιγραφική προσέγγιση για κάθε γραμμή του πίνακα, κάθε στήλη αντιστοιχεί σε απλό χαρακτηριστικό και πρέπει να περιέχει ακριβώς μια τιμή. Κανόνας 2 −Αν το κύριο κλειδί της σχέσης, δηλαδή το κλειδί που ορίζει μονοσήμαντα όλες τις στήλες, είναι σύνθετο (αποτελείται από περισσότερες από μια ιδιότητες) και ένα τμήμα του ορίζει μονοσήμαντα ιδιότητες (στήλες) πρέπει το τμήμα αυτό και οι αντίστοιχες ιδιότητες (στήλες) να αποτελέσουν μια ξεχωριστή σχέση. Κανόνας 3 −Σε κάθε γραμμή του πίνακα, όλες οι στήλες πρέπει να αντιστοιχούν απ‘ ευθείας στο κλειδί χωρίς μεταβατικές εξαρτήσεις διαμέσου των άλλων στηλών. 18
Γράψτε τη Δεύτερη και την Τρίτη Κανονική Μορφή ENAMELANGUAGELANG_ CODE USEEMP NO EXPRSALP_CODEPNAMEBUDGETP_TIME ΒΑΛΑΚΟΣCOBOL ΑΠΟΘΗΚΕΣ ΒΑΛΑΚΟΣFORTRAN ΕΡΓΟ Α ΒΑΛΑΚΟΣCOBOL ΕΡΓΟ Α ΒΑΛΑΚΟΣ FORTRAN ΑΠΟΘΗΚΕΣ ΚΑΜΑΡAΣCOBOL ΕΡΓΟ Α ΚΑΜΑΡAΣPL/I, ΕΡΓΟ Α ΣΠΥΡΟΥCOBOL ΑΠΟΘΗΚΕΣ ΠΛΑΚΙΔΗΣCOBOL ΑΠΟΘΗΚΕΣ ΠΛΑΚΙΔΗΣFORTRAN ΑΠΟΘΗΚΕΣ ΝΙΚΟΥCOBOL ΕΡΓΟ Α ΝΙΚΟΥPASCAL ΕΡΓΟ Α ΠΙΝΑΚΑΣ EMPLOY σύνθετο κύριο κλειδί = (EMPNO, LANG_CODE, P_CODE) Σχήμα Πρώτη κανονική μορφή βάσης δεδομένων προσωπικού 19
Δεύτερη και Τρίτη Κανονική Μορφή ENAMEEMPNOEXPRSAL Κύριο κλειδί LANG_CODEUSEEMPNO Κύριο κλειδί LANGUAGELANG_CODE Κύριο κλειδί P_CODEPNAMEBUDGET Κύριο κλειδί EMPNOP_CODEPTIME Κύριο κλειδί 20
21
Απλοποιημένη βάση προσωπικού - μισθοδοσίας empno: κωδικός υπαλλήλου name: ονοματεπώνυμο expr: χρόνια υπηρεσίας στην εταιρεία job: θέση που έχει στο τμήμα basic_pay: βασικός μισθός qualification: τίτλος σπουδών relaxation_allowance: επίδομα 22
Ο βασικός μισθός καθορίζεται με προσωπική συμφωνία με τον εργαζόμενο Employee(empno, name, qualification, basic_pay, expr, job) Allowance(job, relaxation_allowance) 23
Ο βασικός μισθός εξαρτάται από τη θέση Employee(empno, name, qualification, expr, job) Allowance(job, relaxation_allowance, basic_pay) 24
Ο βασικός μισθός εξαρτάται από τη θέση και τις σπουδές Employee(empno, name, qualification, expr, job) Allowance(job, relaxation_allowance) Salary(job, qualification, basic_pay) 25
Απλοποιημένο σύστημα διαχείρισης παραγγελιών (orders) Order_noC_codeC_nameAddressO_dateItem_noI_nameList_priceqty Σχήμα Πρώτη κανονική μορφή. Κύριο κλειδί = (order_no, item_no) Πίνακας “Orders” 26
Δεύτερη κανονική μορφή Order_noC_codeC_nameAddressO_date Κύριο κλειδί Order_noItem_noqty Κύριο κλειδί Item_noI_nameList_price Κύριο κλειδί 27
Τρίτη κανονική μορφή – Διορθώστε Order_noC_codeC_nameAddressO_date Κύριο κλειδί Order_noItem_noqty Κύριο κλειδί Item_noI_nameList_price Κύριο κλειδί 28
29
Τέλος Ενότητας Ερωτήσεις;
Σημειώματα
Σημείωμα Αναφοράς Copyright Τεχνολογικό Εκπαιδευτικό Ίδρυμα Αθήνας, Χ. Σκουρλάς Χ. Σκουρλάς. «Βάσεις Δεδομένων I (Θ). Ενότητα 7: Σχεδίαση βάσεων δεδομένων - Παραδείγματα - Επανάληψη». Έκδοση: 1.0. Αθήνα Διαθέσιμο από τη δικτυακή διεύθυνση: ocp.teiath.gr.ocp.teiath.gr
Σημείωμα Αδειοδότησης Το παρόν υλικό διατίθεται με τους όρους της άδειας χρήσης Creative Commons Αναφορά, Μη Εμπορική Χρήση Παρόμοια Διανομή 4.0 [1] ή μεταγενέστερη, Διεθνής Έκδοση. Εξαιρούνται τα αυτοτελή έργα τρίτων π.χ. φωτογραφίες, διαγράμματα κ.λ.π., τα οποία εμπεριέχονται σε αυτό. Οι όροι χρήσης των έργων τρίτων επεξηγούνται στη διαφάνεια «Επεξήγηση όρων χρήσης έργων τρίτων». Τα έργα για τα οποία έχει ζητηθεί άδεια αναφέρονται στο «Σημείωμα Χρήσης Έργων Τρίτων». [1] Ως Μη Εμπορική ορίζεται η χρήση: που δεν περιλαμβάνει άμεσο ή έμμεσο οικονομικό όφελος από την χρήση του έργου, για το διανομέα του έργου και αδειοδόχο που δεν περιλαμβάνει οικονομική συναλλαγή ως προϋπόθεση για τη χρήση ή πρόσβαση στο έργο που δεν προσπορίζει στο διανομέα του έργου και αδειοδόχο έμμεσο οικονομικό όφελος (π.χ. διαφημίσεις) από την προβολή του έργου σε διαδικτυακό τόπο Ο δικαιούχος μπορεί να παρέχει στον αδειοδόχο ξεχωριστή άδεια να χρησιμοποιεί το έργο για εμπορική χρήση, εφόσον αυτό του ζητηθεί.
Επεξήγηση όρων χρήσης έργων τρίτων Δεν επιτρέπεται η επαναχρησιμοποίηση του έργου, παρά μόνο εάν ζητηθεί εκ νέου άδεια από το δημιουργό. © διαθέσιμο με άδεια CC-BY διαθέσιμο με άδεια CC-BY-SA διαθέσιμο με άδεια CC-BY-NC-SA διαθέσιμο με άδεια CC-BY-NC Επιτρέπεται η επαναχρησιμοποίηση του έργου και η δημιουργία παραγώγων αυτού με απλή αναφορά του δημιουργού. Επιτρέπεται η επαναχρησιμοποίηση του έργου με αναφορά του δημιουργού, και διάθεση του έργου ή του παράγωγου αυτού με την ίδια άδεια. Επιτρέπεται η επαναχρησιμοποίηση του έργου με αναφορά του δημιουργού. Δεν επιτρέπεται η εμπορική χρήση του έργου. Επιτρέπεται η επαναχρησιμοποίηση του έργου με αναφορά του δημιουργού και διάθεση του έργου ή του παράγωγου αυτού με την ίδια άδεια. Δεν επιτρέπεται η εμπορική χρήση του έργου. διαθέσιμο με άδεια CC-BY-ND Επιτρέπεται η επαναχρησιμοποίηση του έργου με αναφορά του δημιουργού. Δεν επιτρέπεται η δημιουργία παραγώγων του έργου. διαθέσιμο με άδεια CC-BY-NC-ND Επιτρέπεται η επαναχρησιμοποίηση του έργου με αναφορά του δημιουργού. Δεν επιτρέπεται η εμπορική χρήση του έργου και η δημιουργία παραγώγων του. διαθέσιμο με άδεια CC0 Public Domain διαθέσιμο ως κοινό κτήμα Επιτρέπεται η επαναχρησιμοποίηση του έργου, η δημιουργία παραγώγων αυτού και η εμπορική του χρήση, χωρίς αναφορά του δημιουργού. χωρίς σήμανσηΣυνήθως δεν επιτρέπεται η επαναχρησιμοποίηση του έργου.
Διατήρηση Σημειωμάτων Οποιαδήποτε αναπαραγωγή ή διασκευή του υλικού θα πρέπει να συμπεριλαμβάνει: το Σημείωμα Αναφοράς το Σημείωμα Αδειοδότησης τη δήλωση Διατήρησης Σημειωμάτων το Σημείωμα Χρήσης Έργων Τρίτων (εφόσον υπάρχει) μαζί με τους συνοδευόμενους υπερσυνδέσμους.
Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στo πλαίσιo του εκπαιδευτικού έργου του διδάσκοντα. Το έργο «Ανοικτά Ακαδημαϊκά Μαθήματα στο Πανεπιστήμιο Αθηνών» έχει χρηματοδοτήσει μόνο την αναδιαμόρφωση του εκπαιδευτικού υλικού. Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους.