Progetto di Basi di Dati - Studenti Dipartimento di Ingegneria
by user
Comments
Transcript
Progetto di Basi di Dati - Studenti Dipartimento di Ingegneria
Progetto di Basi di Dati DATABASE GESTIONALE Paolo Manfrin Ing. Informatica 81200333 REQUISITI ESPRESSI DAL CLIENTE Si vuole realizzare un database che consenta ad una Azienda di registrare la vendita di articoli e l’assistenza fornita ai clienti. Il database deve facilitare la tracciabilità di un dato articolo e dei relativi legami. RACCOLTA INFORMAZIONI A CONTATTO COL CLIENTE 1/2 • PARTE DI ACQUISTO / VENDITA ARTICOLI: • • • Tutti gli Articoli presenti a magazzino provengono da Fornitori. Gli Articoli vengono posti a Magazzino osservando le Fatture di Acquisto emesse dai Fornitori. I Fornitori devono essere presenti in archivio e di questi si vogliono registrare alcune informazioni salienti. Ogni fornitore è possessore di partita Iva o codice fiscale. Si deve poter inserire l’anagrafica completa, numeri di telefono, modalità di pagamento con cui la nostra azienda salda i debiti col fornitore, eventuale banca di appoggio e dati bancari. Se si effettuano pagamenti su Conto Corrente deve essere registrato il numero di conto corrente dei fornitori. Tutti gli articoli in ingresso vengono catalogati univocamente e inseriti a magazzino. Ogni articolo appartiene ad una ed una sola Fattura di Acquisto Ogni articolo posto a magazzino deve appartenere ad una certa categoria. Di ogni articolo Caricato a magazzino viene registrato il fornitore di provenienza, la data di acquisto, il numero fattura con cui è stato acquistato e il prezzo di acquisto. Gli articoli restano nel magazzino fino a quando non vengono venduti. Gli articoli vengono venduti a Clienti. Per ogni vendita viene registrata una Nota di Vendita. La Nota di Vendita contiene l’elenco degli Articoli venduti ai clienti. Di ogni articolo venduto si deve tener nota della Data di Vendita e del Prezzo di Vendita Per ogni articolo venduto vengono registrati il cliente che acquista tale componente, la data di vendita, il prezzo di vendita, la modalità di pagamento concordata. I Clienti devono essere registrati con le stesse modalità dei fornitori: partita Iva o codice fiscale, modalità di pagamento convenute, eventuale banca di appoggio e dati bancari. L’Azienda vuole tener traccia anche del Conto Corrente dei Clienti nel caso essi paghino con Bonifico. Si vuole poter segnalare l’avvenuto pagamento da parte di un cliente e il codice pagamento. Si vuole poter segnalare il pagamento a favore di un fornitore e il codice di pagamento. • • • • • • • • • • • • • • • • RACCOLTA INFORMAZIONI A CONTATTO COL CLIENTE 2/2 • • • • • • • • • • • • • • PARTE DI ASSISTENZA: Ai Clienti vengono venduti gli Articoli e su questi l’Azienda può eseguire degli Interventi di Manutenzione. I Clienti quando necessitano di un Intervento su un certo Articolo ne fanno Richiesta. L’Intervento che l’Azienda esegue è dato da uno o più Servizi che l’Azienda offre. L’Assistenza può riguardare articoli in Garanzia oppure già Fuori Garanzia. Il tipo di Servizio può essere diverso ( installazione, riparazione, ampliamento, …) Si vuole tener traccia se un Articolo è ancora in Garanzia oppure è Fuori Garanzia La Garanzia decorre dall’istante di Vendita, non dalla data di Acquisto da parte dell’Azienda. La durata della Garanzia deve essere scelta fra un insieme di possibili valori. I Clienti possono avere un Contratto di Assistenza. L’Azienda è interessata a mantenere le informazioni contrattuali solamente finchè il contratto ha validità, poi possono essere rinnovate ( in caso di rinnovo del contratto ) o eliminate. I Clienti con Contratto di Assistenza godono di Sconti sugli Interventi concordati dal contratto. Gli Sconti devono essere scelti tra un elenco di valori possibili. Lo sconto da applicare al Cliente in possesso di contratto di assistenza viene deciso al momento della stipula del contratto e può variare da Cliente a Cliente. RIELABORAZIONE DELLE FRASI PIU’ SIGNIFICATIVE • FORNITORI: – – • FATTURE – – – • Contegono la lista degli articoli venduti Sono univocamente determinate Vogliamo poter segnalare l’avvenuto pagamento ed il codice del pagamento Le note vendita vengono consegnate ai clienti ed hanno una data di emissione / consegna CLIENTI – – – – • Possiedono un codice univoco Vengono catalogati Possono avere una garanzia Possono essere venduti Possono essere elemento di intervento NOTE DI VENDITA – – – – • Vengono pagate secondo una modalità di pagamento Contengono gli Articoli acquistati dall’azienda Vogliamo segnalare se sono state pagate e con quale codice di pagamento ARTICOLI – – – – – • Emettono le fatture Possono avere conti correnti Ricevono articoli accompagnati da una nota di vendita Possono richiedere interventi sugli articoli che hanno acquistato Possono avere un contratto di assistenza Pagano Note Vendita e Interventi secondo una modalità di pagamento. INTERVENTO – – – Richiesto dai Clienti ed eseguito su Articoli Composto da uno o più servizi. Vogliamo registrare la data di richiesta, l’avvenuto pagamento e il codice di tale pagamento. OPERAZIONI SUL DATABASE • Le operazioni consentite sono: 1. FORNITORI – – – 2. 3. ARTICOLO – – – 4. Aggiunta Fattura Modifica Fattura NOTA DI VENDITA – – 6. Aggiunta articolo Modifica articolo Eliminazione articolo FATTURA – – 5. Aggiunta cliente Modifica dati cliente Eliminazione cliente ( nei casi consentiti ) Aggiunta Nota di Vendita Modifica Vendita BANCA – – – Aggiunta banca Modifica banca Eliminazione banca CATEGORIE – – – Aggiunta fornitore Modifica dati fornitore Eliminazione fornitore ( nei casi consentiti) CLIENTI – – – 7. 8. SERVIZIO – – – 9. Aggiunta servizo Modifica servizio Eliminazione Servizio INTERVENTO – – 10. Aggiunta categoria Modifica categoria Eliminazione categoria Aggiunta intervento Modifica intervento GARANZIA – – Aggiunta Durata Garanzia Eliminazione Durata Garanzia 11. MODALITA’ DI PAGAMENTO – – 12. CONTO CORRENTE – – 13. Aggiunta della Modalità di Pagamento Eliminazione della Modalità di Pagamento Aggiunta Conto Corrente Modifica Conto Corrente SCONTO – – Aggiunta Sconto Eliminazione Sconto OPERAZIONI DI ANALISI • Dato un codice cliente, restituire il fatturato di un certo periodo. • Cercare data acquisto, data vendita, prezzi e fornitore di un certo articolo • Visualizzare i nomi dei clienti che non hanno rispettato i termini di pagamento e il ritardo di pagamento in termini di giorni di un dato acquisto ( da parte del cliente ). • Visualizzare i fornitori con cui l’azienda non ha ancora saldato i debiti, i giorni rimanenti alla scadenza o i giorni oltre la scadenza, e il numero fattura del fornitore di riferimento. GLOSSARIO DEI TERMINI 1/2 ELEMENTO DESCRIZIONE SINONIMI COLLEGAMENTI Fornitore Colui che emette le Fatture Fattura, Conto_Corrente, Banca, Cliente Colui che acquista Articoli e richiede gli Interventi Acquirente Nota_Vendita, Intervento, Conto_Corrente, Banca, Articolo Elemento acquistato da un Fornitore registrato su una Fattura e Venduto ad un Cliente tramite una Nota di Vendita. Articoli a magazzino appartengono a una data categoria Elemento Fattura, Nota_Vendita, Categoria, Garanzia Banca Elenco delle Banche utilizzate da Clienti e Fornitori Fornitore, Cliente, Conto_Corrente Categoria Categoria di appartenenza di ogni Articolo a magazzino Articolo Modalita_Pagamento Modalità di pagamento con cui l’Azienda paga le Fatture ai Fornitori Modalità di pagamento con cui i Clienti pagano le Note_Vendita e gli Interventi. Fattura, Nota_Vendita, Intervento Durata_Garanzia Durata stabilita per un Articolo coperto da Garanzia Articolo Servizio Identifica le singole manutenzioni che l’Azienda è in grado di erogare. Il Tipo di Servizio può essere diverso a seconda del problema. Intervento GLOSSARIO DEI TERMINI 2/2 ELEMENTO DESCRIZIONE SINONIMI COLLEGAMENTI Intervento L’Intervento costituisce l’Insieme di Servizi che l’Azienda attua su determinati Articoli Venduti, a seguito di una richiesta da parte di un Cliente Servizio, Articolo, Sconto, Cliente, Modalita_Pagamento. Contratto Il Contratto di Assistenza prevede uno sconto per gli Interventi di Assistenza forniti al Cliente da parte dell’Azienda. Sconto Sconto Sconto stabilito da Contratto, per ogni Cliente con Contratto di Assistenza. Lo Sconto viene applicato ad un Intervento Contratto, Intervento Conto_Corrente E’ il numero di Conto Corrente di un certo Fornitore o Cliente attivo presso una certa Banca Banca, Cliente, Fornitore Fattura Tutti gli Articoli acquistati dai Fornitori sono registrati in Fattura. Ogni Fattura è caratterizzato da una Data, un insieme di Articoli acquistati e un Numero di Fattura. Ogni Fattura viene pagata secondo una Modalità di Pagamento. Fornitore, Articolo, Modalita_Pagamento Nota_Vendita Gli Articoli possono essere venduti ai Clienti mediante una Nota di Vendita. Ogni Vendita è caratterizzata da una Modalità di Pagamento e una Data di Vendita. Ogni vendita possiede un Numero_Vendita univoco. Articolo, Cliente, Modalita_Pagamento Richiesta Un Cliente richiede un Intervento. Per ogni Intervento richiesto deve essere nota la data di richiesta Cliente, Intervento Esecuzione Un Intervento verrà Eseguito su uno o più Articoli. Intervento, Articolo REQUISITI DI OGNI ELEMENTO • FORNITORE – – • CLIENTE – – – – • Dati Personali: Codice Fornitore, Nome Fornitore, Indirizzo, Cap, Provincia, Num. Telefono, P.IVA o Codice Fiscale. Tipo di pagamento ( 30 / 60 / 90 gg, Contanti, …) Dati Personali: Codice Cliente, Nome Cliente, Indirizzo, Cap, Provincia, Num. Telefono, P.IVA o Codice Fiscale. Banche di appoggio Numeri di Conto Corrente Tipo di pagamento ( 30 / 60 / 90 gg, Contanti, …) ARTICOLO – – – – Nome Articolo Identificativo all’interno della categoria Prezzo di Acquista Prezzo di Vendita • BANCA – – – – – • CATEGORIA – • • • Costo Intervento Numero Intervento Codice Pagamento Effettuato Pagamento Effettuato CONTRATTO – – – – Data Inizio Contratto Data Fine Contratto Costo del Contratto Descrizione Contratto • Numero Fattura del Fornitore Data Fatturazione Codice Pagamento Effettuato Pagamento Effettuato NOTA_VENDITA – – – – Tipo di Servizio che l’Azienda eroga Numero di Conto Corrente FATTURA – – – – • Sconto applicabile ad un Contratto CONTO CORRENTE – Anni di durata della garanzia INTERVENTO – – – – • • SERVIZIO – SCONTO – Modalità di Pagamento Scadenza in Giorni DURATA_GARANZIA – • Categoria Articoli • MODALITA_PAGAMENTO – – • Nome Banca Indirizzo, CAP, Provincia. Abi Cab Cin Numero di Vendita Data Vendita Codice Pagamento Effettuato Pagamento Effettuato RICHIESTA – Data di Richiesta Intervento PROGETTAZINE CONCETTUALE • • • • • • • Entità e Relazioni Principali Estensioni Generalizzazioni Schema E-R Finale Analisi delle Entità Analisi delle Relazioni Schema E-R Finale con Attributi ENTITA E RELAZIONI PRINCIPALI • Vengono qui definite le entità e le relazioni principali: – Il Fornitore, l’Articolo e il Cliente hanno “vita a se stante” e sono quindi entità. – L’Acquisto e la Vendita esistono solamente a seguito di un legame tra Fornitore – Articolo e Articolo – Cliente rispettivamente. • Questo schema base mette in luce i principali attori del DB ESTENSIONE 1 • Acquisto e Vendita devono essere scomposti in modo tale da mettere in luce l’Apparteneza di ogni Articolo ad una certa Fattura emessa da un Fornitore. • L’Articolo può non essere venduto singolarmente al cliente e viene qui introdotta la Nota_Vendita che raccoglie la vendita di più Articoli in un istante preciso. • Aggiungiamo allo schema l’elemento Categoria. La Categoria ha vita indipendente dall’articolo in quanto esiste come tale. Essa è legata ad un Articolo a seguito di una Catalogazione. Quindi la Catalogazione esiste solamente se esiste un Articolo e questo appartiene ad una determinata Categoria. – – Categoria è una entità Catalogazione è una relazione ANALISI DELLE GENERALIZZAZIONI 1 / 4 • Prima Generalizzazione – Un Cliente può trovarsi in una sola delle seguenti condizioni: 1. Ha un Contratto di Assistenza 2. Non ha un Contratto di Assistenza Quindi tale generalizzazione è TOTALE ed ESCLUSIVA ANALISI DELLE GENERALIZZAZIONI 2 / 4 • Per i Clienti con Contratto di Assistenza è definito uno Sconto, scelto fra un insieme di possibili valori. ANALISI DELLE GENERALIZZAZIONI 3 / 4 • Seconda Generalizzazione – Un Articolo può trovarsi solamente in una sola delle seguenti categorie: 1. E’ in Garanzia 2. E’ fuori Garanzia Quindi tale generalizzazione è TOTALE ed ESCLUSIVA ANALISI DELLE GENERALIZZAZIONI 4 / 4 • Terza Generalizzazione – Un Articolo può trovarsi solamente in una sola delle seguenti categorie: 1. E’ stato venduto 2. Non è stato venduto Quindi tale generalizzazione è TOTALE ed ESCLUSIVA • E quindi riformulando le considerazioni fatte sinora, verranno inserite in nota vendita solamente gli Articoli Venduti ESTENSIONE 2 • Inseriamo le Generalizzazioni riformulate precedentemente ANALISI ARTICOLO CLIENTE • Aggiungiamo ora la parte relativa all’intervento di assistenza. • Analisi delle iterazioni: – Il Cliente richiede un Intervento – L’ Intervento comporta uno o più Servizi – L’ Intervento può riguardare uno o più Articoli Venduti. ESTENSIONE 3 • Aggiungiamo l’Analisi appena fatta allo Schema Concettuale redatto. SCHEMA E-R ANALISI DELLE ENTITA’ FORNITORE Fornitore_ID Codice Univoco che Identifica il Fornitore. Candidata chiave primaria Fornitore_Denominazione Nome del Fornitore Fornitore_Anagrafica ATTRIBUTO COMPOSTO Fornitore_Telefono Il fornitore può possedere più numeri di telefono a seconda dei vari reparti, personale, … . Esso è dunque un ATTRIBUTO MULTIVALORE Fornitore_Codice_Fiscale Codice Fiscale del Fornitore Fornitore_Partita_IVA Numero di Partita IVA del Fornitore CLIENTE Cliente_ID Codice Univoco che Identifica il Cliente. Candidata chiave primaria Cliente_Nome Nome del Cliente Cliente_Cognome Cognome del Cliente Cliente_Anagrafica ATTRIBUTO COMPOSTO Cliente_Telefono Il Cliente può possedere diversi numeri di Telefono, come ad esemio Casa, Ufficio, Cellulare,… ed è quindi un ATTRIBUTO MULTIVALORE Cliente_Codice_Fiscale Codice Fiscale del Fornitore Cliente_Partita_IVA Numero di Partita IVA del Fornitore ARTICOLO Articolo_ID Codice Univoco che Identifica l’Articolo. L’ID_Articolo con la categoria di apparteneza potrebbe essere la candidata chiave primaria. L’ID_Articolo identifica la Posizione dell’Articolo all’interno della categoria. Articolo_Descrizione Descrizione dell’Articolo Articolo_Prezzo_Acquisto Prezzo di Acquisto dell’Articolo BANCA Banca_Nome Descrizione della Banca Banca_ABI Codice ABI della Banca Banca_CAB Codice CAB della Banca Banca_CIN Codice CIN della Banca Banca_Anagrafica Anagrafica della Banca. ATTRIBUTO COMPOSTO CATEGORIA ID_Categoria Codice Univoco che Identifica le diverse categorie. Candidata chiave primaria Categoria_Descrizione Descrizione della Categoria MODALITA_PAGAMENTO Pagamento_ID Codice Univoco che Identifica le diverse modalità di pagamento. Candidata chiave primaria Pagamento_Descrizione Descrizione del Tipo di Pagamento. Pagamento_Scadenza Termine Ultimo di Scadenza della Modalità di Pagamento DURATA_GARANZIA Garanzia_Anni Anni di Durata della Garanzia. Candidata chiave primaria SERVIZIO Servizio_ID Codice Univoco che Identifica l’operazione di Assistenza che l’Azienda è in grado di fornire. Candidata chiave primaria Descrizione_Servizio Descrizione della Tipologia di Assistenza ( Installazione, Manutenzione, Formattazione, … ) INTERVENTO Intervento_ID Codice Univoco che Identifica il numero di Intervento. Candidata chiave primaria Intervento_Costo Costo dell’intervento senza applicazione di sconto. Codice_Pagamento Codice del Documento che attesta l’avvenuto pagamento SCONTO Sconto_Percentuale Percentuale di Sconto applicata ad un Contrattol . Candidata chiave primaria CONTO_CORRENTE Conto_Corrente_Numero Numero di Conto Corrente . Candidata chiave primaria FATTURA Fattura_Numero Numero della Fattura del Corrente Anno Codice_Pagamento Codice del Documento che attesta l’avvenuto pagamento NOTA_VENDITA Nota_Vendita_Numero Numero della Nota di Vendita del Corrente Anno Nota_Vendita_Data Data di emissione della Nota di Vendita Codice_Pagamento Codice del Documento che attesta l’avvenuto pagamento • Generalizzazioni… ARTICOLO_IN_GARANZIA Nessun Attributo ARTICOLO_FUORI_GARANZIA Nessun Attributo ARTICOLO_NON_VENDUTO Nessun Attributo ARTICOLO_VENDUTO Prezzo di Vendita Prezzo di vendita dell’articolo CLIENTE_CON_CONTRATTO Contratto_ID Codice Univoco del Contratto Contratto_Data_Stipulazione Data in cui il Contratto è stato stipulato Contratto_Data_Scadenza Data di Scadenza del Contratto Contratto_Costo Costo del Contratto CLIENTE_SENZA_CONTRATTO Nessun Attributo ANALISI DELLE RELAZIONI EMISSIONE Collega il Fornitore a ciascun Fattura da lui emessa . CARDINALITA’ UNO A MOLTI Un Fornitore registrato può emettere nessuna o più Fatture. Ogni fattura emessa appartiene ad uno ed un solo Fornitore. Emissione_Data Data di emissione della Fattura. CONTIENE Collega Ciascuna Fattura con gli Articoli di cui è composta. Tutti gli Articoli a magazzino vengono registrati a seguito della presenza di una Fattura di Acquisto. CARDINALITA’ UNO A MOLTI Una Fattura può contenere la lista di più Articoli acquistati. Ciascun Articolo a magazzino proviene da una ed una sola Fattura. PAGAMENTO_FATTURA Ogni Fattura viene pagata secondo una certa modalità di Pagamento. CARDINALITA’ UNO A MOLTI Una Fattura può essere pagata secondo una ed una sola Modalità di Pagamento Una Modalità di Pagamento può essere utilizzata per il Pagamento di più Fatture. CATALOGAZIONE Collega il Fornitore a ciascun Articolo con la relativa Categoria di Appartenenza CARDINALITA’ UNO A MOLTI Un Articolo deve sempre essere inserito in una ed una sola Categoria. In una certa Categoria possono essere inseriti nessuno o più Articoli. REGISTRAZIONE Ogni articolo che viene venduto viene registrato in una Nota di Vendita CARDINALITA’ UNO A MOLTI Un Articolo può non essere venduto. Gli Articoli venduti vengono Registrati in una ed una sola Nota di Vendita. Una Nota di vendita contiene almeno un Articolo. PAGAMENTO NOTA VENDITA Ogni Nota di Vendita viene pagata secondo una certa modalità di Pagamento. CARDINALITA’ UNO A MOLTI Una Nota di Vendita può essere pagata secondo una ed una sola Modalità di Pagamento. Una Modalità di Pagamento può essere utilizzata per il Pagamento di più Note di Vendita. CONSEGNA Le Note di Vendita vengono consegnate sempre ad un certo Cliente ad una certa data. CARDINALITA’ UNO A MOLTI Una Nota di Vendita appartiene sempre ad uno ed un solo Cliente. Un Cliente può avere a suo carico nessuna o più Note di Vendita. Consegna_Data Data di Consegna RICHIESTA Un Cliente può richiedere uno o più Interventi CARDINALITA’ UNO A MOLTI Un Intervento può essere richiesto da uno ed un solo Cliente Un Cliente può richiedere nessuno o più Interventi. Richiesta_Data Data di Richiesta dell’Intervento SCELTA Ogni Intervento è costituito dalla applicazione di uno o più Servizi forniti dall’Azienda. CARDINALITA’ MOLTI A MOLTI Un Intervento richiede di eseguire uno o più Servzi. Ogni Servizio può essere applicato a nessuno o più Interventi. ESECUZIONE Gli Interventi vengono eseguiti sugli Articoli Venduti acquistati dai Clienti CARDINALITA’ MOLTI A MOLTI Un Intervento può essere eseguito su uno o più Articoli Su un dato Articolo possono essere eseguiti nessuno o più Interventi. SELEZIONE Tutti gli Articoli in Garanzia possiedono una certa durata della Garanzia CARDINALITA’ UNO A MOLTI Ogni Articolo in garanzia possiede una ed un’unica durata della garanzia. Una certa Durata di Garanzia può essere utilizzata da nessuno o più articoli DEFINITO Per Ogni Contratto è definito uno Sconto. CARDINALITA’ UNO A MOLTI Uno sconto può essere utilizzato per nessuno o più Contratti Ogni Contratto ha definito uno ed un solo Sconto. PAGAMENTO INTERVENTO Gli Interventi vengono pagati secondo una certa Modalità di Pagamento. CARDINALITA’ UNO A MOLTI Ogni Intervento viene pagato secondo una ed unica Modalità di Pagamento. Una Modalità di Pagamento può essere utilizzata da nessuno o più Pagamenti di Intervento. APPOGGIO Clienti e Fornitori possono avere una Banca di Appoggio CARDINALITA’ MOLTI A MOLTI Un Cliente o un Fornitore può avere nessuna o più Banche di Appoggio. Una Banca può essere la Banca di Appoggio di nessuno o più Clienti e Fornitori. TITOLARE Clienti e Fornitori possono essere Titolari di Conti Correnti CARDINALITA’ UNO A MOLTI Un Cliente o un Fornitore può essere titolare di nessuno o più Conti Correnti. Un Conto Corrente appartiene ad uno ed un solo Cliente o Fornitore. ATTIVO I Conti Correnti sono attivi presso le Banche CARDINALITA’ UNO A MOLTI Un Conto Corrente può essere attivo presso una ed una sola Banca. Una Banca può gestire uno o più Conti Corrente. APPLICAZIONE Gli Sconti vengono Applicati agli Interventi CARDINALITA’ UNO A MOLTI Uno Sconto può essere applicato a nessuno o più Interventi. Gli Interventi di Clienti con Contratto hanno sicuramente uno sconto Gli Interventi di Clienti senza Contratto non hanno sconto. SCHEMA E-R FINALE CON RELATIVI ATTRIBUTI PROGETTAZINE LOGICA • • • • • • • • Tavola dei volumi Valutazione dei costi Tavola degli Accessi Analisi delle Ridondanze Eliminazione delle Generalizzazioni Partizionamento & Accorpamento E / R Attributi Multipli & Composti Scelta degli Identificatori Primari TAVOLA DEI VOLUMI CONCETTO TIPO VOLUME Fornitore E 30 Cliente E 1000 Articolo E 5000 Articoli Venduti E 4500 Articoli non Venduti E 5000 Banca E 20 Categoria E 200 Modalita_Pagamento E 10 Durata_Garanzia E 5 Servizio E 30 Intervento E 200 Con Contratto E 200 Senza Contratto E 800 Sconto E 5 Conto_Corrente E 200 Fattura E 500 Nota di Vendita E 400 In Garanzia E 5000 Fuori Garanzia E 5000 CONCETTO TIPO VOLUME Emissione R 500 Contiene R 5000 Pagamento Fattura R 500 Catalogazione R 2000 Registrazione R 400 Pagamento Nota Vendita R 400 Corrispondenza R 400 Richiesta R 200 Scelta R 200 Esecuzione R 300 Selezione E 5000 Definito E 200 Pagamento Intervento E 200 Appoggio E 100 Titolare E 200 Attivo E 200 Applicazione E 200 VALUTAZIONE DEI COSTI OPERAZIONE TIPO di OPERAZIONE FREQUENZA OPERAZIONE Inserimento nuovo Fornitore Interattiva 1 ogni 2 mesi Modifica dati Fornitore Interattiva 1 ogni 3 mesi Eliminazione Fornitore Interattiva 1 all’anno Inserimento nuovo Cliente Interattiva 1 alla settimana Modifica dati Cliente Interattiva 2 al mese Eliminazione Cliente Interattiva 1 all’anno Aggiunta Articolo Interattiva 100 alla settimana Modifica Articolo Interattiva 5 al mese Eliminazione Articolo Interattiva 100 all’anno Aggiunta Fattura Interattiva 10 alla settimana Modifica Fattura Interattiva 1 al mese Aggiunta Nota Vendita Interattiva 8 alla settimana Modifica Nota Vendita Interattiva 2 al mese Aggiunta Banca Interattiva 1 ogni 6 mesi Modifica Banca Interattiva 1 ogni 4 mesi Eliminazione Categoria Interattiva 1 all’anno Aggiunta Categoria Interattiva 1 alla settimana Modifica Categoria Interattiva 1 al mese Eliminazione Categoria Interattiva 1 ogni 6 mesi OPERAZIONE TIPO di OPERAZIONE FREQUENZA OPERAZIONE Aggiunta Servizio Interattiva 1 ogni 6 mesi Modifica Servizio Interattiva 1 ogni 4 mesi Eliminazione Servizio Interattiva 1 ogni 8 mesi Aggiunta Intervento Interattiva 10 alla settimana Modifica Intervento Interattiva 1 al mese Visualizzare il fatturato di tutti i clienti Batch 1 al mese Cercare la data di vendita di un certo articolo Interattiva 1 alla settimana ( Garanzia ) Visualizzare i fornitori la cui data di pagamento scade entro tot. giorno Interattiva 1 alla settimana Visualizzare i clienti che non rispettano la data di pagamento Batch 1 al mese Visualizzare i fornitori che non sono ancora stati pagati Batch 1 al mese NOTA: Alcune operazioni di modifica devono essere fatte con cautela e non ammesse a tutti gli utenti del database. Questo per evitare che vengano eliminate informazioni importanti o dati che devono essere conservati per costituire lo storico, come ad esempio le Fatture, i Fornitori che le hanno emesse, i Clienti a cui vengono fatturati gli acquisti e gli Interventi. Allo stesso modo gli Articoli devono essere conservati per un certo periodo prima di poter essere eliminat.i Gli Articoli devono essere conservati al fine di conservare informazioni sulla Garanzia. Le operazioni sopradescritte sono state ottenute tenendo conto della regola dell’ 80 / 20. Il 20% delle operazioni determinano l’80% dell’Attività totale svolta sul Database. TAVOLA DEGLI ACCESSI IPOTESI PER IL CALCOLO DEGLI ACCESSI: 5000 Articoli Totali. Sono stati venduti il 90 % degli Articoli Totali: Articoli Venduti = 5000x90/100=4500 Le note di vendita sono 400 da cui 4500 / 400 = 12 Articoli per ogni Nota_Vendita. OPERAZIONE CONCETTO Visualizzare il fatturato di tutti i clienti entro un certo intervallo ( per cliente ) E/R ACCESSI TIPO CLIENTE E 1 L RICHIESTA R 1 L INTERVENTO E 1 L CONSEGNA R 1 L NOTA_VENDITA E 1 L REGISTRAZIONE R 12 L ARTICOLO E 12 L OPERAZIONE CONCETTO DESCRIZIONE Seleziona il cliente Estrae il costo dagli interventi richiesti Estrai le note di vendita che corrispondono al cliente selezionato Legge il prezzo degli articoli venduti Cercare data acquisto, data vendita, prezzi e fornitore di un certo articolo E/R ACCESSI TIPO ARTICOLO E 1 L REGISTRAZIONE R 1 L NOTA_VENDITA E 1 L DESCRIZIONE Seleziona l’articolo Estrai data di vendita 500 fatture / 30 fornitori = 17 fatture per fornitore. Consideriamo che il 70% delle fatture sia già stato pagato. 17x30/100=5 fatture ancora da pagare per fornitore che richiedono di analizzare la data di scadenza. OPERAZIONE CONCETTO Visualizzare i fornitori la cui data di pagamento scade entro tot. Giorno ( per fornitore ) E/R ACCESSI TIPO DESCRIZIONE FORNITORE E 1 L Seleziona il fornitore EMISSIONE R 17 L Seleziona le date di emissione di tutte le fatture emesse dal fornitore FATTURA E 17 L Seleziona le fatture emesse dal fornitore selezionato MODALITA_PAGAMENTO R 5 L Seleziona la scadenza del pagamento per ogni fattura selezionata 400 Note Vendita Totali. Ipotizziamo non pagate il 10% delle note vendita totali ossia 40 N.V. e “quindi” 40 clienti Analogamente per il 10% degli Interventi Totali. OPERAZIONE CONCETTO Visualizzare i clienti che non rispettano la data di pagamento E/R ACCESSI TIPO NOTA_VENDITA E 400 L CONSEGNA R 40 L INTERVENTO E 200 L Seleziona gli interventi non ancora pagati RICHIESTA R 20 L Seleziona l’ID delle richieste d’Intervento CLIENTE E 40 + 20 L Seleziona i nomi dei clienti che non ancora pagato OPERAZIONE CONCETTO DESCRIZIONE Seleziona le note di vendita non ancora pagate Visualizzare i fornitori che non sono ancora stati pagati ( per fornitore ) E/R ACCESSI TIPO DESCRIZIONE FATTURE E 17 L Seleziona le fatture non ancora pagate EMISSIONE R 17 L Seleziona l’ID delle fatture non ancora pagate FORNITORE E 1 L Seleziona i nomi dei fornitori non ancora pagati ELIMINAZIONE DELLE RIDONDANZE ANALISI: Dallo schema E-R si nota la presenza di una ridondanza relativa alla ENTITA’ “SCONTO”. Per i CLIENTI con CONTRATTO è definito UNO ED UN UNICO SCONTO. Lo SCONTO per i CLIENTI con CONTRATTO è applicato a TUTTI GLI INTERVENTI richiesti da tali CLIENTI. CONCLUSIONI: Lo SCONTO applicato agli INTERVENTI è altresì derivabile dal CLIENTE CON CONTRATTO che hanno richiesto l’intervento. ANALISI: Un’altra ridondanza riguarda le entità BANCA, CONTO_CORRENTE, i CLIENTI e i FORNITORI. Per i clienti e i fornitori i dati bancari hanno senso solo in presenza di un Conto Corrente. Quindi le Banche di Appoggio di Clienti e Fornitori sono derivabili dai Conti Correnti, che richiedono di essere registrati presso una banca. CONCLUSIONI: Si elimina la relazione “APPOGGIO” e si tiene traccia esclusivamente dei numeri di CONTO CORRENTE e tramite questi sarà possibile risalire alle Banche di Appoggio. ELIMINAZIONE DELLE GENERALIZZAZIONI • • • Prendiamo in considerazione la Generalizzazione degli Articoli che riguarda la Garanzia. Gli Articoli si dividono in ARTICOLI IN GARANZIA e ARTICOLI FUORI GARANZIA. Per gli ARTICOLI IN GARANZIA viene selezionata la DURATA DELLA GARANZIA • ANALISI: La Garanzia ha effetto dalla Data di Vendita dell’Articolo. La Durata della Garanzia, assieme alla Data di Vendita permette di risalire alla Data di Scadenza della Garanzia. Dopo che un Articolo in garanzia “esaurisce” la sua Garanzia, viene classificato come ARTICOLO FUORI GARANZIA. • CONCLUSIONI Decido di accorpare le ENTITA’ FIGLIE NELLA ENTITA’ PADRE. Quindi spariscono le ENTITA’ “In Garanzia” e “Fuori Garanzia” . Le informazioni relative alla Garanzia saranno derivabili dalla Data di Vendita e dalla Durata della Garanzia che sarà quindi attribuita all’entità “ARTICOLO”. • Prendiamo in considerazione la Generalizzazione che riguarda i Clienti con e senza contratto. • ANALISI I Clienti a Contratto possiedono un’unica Relazione in più che riguarda lo sconto applicato al contratto I Clienti senza Contratto non possiedono attributi. Si deve tener conto che OGNI CONTRATTO che viene stipulato DEVE essere associato ad un CLIENTE. • OSSERVAZIONI I Clienti senza Contratto non possiedono nulla in più rispetto all’Entità padre “CLIENTE” e quindi possono essere ACCORPATI all’ENTITA’ CLIENTE • CONCLUSIONI: Tutti i tipi di cliente, con e senza contratto vengono accorpati all’entità padre “CLIENTE”. Ogni contratto stipulato DEVE essere associato ad un CLIENTE. Questo si traduce in una relazione 1-1 tra Contratto e Cliente con l’OBBLIGO di specificare un Cliente ogni qual volta si stipula un contratto. Analisi della relazione “STIPULAZIONE” Un generico Cliente può Stipulare oppure no un Contratto di Assistenza. Un Contratto di Assistenza è SEMPRE associato ad uno ed un solo Cliente, che identifica quindi i Clienti con Contratto. Quindi la relazione è di tipo 1-1 • Prendiamo in considerazione la Generalizzazione che riguarda gli Articoli Venduti e Non Venduti. • ANALISI Gli Articoli che non vengono venduti non possiedono alcuna caratteristica in più rispetto agli “Articoli” Gli Articoli che vengono venduti invece hanno un prezzo di vendita. • CONCLUSIONI: L’entità figlio “Articolo non venduto” viene accorpato all’entità padre “Articolo”. L’entità figlio “Articolo venduto” viene mantenuto SEPARATO dall’entità “Articolo” e con questo relazionato mediante una relazione che chiameremo “DETTAGLIO_VENDITA”. PARTIZIONAMENTO E ACCORPAMENTO DI ENTITA’ E RELAZIONI • Analizzando lo schema E-R ristrutturato si nota che l’Entità Cliente e l’Entità Fornitore possiedono molti attributi comuni e qualche relazione comune. • Inoltre nessuno esclude che un Fornitore possa essere anche un Cliente e un Cliente possa essere un Fornitore. • Ovviamente registrare informazioni circa un Cliente ed un Fornitore che si riducono alla medesima Persona o Azienda porta ad una Ridondanza di Informazioni. • E’ dunque lecito apportare una modifica allo schema E-R ristrutturato accorpando le Entità Cliente e Fornitore e modificando leggermente gli Attributi di questa nuova Entità al fine di garantirne la consistenza. • ANALISI DEGLI ATTRIBUTI DI CLIENTE E FORNITORE ATTRIBUTI DEL CLIENTE ATTRIBUTI DEL FORNITORE Cliente_ID Fornitore_ID Cliente_Nome Fornitore_Denominazione Cliente_Cognome Cliente_Anagrafica Fornitore_Anagrafica Cliente_Telefono Fornitore_Telefono Cliente_Codice_Fiscale Fornitore_Codice_Fiscale Cliente_Partita_IVA Fornitore_Partita_IVA Si possono fondere gli attributi ID, Anagrafica, Telefono, Codice_Fiscale e Partita_IVA Mentre vengono mantenuti distinti i campi Nome, Cognome e Denominazione. Vengono aggiunti due ulteriori Attributi: “Cliente” e “Fornitore” che identificano se la Persona che interagisce con l’Azienda è un Cliente, un Fornitore o entrambi. Delle Regole di Validazione consentiranno di compilare i campi Nome, Cognome e / o Denominazione a seconda che la Persona sia un Cliente o un Fornitore. In VERDE sono contrassegnati gli attributi che riguardano esclusivamente i CLIENTI In VIOLA è contrassegnato l’attributo che riguarda esclusivamente i FORNITORI ATTRIBUTI DELL’ ENTITA’ CLIENTE_FORNITORE ID Nome Nome… se è un cliente Cognome Cognome… se è un cliente Denominazione Denominazione… se è un fornitore Anagrafica Attributo Composto Telefono Attributo Multiplo Codice_Fiscale Partita_IVA Selezione_Fornitore Dichiara che è un Fornitore Selezione_Cliente Dichiara che è un Cliente VINCOLI DI INTEGRITA’ SUI DATI All’interno dell’Entità CLIENTE_FORNITORE deve essere possibile distinguere SOLO I FORNITORI, SOLO I CLIENTI o i CLIENTI & FORNITORI. Le FATTURE devono poter essere EMESSE solo da FORNITORI. INTERVENTI e NOTE_VENDITA devono esser associate solamente ai CLIENTI. ATTRIBUTI MULTIPLI • Dallo schema E-R è evidenziato l’attributo multiplo TELEFONO associato all’Entità CLIENTE_FORNITORE. Tale attributo è un attributo multiplo in quanto ad un Cliente o Fornitore possono essere associati nessuno o più numeri di telefono. Dato che non si sa a priori quanti numeri di telefono possa possedere un cliente o fornitore, creiamo una relazione 1 a molti come sottoriportato… ATTRIBUTI COMPOSTI • Prendiamo in considerazione l’Anagrafica Cliente_Fornitore. • L’Attributo composto ANAGRAFICA viene suddiviso nei 4 attributi elementari INDIRIZZO CITTA’ PROVINCIA CAP che vengono associati all’entità CLIENTE_FORNITORE. ATTRIBUTI COMPOSTI • Prendiamo in considerazione l’Anagrafica della Banca. • L’Attributo composto ANAGRAFICA viene suddiviso nei 4 attributi elementari INDIRIZZO CITTA’ PROVINCIA CAP che vengono associati all’entità BANCA. SCELTA DEGLI IDENTIFICATORI PRIMARI • CLIENTE_FORNITORE – • FATTURA – • La Nota di Vendita viene identificata dall’ID_NOTA_VENDITA. Tenendo conto che le note di vendita vengono rinumerate da 1 ogni anno aggiungiamo all’ID scelto anche la DATA della relazione CONSEGNA ottenendo l’ID: ID_NOTA_VENDITA + DATA_CONSEGNA INTERVENTO – • Per la Garanzia l’ID scelto coincide con l’unico attributo DURATA_GARANZIA espresso in anni (Numero Intero) NOTA_VENDITA – • Per la categoria viene impostato un ID_CATEGORIA come identificatore DURATA_GARANZIA – • Dato che ogni ARTICOLO deve essere identificato univocamente scelgo per ogni ARTICOLO un identificatore univoco ID_ARTICOLO CATEGORIA – • La fattura viene identificata dal ID_FATTURA ma questo non basta in quanto diversi fornitori potrebbero consegnare all’Azienda fatture con uno stesso numero fattura. L’identificatore diventa ID_FATTURA + ID_CLIENTE_FORNITORE. Anche questo non basta in quanto i fornitori reinizializzano il numero fattura da zero ogni anno e quindi all’Azienda potrebbero pervenire due fatture con lo stesso numero da parte dello stesso fornitore in anni diversi. Quindi accorpando la DATA della relazione EMISSIONE otteniamo la chiave primaria scelta: ID_FATTURA + ID_CLIENTE_FORNITORE + DATA_EMISSIONE ARTICOLO – • La chiave scelta è ID_CLIENTE_FORNITORE che identifica univocamente ogni persona, sia essa un cliente, un fornitore o entrambi. Anche gli Interventi vengono contraddistinti dall’ID_INTERVENTO + DATA_RICHIESTA in quanto vengono reinizializzati ogni anno. SERVIZIO – I Servizi che l’Azienda eroga vengono distinti univocamente dall’ ID_SERVIZIO. • CONTO_CORRENTE – • BANCA – • Dato che un contratto è al più associato ad un certo CLIENTE si sceglie come chiave primaria una chiave esterna costituito cioè dall’ ID_CLIENTE_FORNITORE. MODALITA_PAGAMENTO – • La PERCENTUALE_SCONTO è scelto come identificatore dello sconto. CONTRATTO – • I codici ABI CAB e CIN identificano univocamente ogni Banca e quindi possono essere scelti come Chiave Primaria. SCONTO – • Ogni numero di conto corrente è diverso da tutti gli altri e quindi il NUMERO_CONTO_CORRENTE è l’identificatori primario. Le modalità di pagamento vengono identificate univocamente dall’ ID_MODALITA_PAGAMENTO ARTICOLO_VENDUTO – La scelta ovvia consiste nell’utilizzare la chiave esterna ID dell’entità ARTICOLO SCHEMA E-R FINALE RISTRUTTURATO SCHEMA RELAZIONALE DEDOTTO DALLO SCHEMA E-R FINALE Le regole di Normalizzazione sono tutte verificate 1 – Atomicità di ogni campo 2 – Dipendenza di tutti i campi non chiave dalla Chiave Primaria 3 – Mutua Esclusione dei campi non chiave PARTICOLARITA’ DELLE MASCHERE DI INSERIMENTO Viene attivata di default la Selezione Cliente o la Selezione Fornitore per rispettare i vincoli di integrità sui dati rispettati precedentemente esplicitati. Una accortezza analoga è stata utilizzata per impedire che un Cliente possa emettere fatture.