Έχουµε την βάση της σχολής που αποτελείται από τους παρακάτω πίνακες.

Σχετικά έγγραφα
Πανεπιστήµιο Ιωαννίνων Τµήµα Μαθηµατικών Μάθηµα: Βάσεις εδοµένων (741) Εργαστηριακό Τεστ Οµάδα: Α 18/11/2004

ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΤΜΗΜΑ ΜΑΘΗΜΑΤΙΚΩΝ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΤΜΗΜΑ ΜΑΘΗΜΑΤΙΚΩΝ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΤΜΗΜΑ ΜΑΘΗΜΑΤΙΚΩΝ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΤΜΗΜΑ ΜΑΘΗΜΑΤΙΚΩΝ

Εργαστήριο Βάσεων Δεδομένων. Triggers

Αποθηκευμένες Διαδικασίες Stored Routines (Procedures & Functions)

ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΤΜΗΜΑ ΜΑΘΗΜΑΤΙΚΩΝ

ΘΕΜΑΤΑ. Ερώτηση 1 Κατά τη Φυσική Αποθήκευση (Physical storage) μιας ΒΔ αποθηκεύονται στον δίσκο τα:

Ορισµοί Σχεσιακού Μοντέλου και Τροποποιήσεις Σχέσεων σε SQL

ΕΝΑΥΣΜΑΤΑ ΣΤΗΝ POSTGRES

Βάσεις δεδομένων. (10 ο μάθημα) Ηρακλής Βαρλάμης

Διαχείριση Πολιτισμικών Δεδομένων

. Εργαστήριο Βάσεων Δεδομένων. Triggers

ΦΡΟΝΤΙΣΤΗΡΙΟ ΣΤΗ ΓΛΩΣΣΑ SQL

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι Ενότητα 3:

Postgress ΣΤΟΧΟΣ ΣΧΕΤΙΚΟ ΕΚΠΑΙ ΕΥΤΙΚΟ ΥΛΙΚΟ. ΠΕΡΙΒΑΛΛΟΝ ΓΙΑ ΕΞΑΣΚΗΣΗ pgadmin ΥΠΟΒΑΘΡΟ. Συναρτήσεις στην PostgreSQL. 1. Γενικά

H SQL είναι η γλώσσα για όλα τα εμπορικά σχεσιακά συστήματα διαχείρισης βάσεων δεδομένων

(Μέρος 3:Γλώσσα Ορισµού, Γλώσσα Τροποποίησης, Ενσωµατωµένη SQL) Βάσεις εδοµένων Ευαγγελία Πιτουρά 2

ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΤΜΗΜΑ ΜΑΘΗΜΑΤΙΚΩΝ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ - ΤΜΗΥΠ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι

ΕΠΛ 342 Βάσεις εδοµένων

ΦΡΟΝΤΙΣΤΗΡΙΟ ΣΤΗ ΓΛΩΣΣΑ SQL

Ιατρική Πληροφορική. Δρ. Π. ΑΣΒΕΣΤΑΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΒΙΟΪΑΤΡΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ Τ.Ε.

Βάσεις Δεδομένων 5η εργαστηριακή άσκηση

Ακεραιότητα και Ασφάλεια Μέρος 1 Σχεδιασμός Βάσεων Δεδομένων

Τεχνολογία Πολιτισμικού Λογισμικού

Ορισμοί Σχεσιακού Μοντέλου και Τροποποιήσεις Σχέσεων σε SQL

Ιατρική Πληροφορική. Δρ. Π. ΑΣΒΕΣΤΑΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΒΙΟΪΑΤΡΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ Τ. Ε. Χρήσιμοι Σύνδεσμοι

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ

9η Εργαστηριακή Άσκηση: Stored Procedures - Triggers. Αποθηκευμένες Διαδικασίες (Stored Procedures):

ΚΕΡΑΜΟΠΟΥΛΟΣ ΕΥΚΛΕΙΔΗΣ

Ορισμοί Σχεσιακού Μοντέλου και Τροποποιήσεις Σχέσεων σε SQL

ΕΠΛ 342 Βάσεις εδοµένων

Βάσεις Δεδομένων (Databases)

