Sei sulla pagina 1di 6

Informatica Applicata – Febbraio 2004

Basi di dati

1) Si disegni lo schema ER per una base di dati per gestire un supermercato. Si devono
gestire per lo meno i seguenti problemi
- i dipendenti, i reparti e chi lavora in quale reaprto
- le merci vendute nei vari reparti con le scorte
- i fornitori
- gli ordini di quale merce da qule fornitore
- chi e' a capo di chi
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 dica quali vincoli si possono definire in un database relazionale esemplificandoli
nel caso del database dell'esercizio precedente
4) Si considerino le seguenti tabelle relazionali

IMPIEGATI FERIE
MAT NOME IND MAT DA A
1 rossi x 3 1/1/90 10/1/90
2 verdi x 3 12/1/90 20/1/90
3 rossi y 1 2/1/90 3/1/90

Si forniscano i risultati delle seguenti operazioni


- prodotto cartesiano IMPIEGATI x FERIE

MAT NOME IND MAT DA A


1 rossi x 3 1/1/90 10/1/90
1 rossi x 3 12/1/90 20/1/90
1 rossi x 1 2/1/90 3/1/90
2 verdi x 3 1/1/90 10/1/90
2 verdi x 3 12/1/90 20/1/90
2 verdi x 1 2/1/90 3/1/90
3 rossi y 3 1/1/90 10/1/90
3 rossi y 3 12/1/90 20/1/90
3 rossi y 1 2/1/90 3/1/90

- EquiJoin IMPIEGATI  FERIE

NOME IND MAT MAT DA A


rossi x 1 1 2/1/90 3/1/90
rossi y 3 3 1/1/90 10/1/90
rossi y 3 3 12/1/90 20/1/90

- Join naturale IMPIEGATI  FERIE

NOME IND MAT DA A


rossi x 1 2/1/90 3/1/90
rossi y 3 1/1/90 10/1/90
rossi y 3 12/1/90 20/1/90

- πDA,A (σ NOME=rossi (IMPIEGATI  FERIE))


DA A
2/1/90 3/1/90
1/1/90 10/1/90
12/1/90 20/1/90
5) Si dica quali sono gli operatori insiemistici dell'algebra relazionale, mostrando un
esempio di ognuno di essi

Gli operatori insiemistici sono Unione, Intersezione e Differenza, sono operatori binari e
presuppongono che gli attributi dei due insiemi siano gli stessi.

Laureati
Matricola Cognome Età
7274 Rossi 37
7432 Neri 39
9824 Verdi 38

Dirigenti
Matricola Cognome Età
9297 Neri 56
7432 Neri 39
9824 Verdi 38

L' UNIONE delle tabelle Laureati e Dirigenti origina la tabella

Matricola Cognome Età


7274 Rossi 37
7432 Neri 39
9824 Verdi 38
9297 Neri 56

L' INTERSEZIONE delle tabelle Laureati e Dirigenti origina la tabella

Matricola Cognome Età


7432 Neri 39
9824 Verdi 38

La DIFFERENZA invece

Matricola Cognome Età


7274 Rossi 37
6) Si dica cosa sono le funzioni aggregate in SQL e quale effetto producono come
risultato, mostrando un esempio

Le funzioni aggregate in SQL sono COUNT, SUM, MIN, MAX, AVG


es.

Nome Cognome Dipartimento Ufficio Stipendio


Mario Rossi Amministrazione 10 45
Carlo Bianchi Distribuzione 20 36
Giuseppe Verdi Amministrazione 16 40
Franco Neri Direzione 14 45
Lorenzo Lanzi Direzione 7 80

select count(*) AS numeroImpiegati


from Impiegato

numeroImpiegati
5

select max(Stipendio) AS stipendioMax


from Impiegato
stipendioMax
80

select min(Stipendio) AS stipendioMin


from Impiegato
stipendioMin
36

select sum(Stipendio) AS sommaStipendi


from Impiegato
sommaStipendi
246

select avg(Stipendio) AS mediaStipendi


from Impiegato
mediaStipendi
49,2