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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Τμήμα Διοίκησης Επιχειρήσεων

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

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

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

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

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

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

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

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

ΗΓλώσσαSQL. Εισαγωγή Βασικές Έννοιες Τύποι Δεδομένων Ορισμός Δεδομένων Χειρισμός Δεδομένων

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

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

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

ΗΥ-360 Αρχεία και Βάσεις Δεδομένων Διδάσκων: Δ. Πλεξουσάκης. Φροντιστήριο SQL Examples Ξένου Ρουμπίνη

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

Σχεδίαση και λειτουργία βάσης δεδομένων Το παράδειγμα της μαιευτικής κλινικής Ευάγγελος Καρβούνης

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

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

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

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

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

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

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

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

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ ΤΜΗΜΑ ΠΟΛΙΤΙΣΜΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΣ. Επιλέγει όλες τις πλειάδες, από μια σχέση R, που ικανοποιούν τη συνθήκη επιλογής.

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

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

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

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

Εργαστήριο βάσεων δεδομένων. Εισαγωγή στη MySQL (2)

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


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

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

Τμήμα Πληροφορικής ΑΠΘ


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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ.

Βάσεις Δεδομένων. Εισαγωγή για το Εργαστήριο. Δρ. Τιάκας Ελευθέριος. Τμήμα Πληροφορικής ΑΠΘ

Το Μοντέλο των Οντοτήτων Συσχετίσεων Entity Relationship Model. Νικόλαος Ζ. Ζάχαρης

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

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

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

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

Βάςεισ Δεδομζνων Ι. Ενότητα 7: Ειςαγωγή ςτην γλώςςα_sql. Δρ. Σςιμπίρθσ Αλκιβιάδθσ Σμιμα Μθχανικϊν Πλθροφορικισ ΣΕ

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

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

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

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

PROJECT ΕΡΓΑΣΤΗΡΙΩΝ ΒΑΣΕΩΝ ΔΕΔΟΜΕΝΩΝ Ι. Τμήμα Μηχανικών Πληροφορικής Τ.Ε.

Φτιάξτε µια φόρµα στην οποία θα υπάρχουν δυο κουµπιά εντολών. Το ένα κουµπί θα ανοίγει τη φόρµα «Βαθµολογίες µαθητών» και το δεύτερο κουµπί θα οδηγεί

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

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

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

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

Εργαστήριο βάσεων δεδομένων. Εισαγωγή στη MySQL (2)

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

Σχεδίαση και Χρήση Βάσεων Δεδομένων. Χρήση της MySQL. Γιώργος Πυρουνάκης -

SQL Τύποι Δεδομένων Δημιουργία Πίνακα Παράδειγμα.. Εργαστήριο Βάσεων Δεδομένων. Εισαγωγή στη MySQL (1)

Θέλουµε να δηµιουργήσουµε µία Βάση εδοµένων που να έχει τους παρακάτω πίνακες (τα ονόµατα των πεδίων που είναι κλειδιά φαίνονται υπογραµµισµένα):

Εισαγωγή στην PostgreSQL Spatial 8.1

DELETE, UPDATE, INSERT.

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

DELETE, UPDATE, INSERT

Βάσεις Δεδομένων (Ε) Εισαγωγή στην υλοποίηση σχεσιακών βάσεων δεδομένων

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

Transcript:

