Business Intelligence

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

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

ed SQL 10 Novembre 2009

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

Basi di dati I Prova di autovalutazione 30 ottobre 2014

Estensioni del linguaggio SQL per interrogazioni OLAP

SQL terza parte D O C E N T E P R O F. A L B E R T O B E L U S S I. Anno accademico 2010/11

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 8 settembre 2015 Esame Compito A Tempo a disposizione: due ore. Libri chiusi.

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

Linguaggio SQL seconda parte

Basi di Dati DBDMG - Politecnico di Torino Esercizi di SQL

Basi di Dati. S Q L Lezione 4

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

Esercitazione 3 SQL 2

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

Basi di Dati Esempi di SQL

S Q L E S E R C I Z I

Basi di dati: appello 07/02/06

Basi di Dati Esempi di SQL

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

ESAME di INFORMATICA e ARCHIVIAZIONE

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

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

Il linguaggio SQL: raggruppamenti. Versione elettronica: SQLb-gruppi.pdf

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

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

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

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

cliente... nuovo cliente trasloco

Interrogazioni semplici

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

PROVA SCRITTA DI TECNOLOGIA DATABASE 02/12/2004 Corso di Laurea Specialistica in Ingegneria Informatica - NOD PROF.

Basi di dati Appello del Soluzione del compito B

Basi di dati: appello 14/07/06

Basi di Dati. Esercitazione SQL. Ing. Paolo Cappellari

Esempi SQL con Access. Orazio Battaglia

Laboratorio di Basi di Dati

Structured. Language. Basi di Dati. Introduzione. DDL: Data Definition Language. Tipi di dato. Query. Modifica dei Dati

SQL - Structured Query Language

Basi di Dati: Corso di laboratorio

Data management a.a Il linguaggio SQL

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

D B M G. Linguaggio SQL: fondamenti. Istruzione SELECT: fondamenti. Elena Baralis 2007 Politecnico di Torino 1. Struttura di base

Basi di Dati. Oracle SQLPLUS - Esercitazione n. 2 Passi preliminari per lo svolgimento delle esercitazioni

PROVA SCRITTA DI TECNOLOGIA DATABASE 14/12/2005 Corso di Laurea Specialistica in Ingegneria Informatica - NOD PROF.

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

Esercitazione query in SQL L esercitazione viene effettuata sul database viaggi e vacanze che prevede il seguente modello E/R:

Esercizi di SQL 1- SELEZIONI SEMPLICI 1 2- SELEZIONI CON PROIEZIONI 1 3- FUNZIONI DI INSIEME 2 4- FUNZIONI DI AGGREGAZIONE 2 5- HAVING 3

Basi di Dati: Corso di laboratorio

1. Per ogni film in cui appaiono solo attori nati prima del 1970 restituire il titolo del film.

BASE DI DATI. Esercitazione: Campionato italiano 2015/2016 Raggruppamenti Nidificazione. Informatica Umanistica Università di Pisa

ESERCIZI INTERROGAZIONI SQL

SQL: definizione schema

Esercizio sul modello Entità-Associazione, traduzione in relazionale e interrogazioni SQL

Interrogazioni complesse. SQL avanzato 1

Basi di Dati Corso di Laura in Informatica Umanistica

UTENTE (Codice, Nome, Cognome, Indirizzo, Telefono) PRESTITO (Collocazione, CodUtente, DataPrestito, DataRest)

Esercitazione su SQL

Caratteristiche dei linguaggi per Database

SQL [2] Concetti avanzati di SQL. Esempi di interrogazioni

SQL. Il nome sta per Structured Query Language Le interrogazioni SQL sono dichiarative

Basi di dati attive. Una base di dati è ATTIVA quando consente la definizione e la gestione di regole di produzione (regole attive o trigger).

Simulazione prova pratica

Linguaggio SQL. studenti matricola nome cognome citta anno 11 marco bini bologna laura sicuro rimini 1984 esami codice

Basi di dati: appello 04/07/06

SQL - Funzioni di gruppo

Esercitazione di riepilogo sulle Query MySQL Giugno 2011 Classe VB Informatica

ISTITUTO PARITARIO MICHELANGELO - RIMINI- PIANO DI LAVORO

Interrogazioni nidificate

PROGETTAZIONE DI DATABASE Linguaggio SQL

Elena Baralis 2007 Politecnico di Torino 1

Tipi di sottoquery SQL

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

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

Esercizi di SQL. 3) cognome e nome dei clienti che abitano a Rimini e guadagnano più di 3000;

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

