Esercitazioni Basi di dati e web Dario Facchinetti

Documenti analoghi
ESERCIZIO 1. B. Estrarre nome, cognome e codice degli utenti che non hanno mai preso in prestito libri di informatica.

Esercitazioni Basi di dati e web Dario Facchinetti

Basi di Dati Corso di Laura in Informatica Umanistica

Select Anagrafiche, Movimenti From Descrizione? Where Anagrafiche.Codice=Codice And Cognome=' Bianchi ';

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

SQL - Structured Query Language

Interrogazioni di tipo insiemistico. Select. Interrogazioni di tipo insiemistico. Interrogazioni nidificate

Basi di dati: appello 04/07/06

Laboratorio di Basi di dati Soluzioni della V esercitazione - 23 aprile 2007

Operatori aggregati. Operatori aggregati. Interrogazioni con raggruppamento. Interrogazioni con raggruppamento

Tabelle esempio: Impiegato/Dipartimento

Seconda esercitazione su SQL (con soluzioni) Basi di dati A.A. 2017/18 Maurizio Lenzerini

Interrogazioni complesse. SQL avanzato 1

Laboratorio di Basi di Dati

ISBN Titolo CasaEd AnnoEd

Basi di Dati e Sistemi Informativi

Operazioni su insiemi: unione, intersezione e differenza

Basi di dati - Laboratorio

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

Alessandra Raffaetà. Esercizio: Cinema

S.I.T. PER LA VALUTAZIONE E GESTIONE DEL TERRITORIO Corso di Laurea Magistrale in Scienze Ambientali. Alessandra Raffaetà

Sia dato il seguente schema di base di dati:

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

Introduzione alle basi di dati

SQL. Laboratorio di Progettazione di Basi di Dati (CdS in Informatica e TPS)

E possibile ordinare le righe del risultato di una interrogazione attraverso la clausola order by, a chiusura di una interrogazione.

Consideriamo lo schema relazionale

Ricorsione in SQL-99

SQL. Università degli Studi di Salerno. Corso di Laurea in Scienze della Comunicazione Informatica generale (matr. Dispari) Docente: Angela Peduto

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

Join esplicito. SELECT con join esplicito, sintassi. Ulteriore estensione: join naturale (meno diffuso) Outer join. Join esterno: "outer join"

Corso di Basi di Dati

Interrogazioni nidificate

Corso sul linguaggio SQL

Sistemi di Elaborazione delle Informazioni

Basi di Dati. Esercitazione SQL. 17 novembre 2011

Interrogazioni nidificate

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

SQL - Sottointerrogazioni correlate

Esercizi sul linguaggio SQL e le basi dati relazionali

Corso di. Basi di Dati I. 11. Esercitazioni in SQL: Altri esercizi

Basi di Dati: Corso di laboratorio

Corso di. Basi di Dati I. 8. Esercitazioni in SQL: Interrogazioni nidificate

Esercizi SQL. Credits Prof. Campi

Interrogare una base di dati: Algebra relazionale e SQL. Gaetano Anastasi Davide Barcelli Massimo Emiliano Ciaramello Giacoma Monreale

Laboratorio di Basi di Dati e Web

Business Intelligence

SQL - Structured Query Language

formulare in SQL una interrogazione per ciascuno dei seguenti punti:

SQL. Esercitazione. Contatti: Dott. Domenico Fabio Savo

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

Linguaggio SQL seconda parte

Operatori aggregati: COUNT

Basi di Dati Corso di Laura in Informatica Umanistica

Introduzione. Ricorsione in SQL-99. Esempio. Idea di base. Esempio (continua) SQL-99 - comando WITH

Basi di Dati Corso di Laura in Informatica Umanistica

4.SQL QUERY. Fare una query significa fare delle ricerche sul nostro database.

Il linguaggio SQL: le viste

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

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

Corso di Laurea in Ingegneria Informatica Fondamenti di Informatica II Modulo Basi di dati a.a

Prova Pratica di Informatica, Modulo Basi di dati Appello 23/07/2018

1) Semplicissimi esercizi introduttivi

SQL è stato definito nel 1973 ed è oggi il linguaggio universale dei sistemi relazionali

Operatori aggregati: COUNT

Fondamenti di Informatica A.A. 2017/18

D B M G. Linguaggio SQL: fondamenti. Operatori insiemistici. Operatore UNION Operatore INTERSECT Operatore EXCEPT

SQL. Argomenti della lezione. Join esplicito. Interrogazioni complesse in SQL join esplicito outer join operatori aggregati interrogazioni nidificate

Basi di Dati: Corso di laboratorio

Linguaggio SQL: fondamenti D B M G

SQL e algebra relazionale

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

Esame di Informatica Generale 9 CFU 20 Settembre 2011

SQL: le funzioni di aggregazione

1 Database universitario

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

Basi di Dati: Corso di laboratorio

Introduzione alle basi di dati

Corso di Basi di Dati

Gestione dei valori nulli

SQL. Esercitazione 6-7. Contatti: Dott.ssa Silvia Bonfanti

QL (Query Language) Alice Pavarani

Principi di Progettazione del Software a.a Il linguaggio SQL. Il Linguaggio SQL

IL LINGUAGGIO SQL LE BASI

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

Laboratorio di Basi di dati/web/mm e Basi di dati per Bioinformatica

Argomenti della lezione. Interrogazioni complesse in SQL join esplicito outer join operatori aggregati interrogazioni nidificate

SQL. Università degli Studi di Salerno. Corso di Laurea in Scienze della Comunicazione Informatica generale (matr. Dispari) Docente: Angela Peduto

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

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

