Esercizio con Database
Attenzione con alcuni DBMS non e' possibile imporre vincoli di
trasparenza referenziale: MS Access li supporta, MySQL (alla URL
http://speedy.educ.disi.unige.it/phpmyadmin/) li supporta solo se le
tabelle sono dichiarate di Tipo InnoDB ed i campi che fanno
parte di una FOREIGN KEY devono essere di Tipo PRIMARY o INDEX
(vedi DEMO).
Dovete consegnare un file testo contenete il codice SQL per il
database che avete creato. Per fare cio' potete usare la funzione
Esporta di MySQL.
Potete fare l'esercizio anche in gruppo (indicate nel file i nomi
dei partecipanti al gruppo).
- creare una tabella Studente con i seguenti campi
- Matricola: numero di 8 cifre che fa da chiave primaria
- Nome, Cognome: testo di lunghezza massima 10
- DataNascita: data
- creare una tabella Corso con i seguenti campi
- Codice: numero di 6 cifre che fa da chiave primaria
- Crediti: numero da 1-30
- Descrizione: testo
- creare una tabella Professore con i seguenti campi
- Codice: numero di 6 cifre che fa da chiave primaria
- Nome, Cognome: testo di lunghezza massima 10
- DataNascita: data
- DataAssunzione: data
- SettoreDisciplinare: testo di lunghezza massima 10
Quindi creare delle tabelle corrispondenti a relazioni nel modello E-R
(identificare gli attributi che formano la chiave primaria).
-
Docente indica quale PROFESSORE insegnava un CORSO un certo
ANNO. Attributi aggiuntivi possono indicare quante ore di lezione ha
fatto.
-
Iscritto indica se uno STUDENTE e' iscritto ad
un CORSO. Attributi aggiuntivi possono indicare l'ANNO.
-
Esame indica quando (DATA) uno STUDENTE ha superato l'esame di
un CORSO. Attributi aggiuntivi possono indicare il voto ottenuto.
Quindi creare delle interrogazioni, per esempio:
- elenco degli studenti (nome, cognome e matricola) che hanno
superato l'esame di un certo corso in un certo intervallo temporale
(specificato da due date)
- elenco degli esami superati da uno studente
- elenco dei corsi a cui e' iscritto uno studente
- elenco dei professori che hanno tenuto un corso ad un certo
studente (l'anno e' importante).