Laboratorio Architettura. Prof. Alessandra Lumini Alma Mater Studiorum - Università di Bologna

Laboratorio Architettura

Esercizio con attributo cross-dimensionale - transazionale

PROVA SCRITTA DI TECNOLOGIA DATABASE 05/12/2003 Corso di Laurea Specialistica in Ingegneria Informatica - NOD PROF.

MODULO 2. Query normali e parametriche Query di:

Interrogazioni nidificate

Basi di Dati Corso di Laura in Informatica Umanistica

ESEMPI DI QUERY SQL. Esempi di Query SQL Michele Batocchi AS 2012/2013 Pagina 1 di 7

Il linguaggio SQL. è di fatto lo standard tra i linguaggi per la gestione di data base relazionali.

Istruzioni SQL 1. Query di selezione 2 Istruzione SELECT 2 Istruzione SELECT DISTINCT 2 ORDER BY 3 WHERE 3 La condizione LIKE 4 BETWEEN AND 5

SQL. SQL: "storia. Sviluppato nella metà degli anni settanta (1974) presso il laboratorio di ricerca IBM di S.Josè. Dal 1983 ca. "standard di fatto"

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

Join in SQL (primo modo) Informatica. Tabella Dipartimento. Interrogazione 4a. Interrogazione 4b. Interrogazione 4a

DATABASE CLIENTIRAPPRESENTANTI

CONCETTO DI ANNIDAMENTO

Esercitazione: Interrogazioni SQL

SQL prima parte D O C E N T E P R O F. A L B E R T O B E L U S S I. Anno accademico 2011/12

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

a.a. 2012/13 12 Novembre 2012 Preparazione al Test in itinere, Compito A 1. Modellare tramite uno schema entità- relazione la seguente base di dati:

Lezione 7 SQL (II) Basi di dati bis Docente Mauro Minenna Pag.1

Compito DA e BD. Tempo concesso: 90 minuti 21 gennaio 04 Nome: Cognome: Matricola: Esercizio 1

Utilizzando Microsoft Access. Si crea la tabella Anagrafica degli alunni,le Materie e i voti si mettono alcuni campi

Utilizzando Microsoft Access. Si crea la tabella Anagrafica degli alunni,le Materie e i voti si mettono alcuni campi

Transcript:

Business Intelligence Esercitazione di Laboratorio N. 1 L esercitazione ha come obiettivo l interrogazione di una base di dati relazionale mediante query SQL su un DBMS Oracle XE. Schema logico della basi di dati Tabelle - FORNITORI ( ID, NOME, CITTA, PROVINCIA, LIVELLO) - OGGETTI (ID, TIPO, COLORE, PESO) - TEMPO (ID, DATA, MESE, ANNO) - ACQUISTI (ID_FORNITORE, ID_OGGETTO, ID_TEMPO, QUANTITA) Schema

Interrogazioni Dopo aver analizzato lo schema della base di dati, scrivere le interrogazioni SQL per ottenere le seguenti informazioni: 1. Visualizzare il codice e il nome dei fornitori che risiedono nella provincia di Torino. 2. Visualizzare tutti i dettagli dei fornitori che risiedono nella città di Torino. 3. Considerando solo i fornitori di almeno livello 5 e residenti nella città di Torino, selezionare il nome e il livello dei fornitori. 4. Selezionare il nome e il livello dei fornitori della città di Torino. Ordinare il risultato in ordine decrescente di livello. 5. Considerando solo i fornitori della città di Torino, le forniture del 10-03-2009 e gli oggetti di colore giallo, visualizzare il numero di oggetti forniti e la quantità totale fornita. 6. Visualizzare le città in cui risiedono i fornitori. 7. Visualizzare i tipi di oggetti che non sono disponibili in colore giallo. 8. Visualizzare gli oggetti di colore giallo forniti dai fornitori della città di Torino. 9. Visualizzare il nome e il livello dei fornitori che hanno un livello uguale al massimo livello presente. 10. Visualizzare per ogni oggetto la quantità totale fornita. 11. Selezionare le città in cui sono presenti almeno tre fornitori. 12. Per gli oggetti che nel 2008 sono stati forniti in quantità superiore a 4100 unità, visualizzare il codice e la quantità totale fornita. 13. Visualizzare per ogni oggetto il peso in grammi (supponendo che quello memorizzato all interno della base di dati sia espresso in Kg). 14. Visualizzare il numero di fornitori che risiedono nella città di Torino. 15. Considerando solo i fornitori della città di Torino, visualizzare il livello dei fornitori pari al massimo, minimo e medio livello. 16. Per ogni data visualizzare la quantità totale di oggetti forniti. 17. Considerando solo i fornitori della città di Torino e le forniture del 2008, visualizzare per ogni oggetto il codice e la quantità totale fornita. 18. Per ogni città in cui è residente un fornitore e per ogni tipo di oggetto, visualizzare la quantità totale di oggetti di colore giallo forniti negli anni 2008 e 2009. 19. Per ogni data in cui è stato fornito almeno un oggetto in quantità totale superiore a 800 unità, visualizzare la data, il codice dell oggetto e la quantità totale fornita. 20. Visualizzare il codice e il nome dei fornitori che hanno fornito tutti gli oggetti. 21. Visualizzare il codice, il nome e la città dei fornitori che hanno fornito almeno tutti gli oggetti forniti dal fornitore T1. 22. Visualizzare il nome e il livello dei fornitori per cui la quantità totale di oggetti forniti nel 2008 sia maggiore alla quantità totale di oggetti forniti nel 2009 dallo stesso fornitore. 23. Visualizzare il nome e il livello dei fornitori per cui la quantità totale di oggetti forniti nel 2009 sia maggiore della quantità media fornita da tutti i fornitori nel 2008. 24. Visualizzare il nome dei fornitori che hanno fornito solo oggetti di colore rosso. 25. Visualizzare il codice dell oggetto per cui nel 2008 è stata fornita la massima quantità media (nel 2008).

