Esercitazione 7 Correzione della prova di autovalutazione

Documenti analoghi
Esercitazione 6 SQL 3

Esercitazione 3 SQL 2

Basi di dati Appello del Soluzione del compito B

INTRODUZIONE AL 2 TEST IN ITINERE. a.a

Basi di dati Appello del Soluzione del compito A

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

Basi di Dati. Esercitazione SQL. 17 novembre 2011

Esercitazione 1 Algebra relazionale

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

Obiettivi della progettazione logica. Fasi della progettazione logica. Ristrutturazione dello schema ER. Parte VI. Progettazione logica

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

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

Basi di dati I 10 settembre 2019 Tempo a disposizione: un ora e 30 minuti. Possibili soluzioni. Cognome: Nome: Matricola:

Esercitazione 1. ogni tupla contribuisce al risultato: Impiegato Reparto Rossi. Bruni. Bianchi

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

Basi di Dati: Elementi

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

Basi di dati I 8 settembre 2011 Tempo a disposizione: un ora e trenta minuti. Libri chiusi.

Esame di Basi di Dati

Sia dato il seguente schema di base di dati:

BASE DI DATI. Esercizio: Campionato corse Progettazione concettuale Progettazione logica. Informatica Umanistica Università di Pisa

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

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

Istituto Statale E.Torricelli Liceo Scientifico Tecnologico-Tecnico Industriale. Compiti Estivi Informatica

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

Esercitazione 1. ogni tupla contribuisce al risultato: Impiegato Reparto Rossi. Bruni. Bianchi

Gestione delle informazioni. Tot. h 10. Base di Dati. Tot. h 56. Grafica in C# - Laboratorio- Tot. h 40. Dipartimento Informatica Materia Informatica

Interrogazioni complesse. SQL avanzato 1

La gestione delle interrogazioni

Basi di dati Appello del Compito A

Parte III. L algebra relazionale

ESERCIZIO 1 (12 punti) Dato il seguente schema relazionale, che modella le informazioni relative ad una piattaforma di gestione di gare podistiche:

ed SQL 10 Novembre 2009

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

Basi di Dati. Esercitazione Algebra Relazionale. 16 maggio 2008

La progettazione logica

Basi di dati. Gabriella Trucco

Sommario. Introduzione... 13

Aspetti avanzati nella definizione degli schemi DDL2 1

Basi di Dati Corso di Laura in Informatica Umanistica

IL MODELLO RELAZIONALE

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

Prova Scritta di Basi di Dati

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

Gestione di basi di dati relazionali con SQL (parte II) Valutazione delle condizioni su insiemi di tuple

Interrogazioni nidificate

5.1- Le operazioni: esempi

Basi di dati II, primo modulo Prova parziale 22 marzo 2010 Compito A

Basi di dati - Laboratorio

Basi di dati I Esercizi proposti il 24 ottobre 2016

Si considerino le seguenti specifiche relative alla realizzazione di un sistema informativo di una società di sviluppo software.

Laboratorio di Basi di Dati prova totale 20 febbraio 2013

Esercizio con attributo cross-dimensionale - transazionale

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

formulare in SQL una interrogazione per ciascuno dei seguenti punti:

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

SQL - Structured Query Language

formulare in SQL una interrogazione per ciascuno dei seguenti punti:

REGISTRO DELLE LEZIONI

ESAME di INFORMATICA e ARCHIVIAZIONE

Ottimizzazione e organizzazione fisica

Interrogazioni nidificate

Esercitazione 2 SQL 1 (installazione MySQL)

BASE DI DATI. Esercizi Progettazione concettuale Progettazione logica Concetti avanzati SQL: Raggruppamento Nidificazione

Fondamenti di Informatica 2 Simulazione d esame dell 11 Dicembre 2009

Parte VIII Organizzazione fisica

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

Si consideri la realtà medica descritta dalla base di dati relazionale definita dal seguente schema:

Basi di dati Appello del Compito B

Basi di dati (nuovo ordinamento) 30 giugno 2005 Compito A Possibili soluzioni

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 I 19 settembre 2016 Tempo a disposizione: un ora e 45 minuti.

Parte III L algebra relazionale

Business Intelligence

Basi di Dati. SOLUZIONE della Prova Scritta del 12 Gennaio 2007

Il linguaggio SQL: le viste

Basi di dati Soluzione per l appello del

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

Basi di Dati: Elementi

Esercizi di Informatica Documentale

Esercitazione 2 SQL 1 (installazione MySQL)

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

Basi di dati: appello 14/07/06

Ricorsione in SQL-99

Basi di dati I 28 gennaio 2014 Compito A Tempo a disposizione: un ora e quarantacinque minuti.

