Compito Basi di Dati. Tempo concesso : 90 minuti 21 Gennaio 05 Nome: ______________ Cognome: _________________ Matricola: __________ Esercizio 1 Si considerino le seguenti specifiche relative alla realizzazione del sistema informativo di un vivaio di piante e si definisca il relativo schema E/R (usando la metodologia proposta a lezione). Il vivaio SempreVerde vuole realizzare un sistema informativo per la gestione delle piante. Le piante disponibili nel vivaio, caratterizzate da un codice e da una descrizione, appartengono a una specie che a sua volta fa parte di una determinata categoria (es. specie “mela renetta”, categoria “alberi da frutta”). All’interno del vivaio sono presenti diverse serre identificate da un codice, ciascuna delle quali è divisa in settori, caratterizzati da un numero univoco all’interno della serra. Ciascuna serra ospita una sola categoria di piante; al suo interno, in ogni settore può ospitare una sola specie. Si vuole gestire inoltre il personale che lavora nel vivaio, memorizzando per ciascun dipendente codice fiscale, cognome, nome, indirizzo e numero di telefono. Ogni settore è affidato a un dipendente che deve innaffiare le piante presenti nei settori di sua competenza nel rispetto di un calendario settimanale prefissato (giorni della settimana e rispettivi orari per ciascun settore). In alcuni periodi dell’anno il vivaio propone delle vendite promozionali, delle quali si memorizzano un codice identificativo, un nome, la data di inizio e quella di fine. In ciascuna promozione vengono offerti degli sconti su alcune specie di piante. La percentuale di sconto all’interno di una determinata promozione dipende dalla specie di pianta e dalla quantità acquistata. Svolgimento Compito Basi di Dati. Tempo concesso : 90 minuti 21 Gennaio 05 Matricola: ____________ Compito Basi di Dati. Tempo concesso : 90 minuti 21 Gennaio 05 Matricola: ____________ Esercizio 2 Dato il seguente schema relazionale: PRODOTTO (codProdotto, nomeProdotto, descrizione) TIPOPROMOZIONE (codTipo, descrizione) PROMOZIONE (codPromozione, codTipo: TIPOPROMOZIONE, dataInizio, dataFine) PRODOTTOINPROMOZIONE(codProdotto: PRODOTTO, codPromozione: PROMOZIONE, percentualeSconto) 1. Scrivere l’espressione di algebra relazionale e la query SQL che visualizzano l’elenco dei prodotti che non sono mai stati messi in promozione (codProdotto, nomeProdotto); 2. Scrivere la query SQL che visualizza, per ciascuna promozione, il numero di prodotti che vi rientrano (codPromozione, dataInizio, dataFine, numeroProdotti); 3. Scrivere la query SQL che seleziona, per ciascun prodotto, la massima percentuale di sconto applicata nel corso delle diverse promozioni iniziate nell’anno 2004 (codProdotto, nomeProdotto, percentualeSconto). Svolgimento Compito Basi di Dati. Tempo concesso : 90 minuti 21 Gennaio 05 Matricola: ____________ Compito Basi di Dati. Tempo concesso : 90 minuti 21 Gennaio 05 Matricola: ____________ Esercizio 3 È data la seguente query: SELECT tipoPromoziome, AVG(percentualeSconto) FROM PROMOZIONE WHERE dataInizio >= ‘1/1/2002’ AND codSupermercato = 123 GROUP BY tipoPromozione sulla relazione: PROMOZIONE (codPromozione, tipoPromozione, codSupermercato, dataInizio, dataFine, percentualeSconto) sulla quale è costruito un indice clustered su codSupermercato con NLcodSupermercato = 30. Si determini il miglior piano di accesso per la risoluzione della query tenendo conto dei seguenti dati: NP = 350, NT = 5000 NKcodSupermercato = 20, NKtipoPromozione = 5 dataInizio ∈ [1/1/2000,31/12/2003] len(tipoPromozione) = 50 byte, len(percentualeSconto) = 4 byte, D = 1 KB Si ipotizzi di utilizzare l’algoritmo Sort-Merge a Z=3 vie per l’eventuale ordinamento del risultato. Svolgimento Compito Basi di Dati. Tempo concesso : 90 minuti 21 Gennaio 05 Matricola: ____________ Matricola: ____________ Compito Basi di Dati. Tempo concesso : 90 minuti 21 Gennaio 05 Esercizio 4 • E’ data la seguente relazione: A(k, a, b, c) sapendo che: NR = 2000 len(k) = 4 byte, len(a) = 8 byte, len(b) = 50 byte, len(c) = 4 byte D = 1 KB u = ln 2 (foglie e file dati) calcolare il numero di pagine occupate dalla relazione e il numero di foglie di un indice di tipo B+-tree sull’attributo b (assumendo len(p) = 4 byte e NKb = 20). • Data la seguente relazione: ORDINE (codPromozione, finePromozione) codProdotto, nomeProdotto, percentualeSconto, inizioPromozione, sapendo che l’attributo percentualeSconto è riferito allo sconto effettuato su un determinato prodotto all’interno di una specifica promozione, evidenziare tutte le dipendenze funzionali non banali presenti e dire in che forma normale si trova lo schema proposto. Svolgimento Compito Basi di Dati. Tempo concesso : 90 minuti 21 Gennaio 05 Matricola: ____________