Prova Scritta di Basi di Dati



Documenti analoghi
Secondo Compitino di Basi di Dati

Basi di dati II prova intermedia 16 Marzo 2006 Compito 1

Basi di Dati Prof. L. Tanca e F. A. Schreiber APPELLO DEL 12 FEBBRAIO 2015 PARTE 1

Basi di dati 9 febbraio 2010 Compito A

Prova scritta. Mercoledì 11 Febbraio Appello di Informatica II - Corso di Laurea in Ottica e Optometria A.A. 2007/2008

Prova scritta. Giovedì 02 Ottobre Appello di Informatica II - Corso di Laurea in Ottica e Optometria A.A. 2007/2008

Introduzione ai database relazionali

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

Basi di dati 30 settembre 2010 Compito A

Esame Basi di Dati. 21 Gennaio 2013

Basi di dati. Il Linguaggio SQL. K. Donno - Il Linguaggio SQL

Prova scritta. Mercoledì 23 Luglio Appello di Informatica II - Corso di Laurea in Ottica e Optometria A.A. 2007/2008

UNIVERSITÀ DEGLI STUDI DI UDINE Facoltà di Medicina e Chirurgia CORSO DI LAUREA IN TECNICHE DI RADIOLOGIA MEDICA PER IMMAGINI E RADIOTERAPIA ESAME

Basi di Dati Corso di Laura in Informatica Umanistica

Si formulino le seguenti interrogazioni tramite il linguaggio SQL:

Capitolo 13. Interrogare una base di dati

Lezione V. Aula Multimediale - sabato 29/03/2008

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

Sistemi per la gestione di database: MySQL ( )

COGNOME MATRICOLA. Con vincoli di integrita referenziale: INTERVENTO.CodTecnico à TECNICO.Codice INTERVENTO.MatCaldaia à CALDAIA.

ESAME di INFORMATICA e ARCHIVIAZIONE

Data management a.a Il linguaggio SQL

Compito Sistemi Informativi LA. Tempo concesso : 90 minuti 25 Marzo 03 Nome: Cognome: Matricola: Esercizio 1

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

Esercitazione di Basi di Dati

ESAME di INFORMATICA e ARCHIVIAZIONE

MEZZI CodM Tipo Targa AnnoI Assicurato

Compito DA e BD. Tempo concesso: 90 minuti 12 giugno 03 Nome: Cognome: Matricola: Esercizio 1

Capitolo 8. Esercizio 8.1

ESERCIZIO 1 (15 punti) Dato il seguente schema relazionale, che modella le informazioni relative ad un sistema di prenotazioni di biglietti aerei:

Corso di Basi di Dati

M733 ESAME DI STATO DI ISTITUTO TECNICO COMMERCIALE CORSO DI ORDINAMENTO

Esercitazione 8 Mercoledì 21 gennaio 2015 (2 ore) DDL e progettazione

INFORMATICA PER L IMPRESA (Docente Prof. Alfredo Garro) ESERCIZIO 3

Esercizio data base "Biblioteca"

1.Tutte 2.Spesso P.IVAe le CF volte che si visualizza i dati un fornitore si mostranoanche. La mensa. La mensa

Esame di Basi di Dati, SOLUZIONE APPELLO 12/01/2010

PROGRAMMAZIONE MODULARE. Periodo mensile. Ore previste

Una metodologia di progettazione di applicazioni web centrate sui dati

Basi di dati Appello del Compito A

Basi Di Dati, 09/12/2003

DBMS (Data Base Management System)

Corso di Sistemi di Elaborazione delle Informazioni I Anno 2005/2006. Esercizi entità relazione risolti. a cura di Angela Campagnaro

Volumi di riferimento

Composizione. Tipo. Pubblicità. Numero ripetizioni. (1,N) (1,1) Composizione. Tipo. Messaggio promozionale. Codice. Azienda. Prodotto.

SQL - Funzioni di gruppo

Operazioni sui database

Basi di Dati. Progettazione del Modello ER. K. Donno - Progettazione del Modello ER

I database relazionali sono il tipo di database attualmente piu diffuso. I motivi di questo successo sono fondamentalmente due:

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

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

Per visualizzare e immettere i dati in una tabella è possibile utilizzare le maschere;

Il seguente esempio ha lo scopo di illustrare i 3 tipi di relazione 1:1,1:N,N:N. Tabella Conto: Tabella Conto:

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

Introduzione alla teoria dei database relazionali. Come progettare un database

