Prova scritta del corso di Basi di dati attive 17 Dicembre 1999. Agenzia



Documenti analoghi
Progettazione concettuale

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

Progetto di basi di dati Laboratorio di diagnosi mediche

Basi di Dati Relazionali

Raggruppamenti Conti Movimenti

Progettaz. e sviluppo Data Base

SISTEMI INFORMATIVI AVANZATI -2010/ Introduzione

Capitolo 8. Esercizio 8.1

I Sistemi Informativi

Progettazione logica relazionale (1/2)

DATABASE. A cura di Massimiliano Buschi

Ingegneria del Software T

Database 3 affitto veicoli. Testo del quesito

Rappresentazione grafica di entità e attributi

H1 Hrms Gestione eventi/scadenze automatiche

Le Basi di Dati. Le Basi di Dati

Il database management system Access

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

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

Basi di dati. (Sistemi Informativi) teoria e pratica con Microsoft Access. Basi di dati. Basi di dati. Basi di dati e DBMS DBMS DBMS

Basi di Dati corso C Esercitazione 18/12/2002 Autonoleggio tempo: 3 ore

Basi di dati Progettazione logica. Elena Baralis Politecnico di Torino

Progettazione di basi di dati. Progettazione di basi di dati. Ciclo di vita dei sistemi informativi. Fasi del ciclo di vita [1]

Progettazione Logica. Progettazione Logica

IDENTIFICAZIONE DEI BISOGNI DEL CLIENTE

BASI DI DATI - : I modelli di database

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

Progettazione e realizzazione di un applicativo Web Annunci Immobiliari

Informatica Industriale Modello funzionale: Informazione Progettazione concettuale

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

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

Basi di dati I Soluzione Quinto Homework del 9 gennaio 2013

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

Progetto PI , passo A.1 versione del 14 febbraio 2007

CONTROLLO DI GESTIONE DELLO STUDIO

Esercitazione 7 Progettazione concettuale. Versione elettronica: L07.progConcettuale.pdf

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

Realizzazione di una classe con un associazione

PROGETTAZIONE CONCETTUALE

I database relazionali (Access)

LA SCHEDA CONTABILE di Roberto Gabrielli

Corso di Amministrazione di Reti A.A. 2002/2003

Stefania Marrara - Esercitazioni di Tecnologie dei Sistemi Informativi. Integrazione di dati di sorgenti diverse

ING SW. Progetto di Ingegneria del Software. e-travel. Requisiti Utente. Specifiche Funzionali del Sistema

Termine Descrizione Sinonimo Collegamenti Lettore Una persona che prende in Utente

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

Fasi del progetto ( 1 )

La Progettazione Concettuale

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

GESTIONE AVANZATA DEI MATERIALI

BASI DI DATI I. Progettazione di un DBMS per un negozio di materiale elettrico. Progetto realizzato da: Iero Demetrio Matricola:

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

GESTIONE AVANZATA DEI MATERIALI

MODULO 5 ACCESS Basi di dati. Lezione 4

Basi di Dati. Conversione Modello ER in Modello Relazionale. K. Donno - Conversione Modello ER in Modello Relazionale

Database 1 biblioteca universitaria. Testo del quesito

CORSO ACCESS PARTE II. Esistono diversi tipi di aiuto forniti con Access, generalmente accessibili tramite la barra dei menu (?)

Ata_NiAg02. Modulo Gestione Agenti

Basi Di Dati, 09/12/2003

MODELLO RELAZIONALE. Introduzione

Esercizio sui data base "Gestione conti correnti"

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

GESTIONE CONTRATTI. Contratti clienti e contratti fornitori

Basi di dati II prova intermedia 16 Marzo 2006 Compito 1

La rilevazione delle imposte sul reddito (Aggiornata al 10/10/2010)

Archivi e database. Prof. Michele Batocchi A.S. 2013/2014

Introduzione ai database relazionali

CASO D USO: MICRORACCOLTA. 21 aprile

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

La Metodologia adottata nel Corso

5.3 TABELLE RECORD Inserire, eliminare record in una tabella Aggiungere record Eliminare record

A.S. 2010/2011 M070 - ESAME DI STATO DI ISTITUTO TECNICO INDUSTRIALE

Scheda operativa Versione rif c00. Libro Inventari