Possibili soluzioni: 1. Visualizzare il codice e il nome dei fornitori che risiedono nella provincia di Torino Select id, nome Where provincia = 'TO'; 2. Visualizzare tutti i dettagli dei fornitori che risiedono nella città di Torino. Select * Where citta = 'TORINO'; 3. Considerando solo i fornitori di almeno livello 5 e residenti nella città di Torino, selezionare il nome e il livello dei fornitori. Select nome, livello Where citta = 'TORINO' and livello >= 5; 4. Selezionare il nome e il livello dei fornitori della città di Torino. Ordinare il risultato in ordine decrescente di livello. Select nome, livello Where citta = 'TORINO' Order by livello desc; 5. Considerando solo i fornitori della città di Torino, le forniture del 10-03-2009 e gli oggetti di colore giallo, visualizzare il numero di oggetti forniti e la quantità totale fornita. Select sum(q.quantita) From acquisti q, oggetti o, fornitori f, tempo t Where q.id_fornitore = f.id and q.id_oggetto = o.id and q.id_tempo = t.id and o.colore = 'GIALLO' and f.citta = 'TORINO' and t.data = to_date('10-03-2009','dd-mm-yyyy');

6. Visualizzare le città in cui risiedono i fornitori. Select distinct citta ; 7. Visualizzare i tipi di oggetti che non sono disponibili in colore giallo. Select distinct tipo From oggetti Where tipo not in (Select tipo From oggetti Where colore = 'GIALLO'); oppure Select distinct o.tipo From oggetti o Where NOT EXISTS (Select * From oggetti o2 Where o.tipo = o2.tipo and o2.colore = 'GIALLO'); 8. Visualizzare gli oggetti di colore giallo forniti dai fornitori della città di Torino. Select distinct o.id From acquisti a, fornitori f, oggetti o a.id_oggetto = o.id and o.colore = 'GIALLO' and f.citta = 'TORINO'; 9. Selezionare il nome e il livello dei fornitori che hanno un livello uguale al massimo livello presente. Select nome, livello Where livello = (Select max(livello) );

10. Visualizzare per ogni oggetto la quantità totale fornita. Select id_oggetto, sum(quantita) From acquisti Group by id_oggetto; 11. Selezionare le città in cui sono presenti almeno tre fornitori. Select citta, count(*) As NumeroDiFornitori Group by citta Having count(*) >= 3; 12. Per gli oggetti che nel 2008 sono stati forniti in quantità superiore a 4100 unità, visualizzare il codice e la quantità totale fornita. Select id_oggetto, sum(quantita) From acquisti a, tempo t Where a.id_tempo = t.id and t.anno = 2008 Group by id_oggetto Having sum(quantita) > 4100; 13. Visualizzare per ogni oggetto il peso in grammi (supponendo che quello memorizzato all interno della base di dati sia espresso in Kg). Select id, peso, peso*1000 as PESO_IN_GRAMMI From oggetti; 14. Visualizzare il numero di fornitori che risiedono nella città di Torino. Select count(*) Where citta = 'TORINO'; 15. Considerando solo i fornitori della città di Torino, visualizzare il livello dei fornitori pari al massimo, minimo e medio livello. Select min(livello) as livello_min, max(livello) as max_livello, avg(livello) as avg_livello Where citta = 'TORINO';

