You are on page 1of 2

Informatica Applicata – 17 Gennaio 2006

Basi di dati

1) Si disegni lo schema ER per una base di dati per gestire un giornale. Si devono
gestire per lo meno i seguenti problemi
- i dipendenti, divisi ruoli (giornalisti, amministrativi, ..)
- le sezioni (cronaca, cultura, …) con i capi di ogni sezione
- gli articoli con autori, titoli, data di scrittura e date di pubblicazione
- le foto con la loro data e date di pubblicazione (con articoli associati)
- le edizioni giornaliere con il riferimento agli articoli che contengono
2) Si enuncino le regole per la traduzione da ER in tabelle relazionali e si progetti il
database relazionale corrispondente allo schema dell'esercizio precedente, prima
senza ottimizzazione e poi con ottimizzazioni, se possibile.
3) Si spieghi cosa sono chiavi primarie, chiavi esterne ed integrità referenziale fornendo
per ognuno dei concetti un esempio sul DB dell’esercizio precedente
4) Si considerino le seguenti tabelle relazionali

STUDENTI ESAMI
MAT NOME IND MAT ESAME VOTO
1 rossi x 3 inf 30
2 verdi x 3 storia 28
3 rossi y 1 storia 25

Si forniscano i risultati delle seguenti operazioni


- prodotto cartesiano STUDENTI x ESAMI
- EquiJoin STUDENTI ESAMI
- πNOME,IND (σ ESAME=storia AND VOTO> 27 (STUDENTI ESAMI))
- si dica se scambiando proiezione e selezione nell’esercizio precedente si
otterrebbe lo tesso risultato

5) Scrivere in SQL
- la query πNOME,IND (σ ESAME=storia AND VOTO> 27 (STUDENTI ESAMI))
dell’esercizio precedente
- la definizione della tabella STUDENTI

CREATE TABLE STUDENTI (


MAT INT PRIMARY KEY,
NOME VARCHAR(30) NOT NULL,
IND VARCHAR (20) NOT NULL
)

CREATE TABLE ESAMI (


MAT INT NOT NULL,
NOME VARCHAR(30) NOT NULL,
IND VARCHAR (20) NOT NULL
FOREIGN KEY (MAT) references STUDENTI(MAT)
)
6) XML
- Scrivere la DTD XML per rappresentare la tabella STUDENTI. il campo IND
deve essere rappresentate come elementi separati via, citta cap.
- Scrivere quindi un documento XSL per tradurre il un file XML stampando in
HTML un elenco numerato dei nomi degli STUDENTIi

<!ELEMENT TabellaStudenti(studente+)>
<!ELEMENT studente(mat, nome, via, citta, cap)>
<!ELEMENT mat(#PCDATA)>
<!ELEMENT nome(#PCDATA)>
<!ELEMENT via(#PCDATA)>
<!ELEMENT cap(#PCDATA)>