Appello di BD del Corso di laurea in Informatica del 9/1/2007 Compito e soluzioni

Le Basi di Dati. Le Basi di Dati

BASE DI DATI: sicurezza. Informatica febbraio ASA

Basi di dati. Il Modello Relazionale dei Dati. K. Donno - Il Modello Relazionale dei Dati

Compito Basi di Dati. Tempo concesso: 90 minuti 18 Gennaio 2007 Nome: Cognome: Matricola:

a) Si progetti uno schema concettuale Entità-Relazioni per lo scenario più sotto descritto.

Sviluppata da: Lo Russo - Porcelli Pag. 1 di 6 6FRSR utilizzare il DBMS Postgresql per imparare il linguaggio SQL.

Esercizio sui data base "Gestione conti correnti"

Compito Basi di Dati. Tempo concesso: 90 minuti 08 Giugno 2006 Nome: Cognome: Matricola:

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

Corso Sistemi Informativi Avanzati. Programma 30 set Installazione Macchina Virtuale. Introduzione alla BI nelle Aziende.

DIPARTIMENTO IMPIEGATO PROGETTO SEDE. (0,1) (1,1) DIREZIONE Cognome. Codice. Telefono (0,1) (1,N) AFFERENZA. Stipendio (0,N) Nome (1,1) Età

DATABASE RELAZIONALI

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

Gli attributi di STUDENTE saranno: Matricola (chiave primaria), Cognome, Nome.

Istruzioni DML di SQL

Definizione di domini

Esercitazione 28 Gennaio 2013

Progettaz. e sviluppo Data Base

Per visualizzare e immettere i dati in una tabella è possibile utilizzare le maschere;

Esame di Stato Istituto Tecnico Industriale Soluzione della Seconda Prova Indirizzo: INFORMATICA Tema: INFORMATICA Anno Scolastico:

Alessandra Raffaetà. Basi di Dati

Progettazione concettuale

DDL, VINCOLI D INTEGRITÁ, AGGIORNAMENTI E VISTE. SQL è più di un semplice linguaggio di interrogazione

Progettare una base di dati che permetta di gestire il problema descritto nel seguito, nei seguenti punti:

Il linguaggio SQL: query innestate

Il Modello Relazionale

UNIVERSITA DEGLI STUDI DI BRESCIA Facoltà di Ingegneria

Informatica (Basi di Dati)

CAPITOLO 7 ESERCIZI SUL MODELLO ER

Identificatori delle entità

Introduzione al corso

Linguaggio SQL. Structured Query Language

Basi di dati. Esercizi sul modello E.R.

Progettazione di una base di dati Ufficio della Motorizzazione

Dati relazionali e XML

Manuale di istruzioni sulle maschere per il calcolo del punteggio e del voto (unico) degli studenti che sostengono la Prova nazionale 2011

Dispensa di database Access

Esercitazione su SQL

COGNOME MATRICOLA. UTENTE(ID, Nome, Cognome, Eta) ALBERGO(Nome, Citta, NumStelle) PRENOTAZIONE(Codice, NomeAlbergo, IDUtente, DataArrivo, NumNotti)

Abilità Informatiche A.A. 2010/2011 Lezione 9: Query Maschere Report. Facoltà di Lingue e Letterature Straniere

MODELLO RELAZIONALE. Introduzione

Impresa di raccolta e riciclaggio di materiali metallici e di rifiuti.

ARCHIVI E DATABASE (prof. Ivaldi Giuliano)

Esercitazione 01: DDL e DML di base

Transcript:

Prova Scritta di Basi di Dati 25 Luglio 2006 COGNOME: NOME: MATRICOLA: Si prega di risolvere gli esercizi direttamente sui fogli del testo, negli spazi indicati. Usare il foglio protocollo solo per la brutta copia. Esercizio Punti previsti 1 13 2 10 3 10 Totale 33 Punti assegnati