Corso di Laurea in Informatica Basi di Dati a.a

Basi di dati II, primo modulo Tecnologia delle basi di dati 24 settembre 2010 Compito A

Esame di Basi di Dati, SOLUZIONE APPELLO 09/06/2009

Basi di dati I 14 febbraio 2019 Compito A Tempo a disposizione: un ora e quindici minuti per la prova breve, due ore per la prova lunga

Basi di dati: appello 04/07/06

Laboratorio di Basi di Dati

ESAME di INFORMATICA e ARCHIVIAZIONE

Basi di dati. Appello del Soluzione Compito A. Anno Accademico 2006/07. Problema 1

Basi di dati I 6 settembre 2018 Tempo a disposizione: un ora e 45 minuti.

Basi di Dati. Concetti Avanzati

Transcript:

Esercitazione 7 Correzione della prova di autovalutazione Basi di dati - prof. Silvio Salza - a.a. 2017-2018 E7-1

Specifiche dello schema ER Si vuole progettare una base di dati che rappresenta l'organizzazione di una società di vendite per corrispondenza, contenente le informazioni riguardanti gli articoli in catalogo, i clienti, gli impiegati, gli ordini e il processo di spedizione. Ciascun articolo in catalogo è contraddistinto da un nome, un codice univoco ed un prezzo. I clienti sono contraddistinti da nome, codice fiscale e la città in cui abita. Ciascuno di essi ha tipicamente effettuato nel corso del tempo più ordini, ed i dettagli di tutti gli ordini sono mantenuti nella base di dati. Gli impiegati sono contraddistinti da nome e codice fiscale. Per ciascuno di essi viene memorizzata la data di assunzione ed il numero di ordini che ha gestito. Basi di dati - prof. Silvio Salza - a.a. 2017-2018 E7-2

Specifiche dello schema ER (2) Un ordine è contraddistinto da un codice univoco. Esso è effettuato da un cliente e gestito da un impiegato, e comprende un insieme di articoli, ciascuno in una determinata quantità. Per ciascun ordine si vuole conservare anche l'importo complessivo e la data in cui esso è stato effettuato e la data di consegna La società si serve di più corrieri per la spedizione della merce. Ogni corriere è individuato da un nome, ad un codice e dalla città in cui ha la propria base. Ad ogni ordine corrisponde una spedizione, affidata ad un determinato corriere e della quale si vogliono conservare la data di consegna al corriere e quella di consegna al cliente. Per ciascuna città si vuole conservare il nome, il CAP e la distanza da tutte le altre città. Basi di dati - prof. Silvio Salza - a.a. 2017-2018 E7-3

Schema ER CF Nome #Art ARTICOLO Prezzo Quantità PERSONA Include N-Ord Data Importo #Ord ORDINE Gestisce IMPIEGATO CLIENTE Data #Sp Invio SPEDIZIONE Effettua #Cor Nome Tramite CORRIERE Base Abita CITTA Nome CAP From To Data-P Data-A Dista Distanza Basi di dati - prof. Silvio Salza - a.a. 2017-2018 E7-4

Schema ER (alternativo) CF Nome #Art ARTICOLO Prezzo Quantità PERSONA Include N-Ord Data Importo #Ord ORDINE Gestisce IMPIEGATO CLIENTE Data Effettua Spedizione #Cor Nome CORRIERE Base Abita CITTA Nome CAP From To Data-P Data-A Dista Distanza Basi di dati - prof. Silvio Salza - a.a. 2017-2018 E7-5

Ristrutturazione dello schema ER Eliminazione della gerarchia ISA, tra PERSONA, CLIENTE e IMPIEGATO : Accorpamento del padre nelle figlie Convieen perché non ci sono associazioni su PERSONA Evidenziare gli attributi ridondanti: Importo in ORDINI N-Ord in IMPIEGATO Assumiamo che vengano aboliti Basi di dati - prof. Silvio Salza - a.a. 2017-2018 E7-6

Schema ER ristrutturato #Art Quantità ARTICOLO Prezzo Include Data Nome CF Nome CF #Ord ORDINE Gestisce IMPIEGATO CLIENTE Data Effettua Spedizione #Cor Nome CORRIERE Base Abita CITTA Nome CAP From To Data-P Data-A Dista Distanza Basi di dati - prof. Silvio Salza - a.a. 2017-2018 E7-7

