Esercizi progettazione DB 2011/2012 5B



Documenti analoghi
Volumi di riferimento

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

Esercizio data base "Biblioteca"

Esercitazione di Basi di Dati

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

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

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

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

Database 3 affitto veicoli. Testo del quesito

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

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

ESAME di INFORMATICA e ARCHIVIAZIONE

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

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

Introduzione ai database relazionali

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

Esercizio sui data base "Gestione conti correnti"

Database 1 biblioteca universitaria. Testo del quesito

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

DATABASE RELAZIONALI

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

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:

Access. P a r t e p r i m a

Prova Scritta di Basi di Dati

Progettazione di una base di dati Ufficio della Motorizzazione

DBMS (Data Base Management System)

(A) CONOSCENZA TERMINOLOGICA (B) CONOSCENZA E COMPETENZA (C) ESERCIZI DI COMPRENSIONE

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

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

MANUALE D'USO DEL PROGRAMMA IMMOBIPHONE

Dispensa di database Access

Organizzazione delle informazioni: Database

Modello E-R. Modello relazionale

Basi Di Dati, 09/12/2003

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

Capitolo 13. Interrogare una base di dati

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

Compito Sistemi Informativi LA. Tempo concesso : 90 minuti 23 Settembre 03 Nome: Cognome: Matricola:

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

Basi di dati. Esercizi sul modello E.R.

Le Basi di Dati. Le Basi di Dati

Esercizi di progettazione concettuale di una base di dati

Excel. A cura di Luigi Labonia. luigi.lab@libero.it

Sistemi di Elaborazione delle Informazioni (C.I. 15) Access

SISTEMI INFORMATIVI AVANZATI -2010/ Introduzione

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

Uso delle basi di dati DBMS. Cos è un database. DataBase. Esempi di database

Progettazione e realizzazione di un applicativo Web Annunci Immobiliari

ESAME di INFORMATICA e ARCHIVIAZIONE

Esame Di Stato A.S. 2004/2005 Istituto Tecnico Commerciale Corso Sperimentale Progetto Mercurio Corso di Ordinamento - Programmatori

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

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

PROGETTAZIONE DI DATABASE

Organizzazione degli archivi

MODELLO E-R MODELLO RELAZIONALE SQL

Esercitazione di riepilogo sulle Query MySQL Giugno 2011 Classe VB Informatica

Microsoft Access. Microsoft Access

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

Informatica (Basi di Dati)

INFORMATICA PER LE APPLICAZIONI ECONOMICHE PROF.SSA BICE CAVALLO

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

Informatica per le discipline umanistiche 2 lezione 10

SQL e ACCESS. Modello relazionale PROBLEMA ENTITA STUDENTE

Esercitazione di Basi di Dati

DOCUMENTO DI SPECIFICA DEI REQUISITI SOFTWARE

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

POLIAGE GUIDA RAPIDA

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

LA GESTIONE DELLE VISITE CLIENTI VIA WEB

M733 ESAME DI STATO DI ISTITUTO TECNICO COMMERCIALE CORSO DI ORDINAMENTO

Uso delle basi di dati. Informazione e dato. Cos è un database. Tabelle. Esempi di database

Preparati per il compito in classe Modulo 6

INFORMATICA PER L IMPRESA (Docente Prof. Alfredo Garro)

CAPITOLO 7 ESERCIZI SUL MODELLO ER

Guida alla registrazione on-line di un DataLogger

Basi di dati I. Esercitazione proposta

GUIDA AL SOCIAL CARE

Progetto Motorizzazione. Si vuole realizzare un'applicazione base di dati per la gestione di un ipotetico ufficio della motorizzazione.

Insegnamento di Informatica CdS Scienze Giuridiche A.A. 2006/7. Il trattamento dei dati

Soluzione dell esercizio del 2 Febbraio 2004

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

Introduzione alla teoria dei database relazionali. Come progettare un database

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

Traccia di soluzione dell esercizio del 25/1/2005

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

I database relazionali (Access)

Pagina 1 di 10

Basi di Dati e Microsoft Access

Guida Software GestioneSpiaggia.it

I Sistemi Informativi

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

Lezione 2. Il modello entità relazione

TEMI D ESAME DI INFORMATICA 2004 SISTEMI : RETE SCOLASTICA 2003 INFORMATICA: VIVAIO 2002 INFORMATICA: BANCA DEL TEMPO 2000 INFORMATICA: AGENZIA VIAGGI

Sistema Informativo Ufficio Centrale Stupefacenti: manuale di gestione delle utenze di accesso (Provisioning)

Data Base. Master "Bio Info" Reti e Basi di Dati Lezione 6

Università degli Studi di Verona. Laboratorio di Basi di Dati

Corso di Basi di Dati. Progettazione di Database: Esercizi Home page del corso:

Modello dei Dati ENTITÀ-RELAZIONE (ENTITY-RELATIONSHIP) é l insieme di concetti, simboli, regole che useremo per rappresentare il modello concettuale

CONTROLLO DI GESTIONE DELLO STUDIO

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

Transcript:

Esercizi progettazione DB 20/202 5B ESERCIZIO : CLUB... 2 ESERCIZIO 2: MEDICI... 4 ESERCIZIO 3: SQUADRE... 6 ESERCIZIO 4: CORSI DI BALLO... 8 ESERCIZIO 5: AUTO... 0 ESERCIZIO 6: FILIALI... 2 ESERCIZIO 7: APPARTAMETI... 4 ESERCIZIO 8: CIRCOLO DI TEIS (COMPITO)... 6 ESERCIZIO 9: FILM (COMPITO)... 8 ESERCIZIO 0: MOSTRA CAIA... 20 ESERCIZIO : AUTO USATE... 24 ESERCIZIO 2: OSPEDALE (COMPITO)... 25 ESERCIZIO 3: OLEGGIO DVD (COMPITO)... 27 ESERCIZIO 4: VEDITORI (ORMALIZZAZIOE)... 29 ESERCIZIO 5: SCRUTII... 3 ESERCIZIO 6: SUPERMERCATO... 37 ESERCIZIO 7: VETERIARIO... 39