Informatica (Basi di Dati)

Capitolo 5. Cercare informazioni sul Web

Lezione 2. Il modello entità relazione

Esercizio data base "Biblioteca"

Esercitazione di Basi di Dati

Database. Si ringrazia Marco Bertini per le slides

SQL/OLAP. Estensioni OLAP in SQL

Finalità della soluzione Schema generale e modalità d integrazione Gestione centralizzata in TeamPortal... 6

Esame dell 8 settembre 2012

Introduzione alla teoria dei database relazionali. Come progettare un database

Strutturazione logica dei dati: i file

BASE DI DATI: sicurezza. Informatica febbraio ASA

Progettazione di un Database

GESTIONE della BASE di DATI

Working Draft 0.5 (Telefonia)

INSERIMENTO DATI BASILARI

Basi di dati 30 settembre 2010 Compito A

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

Vincoli di integrità

Funzioni di Trasferimento Movimenti

Basi di dati. Esercizi sul modello E.R.

Documento di consultazione n. 3/2014

Gestione Voti Scolastici

Modello Relazionale dei DBMS - Vincoli Tradizionalmente, esistono quattro modelli logici: Gerarchico Reticolare Relazionale A oggetti XML I modelli

Esercizi di progettazione E-RE

Capitolo 3. L applicazione Java Diagrammi ER. 3.1 La finestra iniziale, il menu e la barra pulsanti

I casi d uso corrispondono ai compiti che l attore (che può essere una persona fisica e non) può svolgere.

Transcript:

Prova scritta del corso di Basi di dati attive 17 Dicembre 1999 Si desidera automatizzare la gestione dei banchetti organizzati da un agenzia di pubbliche relazioni. Le specifiche del sistema informativo, acquisite attraverso un intervista con il direttore dell agenzia sono quelle riportate di seguito. Agenzia L agenzia di pubbliche relazioni organizza banchetti nell ambito di manifestazioni o in occasione di singoli avvenimenti (congressi, matrimoni, cresime, ecc.) per conto dei clienti, che possono essere aziende o persone fisiche. Del cliente si conoscono codice fiscale, eventuale partita iva, e dati anagrafici. Per ogni banchetto si conosce il numero di invitati, l elenco degli invitati, la data il menù, il costo, e il ristorante presso il quale è tenuto. Tra i ristoranti si distinguono quelli caratteristici, che possono offrire particolari specialità. La scelta del ristorante deve basarsi anche sul numero di posti disponibili presso il ristorante. Tra i menù si distinguono quelli contenenti, fra le varie portate, almeno una specialità offerte dai ristoranti caratteristici. La scelta del menù sarà anche basata sul costo. 1. Analizzare tali specifiche, filtrando le ambiguità presenti e poi raggruppandole in modo omogeneo. 2. Rappresentare le specifiche con uno schema E-R. Indicare la strategia seguita nella fase di modellazione concettuale. 3. Si supponga che su questi dati vengano effettuate le seguenti operazioni: Operazione 1: Organizzazione di un banchetto per un cliente (una volta al giorno) Operazione 2: Disdetta di un banchetto pianificato ma non ancora dato (una volta alla settimana) Operazione 3: Aggiornamento dei dati di un cliente (una volta al mese) Operazione 4: Aggiornamento dei dati di un ristorante (una volta al mese) Operazione 5: Stampa dei menù caratteristici e dei ristoranti presso i quali rivolgersi (dieci volte al giorno) Operazione 6: Stampa dei costi dei banchetti organizzati nell ultimo trimestre per le aziende (una volta ogni tre mesi) Operazione 7: Stampa dei banchetti ancora da dare (una volta ogni settimana) Tenendo conto che ci sono 200 clienti, 30 ristoranti, di cui il 33% sono caratteristici, in media 3 specialità per ristorante, 300 banchetti in media, con un numero di invitati medio di 13 persone, definire la tavola dei volumi e degli accessi per lo schema concettuale definito, quindi ristrutturare lo schema concettuale, e infine progettare lo schema logico di un database relazionale. Formulare, rispetto allo schema logico definito, una query SQL per l operazione 6, e l equivalente formulazione in algebra relazionale e calcolo relazionale su domini.