Schema relazionale ARTICOLO(#Art, Prezzo) ORDINE(#Ord, Data, Cliente, Impiegato, Corriere, Data-P, Data-A) CLIENTE(CF, Nome, Citta ) IMPIEGATO(CF, Nome, Data) CORRIERE(#Cor, Nome, Citta ) CITTA (Nome, CAP) INCLUDE(#Ord, #Art, Quantità) DISTA(Citta -1, Citta -2, Distanza) N.B. I vincoli di integrità referenziale sono evidenziati in rosso Basi di dati - prof. Silvio Salza - a.a. 2017-2018 E7-8

Schema relazionale per le query CAVALLO(#Ca, Nome, Sesso, Padre, Madre, Anno) IPPODROMO(#Ip, Nome, Località) CORSA(#Co, Nome, Ippodromo, Distanza) ARRIVO(Corsa, Anno, Cavallo, Posizione) Basi di dati - prof. Silvio Salza - a.a. 2017-2018 E7-9

Query A I nomi di tutti i cavalli che hanno vinto una gara sui 2000 metri quando avevano meno di 3 anni. select C.Nome from Cavallo C, Arrivo A, Corsa Co where C.#Ca=A.Cavallo AND A.Corsa=Co.#Co AND Co.Distanza=2000 AND A.Posizione=1 AND A.Anno-C.Anno<3 Basi di dati - prof. Silvio Salza - a.a. 2017-2018 E7-10

Query B I nomi di tutti i cavalli che non hanno sorelle o sorellastre più anziane di loro. select S.Nome from Cavallo C, Cavallo S where C.#Ca not in (select Ca.#Ca from Cavallo Ca, Cavallo So where(ca.padre=so.padre or Ca.Madre=So.Madre) AND Ca.#Ca <> So.#Ca AND So.Anno < Ca.Anno) Basi di dati - prof. Silvio Salza - a.a. 2017-2018 E7-11

Query C Il nome dei cavalli che hanno vinto gare in almeno quattro ippodromi diversi. Select C.Nome from Cavallo C, Arrivo A, Corsa Co where C.#Ca=A.Cavallo AND A.Corsa=Co.#Co AND A.Posizione=1 group by C.#Ca, C.Nome having count(distinct C.Ippodromo)>=4 Basi di dati - prof. Silvio Salza - a.a. 2017-2018 E7-12

Query D Il nome del cavallo (dei cavalli) che hanno vinto gare nel maggior numero di ippodromi. PASSO 1 create view Vittorie as Select C.#Ca, count(distinct Co.Ippodromo) as Nvitt from Cavallo C, Arrivo A, Corsa Co where C.#Ca=A.Cavallo AND A.Corsa=Co.#Co AND A.Posizione=1 group by C.#Ca Basi di dati - prof. Silvio Salza - a.a. 2017-2018 E7-13

Query D (continua) PASSO 2 select C.Nome from Cavallo C, Vittorie V where C.#Ca=V.#Ca AND V.Nvitt = (select max(nvitt)from Vittorie) Basi di dati - prof. Silvio Salza - a.a. 2017-2018 E7-14

Domanda E: esecuzione del Join (1) Join Nested-loop Una delle due relazioni è detta esterna e l altra interna Si procede confrontando ogni tupla della relazione esterna con tutte le tuple di quella interna, per trovare gli accoppiamenti Se non ci sono indici la complessità è quadratica: n x m confronti se m e n sono le cardinalità delle due relazioni Se è presente un indice sull attributo di join in una delle due relazioni, si prende questa come interna: la complessità diventa lineare Nel caso di join in cascata si effettua un pipelining: le tuple prodotte da ciascun join vengono usate come tuple della relazione esterna nel join successivo Considerato ciò e il fatti che moltissimi join sono su vincoli di integrità referenziale, i DBMS predispongono indici sulle chiavi primarie Basi di dati - prof. Silvio Salza - a.a. 2017-2018 E7-15

Domanda E: esecuzione del Join (2) Join Merge-Scan Si effettua il sort su entrambe le tabelle sull attributo di join: ciò equivale di fatto alla costruzione di un indice temporaneo Il sort è operazione molto costosa: costo quadratico che scende a lineare effettuando il merge-sort Si usano due indici, uno per ogni tabella, che avanzano continuando a puntare a tuple che hanno lo stesso valore nell attributo di join, e che quindi si accoppiano Una volta effettuato il sort, il costo del join merge-scan diventa lineare Basi di dati - prof. Silvio Salza - a.a. 2017-2018 E7-16

Per superare l esame Condizioni necessarie (ma non sufficienti!) Votazione decorosa sulla parte 1) di progettazione concettuale Votazione decorosa sulla parte 2) di progettazione logica Almeno una delle query SQL sufficiente Diventano sufficienti quando il punteggio complessivo raggiunge la sufficienza N.B. Ad esempio un compito ben fatto nelle altre parti, ma senza uno schema relazionale decente o almeno una query sufficiente, viene valutato complessivamente insufficiente Basi di dati - prof. Silvio Salza - a.a. 2017-2018 E7-17