Esercizio : Club Progettare l archivio dei soci di un club. Svolgimento AALISI DELLA REALTÀ DI ITERESSE Il progetto è rivolto alla gestione informatizzata dei soci di un club. Si ritengono rilevanti i seguenti dati: umero Tessera, Cognome, ome, Luogo di ascita, Data di ascita, Indirizzo di residenza, Data di prima iscrizione, Data Ultimo Versamento, Quota versata per l anno corrente. IPOTESI AGGIUTIVE. Si suppone che l archivio sia di tipo storico perché in caso di rientro del socio i suoi dati sono già disponibili e non è necessario attribuirgli un nuovo numero di tessera. SCHEMA COCETTUALE SOCIO Tessera Cognome ome Luogoascita Dataascita Indirizzo DataIscrizione DataUltVersam QuotaVersata SOCIO Tessera Cognome ome Luogoascita Dataascita Indirizzo Comune DataIscrizione DataUltVersam QuotaVersata VICOLI ESPLICITI V (SOCIO): DataUltVersam >= DataIscrizione V2 (SOCIO): Dataascita > #0/0/900# SCHEMA LOGICO tblsoci(tessera, Cognome, ome, Luogoascita, Dataascita, Indirizzo, Comune, DataIscrizione, DataRinnovo, QuotaVersata) Percorso fisico: Utenti\5Bs\DB ome del Database: db0_soci.accdb SCHEMA FISICO 2

Tabelle tblsoci K Tessera Contatore Intero lungo SI Cognome Testo 30 SI ome Testo 30 SI Luogoascita Testo 40 SI Dataascita Data/Ora SI > #0/0/900# Indirizzo Testo 40 SI Comune Testo 30 SI DataIscrizione Data/Ora SI DataUltVersam Data/Ora SI >=DataIscrizione QuotaVersata Valuta SI 3

Esercizio 2: Medici Progettare una base di dati per memorizzare i dati dei medici generici che fanno capo ad una ASL e dei relativi pazienti. Di ogni medico devono essere registrati un codice, cognome, nome, data e luogo di nascita; di ogni paziente devono essere registrati codice fiscale, cognome, nome, data e luogo di nascita, indirizzo. Svolgimento AALISI DELLA REALTÀ DI ITERESSE L ambito del progetto è la gestione informatizzata di una Azienda Sanitaria Locale, limitatamente ai medici di base con l elenco dei rispettivi pazienti. SCHEMA COCETTUALE DataScelta Medico Codice Cognome ome Luogoascita Dataascita cura Paziente CF Cognome ome Luogoascita Dataascita Indirizzo Comune SCHEMA LOGICO tblmedici(codice, Cognome, ome, Luogoascita, Dataascita) tblpazienti(cf, Cognome, ome, Luogoascita, Dataascita, Indirizzo, Comune, CodiceMedico, DataScelta) Percorso fisico: Utenti\5Bs\DB ome del Database: db02_asl.accdb SCHEMA FISICO Tabelle tblmedici K Codice Testo 6 SI Cognome Testo 30 SI ome Testo 30 SI Luogoascita Testo 40 SI Dataascita Data/Ora SI > #0/0/930# 4

tblpazienti K CF Testo 6 SI Cognome Testo 30 SI ome Testo 30 SI Luogoascita Testo 40 SI Dataascita Data/Ora SI > #0/0/900# Indirizzo Testo 40 SI Comune Testo 30 SI FK CodiceMedico Testo 6 SI DataScelta Data/Ora SI Chiave esterna: CodiceMedico referenzia: tblmedici (Codice) 5

Esercizio 3: Squadre Progettare una base di dati per memorizzare i dati delle squadre di calcio dei campionati italiani in corso, compresi: giocatori, città e serie di appartenenza. Svolgimento AALISI DELLA REALTÀ DI ITERESSE Occorre progettare un database per la gestione informatizzata dei campionati italiani di calcio relativi alla sola stagione in corso. Le entità individuate sono: Squadra, Giocatore, Città, Serie. Tra queste, la Squadra è l entità a cui risultano associate tutte le altre. IPOTESI AGGIUTIVE Ogni giocatore ha una tessera della FIGC, con un numero che lo identifica univocamente, qualunque sia la squadra in cui gioca. Se un giocatore rimane senza squadra (svincolato), il suo numero di tessera rimane a lui riservato. el DB ci saranno solo le squadre che si sono iscritte ad una qualunque serie per partecipare al relativo campionato. SCHEMA COCETTUALE Città CITTA ha Categoria GIOCATORE SQUADRA giocaper giocain SERIE Tessera Cognome ome Dataascita omesquadra AnnoFondazione 6

SCHEMA LOGICO tblcitta(citta) tblserie(categoria) tblsquadre(omesquadra, AnnoFondazione, Citta, Serie) tblgiocatori(tessera, Cognome, ome, Dataascita, Squadra) SCHEMA FISICO Percorso fisico: Utenti\5Bs\DB ome del Database: db03_aslsquadre.accdb Tabelle tblcitta K Citta Testo 20 Sì tblserie K Categoria Testo 20 Sì tblsquadre K omesquadra Testo 20 Sì AnnoFondazione Intero Sì FK Citta Testo 20 Sì Serie Testo 20 Sì Chiave esterna: Citta referenzia: tblcitta(citta) tblgiocatori K Tessera Testo 5 Sì Cognome Testo 30 Sì FK ome Testo 30 Sì Squadra Testo 20 Sì Chiave esterna: Squadra referenzia: tblsquadre(omesquadra) 7