Analisi delle specifiche dei requisiti: Passi: PROGETTAZIONE CONCETTUALE scegliere il giusto livello di astrazione nessuna modifica linearizzare le frasi e scomporre quelle articolate: La frase: " L agenzia di pubbliche relazioni organizza banchetti nell ambito di manifestazioni o in occasione di singoli avvenimenti (congressi, matrimoni, cresime, ecc.) per conto dei clienti, che possono essere aziende o persone fisiche." risulta essere eccessivamente complessa. Inoltre nella stessa frase vengono coinvolti sia l'agenzia che i clienti della stessa. Si preferisce dunque scomporla nelle due seguenti frasi: " L agenzia di pubbliche relazioni organizza banchetti nell ambito di manifestazioni o in occasione di singoli avvenimenti (congressi, matrimoni, cresime, ecc.)." e "I clienti della agenzia possono essere aziende o persone fisiche." standardizzare le frasi nessuna modifica individuare omonimi e sinonimi nessuna modifica rendere espliciti i riferimenti tra i termini: il termini costo al rigo 5 e al rigo 10, si riferisce a due soggetti diversi perciò è bene esplicitarlo con: costo totale del banchetto (rigo 5) costo del menù (rigo 10) costruire un glossario dei termini TERMINE DESCRIZIONE COLLEGAMENTO Banchetto Banchetto organizzato Cliente, ristorante, menù dall agenzia di pubbliche relazioni Cliente Cliente dell agenzia di Banchetto pubbliche relazioni che può richiedere l organizzazione di un banchetto Ristorante Ristorante presso il quale è Banchetto, menù tenuto il banchetto Menù Menù proposto dal ristorante e/o offerto al banchetto Ristorante, banchetto riorganizzare le specifiche per concetti (è possibile replicare) - frasi di carattere generale: l agenzia di pubbliche relazioni, organizza banchetti nell ambito di manifestazioni o in occasione di singoli avvenimenti (cerimonie, matrimoni, cresime, ecc.). - frasi relative ai clienti: I clienti della agenzia possono essere aziende o persone fisiche. Del cliente si conoscono codice fiscale, eventuale partita iva e dati anagrafici - frasi relative a tipi specifici di clienti: nessuna

- frasi relative ai banchetti: per ogni banchetto si conosce il numero degli invitati, l elenco degli invitati, la data, il menù, il costo totale del banchetto e il ristorante presso il quale è tenuto - frasi relative ai ristoranti: tra i ristoranti si distinguono quelli caratteristici che possono offrire particolari specialità. La scelta del ristorante deve basarsi anche sul numero di posti disponibili presso il ristorante. - frasi relative ai menù: tra i menù si distinguono quelli contenenti, fra le varie portate, almeno una specialità offerte dai ristoranti caratteristici. La scelta del menù sarà anche basata sul costo. rappresentare le specifiche con uno schema E-R La strategia seguita nella fase di modellazione concettuale è la TOP-DOWN: partendo dalle specifiche si sono subito rappresentate tutte le informazioni in uno schema iniziale usando pochi concetti astratti. Si è sottoposto successivamente, tale schema, a raffinamenti che hanno portato allo schema E-R finale, molto più dettagliato di quello iniziale. La scelta della strategia, tra quelle disponibili, non è stata casuale, ma dettata dalle seguenti motivazioni: 1. garantisce la possibilità di espandere i concetti un passo alla volta 2. non è difficile avere una visione globale e astratta di tutte le specifiche, vista la loro non copiosa quantità e grazie alla precedente fase di analisi, in cui esse sono state più volte e attentamente lette SCHEMA E-R Iniziale: Cliente richiesta Banchetto Ristorante organizzazione Consum i Menù

..dopo successivi raffinamenti nome #invitati codice partita iva data richiesta data di nascita costo totale occasione (0,1) cf (1,N) (1,1) (1,N) cliente richiesta banchetto partecipazi one #telefono i ndirizzo data (1,1) (1,1) (1,1) organizzazione consumaz ione invitato azienda persona (0,N) (0,N) nome cognome #posti (1,N) (1,N) ----- menù ristorante proposta nome (1,N) composizi one (1,N) id costo indirizzo #telefono nome città tipo portata Ristorante caratteristico (1,N) (1,N) offerta specialità VINCOLI 1. Il #posti disponibili nel ristorante in cui il banchetto è organizzato deve essere maggiore o uguale al #invitati. 2. Il costo totale ( attributo di BANCHETTO, è considerato come il costo totale del banchetto, che comprende non solo il prezzo da pagare al ristorante, pari al prodotto di #invitati per il costo del MENU, ma anche l eventuale compenso per l agenzia che ha organizzato il banchetto perciò in seguito non verrà riconosciuto come attributo ridondante) deve essere maggiore o uguale al costo ottenuto come il risultato del prodotto su detto.

