Progetto di Basi di Dati DATABASE GESTIONALE

55
Progetto di Basi di Dati DATABASE GESTIONALE Paolo Manfrin Ing. Informatica 81200333

description

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. - PowerPoint PPT Presentation

Transcript of Progetto di Basi di Dati DATABASE GESTIONALE

Page 1: Progetto di Basi di Dati DATABASE GESTIONALE

Progetto di Basi di DatiDATABASE GESTIONALE

Paolo Manfrin

Ing. Informatica

81200333

Page 2: Progetto di Basi di Dati DATABASE GESTIONALE

REQUISITI ESPRESSI DAL REQUISITI ESPRESSI DAL CLIENTECLIENTE

Si vuole realizzare un database Si vuole realizzare un database che consenta ad una Azienda di che consenta ad una Azienda di registrare la vendita di articoli e registrare la vendita di articoli e l’assistenza fornita ai clienti.l’assistenza fornita ai clienti.

Il database deve facilitare la Il database deve facilitare la tracciabilità di un dato articolo e tracciabilità di un dato articolo e dei relativi legami.dei relativi legami.

Page 3: Progetto di Basi di Dati DATABASE GESTIONALE

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.

Page 4: Progetto di Basi di Dati DATABASE GESTIONALE

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.

Page 5: Progetto di Basi di Dati DATABASE GESTIONALE

• FORNITORI:– Emettono le fatture– Possono avere conti correnti

• FATTURE– 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– Possiedono un codice univoco– Vengono catalogati– Possono avere una garanzia– Possono essere venduti– Possono essere elemento di intervento

• NOTE DI VENDITA– 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– 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.

RIELABORAZIONE DELLE FRASI PIU’ SIGNIFICATIVE

Page 6: Progetto di Basi di Dati DATABASE GESTIONALE

OPERAZIONI SUL DATABASE

• Le operazioni consentite sono:

1. FORNITORI– Aggiunta fornitore– Modifica dati fornitore– Eliminazione fornitore ( nei casi

consentiti)

2. CLIENTI– Aggiunta cliente– Modifica dati cliente– Eliminazione cliente ( nei casi consentiti )

3. ARTICOLO– Aggiunta articolo– Modifica articolo– Eliminazione articolo

4. FATTURA– Aggiunta Fattura– Modifica Fattura

5. NOTA DI VENDITA– Aggiunta Nota di Vendita– Modifica Vendita

6. BANCA– Aggiunta banca– Modifica banca– Eliminazione banca

7. CATEGORIE– Aggiunta categoria– Modifica categoria– Eliminazione categoria

8. SERVIZIO– Aggiunta servizo– Modifica servizio– Eliminazione Servizio

9. INTERVENTO– Aggiunta intervento– Modifica intervento

10. GARANZIA– Aggiunta Durata Garanzia– Eliminazione Durata Garanzia

Page 7: Progetto di Basi di Dati DATABASE GESTIONALE

11. MODALITA’ DI PAGAMENTO– Aggiunta della Modalità di Pagamento– Eliminazione della Modalità di Pagamento

12. CONTO CORRENTE– Aggiunta Conto Corrente– Modifica Conto Corrente

13. SCONTO– Aggiunta Sconto– Eliminazione Sconto

Page 8: Progetto di Basi di Dati DATABASE GESTIONALE

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.

Page 9: Progetto di Basi di Dati DATABASE GESTIONALE

GLOSSARIO DEI TERMINI 1/2ELEMENTO 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

Page 10: Progetto di Basi di Dati DATABASE GESTIONALE

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

Page 11: Progetto di Basi di Dati DATABASE GESTIONALE

REQUISITI DI OGNI ELEMENTO• FORNITORE

– Dati Personali: Codice Fornitore, Nome Fornitore, Indirizzo, Cap, Provincia, Num. Telefono, P.IVA o Codice Fiscale.

– Tipo di pagamento ( 30 / 60 / 90 gg, Contanti, …)

• CLIENTE– 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

Page 12: Progetto di Basi di Dati DATABASE GESTIONALE

• BANCA– Nome Banca– Indirizzo, CAP, Provincia.– Abi– Cab– Cin

• CATEGORIA– Categoria Articoli

• MODALITA_PAGAMENTO– Modalità di Pagamento– Scadenza in Giorni

• DURATA_GARANZIA– Anni di durata della garanzia

• SERVIZIO– Tipo di Servizio che l’Azienda eroga

• INTERVENTO– Costo Intervento– Numero Intervento– Codice Pagamento Effettuato– Pagamento Effettuato

• CONTRATTO– Data Inizio Contratto– Data Fine Contratto– Costo del Contratto– Descrizione Contratto

• SCONTO– Sconto applicabile ad un Contratto

• CONTO CORRENTE– Numero di Conto Corrente