Esercizio 4: Corsi di ballo Progettare un DB per gestire i dati dei corsi di ballo erogati da una scuola di danza. Per ogni corso devono essere registrati il nome, l orario, il nome dell istruttore e gli iscritti. Svolgimento AALISI DELLA REALTÀ DI ITERESSE La realtà di interesse è costituita dalla scuola di danza, di cui si devono gestire i corsi. Le entità individuate sono Corso, Istruttore, Iscritto. Ogni corso è tenuto da un solo istruttore. IPOTESI AGGIUTIVE Si suppone che l archivio sia di tipo attuale perché è molto probabile che la traccia intenda far riferimento alla gestione solo dei corsi attualmente erogati. Si suppone che un istruttore possa anche tenere più corsi, e che un cliente possa iscriversi a più corsi. SCHEMA COCETTUALE Categoria DataAttribuzione frequenta M CORSO ètenutoda omecorso Orario DataAvvio ISCRITTO Tessera Cognome ome Telefono ISTRUTTORE Matricola Cognome ome Telefono DataAssunzione SCHEMA LOGICO tblistruttori(matricola, Cognome, ome, Telefono, DataAssunzione) tblcorsi(omecorso, Orario, DataAvvio, Istruttore, DataAttribuzione) tbliscritti(tessera, Cognome, ome, Telefono) tbliscrizioni(tessera, omecorso, DataIscrizione) 8

SCHEMA FISICO Percorso fisico: Utenti\5Bs\DB ome del Database: db04_aslscuolaballo.accdb Tabelle tblistruttori K Matricola Testo 5 Sì Cognome Testo 20 Sì ome Testo 20 Sì Telefono Testo 5 Sì DataAssunzione Data/ora Sì tblcorsi K omecorso Testo 20 Sì Orario Data/ora DataAvvio Data/ora FK Istruttore Testo 5 DataAttribuzione Data/ora Chiave esterna: Istruttore referenzia: tblistruttori(matricola) tbliscritti K Tessera Testo 5 Sì Cognome Testo 20 Sì ome Testo 20 Sì Telefono Testo 5 Sì tbliscrizioni FK, K Tessera Testo 5 Sì FK, K omecorso Testo 20 Sì DataIscrizione Data/ora Sì Chiave esterna: Tessera referenzia: tbliscritti(tessera) Chiave esterna: omecorso referenzia: tblcorsi(omecorso) 9

Esercizio 5: Auto Un automobilista vuole gestire le informazioni che riguardano gli interventi effettuati sulla sua auto da meccanici, carrozzieri, elettrauti, ma anche rifornimenti di benzina, cambio dell olio, ecc. Per ogni intervento occorre memorizzare la data, la durata, la descrizione dell intervento, il costo, la persona che ha fornito il servizio, indicandone la qualifica, l indirizzo e il recapito telefonico. Svolgimento AALISI DELLA REALTÀ DI ITERESSE La realtà di interesse è costituita dagli interventi effettuati sulle auto di una persona. Ogni intervento riguarda una sola auto. Un auto può ricevere uno o più interventi. IPOTESI AGGIUTIVE La persona può avere più auto. Ogni intervento ha un numero d ordine. La durata di un intervento è formulata come numero di ore di lavoro. Ogni operatore può avere una sola qualifica. SCHEMA COCETTUALE Targa Modello AnnoImmatricolazione AUTO riceve ITERVETO DataIntervento èfornitoda OPERATORE umero Descrizione OreLavoro Costo PIVA Ditta Qualifica Indirizzo Comune Telefono 0

SCHEMA LOGICO tblauto (Targa, Modello, AnnoImmatricolazione) tbloperatori (PIVA, Ditta, Qualifica, Indirizzo, Comune, Telefono) tblinterventi (umero, Descrizione, OreLavoro, Costo, Auto, Operatore) Percorso fisico: Utenti\5AS\DB ome del Database: db05_auto.accdb tblrazze SCHEMA FISICO Tabelle K Targa Testo 8 Sì Modello Testo 20 Sì AnnoImmatricolazione umerico Integer Sì >= 900 tbloperatori K PIVA Testo 8 SI Ditta Testo 30 SI Qualifica Testo 20 SI Indirizzo Testo 30 SI Comune Testo 20 SI Telefono Testo 5 SI tblinterventi K umero umerico Integer SI Descrizione Testo 50 SI OreLavoro umerico Byte SI Costo Valuta FK Auto Testo 8 FK Operatore Testo 8 Chiave esterna (Auto) referenzia: tblauto(targa) Chiave esterna (Operatore) referenzia: tbloperatori(piva)

Esercizio 6: filiali Progettare una base di dati per memorizzare i dati delle filiali una grande banca e dei direttori che le gestiscono. Ogni filiale ha un solo direttore, che si occupa solo di quella filiale. Svolgimento AALISI DELLA REALTÀ DI ITERESSE La realtà d interesse è il sistema di filiali di una grande banca. Il DB da progettare non è storico, perché si registrano solo i dati attuali. Si individuano come entità FILIALE e DIRETTORE. Tra esse si individua un associazione :. IPOTESI AGGIUTIVE Una filiale deve avere obbligatoriamente un direttore e un direttore deve occuparsi obbligatoriamente di una filiale. Si ritiene opportuno registrare, per ogni filiale, un numero (che la identifica univocamente), il comune e l indirizzo, mentre, per ogni direttore, una matricola (che lo identifica univocamente), il cognome, il nome, un numero di cellulare e un indirizzo email. SCHEMA COCETTUALE DIRETTORE gestisce FILIALE Matricola ome Cognome ome Cellulare Email Telefono umero Comune Indirizzo SCHEMA LOGICO tblfiliali (umero, Comune, Indirizzo, MatrDir, CognomeDir, omedir, CellDir, EmailDir) Percorso fisico: Utenti\5AS\DB SCHEMA FISICO ome del Database: db06_ Filiali.accdb 2

