ed SQL 10 Novembre 2009

Похожие документы
Basi di Dati. Esercitazione Algebra Relazionale. 16 maggio 2008

Basi di Dati. Esercitazione SQL. Paolo Papotti. 19 maggio 2005

Basi di Dati. Esercitazione Algebra Relazionale e SQL. Ing. Paolo Cappellari. 15 maggio 2006

Basi di Dati. Esercitazione SQL. Ing. Paolo Cappellari

Basi di dati 8 settembre 2015 Esame Compito A Tempo a disposizione: due ore. Libri chiusi.

Basi di dati: appello 14/07/06

Basi di dati I Prova di autovalutazione 30 ottobre 2014

Basi di dati I 19 settembre 2016 Tempo a disposizione: un ora e 45 minuti.

Basi di dati I 8 luglio 2016 Esame Compito A Tempo a disposizione: un ora e trenta minuti.

Business Intelligence

σ data 15/12/2013 data 20/12/2014

Basi di dati: appello 04/07/06

Esercitazione 1 Algebra relazionale

Basi di dati: appello 07/02/06

Basi di dati I 27 gennaio 2016 Esame Compito A Tempo a disposizione: un ora e quarantacinque minuti. Libri chiusi.

Esprimere in algebra (ottimizzata), calcolo relazionale la seguente query:

Basi di Dati. Esercitazione 1: Interrogazioni in SQL. K. Donno - Interrogazioni in SQL

Interrogazioni nidificate

ESERCITAZIONE 4 Giovedì 13 novembre 2014 (3 ore) SQL

Esercizi su SQL. Basi di Dati A.A. 2009/2010 Docente: Prof. Ing. Giorgio Giacinto. Ing. Roberto Tronci.

Interrogazioni nidificate

3. Selezionare i nomi dei clienti che iniziano con le lettere P, Q, R, S

Persona(CodiceFiscale, Cognome, Nome, DataDiNascita, LuogoDiNascita, Indirizzo)

Basi di Dati: Elementi

Esercitazione 3 SQL 2

B a s i d i D a t i ( M o d u l o T e o r i a ) P r o v a s c r i t t a

BASI DI DATI. Esercizi sull algebra relazionale. Docente: Giorgio Giacinto A.A. 2008/2009

Interrogare una base di dati: algebra relazionale e SQL. Savino Castagnozzi Giorgio Macauda Michele Meomartino Salvatore Picerno Massimiliano Sartor

Esercitazione 3 SQL.

Laura Farinetti - DAUIN Politecnico di Torino. Sia dato lo schema relazionale costituito dalle tabelle (le chiavi primarie sono sottolineate)

Basi di dati: appello 28/02/06

Basi di Dati Corso di Laura in Informatica Umanistica

Basi di dati: appello 08/03/06

Basi di dati: appello 21/09/12

Laura Farinetti - DAUIN Politecnico di Torino. Sia dato lo schema relazionale costituito dalle tabelle (le chiavi primarie sono sottolineate)

Corso di Basi di Dati

Compito Basi di Dati. Tempo concesso: 2 ore 18 Febbraio 2013 Nome: Cognome: Matricola:

Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill, SQL

SQL Laboratorio di Basi di Dati a.a. 2002/2003

ESAME di INFORMATICA e ARCHIVIAZIONE

Esercitazione su SQL

Operatori aggregati: COUNT

Basi di Dati Esempi di SQL

b) Si scrivano le interrogazioni SQL che restituiscono le seguenti informazioni, senza duplicazione dei risultati:

Basi di Dati DBDMG - Politecnico di Torino Esercizi di SQL

SQL - Structured Query Language

Basi di Dati Esempi di SQL

Esercitazione: Interrogazioni SQL

Interrogare una base di dati: Algebra relazionale e SQL. Alessandro Bardine Alessandro Ciaramella Vincenzo Galella Rudy Manganelli

SQL Laboratorio di Basi di Dati a.a. 2002/2003

Basi di dati Appello del Soluzione del compito B

SELECT s.nome, e.data Studenti s, Esami e WHERE e.materia = 'BD' AND e.voto = 30 AND e.matricola = s.matricola

Esame di Basi di Dati SOLUZIONE APPELLO 14/06/2011

Esercizi proposti su SQL - SELECT avanzata. Laura Farinetti - DAUIN Politecnico di Torino

Basi di Dati: Corso di laboratorio

Basi di Dati: Corso di laboratorio

Esercizi proposti su SQL SELECT base. Laura Farinetti - DAUIN Politecnico di Torino

