Βάσεις Δεδομένων — Φεβρουάριος 2025¶
Μεταγραφή των δύο φωτογραφιών της ίδιας εξεταστικής κόλλας (Θέματα 1–2 στην πρώτη φωτογραφία, Θέματα 3–6 στη δεύτερη).
IMG-eee7c7d81273a0926ee930e15f8480fd-V.jpg¶
ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ
ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ
ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ Η/Υ & ΠΛΗΡΟΦΟΡΙΚΗΣ
ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ¶
ΚΑΘΗΓΗΤΗΣ: Β. ΜΕΓΑΛΟΟΙΚΟΝΟΜΟΥ
ΕΔΙΠ: Ε. ΒΟΓΙΑΤΖΑΚΗ, Ι. ΒΑΣΙΛΟΠΟΥΛΟΣ
ΟΝΟΜΑΤΕΠΩΝΥΜΟ: __________________________________________________
ΑΜ: _______________________ ΕΤΟΣ: _________________________
Θέμα 1: Σχεδίαση Βάσεων Δεδομένων [20 μονάδες]¶
Έστω ότι επιθυμούμε να σχεδιάσουμε τη βάση δεδομένων μιας υπηρεσίας κοινωνικής δικτύωσης, του MyProfile. Για κάθε χρήστη, επιθυμούμε να διατηρούμε το ονοματεπώνυμό του, ένα μοναδικό συνθηματικό εισόδου και μια διεύθυνση. Επίσης, θα θέλαμε η υπηρεσία να υποστηρίζει τις ακόλουθες λειτουργίες και να καταγράφει την απαραίτητη πληροφορία: - Κάθε χρήστης έχει φίλους. - Κάθε χρήστης μπορεί να γράφει δημοσιεύσεις στον «πίνακα δημοσιεύσεων» (wall). Ένα άτομο μπορεί να γράφει δημοσιεύσεις στον δικό του «πίνακα δημοσιεύσεων» ή σε κάποιου φίλου του. Κάθε δημοσίευση θα πρέπει να σχετίζεται τόσο με τον χρήστη που την γράφει όσο και με τον ιδιοκτήτη του «πίνακα δημοσιεύσεων». Επίσης, θα πρέπει να διατηρούμε την χρονική στιγμή που πραγματοποιήθηκε η δημοσίευση καθώς και το κείμενό της. - Τέλος, για κάθε χρήστη επιθυμούμε να διατηρούμε τις «εμφανίσεις» του, όποτε αυτοί επιλέγουν να ανεβάσουν την τοποθεσία στην οποία βρίσκονται (π.χ. μέσω κινητού). Για κάθε «εμφάνιση» του χρήστη, καταγράφουμε τις συντεταγμένες (x,y) της τοποθεσίας στην οποία βρίσκεται και την χρονική στιγμή της «εμφάνισης». Πολλοί χρήστες μπορεί να βρίσκονται στην ίδια τοποθεσία την ίδια χρονική στιγμή (π.χ. κατά την διάρκεια του μαθήματος σε μια αίθουσα). Επίσης, ένας χρήστης μπορεί να επισκεφθεί την ίδια τοποθεσία περισσότερες από μια φορές.
Σχεδιάστε ένα διάγραμμα E-R για την παραπάνω εφαρμογή και διατυπώστε γραπτώς τις υποθέσεις που κάνατε.
Θέμα 2: Γλώσσες επερωτήσεων [20 μονάδες]¶
Θεωρήστε το παρακάτω σχεσιακό σχήμα το οποίο διατηρεί πληροφορίες σχετικά με τα στοιχεία μιας εταιρίας:
Τοποθεσία (Τοπ_κωδικός, Όνομα)
Κατάστημα (Κατ_κωδικός, Όνομα, Τοπ_κωδικός)
Εργασία (Ερ_κωδικός, Επάγγελμα)
Υπάλληλος (Υπ_κωδικός, Όνομα, Επώνυμο, Μισθός, Κατ_κωδικός, Ερ_κωδικός, Διευθυντής_κωδικός)
Εκφράστε σε SQL και σε σχεσιακή άλγεβρα τα παρακάτω ερωτήματα:
(α) Βρείτε όλους του υπαλλήλους οι οποίοι εργάζονται στο κατάστημα με κωδικό 20 και ο μισθός τους είναι μεταξύ των 1500 και 2000 ευρώ. (5 μονάδες)
(β) Βρείτε τους κωδικούς των καταστημάτων καθώς και το πλήθος τους, τα οποία απασχολούν τουλάχιστον τέσσερις υπαλλήλους. (15 μονάδες)
IMG-9c08054e6724f0decc4fc88491ab7797-V.jpg¶
Θέμα 3: Θεωρία Σχεδίασης [15 μονάδες]
Θεωρήστε το σχήμα \(R = (A,B,C,D,E)\) και το ακόλουθο σύνολο συναρτησιακών εξαρτήσεων \(F\): * \(A \rightarrow B\) * \(B \rightarrow C\) * \(BC \rightarrow E\) * \(ED \rightarrow B\)
Ερωτήσεις: α) Υπολογίστε την κλειστότητα των συνόλων των γνωρισμάτων A, CE, AD, και CDE. Ποια από τα παραπάνω σύνολα γνωρισμάτων αποτελούν υποψήφια κλειδιά του παραπάνω σχήματος; Δικαιολογήστε την απάντηση σας. (7 μονάδες)
(β) Έστω το σχήμα R διασπάται σε \(R_1\ (A,B,D)\) και \(R_2\ (B,C,E)\). Αποτελεί ο παραπάνω διαχωρισμός έναν διαχωρισμό χωρίς απώλειες συνένωσης (lossless-join); Δικαιολογήστε την απάντησή σας. (8 μονάδες)
Θέμα 4: Οργάνωση Αρχείων [25 μονάδες]
Ένα αρχείο έχει \(r=65536\) εγγραφές του τύπου Αθλητής_Καλαθοσφαίρισης με σταθερό μήκος. Κάθε εγγραφή έχει τα ακόλουθα πεδία: * ΚΩΔΙΚΟΣ (4 bytes) * ΟΝΟΜΑ (9 bytes) * ΕΠΩΝΥΜΟ (9 bytes) * ΘΕΣΗ (8 bytes) * ΗΛΙΚΙΑ (2 bytes)
Το αρχείο είναι αποθηκευμένο σε δίσκο με τα εξής χαρακτηριστικά: * Μέγεθος μπλοκ B=512 bytes
Οι εγγραφές είναι ταξινομημένες στον δίσκο με βάση το πρωτεύον κλειδί.
Ερωτήσεις:
(α) Υπολογίστε τον παράγοντα ομαδοποίησης bfr (blocking factor) για το συγκεκριμένο αρχείο. Ποιος είναι ο απαιτούμενος αριθμός block προκειμένου να αποθηκευθεί το σύνολο των εγγραφών του αρχείου, υποθέτοντας μη εκτεινόμενη οργάνωση; (5 μονάδες)
(β) Ας υποθέσουμε ότι το αρχείο μας είναι διατεταγμένο και επιθυμούμε να πραγματοποιήσουμε μια αναζήτηση. Ποιος είναι ο απαιτούμενος αριθμός προσπελάσεων μπλοκ στον δίσκο για να βρεθεί η ζητούμενη εγγραφή για την μέση περίπτωση τόσο για την γραμμική όσο και για την δυαδική αναζήτηση; (10 μονάδες)
(γ) Εάν υποθέσουμε ότι δεικτοδοτούμε τα δεδομένα χρησιμοποιώντας ένα πολυεπίπεδο ευρετήριο (ως προς τον ΚΩΔΙΚΟ) με παράγοντα διακλάδωσης (fan-out) bfri (που θα πρέπει να υπολογίσετε), πόσα επίπεδα απαιτούνται ώστε να δεικτοδοτηθεί το σύνολο των εγγραφών με δεδομένο ότι το μήκος δείκτη block που θα χρησιμοποιηθεί είναι 4 bytes; (10 μονάδες)
Θέμα 5: Ευρετήρια και Κατακερματισμός [10 μονάδες]
Ποια είναι τα πλεονεκτήματα των ευρετηρίων με την χρήση B-trees σε σχέση με τα ευρετήρια που χρησιμοποιούν κατακερματισμό; (10 μονάδες)
Θέμα 6: NoSQL και RDBMSs [10 μονάδες]
Σε ποιες περιπτώσεις ενδείκνυται η χρήση των NoSQL βάσεων δεδομένων και σε ποιες των RDBMSs; (10 μονάδες)
Καλή επιτυχία!!
Επιπλέον πηγές χωρίς μεταγραφή εδώ (λύσεις →
2025-02.solutions.md, ή διπλότυπες φωτογραφίες της ίδιας σελίδας):20230204_134706.jpg
Λύσεις (🟡 community)
Κατάσταση: 🟡 community Πηγή: φωτογραφία λύσης από το Discord (φοιτητική λύση, φωτογραφία με ημερομηνία 4/2/2023)
Προσοχή
Η φωτογραφία φέρει ημερομηνία 4/2/2023, όχι 2025· η αντιστοίχιση με τη σύνοδο Φεβρουαρίου 2025 βασίζεται στα αριθμητικά δεδομένα (r = 65.536, B = 512, εγγραφή 32 bytes) που ταυτίζονται με το Θέμα 4 του φύλλου, όχι σε ένδειξη της ίδιας της φωτογραφίας. Η ανάλυση των πεδίων στη λύση (2 + 27 + 3 = 32 bytes) δεν ταυτίζεται με τα πεδία της εκφώνησης (4 + 9 + 9 + 8 + 2 = 32 bytes)· το συνολικό μέγεθος 32 bytes συμφωνεί, η ανάλυση όχι. Το bfr = 16 και το b = 4096 είναι συνεπή με τα 32 bytes. Η λύση καλύπτει μόνο τα ερωτήματα 1–2 (bfr και b)· τα ερωτήματα (β) και (γ) του Θέματος 4 δεν λύνονται στη φωτογραφία.
Λύση — Βάσεις Δεδομένων — Φεβρουάριος 2025 (Θέμα 4, ερωτήματα 1–2)¶
Φοιτητική λύση των ερωτημάτων 1–2 του Θέματος 4 (Αθλητής_Καλαθοσφαίρισης, r = 65.536, B = 512). Η λύση δεν έχει ελεγχθεί από τον διδάσκοντα.
20230204_134706.jpg¶
ΘΕΜΑ 4.
-
\(R = (2+27+3) = 32\) \(bfr = [B/R] = \frac{512}{32} = 16\)
-
\(b = [r/bfr] = \frac{65.536}{16} = 4096.\)