Tabelle tblfiliali K umero umerico Intero lungo SI Comune Testo 25 SI Indirizzo Testo 40 SI SK MatrDir Testo 4 O CognomeDir Testo 25 SI omedir Testo 25 SI CellDir Testo 3 O SK Email Testo 40 O 3

Esercizio 7: appartamenti Progettare una base di dati per memorizzare i dati degli appartamenti di uno stabile e dei rispettivi proprietari. Si ipotizzi che ogni appartamento abbia un solo proprietario e che ogni proprietario detenga un solo appartamento. Svolgimento AALISI DELLA REALTÀ DI ITERESSE La realtà d interesse è l insieme degli appartamenti di uno stabile. Il DB da progettare non è storico, perché si registrano solo i dati attuali. Si individuano come entità PROPRIETARIO e APPARTAMETO. Tra esse si individua un associazione :. IPOTESI AGGIUTIVE Una filiale deve avere obbligatoriamente un proprietario e un direttore deve occuparsi obbligatoriamente di una filiale. Si ritiene opportuno registrare, per ogni filiale, un numero (che la identifica univocamente), il comune e l indirizzo, mentre, per ogni direttore, una matricola (che lo identifica univocamente), il cognome, il nome, un numero di cellulare e un indirizzo email. SCHEMA COCETTUALE PROPRIETARIO possiede APPARTAMETO CF ome Cognome Telefono umero MQ Vani SCHEMA LOGICO tblappartamenti (umero, MQ, Vani) tblproprietari (CF, Cognome, ome, {Telefono}, umeroapp) VICOLI ESPLICITI V (tblappartamenti): umero >0 V2 (tblappartamenti): MQ > 40 Percorso fisico: Utenti\5AS\DB SCHEMA FISICO ome del Database: db07_ Appartamenti.accdb 4

Tabelle tblappartamenti K umero umerico Byte SI >0 MQ umerico Byte SI >40 Vani umerico Byte SI > tblproprietari K CF Testo 6 SI Cognome Testo 25 SI ome Testo 25 SI Telefono Testo 3 O SK, FK umeroapp umerico Byte SI 5

Esercizio 8: Circolo di tennis (compito) Un circolo di tennis vuole memorizzare le prenotazioni dei propri campi da parte dei propri soci. Ogni prenotazione viene effettuata da un solo socio, riguarda un solo campo, ha validità di un ora intera di un dato giorno, e può andare dalle 9:00 alle 2:00. Di ogni socio interessano i dati anagrafici e il recapito. Di ogni campo interessa sapere il tipo (ad es. coperto e in terra battuta, coperto e in cemento, scoperto, etc.). I tipi non sono predefiniti. Progettare la base di dati fino allo schema fisico. Svolgimento AALISI DELLA REALTÀ DI ITERESSE Oggetto dell automazione è la gestione della prenotazioni dei campi da tennis di un circolo. Il DB da progettare è storico, perché conserva le prenotazioni nel tempo (dalla traccia non si rileva la necessità di cancellarle). Si individuano come entità CAMPO, SOCIO e TIPO CAMPO. La prenotazionè può essere vista come associazione tra CAMPO e SOCIO. IPOTESI AGGIUTIVE Si ritiene che i dati di interesse di ogni socio siano un numero di tessera (che lo identifica univocamente), cognome, nome e recapito telefonico), mentre per il campo si ritiene di dover registrare lunghezza, larghezza e un identificativo, che potrebbe essere un numero. SCHEMA COCETTUALE SOCIO prenota M CAMPO èdi TIPO Tessera Cognome ome Telefono Data Ora umero Lunghezza Larghezza Tipo SCHEMA LOGICO tblsoci (Tessera, Cognome, ome, Telefono) tbltipi (Tipo) tblcampi (umero, Lunghezza, Larghezza, Tipo) Inserire nella dispensa tblprenota (Socio, Campo, Data, Ora).B.: La particolare chiave di tblprenota è dovuta alla necessità di evitare che uno stesso campo possa essere prenotato da più persone nello stesso momento (giorno e ora). 6

SCHEMA FISICO Percorso fisico: Utenti\5AS\DB ome del Database: db07_ Appartamenti.accdb tblsoci Tabelle K Tessera umerico Integer SI >0 Cognome Testo 20 SI ome Testo 20 SI Telefono Testo 5 tbltipi K Tipo Testo SI tblcampi K umero umerico Byte SI Lunghezza umerico Integer SI Larghezza umerico Integer SI Tipo Testo 20 SI 7

Esercizio 9: Film (compito) Si vogliono trattare informazioni relative a produttori e attori di film. Degli attori interessano le generalità anagrafiche. Dei produttori, la Ragione Sociale, l anno di fondazione e il recapito. Di un film interessano il titolo, l anno di produzione, gli attori e il produttore. ello stesso anno non possono essere prodotti film con lo stesso titolo. Progettare la base di dati fino allo schema fisico Svolgimento AALISI DELLA REALTÀ DI ITERESSE La realtà d interesse è costituita da attori e produttori di film. Il Database registra dati anche di film passati, per cui è storico. Si individuano come entità PRODUTTORE, ATTORE, FILM. IPOTESI AGGIUTIVE Degli attori si ritiene di dover registrare codice fiscale, che li identifica univocamente, cognome, nome, data di nascita e luogo di nascita. Si ritiene di dover registrare anche il ruolo che gli attori interpretano nel film (protagonista, coprotagonista, comparsa, ecc.), supponendo che un attore non possa avere più di un ruolo nello stesso film). SCHEMA COCETTUALE PRODUTTORE produce FILM èinterpretatoda M ATTORE RagioneSociale AnnoFondazione Recapito Titolo Anno CF Cognome ome Dataascita Luogoascita RUOLO Ruolo SCHEMA LOGICO tblproduttori (RagioneSociale, AnnoFondazione, Recapito) tblfilm (Titolo, Anno, Produttore) tblruoli (Ruolo) tblattori (CF, Cognome, ome, Dataascita, Luogoascita) tblinterpretazioni (Attore, Film, Ruolo) 8

