Basi di Dati Ingegneria Informatica (2002-2003) Esercizi di Progettazione Elisa Quintarelli 1 Progetto: Catalogo La base di dati di una società che opera nel settore dell abbigliamento contiene le seguenti informazioni relative ai prodotti: Le categorie merceologice (footwear, apparel, accessories) La descrizione tecnica del prodotto (materiali, composizione, avvetenze, note particolari). La codifica per ciascun prodotto dei modelli, materiali, taglie e varianti di colore. Un eventuale descrizione multimediale (immagini, video, audio ). La disponibilità a stock. I fornitori e i relativi lead time e prezzi di costo. Il prezzo retail ed il prezzo wholesales. Gli sconti, promozioni e incentivazioni per i clienti (business). 2 1
Note Id Avvertenze Descrizione Estensione Taglia Schema concettuale 1 Categoria Prodotto Colore Descrizione Variante Descrizione Collocazione Disponibilità Mercato Caratteristiche Composizione Descrizione Materiale Lead time Prezzo Costo Distribuzione Disonibilità stock Prezzo retail Prezzo wholesales Quantità Grossista Cliente Business File Tipo Caratteristiche PIVA Posizione Credito Posizione 3 Debito Schema Relazionale Prodotto(,, Descrizione, Avvertenze, NoteParticolari, IDCategoria) Categoria(ID,, Descrizione) Variante(Prodotto, CodVariante, Taglia, Colore,, Descrizione, DisponibilitàStock, PrezzoRetail, PrezzoWholesales) Materiale(,, Caratteristiche) Composizione(Prodotto, Materiale, ) Grossista(PIVA,, ) Distribuzione(Grossista, Prodotto, LeadTime, PrezzoCosto) ClienteBusiness(,, PosizioneCredito, PosizioneDebito), Mercato(Cliente, Prodotto, EstensioneProdotto, Taglia, Colore, Quantità) Descrizione(File, Tipo) Caratteristiche(Prodotto, FileDescrizione) 4 2
Progetto: Customers La base di dati di una società che opera nel settore dell abbigliamento contiene le seguenti informazioni relative ai clienti e alle forze vendita: Per i clienti si conosce il nome, l indirizzo, la nazionalità, la posizione a debito e a credito. Le forze vendita, che hanno responsabilità sui diversi clienti, si dividono in dirette e indirette. Alcune forze vendita possono essere promosse Area managers e in tal caso coordinano altre forze vendita. Ogni cliente è in contatto con una sola forza vendita. La base di dati memorizza inoltre le politiche di sconto, promozione ed incentivazione per i clienti e le politiche di incentivazione per le forze vendita. 5 Diretta Schema concettuale 1 Forza Vendita Bonus BonusI Incentivazione (t,e) Nazionalità (0,1) Indiretta Prodotto BonusP (0,1) Promozione ISA Controllo Area manager Data Promozione BonusS Cliente Sconto Tipo Condizioni TipoCondizioni Tipo Clientela Zona Ammontare Debito/Credito (2,2) Condizioni Posizione Cassa Portafoglio 6 3
Bonus Incentivazione Schema concettuale 2 Forza Vendita BonusI BonusP (0,1) Taglia Nazionalità (0,1) Prodotto Colore Promozione Tipo ISA Controllo Area manager Data Promozione BonusS Cliente Sconto Tipo Condizioni TipoCondizioni Tipo Clientela Zona Ammontare Debito/Credito (2,2) Condizioni Posizione Cassa Portafoglio 7 Schema Relazionale ForzaVendita(,,, Nazionalità, Tipo, CapoArea) AreaManager(FV, Zona, DataPromozione) Bonus(FV,I, Tipo, Condizioni) Cliente(,,, Nazionalità, Venditore) PosizioneCassa(Voce, Cliente, Ammontare) Incentivazione(, Tipo, Condizioni) Promozione(, Tipo, Condizioni) Sconto(, Tipo, Condizioni) BonusI(Incentivo, ForzaVendita, ) BonusI(Incentivo, Prodotto, Cliente ) BonusP(Promozione, Prodotto, Cliente ) BonusS(Sconto, Prodotto, Cliente ) 8 4
Esercizio 2: Controllo Traffico Aereo La base di dati per il controllo del traffico aereo contiene le seguenti informazioni: Per ogni volo si hanno la compagnia aerea, il numero del volo, tipo di aereo, numero di passeggeri si conoscono gli aeroporti e gli orari di partenza e di arrivo. L aeroporto è caratterizzato da nome, posizione geografica, servizi disponibili. Per tali servizi si ha l indicazione di quali sono a pagamento. Durante il volo l aereo occupa una o più aerovie, caratterizzate ciascuna da un nome e da alcune posizioni di riferimento (radiofari), anch esse individuate da un proprio nome e dalle coordinate geografiche. Il piano di volo, fatto prima della partenza, determina l ora, la quota e la velocità di passaggio su ciascun punto di riferimento. 9 Tipo Num_Volo Schema concettuale 2 Compagnia Num_passeggeri Volo Parte Ora Aeroporto Offre Servizio Occupa Arriva Ora Posizione Tipo Gratuito Passa_per Aerovia Piano_Volo Orario Quota Velocità Radiofaro Longitudine Latitudine 10 5
Schema Relazionale 2 VOLO(Num_Volo, Tipo, Compagnia, Num_passeggeri) AEROPORTO(, Posizione) SERVIZIO(Tipo, Gratuito) AEROVIA() RADIOFARO(Latitudine, Longitudine) PARTE(Num_Volo, Aeroporto, OraPartenza) ARRIVA(Num_Volo, Aeroporto, OraArrivo) OFFRE(Aeroporto, TipoServizio) PIANO_VOLO(Num_Volo, Latitudine, Longitudine, Orario, Quota, Velocità) OCCUPA(Num_Volo, Aerovia) PASSA_PER(Aerovia, Latitudine, Longitudine) 11 Esercizio 3: Compravendite Immobiliari La base di dati per la gestione di compravendite immobiliari dovrà comprendere le seguenti informazioni: Gli immobili, oggetto delle transazioni sono distinti in abitazioni e uffici e sono caratterizzati da posizione, via e città. Le abitazioni sono caratterizzate dal numero di locali e gli uffici dalla superficie in metri quadrati. Gli enti (persone o aziende) possono acquistare, vendere o affittare gli immobili. Per le persone si hanno il codice fiscale, il nome, la professione, l indirizzo e il numero di telefono. Per le aziende si hanno il codice fiscale, l indirizzo, il numero di telefono, l ammontare del capitale sociale e il numero di dipendenti. Per le transazioni si hanno la data, il numero di contratto, il tipo di pagamento e il valore. Le agenzie che effettuano le transazioni sono caratterizzate da codice fiscale, nome, indirizzo e numero di telefono. 12 6
Valore Data Num_Contratto Transazione (t,e) Vendita Affitto Ente Persona Azienda Professione Schema concettuale 3 Pagamento Vende Acquista Dà_in_Affitto Prende_in_Affitto Cod_Fisc Num_Tel (t,e) Trans_Imm Immobile (t,e) Abitazione Ufficio Cod_Fisc Agenzia Num_Locali Superficie Trans_Ag Cap_Sociale Num_Dipendenti 13 Num_Tel Posizione Via Città Schema Relazionale 3 AFFITTO(Num_Contratto, Valore, Data, Pagamento, Cod_Fisc_Ag, Posizione, Via, Città) VENDITA(Num_Contratto, Valore, Data, Pagamento, Cod_Fisc_Ag, Posizione, Via, Città) AGENZIA(Cod_Fisc,, Num_Tel) ABITAZIONE(Città, Via, Posizione, Num_Locali) UFFICIO(Città, Via, Posizione, Superficie) PERSONA(Cod_Fisc,, Num_Tel,, Professione) AZIENDA(Cod_Fisc,, Num_Tel, Cap_Sociale, Num_Dipendenti) ACQUISTA(Num_Contratto, Cod_Fisc) VENDE(Num_Contratto, Cod_Fisc) DA_IN_AFFITTO(Num_Contratto, Cod_Fisc) PRENDE_IN_AFFITTO(Num_Contratto, Cod_Fisc) 14 7
Esercizio 4: America s Cup La base di dati per la gestione delle regate della America s cup contiene le informazioni descritte nel seguito. Ogni regata è caratterizzata dal luogo, dalla data e dai dati sul percorso. Le barche concorrenti sono caratterizzate dal nome, dalla nazionalità, dal modello, dalla lunghezza, dalla stazza e dallo skipper. Le barche sono finanziate da sponsor, e cioè persone delle quali si conoscono il nome, il codice fiscale, l indirizzo e l ammontare della somma fornita. Si conosce, inoltre, il punteggio totalizzato da una barca in ogni regata cui ha partecipato. Ogni barca ha un equipaggio composto da almeno 15 persone, ciascuna con un proprio ruolo, che può variare di volta in volta. 15 Schema concettuale 4 Regata Percorso Partecipa Punteggio Luogo Data _regata Ammontare Nazionalità Sponsor Finanzia Persona (t,s) Barca Membro equipaggio È_addetto_a (15,N) Cod_Fisc (15,K) Num_Tel Inizio Ruolo Modello Stazza Lunghezza N_Vittorie Fine Periodo Finanziamento_Totale 16 8
Schema Relazionale 4 REGATA(_Regata, Data, Luogo, Percorso) BARCA(, Nazionalità, Modello, Lunghezza, Stazza, Finanziamento_Totale) PERSONA(Cod_Fisc,,, Num_Tel) MEMBRO_EQUIPAGGIO(Cod_Fisc, N_Vittorie) È_ADDETTO_A(, Nazionalità, Cod_Fisc, Inizio, Fine, Ruolo) FINANZIA(Cod_Fisc,, Nazionalità, Ammontare) PARTECIPA(, Nazionalità, _Regata, Data, Punteggio) 17 Esercizio 5: Gestione videoteca Si vuole progettare una base di dati per una videoteca. La videoteca gestisce il noleggio di videocassette, dove ogni videocassetta è caratterizzata da un codice interno, un codice internazionale, un titolo, un regista e un insieme di interpreti con i rispettivi ruoli. Per gli interpreti si memorizza solo il nome, il cognome e un codice identificativo. Ogni videocassetta inoltre appartiene a una o più categorie, come ad esempio: film d azione, romantico, dell orrore, ecc.. Le cassette vengono noleggiate dai clienti, i quali devono aver richiesto e ottenuto precedentemente una tessera che vale fino al termine dell anno solare di emissione; pertanto i clienti sono identificati dal numero della tessera. Per ogni cliente si memorizzano inoltre i seguenti dati: cognome, nome, indirizzo, città di residenza, telefono. Quando un cliente richiede la tessera non è obbligato a noleggiare subito una cassetta. Quando il cliente noleggia delle cassette, si apre un contratto di noleggio. Ogni contratto è caratterizzato da: numero, data di inizio del noleggio, data di scadenza del noleggio e prezzo complessivo. Al noleggio sono associati il cliente e le cassette (almeno una) noleggiate. Ovviamente una cassetta non può essere noleggiata contemporaneamente da più persone e, per evitare che ciò avvenga, occorre che il sistema sia in grado di indicare all utente se una cassetta è o non è disponibile. Si noti che si vuole avere disponibile sia la situazione dello stato di noleggio delle cassette, sia la descrizione completa di tutti i noleggi effettuati. Si noti che un cliente può restituire in date diverse le videocassette noleggiate con un unico contratto. 18 9
Schema concettuale 5 Tessera Città Telefono Data_Scadenza Categoria Noleggiata Appartiene Cliente Noleggio Videocassetta Stipulato_Da Fuori Cognome Numero Data Prezzo Interpreta Interprete _Interno _Internazionale Titolo Regista Ruolo Cognome 19 Schema Relazionale 5 CLIENTE(Tessera,, Cognome,, Città, Telefono) VIDEOCASSETTA(, _Internazionale, Titolo, Regista) CATEGORIA() INTERPRETE(, Cognome, ) NOLEGGIATA(Videocassetta, Contratto) FUORI(Videocassetta, Contratto) INTERPRETA(Videocassetta, Interprete, Ruolo) APPARTIENE(Videocassetta, ) 20 10
Esercizio 6: Fiori e Piante Si vuole progettare la base di dati per la gestione degli ordini di un grossista di piante e fiori. Gli articoli trattati dal grossista sono suddivisi in tre categorie: piante, fiori e accessori. Ogni articolo e caratterizzato da un codice, da una descrizione, dalla quantità disponibile in magazzino e dalla scorta minima. Inoltre i fiori sono caratterizzati dal loro nome scientifico e dalla durata media, mentre le piante sono caratterizzate dal nome scientifico e dal fatto di essere o non essere sempreverdi. Il grossista, quando effettua un ordine a un fornitore (caratterizzato da codice fiscale, ragione sociale, indirizzo, città e numero di telefono), emette un ordine univocamente numerato che descrive quali articoli vengono ordinati e in quali quantità. Alla consegna della merce da parte del fornitore, una bolla di arrivo accompagna la merce stessa. La bolla riporta un numero identificativo, è caratterizzata da una data di emissione e riporta quali articoli vengono consegnati e in quali quantità. La consegna della merce equivale ad evadere uno o più ordini, ma ogni ordine può essere evaso al più da una bolla. I dettaglianti caratterizzati da codice fiscale, ragione sociale, indirizzo, città e numero di telefono, ordinano e ricevono articoli dal grossista in maniera simile a quanto avviene tra grossista e fornitori. Ogni dettagliante emette ordini, numerati secondo una propria numerazione. Ogni ordine specifica quali articoli quali articoli vengono ordinati e in quali quantità. Quando il grossista consegna la merce, emette una bolla di consegna caratterizzata dalla data di emissione e da un codice univoco. Nella bolla di consegna si specificano il dettagliante destinatario, tutti gli articoli consegnati e la corrispondente quantità consegnata. Una bolla di consegna può evadere più di un ordine, ma un ordine può essere evaso al più da una bolla. 21 11