Τεχνολογία Πολιτισμικού Λογισμικού

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι. Ενότητα 9β: SQL (Διαχείριση εγγραφών, Όψεις, Περιορισμοί, Εναύσματα) Ευαγγελίδης Γεώργιος. Τμήμα Εφαρμοσμένης Πληροφορικής

Εισαγωγή στην πληροφορική

PL/SQL. Κώστας Στεφανίδης

Βάσεις Περιβαλλοντικών Δεδομένων

2 ο Σύνολο Ασκήσεων. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Προσοµοίωση τροχιάς σε Oracle Spatial 8i DBMS

Ενεργές ΒΔ. Παύλος Εφραιμίδης pefraimi <at> ee.duth.gr. Βάσεις Δεδομένων Ενεργές ΒΔ 1

Βάσεις Δεδομένων ΗγλώσσαSQL (Structured Query Language)

1.1 Ανάλυση απαιτήσεων του Υποσυστήματος Μητρώου Εταιρειών Μ.Μ.Ε Ανάλυση απαιτήσεων του Υποσυστήματος Ελέγχου τήρησης μη

Οι εντολές CREATE TABLE, ALTER TABLE, CREATE KEY, ALTER KEY.

Ορισμοί Σχεσιακού Μοντέλου και (απλές)τροποποιήσεις Σχέσεων στην SQL. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Βάσεις Δεδομένων Η γλώσσα SQL (Structured Query Language) Εισαγωγή στην SQL (2) Ιστορικά Στοιχεία. SQL - Structured Query Language (1)

Ηλεκτρονικοί Υπολογιστές II

Οι εντολές CREATE TABLE, ALTER TABLE, CREATE KEY, ALTER KEY.

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. 1 ο ΣΧΟΛΕΙΟ ΚΩΔΙΚΑ «Βασικά Θέματα Προγραμματισμού στην Ανάπτυξη Δυναμικών Διαδικτυακών Εφαρμογών» (Part 3) Ουρανία Σμυρνάκη

Βάσεις Δεδομένων. Βασίλειος Βεσκούκης Εισαγωγή στη γλώσσα SQL (Structured Query Language) Η γλώσσα SQL

Το σχεσιακό μοντέλο βάσεων δεδομένων

Διάλεξη 16: SQL DML IV, SQL DCL, SQL TCL. Διδάσκων: Παναγιώτης Ανδρέου

Εργαστήριο Βάσεων Δεδομένων. Δικαιώματα Χρηστών Προβολές

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ - ΤΜΗΥΠ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ ΙI

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ - ΤΜΗΥΠ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι

Βάσεις Δεδομένων και Ευφυή Πληροφοριακά Συστήματα Επιχειρηματικότητας. 4ο Μάθημα: SQL - Παράδειγμα. Δρ. Κωνσταντίνος Χ.

ΚΕΡΑΜΟΠΟΥΛΟΣ ΕΥΚΛΕΙΔΗΣ

Βάσεις Δεδομένων Ι [Σημειώσεις Εργαστηρίου]

Σχεδιασμός Βάσεων Δεδομένων

Η SQL αποτελείται από δύο υποσύνολα, τη DDL και τη DML.

Εργαστήριο βάσεων δεδομένων. MySQL Stored Procedures

ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ

Διαχείριση Πολιτισμικών Δεδομένων

ΑΣΚΗΣΗ 1. Structural Programming