Percorso fisico: Utenti\5AS\DB ome del Database: db09_film.accdb tblproduttori SCHEMA FISICO Tabelle K RagioneSociale Testo 20 Sì AnnoFondazione umerico Integer Sì Recapito Testo 40 Sì tblfilm K Titolo Testo 20 SI Anno umerico Integer SI FK Produttore Testo 20 SI Chiave esterna (Produttore) referenzia: tblproduttori(ragionesociale) tblruoli K Ruolo Testo 20 SI tblattori K CF Testo 6 SI Cognome Testo 20 SI ome Testo 20 SI Dataascita Data/Ora Luogoascita Testo 20 tblinterpretazioni FK,K Attore SI FK,K Film SI Ruolo SI Chiave esterna (Attore) referenzia: tblattori(cf) Chiave esterna (Film) referenzia: tblfilm(titolo) 9

Esercizio 0: MOSTRA CAIA Progettare una base di dati per la gestione di una mostra canina. Di ogni cane, identificato da un codice, interessano il nome, la data di nascita, l'altezza, il peso, la razza di appartenenza, e i dati del proprietario. Le razze si distinguono dal nome, e possiedono un'altezza e un peso standard. Ogni giudice, identificato da un codice, esprime un voto su ciascun cane. Realizzare l analisi della realtà d interesse, con eventuali ipotesi aggiuntive, lo schema concettuale, lo schema logico, lo schema fisico e un applicazione per la gestione dei dati. Sviluppare in Access sia la base di dati, sia l applicazione. Svolgimento AALISI DELLA REALTÀ DI ITERESSE La realtà d interesse è una mostra canina. Il Database da realizzare ha breve durata nel tempo, perché è destinato alla gestione di una mostra canina, quindi è senz'altro di tipo attuale. Sia i giudici che i cani in concorso sono in numero imprecisato. Ogni cane sarà valutato da tutti i giudici. Ogni giudice esprime un solo voto su ciascun cane. Si individuano come entità CAE, PROPRIETARIO, RAZZA, GIUDICE. IPOTESI AGGIUTIVE Si suppone che ogni proprietario possa presentare un solo cane alla mostra. Di ogni proprietario si ritiene di dover registrare il codice fiscale, che lo identifica univocamente, cognome, nome, indirizzo e città di residenza. Di ogni giudice, oltre al codice, si ritiene di dover registrare almeno cognome e nome. SCHEMA COCETTUALE Proprietario CF Cognome ome Telefono presenta Voto Giudice M valuta Cane appartiene Razza Codice Cognome ome Codice ome Dataascita Altezza Peso ome AltezzaStd PesoStd SCHEMA LOGICO tblrazze (omer, AltezzaStd, PesoStd) tblcani (Codice, omecane, Razza, Altezza, Peso, Dataascita, CFPr, CognomePr, omepr, TelefonoPr) tblgiudici (Codice, Cognome, ome) tblvalutazioni (CodGiudice, CodCane, Voto) 20

Vincoli espliciti: V (tblrazze): AltezzaSt >= 20 V2 (tblrazze): PesoSt >= 2 V3 (tblcani): Altezza >0 V4 (tblcani): Peso >0 V5 (tblvalutazioni): Voto Between AD 0 SCHEMA FISICO Percorso fisico: Utenti\5AS\DB ome del Database: db09_mostracanina.accdb tblrazze Tabelle K omer Testo 20 Sì AltezzaSt umerico Byte Sì >= 20 PesoSt umerico Byte Sì >= 2 tblcani K Codice umerico Byte SI omecane Testo 0 SI FK Razza Testo 20 SI Altezza umerico Byte SI >0 Peso umerico Byte SI >0 Dataascita Data SI SK CFPr Testo 6 SI CognomePr Testo 20 SI omepr Testo 20 SI TelefonoPr Testo 3 SI Chiave esterna (Razza) referenzia: tblrazze(omer) tblgiudici K Codice Testo 3 SI Cognome Testo 20 SI ome Testo 20 SI tblvalutazioni FK,K Giudice Testo 3 SI FK,K Cane umerico Byte SI Voto umerico Byte SI Between and 0 Chiave esterna (Cane) referenzia: tblcani(umeroc) Chiave esterna (Giudice) referenzia: tblgiudici(codgiud) 2

APPLICAZIOE Diagramma delle funzioni Mostra canina Gestione razze Gestione cani Gestione giudici Gestione gara Inserimento uova Razza Inserimento uovo Cane Inserimento uovo Giudice Inserimento Voti Visualizzazione Elenco Razze Visualizzazione Elenco Cani Visualizzazione Elenco Giudici Visualizzazione Elenco Voti Aggiornamento Razze Aggiornamento Cane Aggiornamento Giudici Aggiornamento Voti Modifica Razza Modifica Cane Modifica Giudice Modifica Voti Cancellazione Razza Cancellazione Cane Cancellazione Giudice Cancellazione Voti Maschere Maschera di I livello È il menu principale, che richiama le maschere per la gestione dei dati contenuti nelle singole tabelle, una per ogni tabella. Maschere di II livello 22