Πανεπιστήµιο Ιωαννίνων Τµήµα Μαθηµατικών Μάθηµα: Βάσεις εδοµένων (741) Εργαστηριακό Τεστ Οµάδα: Α 18/11/2004 Θέλουµε να φτιάξουµε µια βάση στην οποία θα καταχωρούνται οι φοιτητές του τµήµατος Μαθηµατικών, τα µαθήµατα που διδάσκονται και οι βαθµοί που γράφουν στα µαθήµατα. Αποφασίσαµε ότι η βάση θα αποτελείται από τους ακόλουθους πίνακες Όνοµα πίνακα: Students Γνώρισµα Τύπος εδοµένων Όνοµα Συµβολοσειρά 20 χαρακτήρων Επώνυµο Συµβολοσειρά 40 χαρακτήρων Αριθµός_µητρώου Ακέραιος Ηµεροµηνία εισαγωγής στην σχολή Ηµεροµηνία Primary key: Αριθµός_µητρώου Όνοµα πίνακα: Lessons Γνώρισµα Τύπος εδοµένων Όνοµα Συµβολοσειρά 20 χαρακτήρων Κωδικός_µαθήµατος Μικρός ακέραιος ιδακτικές_µονάδες Προκαθορισµένες τιµές: 3 ή 4 ή 5 Primary key: Κωδικός_µαθήµατος Όνοµα πίνακα: Grades Γνώρισµα Τύπος εδοµένων Αριθµός µητρώου φοιτητή Ακέραιος Κωδικός µαθήµατος Μικρός Ακέραιος Βαθµός Οι τιµές από 1 έως 10 Primary key: Αριθµός_µητρώου, Κωδικός_µαθήµατος Ερωτήµατα: 1) ηµιουργήστε τους πίνακες και τα απαραίτητα domain (θεωρείστε ότι η βάση έχει δηµιουργηθεί µε character set ISO8859_7). (2.5 µονάδες) 1

CREATE TABLE STUDENTS ( NAME VARCHAR(20) NOT NULL, SURNAME VARCHAR(40) NOT NULL, ID INT NOT NULL, START_DATE DATE NOT NULL CONSTRAINT PK_STUDENTS PRIMARY KEY(ID)); CREATE DOMAIN CREDITS AS SMALLINT NOT NULL CHECK (value in (3,4,5)); CREATE TABLE LESSONS ( NAME CHAR(40) NOT NULL, CODE SMALLINT NOT NULL, CREDIT CREDITS CONSTRAINT PK_LESSONS PRIMARY KEY(CODE); CREATE DOMAIN DOM_GRADE AS SMALLINT NOT NULL CHECK (value between 0 and 10); CREATE TABLE GRADES ( ID INTEGER NOT NULL, CODE SMALLINT NOT NULL, GRADE DOM_GRADE CONSTRAINT PK_GRADES PRIMARY KEY(ID,CODE)); 2) Γίνεται καταχώρηση δεδοµένων και έχουµε: Students Όνοµα Επώνυµο Αριθµός_µητρώου Ηµεροµηνία Γιάννης Καραµήτρος 4100 1/10/1995 Μανώλης Βελάς 6700 1/10/1999 Άρης Τερζός 7005 1/10/2000 2

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 ώστε τις εντολές insert για την καταχώρηση: i) Των στοιχείων του φοιτητή µε αριθµό µητρώου 4100 στον πίνακα Students. ii) Του µαθήµατος µε κωδικό 741 στον πίνακα Lessons. iii) Την βαθµολογία του φοιτητή µε αριθµό µητρώου 4100 στον πίνακα Grades. INSERT INTO STUDENTS(NAME, SURNAME, ID, START_DATE) VALUES ( Γιάννης, Καραµήτρος,4100, 1.10.1995 ); INSERT INTO LESSONS(NAME,CODE,CREDIT) VALUES ( Βάσεις εδοµένων,741,3); INSERT INTO GRADES(ID,CODE,GRADE) VALUES (4100,741,7); INSERT INTO GRADES(ID,CODE,GRADE) VALUES (4100,544,8); INSERT INTO GRADES(ID,CODE,GRADE) VALUES (4100,111,3); ώστε τις εντολές για την διαγραφή (delete): iv) Από τον πίνακα Students τον Άρη Τερζό. v) Από τον πίνακα Lessons το µάθηµα 741. vi) Από τον πίνακα Grades τους βαθµούς που είναι µικρότεροι από 5. 3

