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



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

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

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

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:

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

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

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

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 Prof. L. Tanca e F. A. Schreiber APPELLO 20 SETTEMBRE 2012

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

1. Schema concettuale della base di dati Lo schema concettuale (o statico) è uno dei due schemi del progetto concettuale di un sistema informativo.

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

SQL. DDL e vincoli. Basi di Dati 1 Esercitazione 4. Matteo Picozzi {picozzi@elet.polimi.it}

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

Basi di dati I. Esercitazione proposta

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

Linguaggio SQL. Structured Query Language

Domini elementari, 2. Basi di dati. Domini elementari, 4. Domini elementari, 3. Domini definiti dagli utenti. Domini elementari, 5

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

Volumi di riferimento

ESAME di INFORMATICA e ARCHIVIAZIONE

M733 ESAME DI STATO DI ISTITUTO TECNICO COMMERCIALE CORSO DI ORDINAMENTO

Basi di Dati Corso di Laura in Informatica Umanistica

Definizione di domini

Si formulino le seguenti interrogazioni tramite il linguaggio SQL:

Esercizi di progettazione. Basi di dati

Basi di Dati: Corso di laboratorio

Basi di dati. Esercitazione ER. Paolo Papotti. Esercizio giugno 2005

RISOLUZIONE APPELLI DI SISTEMI INFORMATIVI

Giovanna Rosone 04/03/ /03/2010 SQL, Istruzioni per la modifica dello schema

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

Esercitazione 28 Gennaio 2013

Gestione delle tabelle

Vincoli di Integrità Approccio dichiarativo alla loro implementazione

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

Corso di Informatica (Basi di Dati)

Il linguaggio SQL: DDL di base

I Sistemi Informativi

Prova Scritta di Basi di Dati

Elena Baralis 2013 Politecnico di Torino 1

MAX, SUM, AVG, COUNT)

SQL: concetti base SQL. Definizione dei dati in SQL. SQL: "storia"

Vincoli di Integrità

SQL e ACCESS. Modello relazionale PROBLEMA ENTITA STUDENTE

Progetto Logos - Documentazione -

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

Esame di stato 2004 Portfolio studente

SQL SQL. Definizione dei dati. Domini. Esistono 6 domini elementari:

Basi di Dati Prof. L. Tanca e F. A. Schreiber APPELLO 20 SETTEMBRE 2012 Tempo a disposizione: 2 ore 30 minuti

IL DAT A B A S E DI ALGE B R A N D O

Informatica (Basi di Dati)

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

Esercitazione di Basi di Dati

Esercitazione 1. Sistemi Informativi T. Versione elettronica: L01.2.DDLDMLbase.pdf

Linguaggio SQL: fondamenti D B M G. Gestione delle tabelle

Corso sul linguaggio SQL

Università degli Studi di L Aquila. Facoltà di Ingegneria. Corso di Laurea in Ingegneria Elettronica Corso di Sistemi Informativi

Schema della base di dati del Catalogo dei Dati della Pubblica Amministrazione Renzo Orsini

MODELLO RELAZIONALE. cesarini-bdsi mod relazionale 1 MODELLO RELAZIONALE

MODELLO E/R. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni

Prova Scritta di Basi di Dati

Corso di Laboratorio di Basi di Dati

SQL PER LA DEFINIZIONE DI BASI DI DATI

SQL: definizione schema

ESAME di INFORMATICA e ARCHIVIAZIONE

MODELLO E/R. Modellazione dei dati

SQL Sintassi Dei Comandi

UNIVERSITA DEGLI STUDI DI BRESCIA Facoltà di Ingegneria

Esercizio 1. Cognome e nome:... Matricola:...

BASI DI DATI - : I modelli di database

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

Informatica per le discipline umanistiche 2 lezione 10

Introduzione al corso

INFORMATICA PER L IMPRESA (Docente Prof. Alfredo Garro)

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

Esercitazione ER e Algebra Relazionale

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