Maschere di III livello Per ogni tabelle sono previste le operazioni di inserimento, aggiornamento, visualizzazione (3 maschere). Per la tabella delle razze, esse sono: Per le altre tabelle si procede analogamente. 23

Esercizio : Auto usate La Mini Car & C. vende auto usate, con la collaborazione di vari venditori. Prima di metterle in vendita registriamo su un database le loro caratteristiche (targa, numero di telaio, anno di immatricolazione, marca, modello, cilindrata, colore). Per ogni auto venduta ci interessa sapere la data e il prezzo di vendita, nonchè il venditore. Progettare la base di dati fino allo schema fisico, e produrre l analisi delle funzioni completa di diagramma delle funzioni e disegno dell interfaccia utente (menu, maschere di immissione / visualizzazione / modifica / cancellazione e opportuni pulsanti). Svolgimento AALISI DELLA REALTÀ DI ITERESSE La realtà d interesse è un rivenditore di auto usate. Il Database da realizzare è di tipo storico, perché si deve tenere traccia delle vendite effettuate. Si individuano come entità AUTO, MARCA, MODELLO, VEDITORE. SCHEMA COCETTUALE Marca Marca produce Modello Modello appartienea Prezzo Auto èvendutada Venditore Targa Telaio AnnoImm Cilindrata Colore DataVendita CodVenditore Cognome ome Telefono SCHEMA LOGICO tblmarche(marca) tblmodelli(marca, Modello) tblvenditori (CodVenditore, Cognome, ome, Telefono) tblauto(telaio, Targa, AnnoImm, Cilindrata, Colore, Marca, Modello, {CodVenditore, DataVendita, Prezzo}) 24

Esercizio 2: Ospedale (compito) Il database dell ospedale S. Riccardo detiene le informazioni anagrafiche dei pazienti attualmente in cura, compreso il gruppo sanguigno e il motivo del ricovero. L ospedale è organizzato in reparti. Di ogni reparto sono rilevanti il nome e il piano. Per i dottori presenti nella struttura si registrano informazioni anagrafiche essenziali e la data di assunzione. Ogni medico è assegnato a un solo reparto e viene identificato da un codice progressivo all interno del reparto. Il regolamento dell ospedale vieta che i propri dottori, in caso di malattia, siano ricoverati internamente. Progettare la base di dati fino allo schema fisico, e produrre l analisi delle funzioni completa di diagramma delle funzioni e disegno dell interfaccia utente: menu, maschere di immissione / visualizzazione / modifica / cancellazione e opportuni pulsanti (almeno una maschera di ciascun tipo, relativa a una tabella referenziante). Svolgimento AALISI DELLA REALTÀ DI ITERESSE La realtà di interesse è l ospedale San Riccardo. Il database da realizzare è di tipo attuale. SCELTE IMPLEMETATIVE: Si ritiene più opportuno che il motivo del ricovero sia un testo digitabile liberamente dall utente. Dati anagrafici essenziali per medici e pazienti si ritiene debbano essere Cognome, ome, Data e Luogo di ascita. ETITÀ IDIVIDUATE: Paziente, Medico, Reparto, GruppoSanguigno. SCHEMA COCETTUALE DataR Motivo CF Cognome ome Dataascita Indirizzo Città Telefono Medico CodMed Cognome ome Telefono DataAss lavorain Reparto ospita ome Piano Paziente ha GRS GRS 25

SCHEMA LOGICO tblreparti(ome, Piano) tblmedici(reparto, CodMed, Cognome, ome, Telefono, DataAss) tblgrs(grs) tblpazienti(cf, Cognome, ome, Dataascita, Indirizzo, Città, {Telefono}, GRS, DataR, Motivo, Reparto) 26

Esercizio 3: oleggio DVD (compito) VideoMovies noleggia film in DVD, elencati nel proprio catalogo. Per ogni film vanno registrate le copie disponibili (identificate da un numero progressivo), e il loro stato (disponibile: si / no). Occorre anche archiviare i clienti e tutti i noleggi che effettuano. Di ogni <noleggio>, oltre all identificativo del cliente e al numero della copia presa in prestito, va registrata la data, la durata in giorni e l importo. Progettare la base di dati fino allo schema fisico, e produrre l analisi delle funzioni completa di diagramma delle funzioni e disegno dell interfaccia utente: menu, maschere di immissione / visualizzazione / modifica / cancellazione e opportuni pulsanti (almeno una maschera di ciascun tipo, relativa a una tabella referenziante). Svolgimento AALISI DELLA REALTÀ DI ITERESSE La realtà di interesse è la videoteca VideoMovies. Il database da realizzare è di tipo storico. Entità individuate sono: Film, Copia, Cliente. IPOTESI AGGIUTIVE on ci sono due film dello stesso anno e con lo stesso titolo. La durata minima di un noleggio è un giorno (si rileva dalla traccia). SCELTE IMPLEMETATIVE Si ritiene necessario archiviare, dei clienti, solo nome, cognome e numero di telefono. SCHEMA COCETTUALE Importo Dataoleggio Film èdisponibile èrelativaa Copia èoleggiatada M Cliente Titolo Anno Genere Durata Copia Disponibile GG Tessera Cognome ome Telefono SCHEMA LOGICO tblfilm(titolo,anno, Genere, Durata) tblcopie(titolo, Anno, Copia, Disponibile) tblclienti(tessera, Cognome, ome, Telefono) tbloleggi(tessera, Titolo, Anno, Copia, Dataoleggio, Importo, GG) 27