( Boats)) ( Tempsids, bid. sname. Boats. Boats. Boats. (Reserves)/ > Reserves. Interlake' Sailors) ...

Εργαστήριο Βάσεων Δεδομένων

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι. Ενότητα 9α: Περιορισμοί (Constraints) Εναύσματα (Triggers) Ευαγγελίδης Γεώργιος Τμήμα Εφαρμοσμένης Πληροφορικής

Βάσεις Δεδομένων Ι [Σημειώσεις Εργαστηρίου]

Ιατρική Πληροφορική. Δρ. Π. ΑΣΒΕΣΤΑΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΒΙΟΪΑΤΡΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ Τ.Ε.

ΚΕΦΑΛΑΙΟ ΤΡΙΤΟ ΕΝΤΟΛΕΣ SQL

ΑΠΟΘΗΚΕΥΜΕΝΕΣ ΔΙΑΔΙΚΑΣΙΕΣ

Ορισµοί Σχεσιακού Μοντέλου και Τροποποιήσεις Σχέσεων σε SQL

Σύνολα Ασκήσεων. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Παράδειγμα Insert Update Delete Alter.. Εργαστήριο Βάσεων Δεδομένων. Εισαγωγή στη MySQL (2)

ΕΣΔ 232: ΟΡΓΑΝΩΣΗ ΔΕΔΟΜΕΝΩΝ ΣΤΗΝ ΚΟΙΝΩΝΙΑ ΤΗΣ ΠΛΗΡΟΦΟΡΙΑΣ. Ακαδημαϊκό Έτος , Εαρινό Εξάμηνο Διδάσκων Καθ.: Νίκος Τσαπατσούλης

Εξεταστική Περίοδος Ιουνίου 2004

MySQL stored procedures

Τεχνολογία Πολιτισμικού Λογισμικού

Σχεδιασμός Πληροφοριακών Συστημάτων. Σημειώσεις

Ανοικτά Ακαδημαϊκά Μαθήματα

Ανάκτηση Δεδομένων (Information Retrieval)

Πτυχιακή Εργασία. Σχεσιακές Βάσεις εδοµένων, η γλώσσα SQL και Αποθηκευµένες ιαδικασίες.

ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ

Εκφράσεις. Τύποι, Σταθερές & Μεταβλητές. Ορισµός Μεταβλητών

Το Σχεσιακό μοντέλο και η γλώσσα SQL

Ακολουθεί η πλήρης ανάλυση της παραµετροποίησης χωρισµένη στις αντίστοιχες ενότητες µε αυτές του module Customization Tools. :

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. Βάσεις Δεδομένων (4 ο εξάμηνο) Εργαστήριο MySQL #6

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. Βάσεις Δεδομένων (4 ο εξάμηνο) Εργαστήριο MySQL #3

ΕΘΝΙΚΗ ΤΡΑΠΕΖΑ ΥΔΡΟΛΟΓΙΚΩΝ ΚΑΙ ΜΕΤΕΩΡΟΛΟΓΙΚΩΝ ΠΛΗΡΟΦΟΡΙΩΝ ΟΔΗΓΙΕΣ ΚΑΤΑΧΩΡΗΣΗΣ ΧΡΟΝΟΣΕΙΡΩΝ ΓΙΑ ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΒΔ ΕΝΥΔΡΙΣ ΤΟΥ ΥΔΡΟΣΚΟΠΙΟΥ


ΕΣΔ 232: ΟΡΓΑΝΩΣΗ ΔΕΔΟΜΕΝΩΝ ΣΤΗ ΚΟΙΝΩΝΙΑ ΤΗΣ ΠΛΗΡΟΦΟΡΙΑΣ. Ακαδημαϊκό Έτος , Εαρινό Εξάμηνο. Εργαστηριακή Άσκηση 4 7/02/2012

Βάσεις Δεδομένων. Σχεσιακό Μοντέλο Δεδομένων. Βασίλειος Βεσκούκης Ορισμός Βάσης Δεδομένων Δομή Περιορισμοί

Διάλεξη 07: Σχεσιακό Μοντέλο II (Relational Data Model) Διδάσκων: Παναγιώτης Ανδρέου

Βάσεις Δεδομένων Ι SQL Μέρος 3 ο. (Constraints & Joins) Φώτης Κόκκορας (MSc/PhD) Τμήμα Μηχανικών Πληροφορικής ΤΕ

Φυσική Σχεδίαση Υλοποίηση βάσης

Διάλεξη 17: Προγραμματισμός Βάσης Δεδομένων Ι. Διδάσκων: Παναγιώτης Ανδρέου

Βάσεις Δεδομένων. Μιχάλης Μαλιάππης

PHP 3. Διδάσκοντες: Π. Αγγελάτος, Δ. Ζήνδρος Επιμέλεια διαφανειών: Δ. Ζήνδρος Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών

Transcript:

Πανεπιστήµιο Ιωαννίνων Τµήµα Μαθηµατικών Μάθηµα: Βάσεις εδοµένων (741) Εργαστηριακό Τεστ 21/12/2004 Έχουµε την βάση της σχολής που αποτελείται από τους παρακάτω πίνακες. Όνοµα πίνακα: Students Γνώρισµα Τύπος εδοµένων Name Συµβολοσειρά 20 χαρακτήρων Surname Συµβολοσειρά 40 χαρακτήρων Id Ακέραιος Start_date Ηµεροµηνία Primary key: Id Όνοµα πίνακα: Lessons Γνώρισµα Τύπος εδοµένων Name Συµβολοσειρά 20 χαρακτήρων Code Μικρός ακέραιος Credits Προκαθορισµένες τιµές: 3 ή 4 ή 5 Primary key: Code Όνοµα πίνακα: Grades Γνώρισµα Τύπος εδοµένων Id φοιτητή Ακέραιος Code µαθήµατος Μικρός Ακέραιος Grade Οι τιµές από 0 έως 10 Primary key: Id, Code Γίνεται καταχώρηση δεδοµένων και έχουµε: Students Όνοµα Επώνυµο Αριθµός_µητρώου Ηµεροµηνία Γιάννης Καραµήτρος 4100 1/10/1995 Μανώλης Βελάς 6700 1/10/1999 Άρης Τερζός 7005 1/10/2000 1

Lessons Όνοµα Κωδικός ιδακτικές_µονάδες Βάσεις εδοµένων 741 3 Προγραµµατισµός Λογικής 544 3 Απειροστικός Λογισµός Ι 111 5 Ερωτήµατα: Grades Αριθµός_µητρώου Κωδικός_µαθήµατος Βαθµός 4100 741 7 6700 741 5 6700 544 4 7005 111 6 7005 741 5 4100 544 8 4100 111 3 6700 111 7 7005 544 9 1) i) ηµιουργήστε µια όψη για την εύρεση των φοιτητών που µπήκαν στην σχολή από το 1995 έως και το 1999. ii) ηµιουργήστε µια όψη για την εύρεση των µαθηµάτων µε 3 διδακτικές µονάδες. CREATE VIEW STUD_1995_1999( NAME, SURNAME, ID, START_DATE) select * from students where start_date between '1.1.1995' and '1.1.1999' 2) ηµιουργήστε µια όψη για την εύρεση των αριθµών µητρώων των φοιτητών και των ονοµάτων των µαθηµάτων που έχουν περάσει οι φοιτητές. Προσοχή: Ορίστε την όψη µε τέτοιο τρόπο ώστε να έχουµε σαν όνοµα της στήλης των αριθµών µητρώων την λέξη ΜΗΤΡΩΟ και σαν όνοµα της στήλης µαθηµάτων, ΜΑΘΗΜΑΤΑ. 2

