Μετάβαση στο περιεχόμενο

Βάσεις Δεδομένων — Εξέταση 2021 (ωρομέτρηση HR)

Μεταγραφή από το κείμενο του PDF «-----2021-B-.pdf» (πλήρες text layer).

-----2021-B-.pdf

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ

ΚΑΘΗΓΗΤΗΣ : Β. ΜΕΓΑΛΟΟΙΚΟΝΟΜΟΥ ΕΔΙΠ: Ε. ΒΟΓΙΑΤΖΑΚΗ

ΟΝΟΜΑΤΕΠΩΝΥΜΟ:.............................................................................................. ΑΜ:......................................................ΕΤΟΣ:.............................................................

Διάρκεια εξέτασης: 80 λεπτά

Θέμα 1 [30 μονάδες]

Αναλαμβάνουμε να υλοποιήσουμε μία εφαρμογή για το τμήμα ανθρώπινου δυναμικού (HR) μιας εταιρίας, η οποία θα εξυπηρετεί την καταγραφή του χρόνου εργασίας κάθε εργαζομένου με την χρήση μαγνητικών καρτών. Το συγκεκριμένο σύστημα ωρομέτρησης πρέπει να διατηρεί τις παρακάτω πληροφορίες:

  • Ο κάθε εργαζόμενος έχει ονοματεπώνυμο, διεύθυνση, τμήμα εργασίας, και μοναδικό ID.

  • Το κάθε τμήμα εργασίας έχει έναν εργαζόμενο ως μοναδικό υπεύθυνο

  • Για κάθε υπεύθυνο θέλουμε να γνωρίζουμε το εσωτερικό του τηλέφωνο

  • Για κάθε τμήμα θέλουμε να γνωρίζουμε το κτήριο που βρίσκεται

  • Σε κάθε εργαζόμενο διαθέτουμε μία κάρτα που την χρησιμοποιεί για την καταγραφή της έναρξης (ημερομηνία και ώρα) και της λήξης (ημερομηνία και ώρα) της εργασίας του.

  • Κάθε κάρτα έχει μοναδικό αναγνωριστικό ID, και θέλουμε να γνωρίζουμε εάν την χρησιμοποιεί κάποιος εργαζόμενος (ενεργή) ή βρίσκεται στο HR (ανενεργή).

  • Σε περίπτωση που ένας εργαζόμενος βρίσκεται σε άδεια, παραδίδει την κάρτα του, με ενδεχόμενο να την χρησιμοποιήσει κάποιος άλλος στην πορεία.

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

  • Στο τέλος του μήνα τα συγκεντρωτικά στοιχεία των ωρών εργασίας μεταφέρονται στο τμήμα μισθοδοσία για τον υπολογισμό της μισθοδοσίας των εργαζομένων

Σχεδιάστε ένα διάγραμμα E-R για την παραπάνω εφαρμογή και διατυπώστε γραπτώς τις υποθέσεις που κάνατε (στο διάγραμμα θα πρέπει να φαίνονται ευδιάκριτοι όλοι οι συμβολισμοί που χρησιμοποιούμε σε ένα E-R).

Θέμα 2 [20 μονάδες]

Θεωρήστε το παρακάτω σχεσιακό σχήμα το οποίο αφορά πληροφορίες που διατηρεί μια εταιρία για τους τιμοκαταλόγους εξαρτημάτων από διάφορους προμηθευτές της:

Suppliers (sid: integer, sname: string, city: string, address: string) Parts (pid: integer, pname: string, color: string)

Catalog (sid: integer, pid: integer, cost: real)

  • 2.1 Να γράψετε σε SQL τα παρακάτω ερωτήματα:

  • 2.1a. Τα ονόματα των προμηθευτών που διαθέτουν εξαρτήματα με χρώμα ‘κόκκινο’. (5 μονάδες)

2.1b. Τα ονόματα και τις τιμές των εξαρτημάτων με χρώματα ‘κόκκινο’ ή ‘πράσινο’ τα οποία διαθέτουν προμηθευτές από την ‘Πάτρα’. (10 μονάδες)

  • 2.2 Για την SQL έκφραση:

SELECT C1.pid FROM Catalog C1 WHERE EXISTS (SELECT *

FROM Catalog C2

WHERE C1.pid = C2.pid AND C1.sid  C2.sid )

2.2a. Περιγράψτε με σαφήνεια το ερώτημα που εξυπηρετεί η παραπάνω SQL έκφραση. (5 μονάδες)

Θέμα 3 [20 μονάδες]

Θεωρήστε το σχήμα R(Α,Β, C, D, E) με τις ακόλουθες συναρτησιακές εξαρτήσεις

A → BC CD → E B → D

E → A

Έστω ότι διασπάμε το σχήμα R σε R1(A, B, C), R2 (A, D, E).

  1. Είναι ο παραπάνω διαχωρισμός χωρίς απώλειες (lossless-join). Δικαιολογήστε την απάντησή σας. (10 μονάδες)

  2. Διατηρεί ο παραπάνω διαχωρισμός τις συναρτησιακές εξαρτήσεις; Δικαιολογήστε την απάντησή σας. (10 μονάδες)

Θέμα 4 [30 μονάδες]

Ένα αρχείο έχει r=65536 εγγραφές του τύπου ΤΑΙΝΙΑ με σταθερό μήκος. Κάθε εγγραφή έχει τα ακόλουθα πεδία:

  • ΚΩΔΙΚΟΣ (2 bytes)

  • ΤΙΤΛΟΣ (27 bytes)

  • ΟΡΙΟ ΗΛΙΚΙΑΣ (3 bytes)

Το αρχείο είναι αποθηκευμένο σε δίσκο με μέγεθος μπλοκ B=512 bytes Οι εγγραφές είναι ταξινομημένες στον δίσκο με βάση το πρωτεύον κλειδί.

  1. Υπολογίστε τον παράγοντα ομαδοποίησης bfr (blocking factor) για το συγκεκριμένο αρχείο. (5 μονάδες)

  2. Ποιος είναι ο απαιτούμενος αριθμός block προκειμένου να αποθηκευθεί το σύνολο των εγγραφών του αρχείου, υποθέτοντας μη εκτεινόμενη οργάνωση; (10 μονάδες)

  3. Ας υποθέσουμε ότι χρησιμοποιούμε δευτερεύον πυκνό ευρετήριο (ως προς τον ΤΙΤΛΟ) με μήκος δείκτη block P=5 bytes. Ποιος ο απαιτούμενος αριθμός προσπελάσεων μπλοκ στον δίσκο για να βρεθεί η ζητούμενη εγγραφή (στην μέση περίπτωση) του ερωτήματος: (15 μονάδες)

SELECT * FROM ΤΑΙΝΙΑ WHERE ΤΙΤΛΟΣ = 'The Shawshank Redemption'

Καλή επιτυχία!!


✖ Βρήκα λάθος στη μεταγραφή