SCHEMA FISICO Tabella Referenzia tblfilm PK Titolo Testo 30 Sì PK Anno umerico Intero Sì Genere Testo 30 Sì Durata umerico Intero Sì tblcopie PK, FK Titolo Testo 30 Sì PK, FK Anno umerico Intero Sì PK umeroc umerico Byte Sì Disponibile Booleano Sì tblfilm tblclienti PK tessera umerico Int. lungo Sì ome Testo 20 Sì Cognome Testo 20 Sì Tel Testo 5 Sì tbloleggi FK Tessera umerico Int. lungo Sì tblclienti PK, FK Titolo Testo 30 Sì PK, FK Anno umerico Intero Sì tblcopie PK, FK umeroc umerico Byte Sì PK Dataoleggio Data/Ora Sì Importo Valuta Sì GG umerico Byte Sì 28

Esercizio 4: Venditori (ormalizzazione) Lo schema logico di un DB è costituito dalla seguente tabella (relazione): tblvenditori(cognome, ome, Recapito, Telefono, Onomastico, AutoVendute) Verificare se la relazione è normalizzata e, nel caso in cui non lo sia, eseguire la normalizzazione. F) La tabella non è in F perché - Recapito è un attributo composto da Indirizzo, CAP, Città; - Onomastico è composto da Giorno e Mese; - AutoVendute è composto da Targa e Prezzo di ogni auto venduta, cioè l attributo è multiplo; inoltre in rapporto : con la chiave primaria. Per condurla in F, la tabella tblvenditori deve essere divisa in due tabelle: - tblvenditori(cognome, ome, Indirizzo, CAP, Città, Telefono, Mese, Giorno) - tblautovendute (Targa, Prezzo, CognomeV, omev) Se il rapporto è :M, sono due le tabelle che si aggiungono. Es.: tblstudenti (Matr, Cognome, ome, Sport) diventa tblstudenti (Matr, Cognome, ome) tblsport(omesport) tblsportpraticati(matr, Sport 2F) La tabella tblvenditori non è in 2F perché Mese e Giorno dell onomastico dipendono funzionalmente dal campo ome, che è parte della chiave primaria. Pertanto lo schema logico viene così modificato: - tblonomastici(ome, Mese, Giorno) - tblvenditori(cognome, ome, Indirizzo, CAP, Città, Telefono) - tblautovendute (Targa, Prezzo, CognomeV, omev) 3F) La tabella tblvenditori non è in 3F perché il campo non chiave Città dipende dal campo non chiave CAP della stessa tabella. Si divide allora tblvenditori in due tabelle e il modello logico diventa: 29

- tblonomastici(ome, Mese, Giorno) - tblcomuni(cap, Città) - tblvenditori(cognome, ome, Indirizzo, CAP, Telefono) - tblautovendute (Targa, Prezzo, CognomeV, omev) 30

Esercizio 5: Scrutini Realizzare un database per gestire i voti finali, nelle varie materie, degli studenti di una classe. Va memorizzato anche il numero di ore di assenza in ciascuna materia. L elenco delle materie non è noto a priori, ma viene introdotto dall utente. Eseguire le seguenti operazioni: - Creare il DB con i comandi DDL. - Popolare il DB con i seguenti dati, usando il comando ISERT parametrizzato: Studente Astori Guido (2/2/92) Seccia Vittoria (4/6/90) Dani Alberto (23/3/9) Soleno Tina (5/2/92) Ficco Andrea (5/5/992) Tiro Giancarlo (2/5/93) Tesore Angela (2/2/9) Piano Guido (5/5/9) Maturi ando (23/3/93) Citti Alassia (4/6/94) Materia, assenze, voto Italiano, 45, 7 Matematica, 5, 6 - Inglese, 22, 7 Informatica,, 6 Italiano, 25, 6 Matematica, 2, 5 - Inglese, 5, 5 Informatica, 2, 4 Italiano, 30, 7 Matematica, 33, 7 - Inglese, 3, 6 Informatica, 3, 7 Italiano, 2, 8 Matematica, 2, 9 - Inglese, 5, 8 Informatica, 0, 7 Italiano, 4, 6 Matematica, 4, 6 - Inglese, 20, 5 Informatica, 0, 6 Italiano, 65, 4 Matematica, 35, 4 - Inglese, 42, 5 Informatica, 5, 5 Italiano, 2, 7 Matematica, 2, 6 - Inglese, 2, 5 Informatica, 25, 5 Italiano, 0, 6 Matematica,, 6 - Inglese, 20, 6 Informatica, 30, 5 Italiano, 3, 7 Matematica, 23, 6 - Inglese, 0, 6 Informatica, 2, 8 Italiano, 5, 8 Matematica, 2, 7 - Inglese, 5, 9 Informatica,, 9 - Produrre le seguenti query:. Cognome e nome degli studenti in ordine alfabetico. 2. Elenco degli studenti il cui cognome inizia con la lettera T. 3. Elenco degli studenti il cui nome contiene la lettera. 4. Elenco degli studenti nati nel 993. 5. Elenco delle materie in ordine alfabetico. 6. Elenco delle valutazioni insufficienti (matricola dello studente, materia, voto) in ordine alfabetico di materia e di studente. 6 bis. Elenco delle valutazioni insufficienti (cognome e nome dello studente, materia, voto) in ordine alfabetico di materia e di studente. - Eseguire poi le seguenti operazioni: 7. Modificare il nome della materia Inglese in Lingua Inglese, senza perdere le valutazioni nella materia stessa. 8. Modificare il nome di Maturi in Fernando senza perdere le sua valutazioni. - Chiudere il DB e crearne una copia chiamandola db5test. Aprire la copia così creata ed eseguire le seguenti operazioni: 9. Cancellare la materia Italiano e tutte le valutazioni correlate. 0. Cancellare uno studente scelto dall utente e tutte le sue valutazioni. 3