CREATE VIEW MITROA_MATHIMATA( MITROO, MATHIMATA) select id,name from grades,lessons where grades.code=lessons.code and grade>=5 3) ηµιουργήστε µια όψη για την εύρεση των αριθµών µητρώων των φοιτητών και την βαθµολογία των φοιτητών στα µαθήµατα µε 5 διδακτικές µονάδες. CREATE VIEW BATHMOLOGIA_5_CREDITS( ID, GRADE) select grades.id, grade from grades,lessons where grades.code=lessons.code and credits=5 4) ηµιουργήστε µια trigger για τον πίνακα Grades, για πριν την εισαγωγή δεδοµένων ώστε κατά την εισαγωγή δεδοµένων στον πίνακα αν δεν υπάρχει καθόλου βαθµός να καταχωρείται το µηδέν για βαθµός. CREATE TRIGGER GRADES_BI0 FOR GRADES ACTIVE BEFORE INSERT POSITION 0 if(new.grade is NULL) then new.grade=0; End 5) ηµιουργήστε µια trigger για τον πίνακα Grades, για την ενηµέρωση δεδοµένων ώστε κατά την ενηµέρωση δεδοµένων στον πίνακα Grades, να γίνεται είτε ενηµέρωση κανονικά, ή να εµφανίζει µήνυµα λάθους αν ο φοιτητής δεν έχει δηλώσει το µάθηµα (αν δεν υπάρχει εγγραφή στον πίνακα Grades). CREATE TRIGGER GRADES_BU0 FOR GRADES ACTIVE BEFORE UPDATE POSITION 1 if(exists(select 1 from grades where code=new.code and id=new.id)) then 3

