Ιούνιος 2003: Θέµα 2 (Μονάδες 4,0) Δίνεται το ακόλουθο σχεσιακό σχήµα: Suppliers(sid: integer, sname: string, address: string) Parts(pid: integer, pname: string, color: string) Catalog(sid: integer, pid: integer, cost: real) Οι τρεις σχέσεις καταχωρούν προµηθευτές (Suppliers), εξαρτήµατα (Parts) και πληροφορίες του τιµοκαταλόγου (Catalog). Στη δοµή του προµηθευτή, γνωρίσµατα είναι ο κωδικός (sid), το ονοµατεπώνυµο (sname) και η ταχυδροµική του διεύθυνση (address). Το εξάρτηµα περιγράφεται µε τα γνωρίσµατα: κωδικός (pid), όνοµα (pname) και χρώµα (color). Τέλος, κάθε µία πλειάδα του καταλόγου καταχωρεί την τιµή (cost) προµήθειας ενός εξαρτήµατος (pid) από συγκεκριµένο προµηθευτή (sid). Στην παραπάνω αναφορά στο σχήµα, υπογραµµίζονται τα πεδία τα οποία συµµετέχουν στο σχηµατισµό κάθε ενός κύριου κλειδιού. Επίσης, δίπλα στο όνοµα κάθε ενός από τα πεδία αναφέρεται το πεδίο ορισµού από το οποίο αντλεί τις τιµές του. Συγκεκριµένα, το sid αποτελεί κύριο κλειδί της Suppliers, το pid είναι κύριο κλειδί για την Parts και ο συνδυασµός των pid και sid αποτελεί κύριο κλειδί για τη σχέση Catalog. Ζητείται: 1. Να διατυπωθεί µε λόγια το αποτέλεσµα που υπολογίζει η ακόλουθη παράσταση σχεσιακής άλγεβρας (x ο τελεστής της φυσικής σύζευξης): π sid ((σ color= red Parts) x (σ cost<100 Catalog)) " π sid ((σ color= green Parts) x (σ cost<100 Catalog)) (Μονάδες 1,0) Υπολογίζει τους κωδικούς των προµηθευτών κάθε ένας από τους οποίους προµηθεύει ΚΑΙ κόκκινο(-α) προϊόν(-ντα) σε κόστος µικρότερο των 100 και πράσινο(-α) προϊόν(-ντα) σε κόστος µικρότερο των 100. 2. Να τροποποιηθεί κατάλληλα η παραπάνω παράσταση ώστε στο αποτέλεσµα να προκύπτουν τα ονοµατα των προµηθευτών και όχι οι κωδικοί τους (Μονάδες 1,0) π sname (π sid ((σ color= red Parts) x (σ cost<100 Catalog)) " π sid ((σ color= green Parts) x (σ cost<100 Catalog)) x Suppliers) 3. Να συνταχθεί κώδικας SQL ο οποίος να υπολογίζει το ίδιο αποτέλεσµα µε την αλγεβρική παράσταση του παραπάνω (1). Θεωρήστε ότι η SQL που χρησιµοποιείτε υποστηρίζει την πράξη της τοµής (INTERSECT) (Μονάδες 2,0) SELECT sid FROM Suppliers WHERE sid IN (SELECT sid AND Parts.color= red ) INTERSECT / εναλλακτικά:...and sid IN SELECT sid FROM Suppliers WHERE sid IN (SELECT sid AND Parts.color= Green )
Πολύ απλούστερα: SELECT sid AND Parts.color= red ) INTERSECT SELECT sid AND Parts.color= green ) Φεβρουάριος 2004: Θέµα 1 (Μονάδες 5) Έστω µια βάση δεδοµένων πανεπιστηµιακού τµήµατος για την οποία ισχύουν τα εξής:! Ο κάθε ένας καθηγητής χαρακτηρίζεται από τον αριθµό της ταυτότητάς του (ΑΤ), το όνοµα (Όνοµα), την ηλικία (Ηλικία), τη βαθµίδα (Βαθµίδα) και την εξειδίκευσή του (Ειδικότητα).! Υπάρχουν ερευνητικά προγράµµατα, κάθε ένα από τα οποία έχει έναν κωδικό (Π_Κωδικός), ένα χορηγό (Χορηγός), µία ηµεροµηνία έναρξης (Έναρξη) και έναν προϋπολογισµό (Προϋπολογισµός).! Το κάθε ένα πρόγραµµα διευθύνεται από έναν καθηγητή και υλοποιείται από έναν ή περισσότερους καθηγητές.! Οι καθηγητές µπορούν να διευθύνουν ή/και να εργάζονται σε περισσότερα του ενός προγράµµατα.! Στα προγράµµατα µπορούν να συµµετέχουν µηδέν, ένας ή περισσότεροι φοιτητές του τµήµατος! Ο κάθε ένας φοιτητής χαρακτηρίζεται από έναν (µοναδικό) αριθµό µητρώου (ΑΜ), ένα όνοµα (Όνοµα) και την ηλικία του (Ηλικία)! Οι παλαιότεροι (στο τµήµα) φοιτητές µπορούν να αναλαµβάνουν καθήκοντα επίβλεψης/καθοδήγησης των νεαρότερων συµφοιτητών τους. Ένας (νέος) φοιτητής δεν µπορεί να έχει περισσότερους από έναν (επιβλέποντες) συµφοιτητές του.! Ο κάθε ένας καθηγητής µπορεί να εργάζεται σε περισσότερα του ενός προγράµµατα, ταυτόχρονα. Η εργασιακή σχέση χαρακτηρίζεται από το ποσοστό του χρόνου που ο καθηγητής διαθέτει στο (αντίστοιχο) πρόγραµµα (%_Χρόνος) Για το εν λόγω σύστηµα δίνεται η εξής µη κανονική µορφή η οποία το περιγράφει: ΜΚΜ(Π_Κωδικός, Χορηγός, Έναρξη, Προϋπολογισµός, ΑΤ_Διευθυντή, Όνοµα_Διευθυντή, Ηλικία_Διευθυντή, Βαθµίδα_Διευθυντή, Ειδικότητα_Διευθυντή, (ΑΤ, Όνοµα, Ηλικία, Βαθµίδα, Ειδικότητα, %_Χρόνος), (ΑΜ, Όνοµα, Ηλικία, ΑΜ_Επιβλέποντα, Όνοµα_Επιβλέποντα, Ηλικία_Επιβλέποντα)) Ζητείται: 1. Να κανονικοποιηθεί το παραπάνω σχήµα µε εφαρµογή της µεθοδολογίας της κανονικοποίησης µε διάσπαση. Η κανονικοποίηση να γίνει µέχρι και την 3NF ( Μονάδες 3) 2. Να κατασκευαστεί το αντίστοιχο, ισοδύναµο, διάγραµµα οντότητας-συσχέτισης (ER). ( Μονάδες 2) ΑΠΑΝΤΗΣΗ:
MKM1 (Π_Κωδικός, Χορηγός, Έναρξη, Προϋπολογισµός, ΑΤ_Διευθυντή, Όνοµα_Διευθυντή, Ηλικία_Διευθυντή, Βαθµίδα_Διευθυντή, Ειδικότητα_Διευθυντή, (ΑΤ, Όνοµα, Ηλικία, Βαθµίδα, Ειδικότητα, %_Χρόνος)) MKM2 (Π_Κωδικός, Χορηγός, Έναρξη, Προϋπολογισµός, ΑΤ_Διευθυντή, Όνοµα_Διευθυντή, Ηλικία_Διευθυντή, Βαθµίδα_Διευθυντή, Ειδικότητα_Διευθυντή, (ΑΜ, Όνοµα, Ηλικία, ΑΜ_Επιβλέποντα, Όνοµα_Επιβλέποντα, Ηλικία_Επιβλέποντα)) 1NF MKM1(Π_Κωδικός, Χορηγός, Έναρξη, Προϋπολογισµός, ΑΤ_Διευθυντή, Όνοµα_Διευθυντή, Ηλικία_Διευθυντή, Βαθµίδα_Διευθυντή, Ειδικότητα_Διευθυντή, ΑΤ, Όνοµα, Ηλικία, Βαθµίδα, Ειδικότητα, %_Χρόνος) MKM2(Π_Κωδικός, Χορηγός, Έναρξη, Προϋπολογισµός, ΑΤ_Διευθυντή, Όνοµα_Διευθυντή, Ηλικία_Διευθυντή, Βαθµίδα_Διευθυντή, Ειδικότητα_Διευθυντή, ΑΜ, Όνοµα, Ηλικία, ΑΜ_Επιβλέποντα, Όνοµα_Επιβλέποντα, Ηλικία_Επιβλέποντα) 2NF ΠΡΟΓΡΑΜΜΑ(Π_Κωδικός, Χορηγός, Έναρξη, Προϋπολογισµός, ΑΤ_Διευθυντή, Όνοµα_Διευθυντή, Ηλικία_Διευθυντή, Βαθµίδα_Διευθυντή, Ειδικότητα_Διευθυντή) ΠΡΟΓΡΑΜΜΑ(Π_Κωδικός, Χορηγός, Έναρξη, Προϋπολογισµός, ΑΤ_Διευθυντή, Όνοµα_Διευθυντή, Ηλικία_Διευθυντή, Βαθµίδα_Διευθυντή, Ειδικότητα_Διευθυντή) ΦΟΙΤΗΤΗΣ(ΑΜ, Όνοµα, Ηλικία, ΑΜ_Επιβλέποντα, Όνοµα_Επιβλέποντα, Ηλικία_Επιβλέποντα) 3NF ΔΙΕΘΥΝΤΗΣ(ΑΤ_Διευθυντή, Όνοµα_Διευθυντή, Ηλικία_Διευθυντή, Βαθµίδα_Διευθυντή, Ειδικότητα_Διευθυντή) ΦΟΙΤΗΤΗΣ(ΑΜ, Όνοµα, Ηλικία, ΑΜ_Επιβλέποντα) ΔΙΕΘΥΝΤΗΣ(ΑΤ_Διευθυντή, Όνοµα_Διευθυντή, Ηλικία_Διευθυντή, Βαθµίδα_Διευθυντή, Ειδικότητα_Διευθυντή) ΕΠΙΒΛΕΠΩΝ(ΑΜ_Επιβλέποντα, Όνοµα_Επιβλέποντα, Ηλικία_Επιβλέποντα) Συγκερασµός: ΦΟΙΤΗΤΗΣ(ΑΜ, Όνοµα, Ηλικία, ΑΜ_Επιβλέποντα)
Διάγραµµα ER: Βαθµίδα Ηλικία Ειδικότητα Όνοµα ΑΤ Επιβλέπων ΚΑΘΗΓΗΤΗΣ ΦΟΙΤΗΤΗΣ Συµµετέχει Εργάζεται Διευθύνεται Ηλικία Όνοµα ΑΜ %_Χρόνος ΠΡΟΓΡΑΜΜΑ Π_Κωδικός Χορηγός Προϋπολογισµός Έναρξη Φεβρουάριος 2004: Θέµα 3 (Μονάδες 2) Δίνεται πίνακας Σ(Α,Β,Γ,Δ) όπου ισχύουν οι συναρτησιακές εξαρτήσεις F1: A B και F2: Γ,Β Δ. Εξηγήστε για ποιο λόγο κάποιο ή κάποια από τα στιγµιότυπα του πίνακα που ακολουθούν παραβιάζει ή παραβιάζουν το σύνολο της περιγραφής για το δεδοµένο σύστηµα. Σ1 Σ2 Α Β Γ Δ Α Β Γ Δ 1 1 1 1 1 1 1 2 1 1 1 2 2 1 1 2 2 2 1 2 3 2 1 1 3 2 1 2 3 2 2 2 Σ3 Σ4 Α Β Γ Δ Α Β Γ Δ 1 1 1 1 1 1 1 1 1 1 1 2 2 1 1 2 2 2 2 2 1 2 1 2 2 2 2 3 2 2 1 1 Πιο συγκεκριµένα, αντιγράψτε στη σελίδα των απαντήσεών σας τον πίνακα που ακολουθεί και συµπληρώστε τα κενά του µε ένα ΝΑΙ (= Ισχύει ) ή µε ένα ΟΧΙ (= Δεν Ισχύει ). Μην παραλείψετε να αιτιολογήσετε ξεχωριστά, κάθε µία από τις περιπτώσεις του ΟΧΙ. Σ1 Σ2 Σ3 Σ4
F1 F2 ΑΠΑΝΤΗΣΗ (ο _2 έχει εναλλαγή: Σ1-Σ3 και Σ2-Σ4) Σ1 Σ2 Σ3 Σ4 F1 Χ (γρ.1,3&2,4) F2 Χ (γρ.1,2) Χ (γρ.1,2&3,4) Χ (γρ.1,2&3,4)