La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Basi di Dati Esercitazione SQL 17 Novembre 2014. Esercitazione Basi di Dati2 Fornitori (CodiceFornitore, Nome, Indirizzo, Città) Prodotti (CodiceProdotto,

Presentazioni simili


Presentazione sul tema: "Basi di Dati Esercitazione SQL 17 Novembre 2014. Esercitazione Basi di Dati2 Fornitori (CodiceFornitore, Nome, Indirizzo, Città) Prodotti (CodiceProdotto,"— Transcript della presentazione:

1 Basi di Dati Esercitazione SQL 17 Novembre 2014

2 Esercitazione Basi di Dati2 Fornitori (CodiceFornitore, Nome, Indirizzo, Città) Prodotti (CodiceProdotto, Nome, Marca, Modello) Catalogo (Fornitore, Prodotto, Costo) con vincoli di integrità referenziale fra Prodotto e la chiave di Prodotti fra Fornitore e la chiave di Fornitori 1.Trovare Nome, Marca e Modello dei prodotti acquistabili con meno di 2000 €. 2.Trovare i nomi dei fornitori che distribuiscono prodotti IBM (IBM è la marca di un prodotto). 3.Trovare i codici di tutti i prodotti che sono forniti da almeno due fornitori. 4.Trovare i codici dei fornitori che distribuiscono tutti i prodotti presenti nel catalogo. 5.Trovare i nomi dei fornitori che forniscono tutti i prodotti IBM presenti nel catalogo. 6.Trovare il costo medio dei prodotti forniti in ciascuna città (visualizzare costo e città).

3 Esercitazione Basi di Dati3 Le Relazioni Fornitori NomeCodiceFornitoreIndirizzoCittà Ladroni001Via OstenseRoma Risparmietti002Viale MarconiRoma Teloporto010Via RomaMilano CodiceProdottoNomeMarcaModello 0001NotebookIBM390 x 0002DesktopIBM510 0003DesktopACER730 Prodotti Catalogo FornitoreProdottoCosto 0010002€ 3.200 0010003€ 2.200 0020001€ 1.900 0020002€ 2.500 0020003€ 1.800 0100001€ 2.200 0100003€ 2.000

4 Esercitazione Basi di Dati4 1.Trovare Nome, Marca e Modello dei prodotti acquistabili con meno di 2000 €. Esercizio 1.1 Fornitori (CF, Nome, Indirizzo, Città) Prodotti (CP, Nome, Marca, Modello) Catalogo (F, P, Costo)

5 Esercitazione Basi di Dati5 1.Trovare Nome, Marca e Modello dei prodotti acquistabili con meno di 2000 €.  Nome, Marca, Modello (  Costo < 2000 (Prodotti ⋈ CP=P Catalogo)) Esercizio 1.1 Fornitori (CF, Nome, Indirizzo, Città) Prodotti (CP, Nome, Marca, Modello) Catalogo (F, P, Costo)

6 Esercitazione Basi di Dati6 select * From prodotti, catalogo Where codiceProdotto = prodotto Esercizio 1.1

7 Esercitazione Basi di Dati7 select * From prodotti, catalogo Where codiceProdotto = prodotto and costo < 2000 Esercizio 1.1

8 Esercitazione Basi di Dati8 Select distinct nome, marca, modello From prodotti, catalogo Where codiceProdotto = prodotto and costo < 2000 Esercizio 1.1

9 Esercitazione Basi di Dati9 2.Trovare i nomi dei fornitori che distribuiscono prodotti IBM (IBM è la marca di un prodotto).  Nome (  Marca =‘IBM’ ((Fornitori ⋈ CF=F Catalogo) ⋈ P=CP (  CP,Marca (Prodotti)) ) Esercizio 1.2 Fornitori (CF, Nome, Indirizzo, Città) Prodotti (CP, Nome, Marca, Modello) Catalogo (F, P, Costo)

10 Esercitazione Basi di Dati10 Select * From prodotti, catalogo, fornitori Where codiceProdotto = prodotto and fornitore = codiceFornitore Esercizio 1.2

11 Esercitazione Basi di Dati11 Select * From prodotti, catalogo, fornitori Where codiceProdotto = prodotto and fornitore = codiceFornitore and marca ='IBM' Esercizio 1.2

12 Esercitazione Basi di Dati12 Select distinct fornitori.nome From prodotti, catalogo, fornitori Where codiceProdotto = prodotto and fornitore = codiceFornitore and marca ='IBM' Esercizio 1.2

13 Esercitazione Basi di Dati13 3.Trovare i codici di tutti i prodotti che sono forniti da almeno due fornitori.  P (  F  F’ ( Catalogo ⋈ P=P’  X’←X (Catalogo))  X’←X indica una ridenominazione in cui ciascun attributo A viene cambiato in A’ Esercizio 1.3 Fornitori (CF, Nome, Indirizzo, Città) Prodotti (CP, Nome, Marca, Modello) Catalogo (F, P, Costo)

14 Esercitazione Basi di Dati14 Select * From catalogo c1, catalogo c2 Where c1.prodotto = c2.prodotto Esercizio 1.3

15 Esercitazione Basi di Dati15 Select * From catalogo c1, catalogo c2 Where c1.prodotto = c2.prodotto c1.fornitore != c2.fornitore Esercizio 1.3

16 Esercitazione Basi di Dati16 Select distinct c1.prodotto From catalogo c1, catalogo c2 where c1.prodotto = c2.prodotto c1.fornitore != c2.fornitore Esercizio 1.3

17 Esercitazione Basi di Dati17 Esercizio 1.4 4.Trovare i codici dei fornitori che distribuiscono tutti i prodotti presenti nel catalogo.  F (Catalogo) -  F ((  F (Catalogo) ⋈  P (Catalogo)) –  F,P (Catalogo) ))

18 Esercitazione Basi di Dati18  F (Catalogo) - Fornitura Mancate Select distinct fornitore From catalogo Esercizio 1.4

19 Esercitazione Basi di Dati19  F (Catalogo) ⋈  P (Catalogo) Fornitore 001 002 010 Prodotto 0001 0002 0003 ⋈ ProdottoFornitore 0001001 0002002 0003010 0001002 0002010 0003001 0001010 0002001 0003002 Tutte le coppie Fornitore/Prodotto Esercizio 1.4

20 Esercitazione Basi di Dati20  F (Catalogo) ⋈  P (Catalogo) –  F,P (Catalogo) ProdottoFornitore 0001001 0002002 0003010 0001002 0002010 0003001 0001010 0002001 0003002 Tutte le coppie Fornitore/Prodotto – Fornitore/Prodotto ProdottoFornitore 0002001 0003001 0001002 0002002 0003002 0001010 0003010 Le forniture mancate Esercizio 1.4

21 Esercitazione Basi di Dati21 Fornitura Mancate Select c1.fornitore, c2.prodotto From catalogo c1, catalogo c2 Except Select fornitore, prodotto From catalogo Esercizio 1.4

22 Esercitazione Basi di Dati22 Fornitura Mancate create view fornituraMancante as select c1.fornitore, c2.prodotto from catalogo c1, catalogo c2 except select fornitore, prodotto from catalogo Esercizio 1.4

23 Esercitazione Basi di Dati23  F (Catalogo) - Fornitura Mancate Select distinct fornitore From catalogo Esercizio 1.4 select fornitore from fornituraMancante except -

24 Esercitazione Basi di Dati24 Esercizio 1.4 4.Trovare i codici dei fornitori che distribuiscono tutti i prodotti presenti nel catalogo.  F (Catalogo) -  F ((  F (Catalogo) ⋈  P (Catalogo)) –  F,P (Catalogo) )) select distinct fornitore from catalogo c1 where not exists (select * from catalogo c2 where not exists (select * from catalogo c3 where c2.prodotto = c3.prodotto and c1.fornitore = c3.fornitore))

25 Esercitazione Basi di Dati25 5.Trovare i nomi dei fornitori che forniscono tutti i prodotti IBM presenti nel catalogo. La soluzione è identica a quella della interrogazione 4, con, al posto della relazione Catalogo la vista catalogoIBM : CatalogoIBM :=  P,F (  Marca=’IBM’ (Catalogo ⋈ P=CP Prodotti)) Esercizio 1.5

26 Esercitazione Basi di Dati26 Esercizio 1.5 create view catalogoIBM as select prodotto, fornitore from catalogo, prodotti where prodotto = codiceProdotto and marca = ‘IBM’

27 Esercitazione Basi di Dati27 Esercizio 1.5 create view fornituraMancanteIBM as select c1.fornitore, c2.prodotto from catalogoIBM c1, catalogoIBM c2 except select fornitore, prodotto from catalogoIBM

28 Esercitazione Basi di Dati28 Trovare il costo medio dei prodotti forniti in ciascuna città (visualizzare costo e città). Esercizio 1.6 Fornitori (CodiceFornitore, Nome, Indirizzo, Città) Prodotti (CodiceProdotto, Nome, Marca, Modello) Catalogo (Fornitore, Prodotto, Costo) con vincoli di integrità referenziale fra Prodotto e la chiave di Prodotti fra Fornitore e la chiave di Fornitori

29 Esercitazione Basi di Dati29 Trovare il costo medio dei prodotti forniti in ciascuna città (visualizzare costo e città). SELECT * FROM catalogo AS C, fornitori AS F WHERE C.fornitore = F.codiceFornitore Esercizio 1.6

30 Esercitazione Basi di Dati30 Esercizio 1.6 Trovare il costo medio dei prodotti forniti in ciascuna città (visualizzare costo e città). SELECT avg(costo) AS CostoMedio, F.citta FROM catalogo AS C, fornitori AS F WHERE C.fornitore = F.codiceFornitore GROUP BY F.citta


Scaricare ppt "Basi di Dati Esercitazione SQL 17 Novembre 2014. Esercitazione Basi di Dati2 Fornitori (CodiceFornitore, Nome, Indirizzo, Città) Prodotti (CodiceProdotto,"

Presentazioni simili


Annunci Google