Αλλάξτε τις διδακτικές µονάδες του µαθήµατος 544 σε 4 µονάδες (update). DELETE WHERE NAME= Άρη AND SURNAME= Τερζός. DELETE FROM LESSONS WHERE CODE=741; DELETE WHERE GRADE<5; UPDATE LESSONS SET CREDITS=4 WHERE CODE=544; Στην συνέχεια θα θεωρείτε σαν δεδοµένα των πινάκων αυτά που αναφέρονται µέσα στους πίνακες και όχι τις αλλαγές που κάναµε στο δεύτερο ερώτηµα. 3) ώστε τις εντολές για την: i) Εύρεση των στοιχείων από τον πίνακα Students του φοιτητή µε αριθµό µητρώου 6700. ii) Εύρεση των ονοµάτων των µαθηµάτων που έχουν 3 διδακτικές µονάδες. iii) Εύρεση των αριθµών µητρώων των φοιτητών που έχουν πάρει σε τουλάχιστον ένα µάθηµα βαθµό από 8 και άνω. Να χρησιµοποιήσετε εντολή για να µην εµφανίζεται ένας αριθµός µητρώου πάνω από µια φορά αν ο φοιτητής έχει πάρει σε παραπάνω από ένα µάθηµα 8 και άνω. SELECT * WHERE ID=6700; SELECT NAME FROM LESSONS WHERE CREDIT=3; SELECT DISTINCT ID WHERE GRADE>=8; 4

4) ώστε τις εντολές για την εύρεση των: i) Ονοµάτων των µαθηµάτων ταξινοµηµένα µε βάση τον κωδικό του µαθήµατος. ii) Ονοµάτων και των επωνύµων των φοιτητών που µπήκαν στο Μαθηµατικό πριν το έτος 2000. iii) Ονοµάτων και των επωνύµων των φοιτητών που µπήκαν στο Μαθηµατικό από το έτος 1990 έως και το 2002. iv) Ονοµάτων των φοιτητών που το επώνυµο τους ξεκινάει από Τ. SELECT NAME FROM LESSONS ORDER BY CODE; SELECT NAME, SURNAME WHERE START_DATE< 1.1.2000 ; SELECT NAME, SURNAME WHERE START_DATE BETWEEN 1.1.1990 AND 1.10.2002 ; SELECT NAME WHERE SURNAME STARTING WITH Τ ; 5) ώστε τις εντολές για την εύρεση των: i) Αριθµών µητρώων των φοιτητών και των ονοµάτων των µαθηµάτων που έχουν περάσει οι φοιτητές. ii) Βρείτε τους αριθµούς µητρώων των φοιτητών και την βαθµολογία των φοιτητών στα µαθήµατα µε 3 διδακτικές µονάδες. SELECT STUDENTS.ID, LESSONS.NAME, LESSONS, GRADES WHERE STUDENTS.ID=GRADES.ID AND GRADES.CODE=LESSONS.CODE AND GRADE>=5; SELECT GRADES.ID, GRADE, LESSONS WHERE GRADES.CODE=LESSONS.CODE AND CREDIT=3; 5

6) Βρείτε: i) Τον µέσο όρο βαθµολογίας ανά φοιτητή. ii) Τον µέσο όρο βαθµολογίας ανά φοιτητή, αλλά µόνο αν ο µέσος όρος είναι από 5 και άνω. (1.5 µονάδα) SELECT ID, AVG(GRADE) GROUP BY ID; SELECT ID, AVG(GRADE) GROUP BY ID HAVING AVG(GRADE)>=5; 7) Βρείτε: i) Την χρονιά εισαγωγής στο τµήµα Μαθηµατικών του φοιτητή που έγραψε τον µεγαλύτερο βαθµό στο µάθηµα <<Βάσεις εδοµένων>>. ii) Τον αριθµό µητρώου του φοιτητή που έχει περάσει και τα τρία µαθήµατα. (2 µονάδες) SELECT START_DATE, LESSONS, GRADES WHERE STUDENTS.ID=GRADES.ID AND LESSONS.CODE=GRADES.CODE AND LESSONS.NAME= Βάσεις εδοµένων AND GRADE=(SELECT MAX(GRADE) FROM GRADES,LESSONS WHERE GRADES.CODE=LESSON.CODE AND LESSONS.NAME= Βάσεις εδοµένων ); SELECT ID WHERE GRADE>=5 GROUP BY ID HAVING COUNT(GRADE)=3; 6