16. Per ogni data visualizzare la quantità totale di oggetti forniti. Select t.data, sum(q.quantita) From acquisti q, tempo t Where q.id_tempo = t.id Group by t.data; 17. Considerando solo i fornitori della città di Torino e le forniture del 2008, visualizzare per ogni oggetto il codice e la quantità totale fornita. Select a.id_oggetto, sum(a.quantita) From acquisti a, fornitori f, tempo t a.id_tempo = t.id and f.citta = 'TORINO' and t.anno = 2008 Group by a.id_oggetto; 18. Per ogni città in cui è residente un fornitore e per ogni tipo di oggetto, visualizzare la quantità totale di oggetti di colore giallo forniti negli anni 2008 e 2009. Select f.citta, o.tipo, sum(a.quantita) From acquisti a, oggetti o, fornitori f, tempo t Where a.id_tempo = t.id and a.id_oggetto = o.id and a.id_fornitore = f.id and o.colore = 'GIALLO' and t.anno >=2008 and t.anno <= 2009 Group by f.citta, o.tipo; 19. Per ogni data in cui è stato fornito almeno un oggetto in quantità totale superiore a 800 unità, visualizzare la data, il codice dell oggetto e la quantità totale fornita. Select t.data, a.id_oggetto, sum(a.quantita) From acquisti a, tempo t Where a.id_tempo = t.id Group by t.data, a.id_oggetto Having sum(a.quantita) > 800;

20. Visualizzare il codice e il nome dei fornitori che hanno fornito tutti gli oggetti. Select f.id, f.nome From acquisti a, fornitori f Where a.id_fornitore = f.id Group by f.id, f.nome Having count(distinct a.id_oggetto) = (Select count(*) From oggetti); 21. Visualizzare il codice, il nome e la città dei fornitori che hanno fornito almeno tutti gli oggetti forniti dal fornitore T1. Select f.id, f.nome, f.citta From acquisti a, fornitori f a.id_oggetto in (Select distinct a1.id_oggetto From acquisti a1, fornitori f1 Where a1.id_fornitore = f1.id and f1.nome = 'T1') Group by f.id, f.nome, f.citta Having count(distinct a.id_oggetto) = (Select count(distinct a1.id_oggetto) From acquisti a1, fornitori f1 Where a1.id_fornitore = f1.id and f1.nome = 'T1'); 22. Visualizzare il nome e il livello dei fornitori per cui la quantità totale di oggetti forniti nel 2008 sia maggiore alla quantità totale di oggetti forniti nel 2009 dallo stesso fornitore. Select f.nome, f.livello From acquisti a, fornitori f, tempo t a.id_tempo = t.id and t.anno = 2008 Group by f.id, f.nome, f.livello Having sum(a.quantita) > (Select sum(quantita) From acquisti a1, fornitori f1, tempo t1 Where a1.id_fornitore = f1.id and a1.id_tempo = t1.id and t1.anno = 2009 and f.id = f1.id);

23. Visualizzare il nome e il livello dei fornitori per cui la quantità totale di oggetti forniti nel 2009 sia maggiore della quantità media fornita da tutti i fornitori nel 2008. Select f.nome, f.livello From acquisti a, fornitori f, tempo t a.id_tempo = t.id and t.anno = 2009 Group by f.id, f.nome, f.livello Having sum(a.quantita) > (Select sum(quantita)/count(distinct a1.id_fornitore) From acquisti a1, tempo t1 Where a1.id_tempo = t1.id and t1.anno = 2008); 24. Visualizzare il nome dei fornitori che hanno fornito solo oggetti di colore rosso. Select distinct f.nome From acquisti a, fornitori f f.id not in (select a2.id_oggetto from acquisti a2, oggetti o2 where a2.id_oggetto = o2.id and colore <> 'ROSSO') 25. Visualizzare il codice dell oggetto per cui nel 2008 è stata fornita la massima quantità media (nel 2008). Select a1.id_oggetto From acquisti a1, tempo t1 Where a1.id_tempo = t1.id and anno = 2008 Group by a1.id_oggetto Having avg(quantita)=( Select max(media) From (Select a2.id_oggetto, avg(quantita) as Media from acquisti a2, tempo t2 where a2.id_tempo = t2.id and anno = 2008 group by a2.id_oggetto))