• FATTURA– Numero Fattura del Fornitore– Data Fatturazione– Codice Pagamento Effettuato– Pagamento Effettuato

• NOTA_VENDITA– Numero di Vendita– Data Vendita– Codice Pagamento Effettuato– Pagamento Effettuato

• RICHIESTA– Data di Richiesta Intervento

Page 13: Progetto di Basi di Dati DATABASE GESTIONALE

PROGETTAZINE CONCETTUALE• Entità e Relazioni Principali• Estensioni• Generalizzazioni• Schema E-R Finale• Analisi delle Entità• Analisi delle Relazioni• Schema E-R Finale con Attributi

Page 14: Progetto di Basi di Dati DATABASE GESTIONALE

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

Page 15: Progetto di Basi di Dati DATABASE GESTIONALE

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

Page 16: Progetto di Basi di Dati DATABASE GESTIONALE

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

Page 17: Progetto di Basi di Dati DATABASE GESTIONALE

ANALISI DELLE GENERALIZZAZIONI 2 / 4

• Per i Clienti con Contratto di Assistenza è definito uno Sconto, scelto fra un insieme di possibili valori.

Page 18: Progetto di Basi di Dati DATABASE GESTIONALE

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

Page 19: Progetto di Basi di Dati DATABASE GESTIONALE

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

Page 20: Progetto di Basi di Dati DATABASE GESTIONALE

ESTENSIONE 2

• Inseriamo le Generalizzazioni riformulate precedentemente

Page 21: Progetto di Basi di Dati DATABASE GESTIONALE

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.

Page 22: Progetto di Basi di Dati DATABASE GESTIONALE

ESTENSIONE 3• Aggiungiamo l’Analisi appena fatta allo Schema

Concettuale redatto.

Page 23: Progetto di Basi di Dati DATABASE GESTIONALE

SCHEMA E-R

Page 24: Progetto di Basi di Dati DATABASE GESTIONALE

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

Page 25: Progetto di Basi di Dati DATABASE GESTIONALE

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

Page 26: Progetto di Basi di Dati DATABASE GESTIONALE

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

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, … )

DURATA_GARANZIA

Garanzia_Anni Anni di Durata della Garanzia. Candidata chiave primaria

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

Page 27: Progetto di Basi di Dati DATABASE GESTIONALE

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

Page 28: Progetto di Basi di Dati DATABASE GESTIONALE

• Generalizzazioni…

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

ARTICOLO_IN_GARANZIA

Nessun Attributo

ARTICOLO_FUORI_GARANZIA

Nessun Attributo

CLIENTE_SENZA_CONTRATTO

Nessun Attributo

ARTICOLO_NON_VENDUTO

Nessun Attributo

ARTICOLO_VENDUTO

Prezzo di Vendita Prezzo di vendita dell’articolo

Page 29: Progetto di Basi di Dati DATABASE GESTIONALE

ANALISI DELLE RELAZIONI

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.

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.

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.

Page 30: Progetto di Basi di Dati DATABASE GESTIONALE

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.

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.

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

Page 31: Progetto di Basi di Dati DATABASE GESTIONALE

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.

Page 32: Progetto di Basi di Dati DATABASE GESTIONALE

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.

Page 33: Progetto di Basi di Dati DATABASE GESTIONALE

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.

Page 34: Progetto di Basi di Dati DATABASE GESTIONALE

SCHEMA E-R FINALE CON RELATIVI ATTRIBUTI

Page 35: Progetto di Basi di Dati DATABASE GESTIONALE

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

Page 36: Progetto di Basi di Dati DATABASE GESTIONALE

TAVOLA DEI VOLUMICONCETTO 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

Page 37: Progetto di Basi di Dati DATABASE GESTIONALE

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

Page 38: Progetto di Basi di Dati DATABASE GESTIONALE

VALUTAZIONE DEI COSTIOPERAZIONE 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

Page 39: Progetto di Basi di Dati DATABASE GESTIONALE

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.

Page 40: Progetto di Basi di Dati DATABASE GESTIONALE

TAVOLA DEGLI ACCESSI

OPERAZIONE Visualizzare il fatturato di tutti i clienti entro un certo intervallo ( per cliente )

CONCETTO E / R ACCESSI TIPO DESCRIZIONE

CLIENTE E 1 L Seleziona il cliente

RICHIESTA R 1 L

INTERVENTO E 1 L Estrae il costo dagli interventi richiesti

CONSEGNA R 1 L

NOTA_VENDITA E 1 L Estrai le note di vendita che corrispondono al cliente selezionato

REGISTRAZIONE R 12 L

ARTICOLO E 12 L Legge il prezzo degli articoli venduti

OPERAZIONE Cercare data acquisto, data vendita, prezzi e fornitore di un certo articolo