Esercizio 1 Vogliamo realizzare una base di dati che mantenga informazioni su componenti di arredamento, da utilizzare per effettuare proposte di arredo ai clienti di uno studio di architettura. Ogni componente di arredo (ad esempio tavolo, sedie, ecc.), è caratterizzato da un codice identificativo, un nome, una breve descrizione, dalla data in cui è iniziata la sua produzione e dalle sue dimensioni. Per ogni componente, vogliamo mantenere informazioni sui colori in cui \`e disponibile e sui materiali (ad esempio legno, laminato plastico, ecc.). Ogni componente può essere disponibile in piu colori e in piu materiali. Per ogni componente, vogliamo inoltre mantenere informazioni sulla azienda produttrice. In particolare, per ogni azienda, vogliamo mantenere, il nome, l'indirizzo, il numero di telefono e di fax, ed il nome e cognome della persona di riferimento. Ogni componente pu\`o essere prodotto da piu aziende, mentre la stessa azienda pu\`o produrre piu componenti utilizzati dallo studio di architettura. Nella base di dati, vogliamo inoltre mantenere informazioni sui progetti che lo studio realizza. Per ogni progetto vogliamo mantenere le informazioni sul cliente per cui il progetto e stato sviluppato (nome, cognome, codice fiscale, indirizzo), sulla data in cui il progetto e stato realizzato e sull'architetto che lo ha realizzato (nome, cognome, recapito). Per semplicita assumiamo che ogni progetto sia realizzato da un solo architetto, mentre lo stesso cliente puo avere piu progetti ad esso associati. Ogni progetto si compone del progetto di una serie di ambienti. Per ogni ambiente vogliamo mantenere il nome (cucina, soggiorno, ecc.), le dimensioni (lunghezza, larghezza e altezza) ed il colore del pavimento e delle pareti. Vogliamo inoltre mantenere informazioni sui componenti di arredo che il progetto prevede di collocare in ogni ambiente, con l'indicazione del colore, del materiale scelto e della ditta fornitrice. Si richiede di: a) Definire uno schema ER per la situazione sopra descritta. Precisare la cardinalità delle associazioni e degli attributi (se diversa da quella di default), i vincoli di identificazioni (chiavi), facendo opportune assunzioni, e la tipologia delle generalizzazioni.

b) Precisare eventuali vincoli di integrità non rappresentabili nello schema ER proposto. 1. Il colore e il materiale con cui una componente viene utilizzato in un progetto devo appartenere all insieme dei colori e dei materiali con cui la componente e disponibile. 2. L azienda che produce una componente per un progetto deve appartenere all insieme delle aziende che producono quella componente 3. La data di inizio distribuzione di una componente deve precedere la data dei progetti che contengono quella componente. c) Generare lo schema ristrutturato corrispondente allo schema ER definito al punto a), indicando eventuali nuovi vincoli di integrita.

d) Realizzare uno schema relazionale corrispondente allo schema ristrutturato definito al punto c), indicando le chiavi, le chiavi esterne (usare una freccia dagli attributi riferenti a quelli riferiti), gli attributi che possono essere nulli e le eventuali chiavi secondarie. COMPONENTE(CodC,Nome,Descr,Dim,Data) AZIENDA(Nome,Ind,Tel,Fax,NomeR,CognR) PROGETTI(Data,NomeA,CognomeA,CF) con CF chiave esterna su CLIENTE, e (NomeA,CognomeA) chiave esterna su ARCHITETTO ARCHITETTO(Nome,Cognome,Ind) CLIENTE(CF,Nome,Cogn,Ind ) COLORI(NomeC) MATERIALI(NomeM) FATTO_DI(CodC,NomeM) con CodC chiave esterna su COMPONENTE e NomeM chiave esterna su MATERIALI DI_COLORE(CodC,NomeC) CodC chiave esterna su COMPONENTE e NomeM chiave esterna su MATERIALI PRODOTTO_DA(CodC,NomeAzienda,Indirizzo), con (NomeAzienda,Indirizzo) chiave esterna su AZIENDA e CodC chiave esterna su COMPONENTE UTILIZZA(DataP,NomeA,CognomeA,CodC,NomeAzienda,Indirizzo,Colore,Materiale) con (NomeAzienda,Indirizzo) chiave esterna su AZIENDA, CodC chiave esterna su COMPONENTE e (DataP,NomeA,CognomeA) chiave esterna su PROGETTI e) Discutere eventuali ottimizzazioni allo schema A tutte le relazioni con identificatore composto puo essere aggiunto un campo codice, per ridurre il numero di attributi di cui e composta la chiave. Inoltre le relazioni COLORI e MATERIALI possono essere eliminate in quanto, in base ai vincoli dello schema, i valori dei campo NomeC e NomeM compariranno certamente nelle relazioni FATTO_DI e DI_COLORE

Esercizio 2 Si consideri il seguente schema relazional, relativo alle mostre esibite in un museo: OPERA(CodO,Nome,Autore,Tipo) MOSTRA(CodM, Nome,CodO,Stanza,Piano) AUTORE(Codice,Nome,Cognome,DataNascita) Nello schema precedente, attributi con lo stesso nome rappresentano chiavi e chiavi esterne. Il campo Autore in OPERA e inoltre chiave esterna su AUTORE. Si richiede di formulare le seguenti interrogazioni, in algebra relazionale: a) Determinare il nome delle mostre che contengono almeno una scultura di un autore nato prima del 1900 e che risiedono al piano terra Qui e nelle interrogazioni seguenti indichiamo con: OPERA_R = ρ Nome NomeO (OPERA ) AUTORE_R = ρ Nome NomeA (AUTORE ) Inoltre NJ indica il join naturale e JOIN il join (per semplicita di scrittura) π Nome (σ Tipo= scultura AND Piano = terra AND DataNascita < 1/1/1900 (MOSTRE NJ OPERA JOIN Autore=Codice AUTORE)) b) Determinare le mostre che contengono almeno due opere di autori distinti e che non contengono sculture. Determiniamo le mostre che non contengono sculture: R= π CodM (MOSTRA) - π CodM (σ Tipo= scultura (MOSTRE)) Determiniamo le mostre che contengono opere di almeno due autori distinti: S1 = π CodM,Autore (MOSTRA NJ OPERA_R) S= π Nome (σ Autore Autore1 (S1 NJ ρ Autore Autore1 (S1))) Risultato: R S

c) Determinare i piani che contengono almeno un opera per ogni tipo. R= π Tipo,Piano (MOSTRA NJ OPERA_R) S= π Tipo (OPERA) R : S d) Determinare l autore piu giovane le cui opere sono contenute nel museo. Determiniamo il codice degli autori per cui esiste un autore piu giovane S1 = π Codice,DataNascita (AUTORE) S= π Codice (σ DataNascita < DN (S1 NJ ρ Codice C, DataNascita DN (S1))) Determiniamo il risultato per differenza π Codice (AUTORE) S

Esercizio 3 In riferimento allo schema proposto nel contesto dell Esercizio 2, presentare i comandi SQL corrispondenti alle seguenti operazioni: a) Determinare il nome delle mostre che contengono almeno una scultura di un autore nato prima del 1900 e che risiedono al piano terra. SELECT FROM MOSTRA M, OPERA O, AUTORE A WHERE M.CodO = O.CodO AND O.Autore = A.Codice AND Tipo = scultura AND DataNascita < 1/1 1900 AND Piano = terra ; b) Determinare le mostre che contengono almeno due opere di autori distinti e che non contengono sculture. SELECT CodM FROM MOSTRA JOIN OPERA ON MOSTRA.CodO = OPERA.CodO WHERE CodM NOT IN (SELECT CodM FROM MOSTRA M, OPERA O WHERE M.CodO = O.CodO AND Tipo = scultura ) GROUP BY CodM HAVING COUNT(DISTINCT Autore) > = 2; c) Determinare l autore piu giovane le cui opere sono contenute nel museo. SELECT Codice FROM AUTORE WHERE DataNascita >= ALL (SELECT DataNascita FROM AUTORE JOIN OPERA ON Codice = Autore); d) Creare una vista che per ogni mostra che contiene almeno 10 opere, la data di nascita dell autore piu vecchio ed il numero totale di opere di pittura in essa esposte. Nella correzione, non ho contato gli errorei relativi alla selezione sul tipo dell opera. Se non ci fosse la restrizione su opere di pittura la query sarebbe (versione considerata per la correzione): CREATE VIEW Opere10 AS SELECT CodM, min(datanascita),count(codo) FROM MOSTRA M, OPERA O, AUTORE A WHERE M.CodO = O.CodO AND O.Autore = A.Codice A GROUP BY CodM HAVING COUNT(CodO) >= 10; Con la condizione su pittura, al query era effettivamente piu complessa: R= SELECT CodM, min(datanascita) as DN FROM MOSTRA M, OPERA O, AUTORE A WHERE M.CodO = O.CodO AND O.Autore = A.Codice A GROUP BY CodM HAVING COUNT(CodO) >= 10;

S = SELECT CodM, COUNT(CodO) as NO FROM MOSTRA M, OPERA O, AUTORE A WHERE M.CodO = O.CodO AND O.Autore = A.Codice A AND Tipo = pittura GROUP BY CodM; Risultato: CREATE VIEW Opere10Pittura AS SELECT CodM,DN,NO FROM R NATURAL JOIN S;