SCHEMA COCETTUALE OreAssenza Voto Studente èvalutatoin M Matricola Cognome ome Dataascita Materia omemateria e SCHEMA LOGICO tblstudenti(matricola, Cognome, ome, Dataascita) tblmaterie(omemateria) tblvalutazioni(matricola, Materia, OreAssenza, Voto) CREAZIOE DELLE TABELLE CREATE TABLE tblstudenti ( Matricola TEXT(7) OT ULL PRIMARY KEY, Cognome TEXT(30) OT ULL, nome TEXT(30) OT ULL, Dataascita DATE OT ULL, ); UIQUE (Cognome, ome, Dataascita), COSTRAIT 'La data di nascita deve essere maggiore del 950' CHECK (Dataascita >=#0/0/950#) CREATE TABLE tblmaterie ( omemateria TEXT(20) OT ULL PRIMARY KEY ); CREATE TABLE tblvalutazioni ( Matricola TEXT(7) OT ULL REFERECES tblstudenti O UPDATE CASCADE O DELETE CASCADE, Materia TEXT(20) OT ULL REFERECES tblmaterie O UPDATE CASCADE O DELETE CASCADE, 32

OreAssenze BYTE, Voto BYTE, PRIMARY KEY (Matricola, Materia), COSTRAIT 'Voto tra e 0' CHECK (Voto BETWEE AD 0) ); ISERIMETO DEI DATI ELLE TABELLE ISERT ITO tblmaterie VALUES ([ome della materia]); ISERT ITO tblstudenti VALUES ([Matricola], [Cognome], [ome], [Dataascita]); ISERT ITO tblvalutazioni VALUES ([Matricola], [Materia], [Ore di assenza], [Voto]); 33

34

QUERY SQL. Cognome e nome degli studenti in ordine alfabetico SELECT Cognome, ome FROM tblstudenti ORDER BY,2; 2. SELECT Cognome, ome FROM tblstudenti WHERE Cognome LIKE 'T%' ORDER BY, 2; 3. Elenco degli studenti il cui nome contiene la lettera SELECT Cognome, ome FROM tblstudenti WHERE Cognome LIKE '%n%' ORDER BY, 2; 4. Elenco degli studenti nati nel 993 SELECT * FROM tblstudenti WHERE Dataascita Between #//993# And #2/3/993#; 5. Elenco delle materie in ordine alfabetico SELECT omemateria AS Materia FROM tblmaterie ORDER BY omemateria; 6. Elenco delle valutazioni insufficienti (matricola dello studente, materia, voto) in ordine alfabetico di materia e di studente SELECT * FROM tblvalutazioni WHERE Voto<6 ORDER BY Materia, Matricola; 6 bis. Elenco delle valutazioni insufficienti (cognome e nome dello studente, materia, voto) in ordine alfabetico di materia e di studente Equi Join SELECT Cognome, ome, Materia, Voto FROM tblstudenti, tblvalutazioni WHERE tblstudenti.matricola=tblvalutazioni.matricola And Voto<6 ORDER BY 3,, 2; Inner Join SELECT Cognome, ome, Materia, Voto FROM tblstudenti IER JOI tblvalutazioni O tblstudenti.matricola=tblvalutazioni.matricola WHERE Voto<6 ORDER BY 3,, 2; 35

UPDATE 7. Modificare il nome della materia Inglese in Lingua Inglese, senza perdere le valutazioni nella materia stessa. UPDATE tblmaterie SET omemateria = 'Lingua Inglese' WHERE omemateria='inglese'; 8. Modificare il nome di Maturi in Fernando senza perdere le sua valutazioni. UPDATE tblstudenti SET ome = 'Fernando' WHERE Cognome='Maturi' And ome='ando'; DELETE 9. Cancellare la materia Italiano e tutte le valutazioni correlate. DELETE * FROM tblmaterie WHERE omemateria='italiano'; 0. Cancellare uno studente scelto dall utente e tutte le sue valutazioni. DELETE * FROM tblstudenti WHERE Matricola=[Digita la matricola da cancellare:]; 36

Esercizio 6: Supermercato Si consideri il database: che contiene dati relativi ad un supermercato. Realizzare le seguenti interrogazioni:. Prezzo medio, minimo e massimo dei prodotti. 2. umero dei prodotti. 3. Elenco dei prodotti, con descrizione, prezzo e nome del reparto, ordinato per reparto e descrizione. 4. Elenco dei dipendenti, con cognome e nome del dipendente e nome del reparto, ordinato per reparto e cognome e nome. 5. Prezzo medio, minimo e massimo dei prodotti per ogni reparto, in ordine alfabetico dei reparti. 6. Elenco dei prodotti di un reparto di cui si dà il nome, dal più al meno costoso. 7. Vendite di un giorno assegnato, con descrizione, quantità e nome del reparto. 8. Incasso di un giorno. 9. Elenco dei nomi dei reparti con numero di prodotti per reparto. 0. Elenco dei nomi dei reparti con prezzo minimo e massimo per reparto.. Elenco dei nomi dei reparti con incasso totale per reparto. 2. Elenco dei prodotti con il numero di pezzi venduti per ciascuno. 3. Elenco dei prodotti per i quali sono stati venduti più di 0 pezzi. 4. Elenco dei prodotti con prezzo superiore ad una cifra specificata. 5. Elenco dei prodotti con prezzo più alto. 6. Elenco dei prodotti con prezzo superiore alla media.. Prezzo medio, minimo e massimo dei prodotti. SELECT AVG(Prezzo) AS [Prezzo medio], MI(Prezzo) AS [Prezzo minimo], MAX(Prezzo) AS [Prezzo massimo] FROM tblprodotti; 2. umero dei prodotti. SELECT Count(*) AS [umero prodotti] FROM tblprodotti; 37