SCELTE FATTE NELLA FASE DI PROGETTAZIONE CONCETTUALE 1. La base di dati è stata completata con attributi ragionevoli per ciascuna entità. 2. Per le specializzazioni azienda e persona dell entità cliente (esse costituiscono una gerarchia di generalizzazione totale ed esclusiva) non si è ritenuto opportuno inserire degli attributi,dal momento che nelle operazioni eseguite sulla base di dati si fa riferimento al cliente, senza fare nette distinzioni né sono richieste notizie particolari sulle aziende o sulle persone. 3. Gli invitati sono rappresentati come entità debole dipendente da banchetto : ciò è dovuto al fatto che l entità invitato dipende in modo esistenziale dalla presenza di un istanza dell entità banchetto. Inoltre gli invitati ad un banchetto sarebbero difficilmente noti all agenzia tramite dati che possano costituire un identificatore: diventa quindi indispensabile aggiungere al nome e cognome della persona invitata quello del banchetto cui l invito si riferisce, allo scopo di identificare l invitato univocamente. 4. I ristoranti caratteristici e le specialità sono stati rappresentati mediante sottoinsiemi. Tavola delle operazioni PROGETTAZIONE LOGICA # OPERAZIONE TIPO FREQUENZA 1 I 1 volta al giorno 2 I 1 volta alla settimana 3 I 1 volta al mese 4 I 1 volta al mese 5 I 10 volte al giorno 6 B 1 volta ogni tre mesi 7 I 1 volta alla settimana Tavola dei volumi CONCETTO TIPO VOLUME Cliente E 200 Ristorante E 30 Ristorante caratteristico E 10 Banchetto E 300 Richiesta R 300 Partecipazione R 3900 (13*300) Organizzazione R 300 Consumazione R 300 Offre R 30 (3*10) Specialità E 30 Menù E 60 Proposta R 60 Portata E 600 Composizione R 600 Invitato E 3900 Azienda E 150 Persona E 50

Nella determinazione della tavola dei volumi sono state effettuate le seguenti supposizioni: 1. In media ogni ristorante propone 2 menù diversi 2. In media ogni menù è composto da 10 portate 3. I 200 clienti dell'agenzia sono come di seguito partizionati: 150 aziende e 50 persone. Tavola degli accessi OPERAZIONE 1 OPERAZIONE 2 OPERAZIONE 3 OPERAZIONE 4 OPERAZIONE 5 OPERAZIONE 6 OPERAZIONE 7 CONCETTO TIPO ACCESSO TIPO ACCESSO Cliente E 1 L Richiesta R 1 S Banchetto E 1 S Partecipazione R 13 S Invitato E 13 S Organizzazione R 1 S Ristorante E 1 L Consumazione R 1 S Cliente E 1 L Richiesta R 1 S Banchetto E 1 S Organizzazione R 1 S Consumazione R 1 S Partecipazione R 13 S Invitato R 13 S Cliente E 1 S Ristorante E 1 S Ristorante E 10 L caratteristico Proposta R 20 L Menù E 20 L Composizione R 200 L Portata E 200 L Azienda E 150 L Richiesta R 56 L Banchetto E 56 L Banchetto E 300 L N.B. Per costruire la tavola degli accessi per l operazione 6 si sono fatte le seguenti supposizioni: I 300 banchetti sono tenuti in media in un anno Ciascun cliente richiesta in media in un anno 300/200=1,5 banchetti, allora 0,375 banchetti in tre mesi Le aziende richiedono in media in tre mesi 150*0,375=56 banchetti