Basi di dati. Esercizi sul modello E.R.

BASE DI DATI: sicurezza. Informatica febbraio ASA

Tipi MULTISET: accesso

Gestione dei teatri in vari comuni italiani

Vincoli di integrità

Progettazione di un Database

Esercizi di progettazione concettuale di una base di dati

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

MODELLO RELAZIONALE. Introduzione

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

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

Secondo Compitino di Basi di Dati

Informatica. Il modello relazionale: Relazioni e tabelle. Relazioni con attributi

Basi di Dati e Sistemi Informativi. Structured Query Language

(a) Trovare le informazioni dei viaggi di durata inferiore ai 15 giorni select * from Viaggio where Durata <15

Organizzazione degli archivi

Modulo 2 Data Base 2

Nella relazione CINEMA, Nome è chiave secondaria. Nella relazione FILM, CodRegista, e CodProtagonista sono chiavi esterne sulla tabella PERSONE.

Laboratorio di Basi di Dati e Web

SQL. Alcune note sulla definizione dei dati

Basi di Dati prof. Letizia Tanca

MEZZI CodM Tipo Targa AnnoI Assicurato

Basi di dati: appello 07/02/06

Transcript:

Esercitazione 8 Mercoledì 21 gennaio 2015 (2 ore DDL e progettazione Testi degli esercizi Esercizio 1 (Tema d esame del 20 settembre 2012 Si consideri il seguente schema di base di dati che vuole tenere traccia delle attività di una piscina nell anno 2012/2013. VASCA (CodVasca, Profondità CORSO (CodCorso, Descrizione, Tipo, DataInizio, DataFine CALENDARIO (Corso, Vasca, Giorno, OraInizio, Insegnante, Durata PERSONA (CF, Nome, Cognome, Indirizzo, Città, Tel FREQUENZA (Corso, Vasca, Giorno, OraInizio, Cliente, DataDiIscrizione Il campo Tipo nella tabella CORSO specifica se il corso è Monosettimanale o Bisettimanale. La tabella PERSONA contiene i dati di clienti e insegnanti. a Considerando lo schema di base di dati in testa al tema d esame, specificare in SQL la creazione delle tabelle CORSO e FREQUENZA, definendo i vincoli di tupla e di dominio ritenuti opportuni ed esprimendo eventuali vincoli di integrità referenziale relativi a tutte le tabelle dello schema. b Specificare in SQL il vincolo che controlla che la data di iscrizione non sia posteriore alla data di fine del corso. c [NON RICHIESTO DAL TEMA D ESAME] Specificare in SQL il vincolo che controlla che in uno stesso giorno non ci siano più di 50 persone che frequentano lezioni. Esercizio 2 STUDENTE (Matricola, Fiscale, DataNascita, NumeroEsamiSostenuti Definire in SQL la tabella Studente sapendo che: - La matricola è un codice costituito da 6 caratteri. - Il codice fiscale, anche se non è chiave primaria, non ammette duplicati. - La data di nascita non deve mai assumere un valore nullo, e non deve essere precedente al 1900. - L attributo NumeroEsamiSostenuti di default assume valore 0, e non può essere negativo.

Esercizio 3 (Tema d esame del 3 luglio 2012 Si richiede di progettare la base di dati di un azienda che fabbrica e vende divani su commessa. L azienda mantiene un catalogo dei modelli base che i clienti possono considerare come riferimento per la definizione del proprio ordine. Di ogni modello interessa il codice identificativo, il nome e la descrizione. Ogni modello può essere realizzato in diversi tessuti e in diversi colori. Di ogni tessuto si registra il codice del tessuto, il nome e l'insieme di colori disponibili. Di ogni divano ordinato interessa il numero progressivo (unico per ogni modello, il modello di riferimento, il numero di posti, il tessuto e il colore scelto, il numero di giorni previsti per la sua realizzazione e il prezzo. Di ogni divano interessa inoltre sapere i dettagli dell ordine: il cliente che ha effettuato l ordine e la data e ora. Ciascun cliente può effettuare al più un ordine in una certa ora di una certa data. Di ogni cliente interessa il codice fiscale, la data di nascita, numero di telefono e l indirizzo di residenza composto da via e città di residenza. Gli ordini si suddividono in processati e non processati. Di ogni ordine non processato interessa la data prevista per la consegna. Di ogni ordine processato interessa la consegna (una ed una sola attraverso cui è stato processato. Di ogni consegna, che può essere relativa a più di un ordine, interessa la data, l ora, la durata, e il corriere usato. Di ogni corriere interessa il codice, il nome, il numero di telefono e la città in cui opera. Esercizio per casa n. 1 (Tema d esame del 11 settembre 2014 VOLO (, Compagnia, AeropPartenza, AeropArrivo, OraPart, OraArrivo, TipoAereo PRENOTAZIONE (IdPasseggero, CodVolo, DataVolo, Nome, Cognome, Email, DataNascita CHECKIN (IdPasseggero, CodVolo, DataVolo, Posto, OraEffettivaCheckIn, Priorità C1 Considerando lo schema di base di dati in testa al tema d esame, specificare in SQL la creazione delle tabelle VOLO, PRENOTAZIONE e CHECKIN, definendo i vincoli di tupla e di dominio ritenuti opportuni ed esprimendo eventuali vincoli di integrità referenziale relativi a tutte le tabelle dello schema. C2 Considerando lo schema di base di dati in testa al tema d esame, specificare in SQL il vincolo che la prenotazione è sempre obbligatoria. Esercizio per casa n. 2 (Tema d esame del 5 settembre 2012 Si richiede di progettare la base di dati per una catena di supermercati. Ogni supermercato è identificato da un codice ed è caratterizzato da indirizzo, città, numero di telefono e nome del responsabile. I supermercati della catena rilasciano delle carte fedeltà. Ogni carta fedeltà è caratterizzata da un codice univoco, dal cliente titolare della carta e dai punti accumulati. Per ogni cliente titolare di una carta fedeltà si tiene traccia delle seguenti informazioni: codice fiscale, nome, cognome, indirizzo e recapito telefonico (facoltativo. I prodotti commercializzati dalla catena di supermercati sono caratterizzati da un codice univoco, dal nome del prodotto, dal nome del produttore e dal prezzo consigliato. Si vuole tenere traccia degli scontrini emessi dai vari supermercati della catena. Ogni scontrino è caratterizzato da data di emissione, cassa da cui è stato emesso, numero progressivo giornaliero (il numero progressivo giornaliero è univoco all'interno della cassa, elenco dei prodotti acquistati con relative quantità e prezzi. Per ogni scontrino si deve tenere traccia anche dell'eventuale tessera fedeltà usata durante l'acquisto. Ogni cassa del supermercato è identificata da un codice univoco ed è caratterizzata dal supermercato presso cui è collocata, dalla data in cui è stata installata e dal modello.

Soluzioni Esercizio 1 a Considerando lo schema di base di dati in testa al tema d esame, specificare in SQL la creazione delle tabelle CORSO e FREQUENZA, definendo i vincoli di tupla e di dominio ritenuti opportuni ed esprimendo eventuali vincoli di integrità referenziale relativi a tutte le tabelle dello schema. CREATE TABLE Corso ( CodCorso VARCHAR(255 PRIMARY KEY, Descrizione VARCHAR(255, Tipo ENUM( Monosettimanale, Bisettimanale, DataInizio DATE, DataFine DATE CREATE TABLE Frequenza ( Corso VARCHAR(255, Vasca VARCHAR(255, Giorno DATE, OraInizio TIME, Cliente CHAR(16 REFERENCES Persona(CF ON UPDATE CASCADE ON DELETE CASCADE, DataDiIscrizione DATE, PRIMARY KEY (Corso, Vasca, Giorno, OraInizio, Cliente, FOREIGN KEY (Corso, Vasca, Giorno, OraInizio REFERENCES Calendario(Corso, Vasca, Giorno, OraInizio ON UPDATE CASCADE ON DELETE NO ACTION b Specificare in SQL il vincolo che controlla che la data di iscrizione non sia posteriore alla data di fine del corso. CREATE ASSERTION VerificaDate CHECK ( NOT EXISTS ( SELECT * FROM Frequenza AS f, Corso AS c WHERE f.corso=c.codcorso AND f.datadiiscrizione>c.datafine

c [NON RICHIESTO DAL TEMA D ESAME] Specificare in SQL il vincolo che controlla che in uno stesso giorno non ci siano più di 50 persone che frequentano lezioni. CREATE ASSERTION VerificaNumeroPresenti CHECK ( 50>= ALL ( SELECT COUNT(* FROM Frequenza GROUP BY Giorno Esercizio 2 STUDENTE (Matricola, Fiscale, DataNascita, NumeroEsamiSostenuti Definire in SQL la tabella Studente sapendo che: - La matricola è un codice costituito da 6 caratteri. - Il codice fiscale, anche se non è chiave primaria, non ammette duplicati. - La data di nascita non deve mai assumere un valore nullo, e non deve essere precedente al 1900. - L attributo NumeroEsamiSostenuti di default assume valore 0, e non può essere negativo. CREATE TABLE Studente ( Matricola CHAR(6 PRIMARY KEY, Fiscale CHAR(16 UNIQUE, DataNascita DATE NOT NULL CHECK (DataNascita>= 1900-01-01, NumeroEsamiSostenuti INTEGER DEFAULT 0 CHECK (NumeroEsamiSostenuti>=0

Esercizio 3 Schema concettuale Nome Descrizione Nome Modello (1,N Tessuto Modello Tessuto (1,N (1,N Nome Colore Disponibile ColoreModello Colore HaModello ColoreScelto TessutoScelto Numero Progressivo Prezzo Giorni NumeroPosti Realizzazione (1,1 Divano (1,1 (1,1 (1,1 DivanoOrdine (1,N Ordine Data Ora (1,1 Cliente (1,N Ordinante Fiscale DataDi Nascita Telefono Cliente Via Città (t,e Data Ora Durata Nome Telefono Città OrdineNon Processato Ordine Processato (1,1 Ordine (1,N Consegnato Consegna (1,1 (1,N Operatore Corriere DataPrevista Consegna Schema logico Modello(, Nome, Descrizione Tessuto(, Nome TessutoModello(Modello, Tessuto Colore(Nome ColoreModello(Modello, Colore Divano(Modello, NumeroProgressivo, Prezzo, NumeroPosti, GiorniRealizzazione, Colore, Tessuto, DataOrdine, OraOrdine, Cliente Ordine(Data, Ora, Cliente, Tipo, DataPrevistaConsegna*, Consegna* Cliente(Fiscale, DataDiNascita, Telefono, Via, Città Consegna(, Data, Ora, Durata, Corriere Corriere(, Nome, Telefono, Città

Chiavi esterne TessutoModello.Modello Modello. TessutoModello.Tessuto Tessuto. ColoreModello.Modello Colore.Nome ColoreModello.Colore Colore.Nome Divano.Modello Modello. Divano.(DataOrdine, OraOrdine, Cliente Ordine.(Data, Ora, Cliente Ordine.Cliente Cliente.Fiscale Ordine.Consegna Consegna. Consegna.Corriere Corriere. Esercizio per casa n. 1 C1 Considerando lo schema di base di dati in testa al tema d esame, specificare in SQL la creazione delle tabelle VOLO, PRENOTAZIONE e CHECKIN, definendo i vincoli di tupla e di dominio ritenuti opportuni ed esprimendo eventuali vincoli di integrità referenziale relativi a tutte le tabelle d ello schema. CREATE TABLE Volo ( VARCHAR(255 PRIMARY KEY, Compagnia VARCHAR(255, AeropPartenza VARCHAR(255, AeropArrivo VARCHAR(255 OraPart TIME, OraArrivo TIME, TipoAereo VARCHAR(255 CREATE TABLE Prenotazione ( IdPasseggero VARCHAR(255, CodVolo VARCHAR(255 REFERENCES Volo( ON UPDATE CASCADE ON DELETE NO ACTION, DataVolo DATE, Nome VARCHAR(255, Cognome VARCHAR(255, Email VARCHAR(255, PRIMARY KEY (IdPasseggeri, CodVolo, DataVolo

CREATE TABLE CheckIn ( IdPasseggero VARCHAR(255, CodVolo VARCHAR(255, DataVolo DATE, Posto INTEGER, OraEffettivaCheckIn TIME, Priorità BOOLEAN, PRIMARY KEY (IdPasseggero, CodVolo, DataVolo, FOREIGN KEY (IdPasseggero, CodVolo, DataVolo REFERENCES Prenotazione(IdPasseggero, CodVolo, DataVolo ON UPDATE CASCADE ON DELETE CASCADE C2 Considerando lo schema di base di dati in testa al tema d esame, specificare in SQL il vincolo che la prenotazione è sempre obbligatoria. CREATE ASSERTION PrenotazioneObbligatoria CHECK ( NOT EXISTS ( SELECT * FROM CheckIn WHERE (IdPasseggero, CodVolo, DataVolo NOT IN (SELECT IdPasseggero, CodVolo, DataVolo FROM Prenotazione

Esercizio per casa n. 2 Schema concettuale Indirizzo Città Telefono Supermercato Responsabile (1,1 Rilascio Punti CartaFedeltà (1,1 (1,1 Titolare Fiscale Nome Cognome Cliente Indirizzo (0,1 Telefono (1,N HaPromozione HaCassa Fornitura Supermercato DataInizio DataFine (1,1 Promozione (t,e (1,1 Percentuale Sconto Modello DataInstallazione (1,1 Cassa (1,N (1,1 Fornitura (1,1 DataConsegna PrezzoTotale Prendi3Paghi2 Sconto SulPrezzo Emissione Utilizzo Tessera Fornisce Numero Data (1,1 Scontrino (1,N (0,1 (1,N Fornitore PartitaIVA RagioneSociale Indirizzo (1,N Telefono ProdottoIn Promozione Quantità Prezzo Acquisto Nome Produttore PrezzoConsigliato Prodotto Prodotto Fornito Quantità Schema logico Supermercato(, Indirizzo, Città, Telefono, Responsabile CartaFedeltà(, Punti, SupermercatoRilascio, Fiscale, Nome, Cognome, Indirizzo, Telefono Prodotto(, Nome, Produttore, PrezzoConsigliato Promozione(Supermercato,, Indirizzo, Città, Telefono, Tipo, PercentualeSconto* Cassa(, Modello, DataInstallazione, Supermercato Scontrino(Cassa, Numero, Data, Tessera* Acquisto(CassaScontrino, NumeroScontrino, DataScontrino, Prodotto, Quantità, Prezzo Fornitore(PartitaIVA, RagioneSociale, Indirizzo TelefonoFornitore(PartitaIVA, Telefono Fornitura(, Supermercato, DataConsegna, PrezzoTotale, Fornitore Chiavi esterne CartaFedeltà.SupermercatoRilascio Supermercato. Promozione.Supermercato Supermercato. Cassa.Supermercato Supermercato. Scontrino.Cassa Cassa. Scontrino.Tessera CartaFedeltà. Acquisto.(CassaScontrino, NumeroScontrino, DataScontrino Scontrino.(Cassa, Numero, Data

Acquisto.Prodotto Prodotto. TelefonoFornitore.PartitaIVA Fornitore.PartitaIVA Fornitura.Supermercato Supermercato. Fornitura.Fornitore Fornitore.PartitaIVA