CONCETTO E / R ACCESSI TIPO DESCRIZIONE

ARTICOLO E 1 L Seleziona l’articolo

REGISTRAZIONE R 1 L

NOTA_VENDITA E 1 L Estrai data di vendita

IPOTESI PER IL CALCOLO DEGLI ACCESSI:5000 Articoli Totali. Sono stati venduti il 90 % degli Articoli Totali: Articoli Venduti = 5000x90/100=4500Le note di vendita sono 400 da cui 4500 / 400 = 12 Articoli per ogni Nota_Vendita.

Page 41: Progetto di Basi di Dati DATABASE GESTIONALE

OPERAZIONE Visualizzare i fornitori la cui data di pagamento scade entro tot. Giorno ( per fornitore )

CONCETTO 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

OPERAZIONE Visualizzare i clienti che non rispettano la data di pagamento

CONCETTO E / R ACCESSI TIPO DESCRIZIONE

NOTA_VENDITA E 400 L Seleziona le note di vendita non ancora pagate

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 Visualizzare i fornitori che non sono ancora stati pagati ( per fornitore )

CONCETTO 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

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.

400 Note Vendita Totali. Ipotizziamo non pagate il 10% delle note vendita totali ossia 40 N.V. e “quindi” 40 clientiAnalogamente per il 10% degli Interventi Totali.

Page 42: Progetto di Basi di Dati DATABASE GESTIONALE

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.

Page 43: Progetto di Basi di Dati DATABASE GESTIONALE

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.

Page 44: Progetto di Basi di Dati DATABASE GESTIONALE

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.

• CONCLUSIONIDecido 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”.

Page 45: Progetto di Basi di Dati DATABASE GESTIONALE

• Prendiamo in considerazione la Generalizzazione che riguarda i Clienti con e senza contratto.

• ANALISII Clienti a Contratto possiedono un’unica Relazione in più che riguarda lo sconto applicato al contrattoI Clienti senza Contratto non possiedono attributi.Si deve tener conto che OGNI CONTRATTO che viene stipulato DEVE essere associato ad un CLIENTE.

• OSSERVAZIONII 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

Page 46: Progetto di Basi di Dati DATABASE GESTIONALE

• Prendiamo in considerazione la Generalizzazione che riguarda gli Articoli Venduti e Non Venduti.

• ANALISIGli 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”.

Page 47: Progetto di Basi di Dati DATABASE GESTIONALE

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_IVAMentre 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.

Page 48: Progetto di Basi di Dati DATABASE GESTIONALE

In VERDE sono contrassegnati gli attributi che riguardano esclusivamente i CLIENTI

In VIOLA è contrassegnato l’attributo che riguarda esclusivamente i FORNITORI

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 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

Page 49: Progetto di Basi di Dati DATABASE GESTIONALE

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.

Page 50: Progetto di Basi di Dati DATABASE GESTIONALE

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.

Page 51: Progetto di Basi di Dati DATABASE GESTIONALE

SCELTA DEGLI IDENTIFICATORI PRIMARI

• CLIENTE_FORNITORE– La chiave scelta è ID_CLIENTE_FORNITORE che identifica univocamente ogni persona, sia essa un

cliente, un fornitore o entrambi.

• FATTURA– 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– Dato che ogni ARTICOLO deve essere identificato univocamente scelgo per ogni ARTICOLO un

identificatore univoco ID_ARTICOLO

• CATEGORIA– Per la categoria viene impostato un ID_CATEGORIA come identificatore

• DURATA_GARANZIA– Per la Garanzia l’ID scelto coincide con l’unico attributo DURATA_GARANZIA espresso in anni (Numero

Intero)

• NOTA_VENDITA– 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– 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.

Page 52: Progetto di Basi di Dati DATABASE GESTIONALE

• CONTO_CORRENTE– Ogni numero di conto corrente è diverso da tutti gli altri e quindi il NUMERO_CONTO_CORRENTE è

l’identificatori primario.

• BANCA– I codici ABI CAB e CIN identificano univocamente ogni Banca e quindi possono essere scelti come Chiave

Primaria.

• SCONTO– La PERCENTUALE_SCONTO è scelto come identificatore dello sconto.

• CONTRATTO– 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– 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

Page 53: Progetto di Basi di Dati DATABASE GESTIONALE

SCHEMA E-R FINALE RISTRUTTURATO

Page 54: Progetto di Basi di Dati DATABASE GESTIONALE

SCHEMA RELAZIONALE DEDOTTO DALLO SCHEMA E-R FINALE

Le regole di Normalizzazione sono tutte verificate1 – Atomicità di ogni campo

2 – Dipendenza di tutti i campi non chiave dalla Chiave Primaria3 – Mutua Esclusione dei campi non chiave

Page 55: Progetto di Basi di Dati DATABASE GESTIONALE

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.