Analisi delle ridondanze: E ridondante #invitati, attributo di banchetto, perché derivabile dal conteggio della relazione PARTECIPAZIONE ad un banchetto. Occupazione di memoria: Per ogni banchetto, per rappresentare l attributo #invitati occorrono 4 byte, per un totale di 300*4=1200 byte. Costo delle operazioni : L'unica operazione su cui la ridondanza influisce è la seguente: Operazione 7: la stampa dei banchetti ancora da dare potrebbe essere utile per conoscere tutte le loro caratteristiche (per esempio la stampa potrebbe essere richiesta al fine di annullare dall elenco dei banchetti ancora da dare, quelli che hanno un numero di invitati inferiore a 2) E opportuno, allora, effettuare uno studio delle tavole degli accessi per le tre operazioni in caso di presenza o assenza del dato ridondante e poi effettuare una scelta. Operazione 7 OPERAZIONE 7 Assenza di ridondanza Banchetto E 300 L OPERAZIONE 7 Banchetto E 300 L Partecipazione R 3900 (300*13) L Presenza di ridondanza: 3900 accessi in lettura in più alla settimana, ovvero circa 557 accessi in più al giorno Considerando che : 1. La presenza del dato ridondante non occupa molto spazio in memoria; 2. L assenza del dato ridondante, rende necessari 579 accessi in lettura in più al giorno; anche se le operazioni in lettura non sono molto onerose, la decisione presa è quella di mantenere la ridondanza. Eliminare le gerarchie 1. Si sono accorpate le entità figlie AZIENDA e PERSONA nell entità padre CLIENTE, dal momento che le prime non hanno attributi e solo una operazione su sette si riferisce ad un tipo particolare di cliente. L accorpamento, rende necessaria l introduzione dell attributo TIPO CLIENTE nell entità padre. 2. Si sono accorpati i sottoinsiemi RISTORANTE CARATTERISTICO in RISTORANTE e SPECIALITA in PORTATA. Anche in questo caso si introducono gli attributi (booleani) CARATTERISTICO e SPECIALITA nelle entità padri. In seguito all accorpamento la relazione OFFRE tra RISTORANTE e PORTATA diventa ridondante e si elimina.

Accorpare e/o partizionare concetti Nessuna modifica Scegliere l identificatore principale L unico dubbio può sopraggiungere per l entità cliente, nella scelta tra cf e partita iva; per quanto riguarda l occupazione di memoria non ci sono molte differenze, ma poiché partita iva è stato dichiarato opzionale, scelgo come identificatore il cf SCHEMA E-R RISTRUTTURATO CF partita iva nome tipo cliente data di nascita (0,1) #telefono CLIENTE indirizzo (1,N) RICHIESTA Data richiesta (1,1) occasione Costo totale data BANCHETTO #invitati ORGANIZZA codice (1,1) (1,N) PARTECIPAZ IONE (1,1) (0,N) (1,1) CONSU A O (0,N) INVITATO id nome cognome nome RISTORANTE (1,N) (1,N) (1,N) (1,N) proposta MENU composizi one PORTATA costo #posti tipo specialità (si/no) #telefono nome città indirizzo caratteristico (si/no)

TRADUZIONE VERSO IL MODELLO RELAZIONALE Banchetto (codice, costo totale, data, occasione, #invitati, data richiesta, cliente, nome ristorante, Indirizzo ristorante, città ristorante, menù); Cliente (cf, partita iva (*), nome, indirizzo, tipo cliente, data nascita, #telefono); Invitato (nome, cognome, banchetto); Ristorante (nome, indirizzo, città, caratteristico, #posti, #telefono); Menù (id, costo); Portata (nome, tipo, specialità); Proposta (nome ristorante, indirizzo ristorante, città ristorante, menù); Composizione (menù, portata) (*) indica che sono ammessi valori nulli: cioè il valore della partita iva può anche non essere noto QUERY SQL PER L OPERAZIONE 6: SELECT FROM WHERE And And c.nome, b.data, b.costo totale cliente c, banchetto b c.tipo cliente= azienda c.cf = b.cliente b.data > data odierna tre mesi QUERY IN ALGEBRA RELAZIONALE PER L OPERAZIONE 6: π nome, data, costo totale ( π cf, nome ( σ tipo cliente = azienda (cliente) ) cf=cliente π costo totale, data, cliente (σ data > data odierna tre mesi ( banchetto) ) )