Queries su più tabelle

Tutorato di Fondamenti di Informatica TUTOR: DAVIDE GHIANI, GIULIA ORRU

Laboratorio di Basi di dati

Basi di Dati: Corso di laboratorio

INFORMATICA GENERALE Prof. Alberto Postiglione. Scienze della Comunicazione Università di Salerno. Raggruppamento. Raggruppamento

Le implementazioni nei vari DBMS relazionali commerciali

Transcript:

Esercitazioni Basi di dati e web Dario Facchinetti - 2019 dario.facchinetti@unibg.it https://cs.unibg.it/dariofad/esercitazioni/bdweb2019.htm

Introduzione Risolveremo esercizi mostrando: Interrogazioni nidificate Interrogazioni con aggregazione Interrogazioni con ricorsione Esercizi da temi d esame

Interrogazioni SQL Linguaggio dichiarativo Specifica definita da standard: SQL-86 SQL-89 SQL-92 SQL:1999 SQL:2003 SQL:2006 SQL:2008 SQL:2011 SQL:2016 -- consideriamo come riferimento la specifica 2008 Diverse soluzioni sono presenti in prodotti reali che si differenziano per dettagli implementativi consultare la documentazione ufficiale in fase di progetto Attenzione: si tratta di un prodotto industriale, aspetti come la perfomance sono fondamentali non si lavora più con relazioni insiemistiche poichè eliminare i duplicati è oneroso

Struttura valida di una interrogazione In quale ordine devono essere scritte le clausole in una interrogazione valida? 1. SELECT 2. FROM 3. WHERE 4. GROUP BY 5. HAVING 6. ORDER BY 7. LIMIT SELECT e FROM sono le uniche richieste per la costruzione della più breve query valida

Ordine generale di esecuzione In quale ordine vengono svolte le operazioni? 1. FROM 2. WHERE 3. GROUP BY 4. HAVING 5. SELECT 6. ORDER BY 7. LIMIT Attenzione: alcune variazioni in caso di query nidificata

Esercizio 1 UTENTE (Codice, Nome, Cognome, Indirizzo, Telefono) PRESTITO (Collocazione, CodUtente, DataPrestito, DataRest) COPIA (Collocazione, ISBN, DataAcq) DATILIBRO (ISBN, Titolo, AnnoPub, CasaEd, PrimoAut, Genere) A. Trovare i titoli dei libri di informatica prestati nel giugno 02 in ordine alfabetico (ogni titolo compaia una volta). B. Estrarre nome, cognome e codice degli utenti che non hanno mai preso in prestito libri di informatica. C. Trovare il genere dei libri con il maggior numero di prestiti. D. Trovare gli utenti che hanno preso libri di tutti i generi.

Esercizio 2 - Tema d esame 3 Febbraio 2003 CLIENTE(Id, Cognome, Nome, NumNoleggi, Tipologia) FILM(Titolo, Regista, Genere, Durata) CASSETTA(Id, Titolo) DVD(Id, Titolo) NOLEGGIO(IdCassODvd, CodCliente, DataPrestito, DataRestituzione) A. Estrarre in SQL tutti i film di cui sono stati noleggiati pi`u volte i DVD che le videocassette. B. Estrarre in SQL tutti i film le cui cassette sono state noleggiate pi`u di venti volte nel mese di Gennaio ma non presenti in formato DVD. C. Determinare il cognome e il nome dei clienti che hanno noleggiato tutti i film (in formato cassetta o DVD). D. Determinare il nome e cognome dei clienti che hanno noleggiato DVD solo di genere giallo.

Interrogazioni ricorsive - premessa Ci sono alcune restrizioni sull uso di interrogazioni ricorsive in una vista ricorsiva; nello specifico la query deve essere monotona, cioè il risultato sull istanza I1 di una vista di una relazione deve essere un superset del suo risultato sull istanza I2 se I1 è un superset di I2. Intuitivamente, se alcune tuple vengono aggiunte ad una vista allora la query ricorsiva che viene eseguita sulla medesima vista deve almeno produrre lo stesso sottoinsieme di tuple prodotte in una precedenta invocazione, e possibilmente alcune tuple in aggiunta.

Interrogazioni ricorsive - restrizioni Le query ricorsive non devono usare nessuno dei seguenti costrutti, in quanto la potrebbero rendere non-monotona: Aggregazioni sulla vista ricorsiva not exists su una sotto-query che usa la vista ricorsiva Operatore except con operando destro(sottraendo) una vista ricorsiva

Esercizio 3 - interrogazioni ricorsive Dato lo schema prereq(id_corso, id_prereq) Trovare tutti i pre-requisiti del corso ID0018

Esercizio 4 - ranking Come risolvere in maniera semplice il problema del ranking Dato lo schema SQUADRA(nome, media_punti) costruire una tabella che mostri il ranking delle squadre Viene concesso l utilizzo della sola funzione count()

Esercizio 5 - Tema d esame 8 Settembre 2010 AEROPORTO(Id, Città, Nazione, NumPiste) VOLO(NumeroVolo, GiornoSett, IdAeropPartenza, IdAeropArrivo, Compagnia, OraPartenza, OraArrivo, CodAereo) AEREO(Codice, Tipo, NumPasseggeri) A. Esprimere in SQL la query che estrae la coppia di città tra cui viene offerta la maggiore capacità complessiva di trasporto passeggeri. (Se si suppone che la capacità sia simmetrica, come si potrebbe rendere la query più efficiente?) B. Estrarre in SQL le compagnie che servono la città di Bergamo con più di settanta voli alla settimana, usando aerei di un solo tipo per tutti i loro voli.