ΘΕΜΑΤΑ Θέμα 1 ο Σε μία βάση δεδομένων χρηματιστηριακών συναλλαγών υπάρχουν οι παρακάτω πίνακες που αποτελούνται από τα εξής πεδία : : ΚΣ, ΗΜΝΙΑ, ΩΡΑ, ΚΜ, ΤΙΜΗ ΜΕΤΟΧΗ : ΚΜ, ΟΝΟΜΑ, ΕΤΟΣ_ΙΔΡΥΣΗΣ, ΚΚ, ΚΑΤΗΓΟΡΙΑ : ΚΚ, ΚΑΤΗΓΟΡΙΑ ΣΤΑΤΙΣΤΙΚΗ : ΚΜ, ΗΜΕΡΟΜΗΝΙΑ, MIN_TIMH, MAX_TIMH, ΜΕΣΗ_ΤΙΜΗ_ΗΜΕΡΑΣ Α. Εάν γνωρίζατε ότι κρατάμε στοιχεία για 3 μετοχές τότε δημιουργήστε ερώτημα SQL που να προβάλει ένα πίνακα με την ΗΜΕΡΟΜΗΝΙΑ, ΩΡΑ και τις τιμές της κάθε μετοχής την μία δίπλα στην άλλη, ταξινομημένα κατά ημερομηνία σε φθίνουσα σειρά και ώρα σε αύξουσα σειρά. Να γίνει χρήση όψεων και στην τελευταία όψη να χρησιμοποιηθεί η εντολή LEFT JOIN. Β. ημιουργήστε ερώτημα SQL που να προβάλει τα στοιχεία των μετοχών (ΚΜ, ΟΝΟΜΑ, ΚΑΤΗΓΟΡΙΑ, ΜΕΣΗ_ΤΙΜΗ) με την μεγαλύτερη ΜΕΣΗ_ΤΙΜΗ από τις 1/1/2010 έως 1/9/2010. Να γίνει χρήση όψεων. Γ. ημιουργήστε μια σκανδάλη (trigger) πάνω στον πίνακα ώστε κάθε φορά που γίνεται εισαγωγή νέας εγγραφής να ελέγχει να βρίσκει και να καταχωρεί στον πίνακα ΣΤΑΤΙΣΤΙΚΗ την μικρότερη και την μεγαλύτερη τιμή, της μετοχής μέχρι την ώρα που έγινε η συναλλαγή, και να υπολογίζει την ΜΕΣΗ_ΤΙΜΗ_ΗΜΕΡΑΣ, τα οποία θα υπολογίζονται για την ημέρα και ώρα που γίνεται η συναλλαγή. Την πρώτη φορά κάθε μέρα θα γίνεται εισαγωγή νέας εγγραφής στον πίνακα ΣΤΑΤΙΣΤΙΚΗ σε κάθε νέα συναλλαγή όμως της μετοχής θα γίνεται ενημέρωση των στοιχείων του πίνακα για την κάθε μετοχή που άλλαξε τιμές.. ημιουργήστε σε XML τους πίνακες και ΜΕΤΟΧΗ της βάσης δεδομένων DATA, έχοντας ο καθένας μια εγγραφή με δικά σας δεδομένα. 3 μονάδες 1 μονάδες Θέμα 2 ο ΠΟΛΛΑΠΛΗΣ ΕΠΙΛΟΓΗΣ (Για κάθε σωστή απάντηση στις ερωτήσεις πολλαπλής επιλογής +0.5. Για κάθε λανθασμένη απάντηση στις ερωτήσεις πολλαπλής επιλογής υπάρχει αρνητική βαθμολογία -0.125 μονάδες) Ερώτηση 1 Κατά τη Φυσική Αποθήκευση (Physical storage) μιας ΒΔ αποθηκεύονται στον δίσκο τα: Α. Αρχεία δεδομένων ( data files), Λεξικό δεδομένων (data dictionary), Ευρετήρια-Δείκτες (index), Όψεις (Views), Στιγμιότυπα ( Instances). Β. Αρχεία δεδομένων ( data files), Λεξικό δεδομένων (data dictionary), Ευρετήρια-Δείκτες (index), Όψεις (Views), Κλειδιά (keys) Γ. Στιγμιότυπα ( Instances), Λεξικό δεδομένων (data dictionary), Ευρετήρια-Δείκτες (index) Δ. Αρχεία δεδομένων ( data files), Λεξικό δεδομένων (data dictionary), Ευρετήρια-Δείκτες (index) 24/9/2010 1
Ερώτηση 2 Ποιο από τα παρακάτω είναι αληθές Α. To ADO αποτέλεσε την βάση για την άφιξη του OLE DB Β. To BDE αποτέλεσε την βάση για την άφιξη του ODBC Γ. To OLE DB αποτέλεσε την βάση για την άφιξη του ODBC Δ. To OLE DB αποτέλεσε την βάση για την άφιξη του ADO Ερώτηση 3 Μία σχέση είναι σε 4ΚΜ όταν Α. Όταν δεν περιέχει εξαρτήσεις σύζευξης. B. Όταν περιέχει εξαρτήσεις σύζευξης. Γ. Όταν δεν περιέχει εξαρτήσεις πολλαπλών τιμών. Δ. Όταν περιέχει εξαρτήσεις πολλαπλών τιμών. Ερώτηση 4 Ποια είναι η σύνταξη της εντολής με την οποία αφαιρείται από τον χρήστη bbuser το δικαίωμα να μπορεί να τροποποιεί (μόνο) το γνώρισμα e-mail της σχέσης Customer. Α. Remove Update (e-mail) ON Customer From bbuser Β. Grant Update (e-mail) ON Customer TO bbuser Γ. Remove Update (e-mail) FOR Customer TO bbuser Δ. καμία Καλή Επιτυχία 24/9/2010 2
ΛΥΣΕΙΣ Θέμα 1 ο A CREATE VIEW FIN1 AS WHERE (ΚΜ = 1) CREATE VIEW FIN2 AS WHERE (ΚΜ = 2) CREATE VIEW FIN3 AS WHERE (ΚΜ = 3) SELECT.ΗΜΝΙΑ,.ΩΡΑ, FIN1.ΤΙΜΗ AS MET1, FIN2.ΤΙΜΗ AS MET2, FIN3.ΤΙΜΗ AS MET3 LEFT OUTER JOIN FIN2 ΟΝ.ΗΜΝΙΑ = FΙΝ2.ΗΜΝΙΑ ΑΝD.ΩΡΑ = FΙΝ2.ΩΡΑ LEFT OUTER JOIN FIN3 ON.ΗΜΝΙΑ = FIN3.ΗΜΝΙΑ AND.ΩΡΑ = FIN3.ΩΡΑ LEFT OUTER JOIN FIN1 ON.ΗΜΝΙΑ = FIN1.ΗΜΝΙΑ AND FIN1.ΩΡΑ =.ΩΡΑ ORDER BY.ΗΜΝΙΑ DESC,.ΩΡΑ 24/9/2010 3
Θέμα 1 ο B CREATE VIEW VI AS SELECT ΚΜ, AVG(ΤΙΜΗ) AS MO dbo. WHERE (ΗΜΝΙΑ >= '1-1-2010') AND (ΗΜΝΙΑ <= '1-9-2010') GROUP BY ΚΜ CREATE VIEW V2 AS SELECT ΜΕΤΟΧΗ.ΚΜ, ΜΕΤΟΧΗ.ΟΝΟΜΑ, ΜΕΤΟΧΗ.ΕΤΟΣ_ΙΔΡΥΣΗΣ, ΚΑΤΗΓΟΡΙΕΣ.ΚΑΤΗΓΟΡΙΑ, VI.MO ΜΕΤΟΧΗ INNER JOIN ΚΑΤΗΓΟΡΙΕΣ ON ΜΕΤΟΧΗ.ΚΚ = ΚΑΤΗΓΟΡΙΕΣ.ΚΚ INNER JOIN VI ON ΜΕΤΟΧΗ.ΚΜ = VI.ΚΜ WHERE VI.MO IN (SELECT MAX(MO) VI) 24/9/2010 4
Θέμα 1 ο Γ CREATE TRIGGER Τ1 ON [dbo].[] FOR INSERT AS BEGIN DECLARE @MIN FLOAT, @MAX FLOAT, @MO FLOAT, @KM INT, @HMNIA VARCHAR(10), @KMS INT SELECT @KM=(SELECT ΚΜ INSERTED) SELECT @HMNIA=(SELECT ΗΜΝΙΑ INSERTED) SELECT @MAX=(SELECT MAX(ΤΙΜΗ) WHERE ΚΜ=@KM AND SELECT @MIN=(SELECT MIN(ΤΙΜΗ) WHERE ΚΜ=@KM AND SELECT @MO=(SELECT AVG(ΤΙΜΗ) WHERE ΚΜ=@KM AND SELECT @KMS=(SELECT ΚΜ ΣΤΑΤΙΣΤΙΚΗ WHERE ΚΜ=@KM AND ΗΜΕΡΟΜΗΝΙΑ=@HMNIA) END IF @KMS IS NULL INSERT ΣΤΑΤΙΣΤΙΚΗ(ΚΜ, ΗΜΕΡΟΜΗΝΙΑ, ΜΙΝ_ΤΙΜΗ, ΜΑΧ_ΤΙΜΗ, ΜΕΣΗ_ΤΙΜΗ_ΗΜΕΡΑΣ) VALUES (@KM, @HMNIA, @MIN, @MAX, @MO) ELSE UPDATE ΣΤΑΤΙΣΤΙΚΗ SET ΜΙΝ_ΤΙΜΗ=@MIN, ΜΑΧ_ΤΙΜΗ=@MAX, ΜΕΣΗ_ΤΙΜΗ_ΗΜΕΡΑΣ=@MO WHERE ΚΜ=@KM AND ΗΜΕΡΟΜΗΝΙΑ=@HMNIA Θέμα 1 ο Δ <DATA> <> <ΚΣ> 1 </ΚΣ> <ΗΜΕΡΟΜΗΝΙΑ> 1-1-2010 </ΗΜΕΡΟΜΗΝΙΑ> <ΩΡΑ> 12:00 </ΩΡΑ> <ΚΜ> 101 </ΚΜ> <ΤΙΜΗ> 120 </ΤΙΜΗ> </> <ΜΕΤΟΧΗ> <ΚΜ> 101 </ΚΜ> <ΟΝΟΜΑ> ETEK </ΟΝΟΜΑ> <ΕΤΟΣ_ΙΔΡΥΣΗΣ> 1999 </ΕΤΟΣ_ΙΔΡΥΣΗΣ> <ΚΚ> 1 </ΚΚ> </ΜΕΤΟΧΗ> </DATA> 1 Δ 2 Δ 3 Γ 4 Δ 24/9/2010 5