else exception none; 6) ηµιουργήστε µια trigger ώστε όταν σβήνετε έναν φοιτητή από τον πίνακα Students, να σβήνονται και όλοι οι βαθµοί του από τον πίνακα Grades. CREATE TRIGGER STUDENTS_AD0 FOR STUDENTS ACTIVE AFTER DELETE POSITION 0 delete from grades where id=students.id; ^ 7) i) ηµιουργήστε µια stored procedure που να έχει ως δεδοµένα εισόδου τον αριθµό µητρώου ενός φοιτητή και να εµφανίζει τα στοιχεία του. ii) Επίσης δηµιουργήστε άλλες δύο stored procedures που να εισάγουν και να διαγράφουν δεδοµένα από τον πίνακα Students αντίστοιχα. i) CREATE PROCEDURE STOIXEIA ( IDA INTEGER) RETURNS ( RNAME VARCHAR(20), RSURNAME VARCHAR(40), IDN INTEGER, RSTARTS_DATE DATE) select name,surname,id,start_date from students where id=:ida into rname,rsurname,idn,rstarts_date; susp; ii) CREATE PROCEDURE INSERTT ( NAMEA VARCHAR(20), SURA VARCHAR(40), IDA INTEGER, 4

STARTA DATE) insert into students values(:namea,:sura,:ida,:starta); susp; CREATE PROCEDURE DELETEE ( NAMEA VARCHAR(20), SURNAMEA VARCHAR(40), IDA INTEGER, STARTA DATE) delete from students where name=:namea and surname=:surnamea and id=:ida and start_date=:starta; susp; 8) ηµιουργήστε µια stored procedure που να πληκτρολογείτε τον αριθµό µητρώου του φοιτητή και να εµφανίζεται ένα µήνυµα που να πληροφορεί τον χρήστη για τον αριθµό των µαθηµάτων των οποίων έχει περαστεί η βαθµολογία στον πίνακα Grades (δεν µας ενδιαφέρει αν ο φοιτητής έχει περάσει το µάθηµα). (1.5 µονάδα) CREATE EXCEPTION TWO 'Έχει δηλώσει δύο µαθήµατα'; CREATE EXCEPTION NONE ' εν έχει δηλώσει κανένα µάθηµα'; CREATE EXCEPTION ONE 'Έχει δηλώσει ένα µάθηµα'; CREATE EXCEPTION THREE 'Έχει δηλώσει τρία µαθήµατα'; CREATE PROCEDURE HOW_MANY ( IDN INTEGER) DECLARE VARIABLE COUNT_LESSONS INTEGER; select count(id) from grades where id=:idn into count_lessons; if(count_lessons=0) then exception none; if(count_lessons=1) then exception one; 5

if(count_lessons=2) then exception two; if(count_lessons=3) then exception three; susp; 9) i) ώστε τα δικαιώµατα SELECT, INSERT για τον πίνακα Students στον χρήστη JOHN. ii) Έπειτα δώστε το δικαίωµα SELECT στην πρώτη stored procedure του ερωτήµατος (7). (0.5 µονάδα) i) Grant select, insert on students to JOHN; ii) grant select on student to STOIXEIA; 10) i) ηµιουργήστε έναν ρόλο µε το όνοµα ΕΙΣΑΓΩΓΗ. ii) Έπειτα δώστε σε αυτόν τον ρόλο το δικαίωµα INSERT, UPDATE, DELETE για τον πίνακα STUDENTS. iii) ώστε στον χρήστη JOHN το δικαίωµα του ρόλου ΕΙΣΑΓΩΓΗ Με την δυνατότητα να µπορεί ο χρήστης να µεταφέρει τον ρόλο και σε άλλους χρήστες. i) create Role EISAGOGI; ii) grant insert, update, delete on students to EISAGOGI; iii) grant eisagogi to john with admin option; 6