ESERCIZI INTERROGAZIONI SQL

Il sistema informativo deve essere di tipo centralizzato e accessibile mediante un computer server installato nella rete locale dell albergo.

SQL: Structured Query Language. T. Catarci, M. Scannapieco, Corso di Basi di Dati, A.A. 2008/2009, Sapienza Università di Roma

Concettuale. Giuseppe Amato

Laura Farinetti - DAUIN Politecnico di Torino. Sia dato lo schema relazionale costituito dalle tabelle (le chiavi primarie sono sottolineate)

Structured Query Language

Corso di Basi di Dati A.A. 2015/2016

SQL: definizione schema

SELECT FROM ORDER BY SELECT FROM ORDER BY DESC DESC SELECT FROM ORDER BY DESC DESC SELECT FROM WHERE SELECT FROM WHERE AND SELECT FROM WHERE AND

Basi di Dati 1 Prof. L. Tanca e F. A. Schreiber APPELLO DEL 21 LUGLIO 2015 Tempo: 2h30m

Data management a.a Il linguaggio SQL

Corso di Basi di Dati A.A. 2015/2016

Basi di Dati. S Q L Lezione 4

Basi di Dati Corso di Laura in Informatica Umanistica

Elena Baralis 2007 Politecnico di Torino 1

SQL QUERY: Le interrogazioni del database

Estensioni del linguaggio SQL per interrogazioni OLAP

Squadra Giocatore Partita Goal Ingresso Ingresso SELECT FROM WHERE AND AND SELECT FROM WHERE AND AND AND AND SELECT FROM WHERE AND AND

Elena Baralis 2007 Politecnico di Torino 1

ESERCIZI SQL. Esercizio 1

Capitolo 4. SQL: il linguaggio di interrogazione. Originato da SEQUEL-XRM e System-R ( ) dell IBM

Транскрипт:

Basi di Dati Esercitazione Algebra Relazionale ed SQL 10 Novembre 2009

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 Esercizio 1 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. Esercitazione Basi di Dati 2

Le Relazioni Nome CodiceFornitore Indirizzo Citta Ladroni 01 Via Ostiense Roma Risparmietti 02 Viale Marconi Roma Teloporto 10 Via Roma Milano TuttoIBM 13 Corso Italia Perugia Fornitori Nome CodiceProdotto Marca Modello Notebook 01 IBM 390x Desktop 02 IBM 510 Desktop 10 Acer 730 Prodotti Esercitazione Basi di Dati 3

Le Relazioni Fornitore Prodotto Costo 01 002 3200 01 003 2200 02 001 1900 02 002 2500 02 003 1800 10 001 2200 10 003 2000 13 001 2600 13 002 2850 Catalogo Esercitazione Basi di Dati 4

Esercizio 1.1 1.Trovare Nome, Marca e Modello dei prodotti acquistabili con meno di 2000. Esercitazione Basi di Dati 5

Esercizio 1.1 1. Trovare Nome, Marca e Modello dei prodotti acquistabili con meno di 2000. π Nome, Marca, Modello (σ Costo < 2000 (Prodotti CP=P Catalogo)) Esercitazione Basi di Dati 6

Esercizio 1.1 1. Trovare Nome, Marca e Modello dei prodotti acquistabili con meno di 2000 π Nome, Marca, Modello (σ Costo < 2000 (Prodotti CP=P Catalogo)) select distinct nome, marca, modello from prodotti, catalogo where codiceprodotto = prodotto and costo < 2000 Esercitazione Basi di Dati 7

Esercizio 1.1 1. Trovare Nome, Marca e Modello dei prodotti acquistabili con meno di 2000. Nome Marca Modello Notebook IBM 390x Desktop Acer 730 Esercitazione Basi di Dati 8

Esercizio 1.2 2.Trovare i nomi dei fornitori che distribuiscono prodotti IBM (IBM è la marca di un prodotto). Esercitazione Basi di Dati 9

Esercizio 1.2 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))) C CP,Marca Esercitazione Basi di Dati 10

Esercizio 1.2 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))) select distinct fornitori.nome from prodotti, catalogo, fornitori i where codiceprodotto = prodotto and fornitore = codicefornitore and marca = 'IBM' Esercitazione Basi di Dati 11

Esercizio 1.2 2. Trovare i nomi dei fornitori che distribuiscono prodotti IBM (IBM è la marca di un prodotto). Nome Ladroni Risparmietti Tl Teloporto TuttoIBM Esercitazione Basi di Dati 12

