Appello di BD (cod. AA016), di BDSI1 (cod. 4I030) del Corso di laurea in Informatica e di Documentazione Automatica (cod. 27014) del Corso di laurea in Scienze dell'informazione,  del 8/1/2002.

1)	Progettare una base di dati per gestire informazioni su musei e artisti dei quali i musei conservano opere. Di un museo interessano il nome, che lo identifica, la città, l’indirizzo e il nome del direttore. Di un artista interessano il nome, la data di nascita, la nazionalità. Di un’opera interessano il codice, che la identifica, l’autore, l’anno di creazione e il titolo. Le opere presenti in un museo possono essere dipinti o sculture. Di un dipinto interessano il tipo di pittura, i nomi dei personaggi e il materiale sul quale è stato steso. Di una scultura interessano il materiale,i nomi dei personaggi, l’altezza e il peso. Le opere possono anche essere di proprietà di un museo (da una certa data) oppure in prestito (da una certa data e fino ad un’altra data).
	Si richiede di: (1.1) rappresentare in forma grafica lo schema concettuale della BD;  trasformare tale schema in uno schema relazionale, da rappresentarsi sia (1.2)in forma grafica che (1.3) usando la notazione R(A,B,C*).

2)	Si consideri lo schema:
	Libri(CodiceLibro, Titolo, NomeEditore*);
	AutoriLibri(CodiceLibro *, NomeAutore)
	Editori(NomeEditore, Indirizzo, Telefono)
	CopieLibri(CodiceLibro *, CodiceBiblioteca*,NCopie)
	Biblioteche(CodiceBiblioteca, IndirizzoB, NomeBiblioteca)
	Prestiti(CodiceLibro*, CodiceBiblioteca*, CodiceUtente*, DataPrestito,DataRiconsegna)
	Utenti(CodiceUtente, NomeUtente, IndirizzoU,Telefono)

	e si scrivano in SQL le seguenti interrogazioni.

	a) Trovare i nomi delle biblioteche che posseggono copie del libro intitolato “Metello”
	b) Trovare il nome degli utenti che non hanno libri in prestito
	c) Per tutti gli utenti che hanno più di tre libri in prestito si trovino i nomi, gli indirizzi e il numero di libri attualmente in prestito
	d) Trovare il nome degli utenti che hanno in prestito libri solo dalla biblioteca di nome “Centrale”.

3)	Per l’interrogazione seguente, si fornisca un piano di accesso, supponendo che la relazione Biblioteche sia ordinata sul codice e di usare un indice a vostra scelta:

	SELECT  CodiceBiblioteca, IndirizzoB, count(*)
	FROM Biblioteche b, Prestiti p
	WHERE b.CodiceBiblioteca = p. CodiceBiblioteca
	GROUP BY b.CodiceBiblioteca , IndirizzoB
	HAVING count(*) < 100
	ORDER BY IndirizzoB; 

4) 	Si consideri lo schema relazionale

	Vendite(CodiceF,NomeF,Marca,Prezzo,Modello,Colore)

	Ogni record della relazione rappresenta il fatto che un fornitore, con un codice e nome, vende ad un certo prezzo un'auto di un certo modello (ad es. Panda, Punto) e marca (ad es. Fiat), con un certo colore. Diversi fornitori vendono a prezzi diversi auto dello stesso modello. I modelli di un'auto possono avere colori diversi. Auto di marche diverse hanno modelli diversi. I fornitori sono identificati dal codice ma non dal nome. Il colore non influisce sul prezzo.

	a)	Si diano le dipendenza funzionali e si dica se lo schema è in 3FN o in BCNF.
	b)	Se lo schema non è in FNBC lo si normalizzi e si dica se la decomposizione preserva le dipendenze.
	c)	Si aggiungano le seguenti ipotesi allo schema di partenza: ogni auto dello stesso modello ha lo stesso prezzo ed e' venduta da un solo fornitore. Si dica in quale forma normale si trova lo schema e, se occorre,lo si normalizzi in FNBC.

5)	(per gli studenti di DA)
	a) Si dia una stima del costo del piano di accesso dell’esercizio 3.
	b) Si consideri la storia: S = r1[A], w1[B], r2[A], w2[B], r3[A], w3[B]
	Quante storie si possono definire con le stesse operazioni e c-equivalenti a S?