Esercizio 1.3 3. Trovare i codici di tutti i prodotti che sono forniti da almeno due fornitori. Esercitazione Basi di Dati 13

Esercizio 1.3 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 Esercitazione Basi di Dati 14

Esercizio 1.3 3. Trovare i codici di tutti i prodotti che sono forniti da almeno due fornitori. π P ( σ F F (Catalogo P=P ρ X X (Catalogo)) select distinct c1.prodotto from catalogo c1, catalogo c2 where c1.prodotto = c2.prodotto and c1.fornitore > c2.fornitore Esercitazione Basi di Dati 15

Esercizio 1.3 3. Trovare i codici di tutti i prodotti che sono forniti da almeno due fornitori. CodiceProdotto 001 002 003 Esercitazione Basi di Dati 16

Esercizio 1.4 4.Trovare i codici dei fornitori che distribuiscono tutti i prodotti podott presenti pese nel catalogo. Esercitazione Basi di Dati 17

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) )) Esercitazione Basi di Dati 18

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) )) create view fornituramancante as select c1.fornitore, c2.prodotto from catalogo c1, catalogo c2 except select fornitore, prodotto from catalogo select fornitore from catalogo except select fornitore from fornituramancante; Esercitazione Basi di Dati 19

Esercizio 1.4 4. Trovare i codici dei fornitori che distribuiscono tutti i prodotti presenti nel catalogo. Fornitore 2 Esercitazione Basi di Dati 20

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)) Esercitazione Basi di Dati 21

Esercizio 1.4 4. Trovare i codici dei fornitori che distribuiscono tutti i prodotti presenti nel catalogo. Fornitore 2 Esercitazione Basi di Dati 22

Esercizio 1.5 5. Trovare i nomi dei fornitori che forniscono tutti i prodotti IBM presenti nel catalogo. Esercitazione Basi di Dati 23

Esercizio 1.5 5. Trovare i nomi dei fornitori i che forniscono tuttitti i prodotti IBM presenti nel catalogo. In algebra, ageb a, come interrogazione o e 4, usando, al posto della relazione Catalogo, relazione catalogoibm: CatalogoIBM := π P,F ( σ Marca= IBM (Catalogo P=CP Prodotti)) Esercitazione Basi di Dati 24

create view catalogoibm as select catalogo.fornitore, catalogo.prodotto, from catalogo c, prodotti p where marca = IBM and p.codiceprodotto=c.prodotto; select distinct fornitore from catalogoibm c1 where not exists (select * from catalogoibm c2 where not exists (select * from catalogoibm c3 where c2.prodotto = c3.prodotto and c1.fornitore = c3.fornitore)); Esercizio 1.5 Esercitazione Basi di Dati 25

Esercizio 1.5 5. Trovare i nomi dei fornitori che forniscono tutti i prodotti IBM presenti nel catalogo. Fornitore 2 13 Esercitazione Basi di Dati 26

Esercizio 2 2. Trovare i codici ed i nomi dei fornitori che vendono più prodotti ed il numero di prodotti venduti. Esercitazione Basi di Dati 27

Esercizio 2 2. Trovare il codice ed i nomi dei fornitori che vendono più prodotti ed il numero di prodotti venduti. select f2.codicefornitore, f2.nome, count(*) as SommaProdotti from fornitori f2, catalogo c2 where f2.codicefornitore = c2.fornitore group by f2.codicefornitore, f2.nome having count(*) >= all ( select count(*) from catalogo c group by c.fornitore ); Esercitazione Basi di Dati 28

Esercizio 2 2. Trovare i codici ed i nomi dei fornitori che vendono più prodotti ed il numero di prodotti venduti. CodiceFornitore Nome NumeroProdotti 2 Risparmietti 3 Esercitazione Basi di Dati 29

Esercizio 3 3. Trovare per ogni prodotto il fornitore che lo vende a prezzo più basso. Esercitazione Basi di Dati 30

Esercizio 3 3. Trovare per ogni prodotto il fornitore che lo vende a prezzo più basso. select c.prodotto, c.fornitore, f.nome from ES.catalogo c, ES.fornitori f where f.codicefornitore = c.fornitore and costo <= all ( select costo from ES.catalogo c1 where c.prodotto = c1.prodotto); Esercitazione Basi di Dati 31

Esercizio 3 3. Trovare per ogni prodotto il fornitore che lo vende a prezzo più basso. Prodotto Fornitore Nome 1 2 Risparmietti 2 2 Risparmietti 3 2 Risparmietti Esercitazione Basi di Dati 32