PROGETTO DI BASI DI DATI PER UNA DITTA
TESINA PER L'ESAME DI BASI DI DATI
MIOTTO MATTEO
UNIVERSITA' DEGLI STUDI DI TRIESTE
CORSO DI LAUREA TRIENNALE IN INGEGNERIA INFORMATICA
A.A. 2008/09
Trieste, 20 febbraio 2009
ANALISI DEI REQUISITI
• Requisiti espressi in linguaggio naturale
• Operazioni previste
• Glossario dei termini
• Strutturazione dei requisiti
Si vuole realizzare una base di dati per una società che si occupa di isolamenti acustici e termici interni ed esterni,
dipinture di ogni genere, pavimenti in resine e piccoli restauri.
I dati che si vogliono memorizzare riguardano il personale, i clienti, i cantieri (terminati e in esecuzione), i fornitori, gli
stati delle proposte di preventivo, gli stati dei pagamenti delle fatture, le ore lavorate dal personale e il listino prezzi
(prestazioni) della società. Si desidera tener traccia dei preventivi proposti vari clienti e delle fatture emesse.
Il personale della ditta è composto dai soci, dai dipendenti e dai prestatori di manodopera che, occasionalmente, si
uniscono ai primi per la realizzazione di una qualche opera.
Per quanto riguarda ognuna di queste persone si intende tener conto dei dati personali quali nome, cognome, indirizzo,
recapiti telefonici ed e-mail (anche multipli). Per quanto riguarda i dipendenti rappresentiamo anche codice fiscale, data
assunzione e tipo di contratto. Per quanto riguarda i soci si desidera memorizzare il codice fiscale. Per i prestatori di
manodopera (in genere artigiani) si vuole memorizzare la loro partita iva.
Si vuole inoltre tener traccia delle ore lavorate dal personale nei vari cantieri, indicando il giorno e il relativo numero di
ore lavorate.
Per i clienti, identificati da un codice, si vogliono memorizzare recapiti telefonici (anche multipli) e indirizzi e-mail (anche
multipli). I clienti possono essere privati o imprese. Se i clienti rientrano nel primo caso memorizziamo codice fiscale,
nome, cognome e indirizzo mentre, se rientrano nel secondo caso, rappresentiamo il nome dell’impresa, la partita iva, il
possibile sito web, l’indirizzo della sede legale e l’indirizzo della sede operativa.
Ogni cliente può possedere più cantieri, richiedere più preventivi e pagare più fatture.
Per i cantieri, si vogliono memorizzare dati quali nome, sito in cui si trova, data inizio lavori, presunta data di termine dei
lavori e lo stato del cantiere (in fase di realizzazione o terminato).
A scopo di promemoria per la società, si vogliono mantenere i codici delle bolle, emesse dai fornitori, riguardanti il
materiale acquistato per i cantieri.
Per quanto riguarda i fornitori rappresentiamo il nome, la partita iva, la sede legale e quella operativa, il possibile sito
web, i recapiti telefonici e l'indirizzo e-mail.
Per il listino delle prestazioni, ogni prestazione è identificata da un codice ed è rappresentata da dati quali nome
prestazione, prezzo unitario (per tutte le prestazioni l’unità di misura è €/mq) e breve descrizione.
RACCOLTA DEI REQUISTI
REQUISITI ESPRESSI IN LINGUAGGIO NATURALE [OTTENUTI DALL' INTERVISTA CON IL CLIENTE]
Per i preventivi, numerati, rappresentiamo la data di emissione, la data di scadenza e l’importo totale.
Si vuole memorizzare anche il dettaglio preventivo, rappresentato dall’elenco delle prestazioni, le relative quantità e
importo (non comprensivo di iva).
Per quanto riguarda la proposta di preventivo si vuole tener conto dello stato di presa visione (si o no) e di accettazione
(si o no).
Per le fatture emesse, i dati da memorizzare sono il numero della fattura (progressivo), la data di emissione, il codice
fiscale o la partita iva del cliente, il totale imponibile, il totale iva e il totale comprensivo di iva.
Si vuole memorizzare il dettaglio fattura, rappresentato dall’elenco delle prestazioni, le relative quantità, l’importo e l’iva
applicabile ad ogni prestazione (dato che quest’ultima può essere variabile). Per quanto riguarda il dettaglio non è
importante memorizzare l’ordine con il quale i dettagli compaiono nella fattura.
Per quanto riguarda il pagamento di una fattura rappresentiamo lo stato (pagato o non pagato), la modalità di
pagamento e la data di pagamento.
RACCOLTA DEI REQUISTI
REQUISITI ESPRESSI IN LINGUAGGIO NATURALE [OTTENUTI DALL' INTERVISTA CON IL CLIENTE]
Operazioni su
Descrizione
PRESTAZIONE
Operazioni su
Descrizione
PROPOSTA PREVENTIVO
Inserisci dati prestazione
Assegnare la proposta di un preventivo ad
un cliente
DETTAGLIO PREVENTIVO
Aggiorna dati relativi alla proposta
Inserisci dati dettaglio di un preventivo
Aggiorna dati dettaglio di un preventivo
FORNITORE
Inserisci dati fornitore
DETTAGLIO FATTURA
Aggiorna dati fornitore
Inserisci dati dettaglio di una fattura
Aggiorna dati dettaglio di un a fattura
CANTIERE
Inserisci dati cantiere
PREVENTIVO
Aggiorna dati cantiere
Inserisci dati preventivo
Aggiorna dati preventivo
PROPRIETA’
Assegnare ad un cliente il possesso di un
cantiere
FATTURA
Inserisci dati fattura
Aggiorna dati fattura
ORE LAVORATE
Ad una data precisata, assegnare il numero
di ore lavorate da un componente del
personale in un cantiere
CLIENTE
Inserisci dati cliente
Aggiorna dati cliente
PERSONALE
Inserisci dati personale
Aggiorna dati personale
Cancella dati personale
PAGAMENTO FATTURA
Assegnare il pagamento di una fattura ad
un cliente per un cantiere di sua proprietà
Aggiorna dati relativi al pagamento
BOLLA
Assegnare ad un cantiere una bolla emessa
da un fornitore
OPERAZIONI PREVISTE
OPERAZIONI PREVISTE SULLA BASE DI DATI
ALTRE OPERAZIONI
Visualizzare fatture con i relativi dettagli
Visualizzare preventivi con i relativi dettagli
Visualizzare lo stato dei pagamenti con i relativi cantieri e clienti
Visualizzare lo stato delle proposte di preventivo con i relativi clienti
Dato un intervallo di tempo e un componente del personale , visualizzare le ore lavorate da esso in tale periodo
Dato un cantiere visualizzare tutte le bolle emesse per tale cantiere
OPERAZIONI PREVISTE
OPERAZIONI PREVISTE SULLA BASE DI DATI
TERMINE
DESCRIZIONE
SINONIMI
Ditta
Organizzazione che esegue le prestazioni attraverso la manodopera del
suo personale, emette fatture e proposte di preventivi ai clienti.
Società
Indirizzo
Prestazione
Dettaglio
fattura
Insieme delle proprietà: Via, Numero civico, CAP, Città, Provincia
Sito
Dettaglio fattura, Dettaglio
preventivo
Attività lavorativa, quantificata in €/mq (prezzo unitario).
Componente della fattura contenente gli elementi: prestazione,
quantità, iva, importo.
COLLEGAMENTI LOGICI
Dettaglio
Fattura, Prestazione
Fattura
Documento emesso dalla ditta verso il cliente, recante un importo per
le prestazioni fornite in un certo cantiere.
Cantiere
Luogo, di proprietà di un cliente,dove il personale della ditta esegue le
prestazioni.
Si precisa che 2 cantieri differenti possono trovarsi nello stesso luogo.
Personale
Persone fisiche che compongono la ditta e svolgono per essa le
prestazioni nei cantieri. Il personale è composto dai soci, dai
dipendenti e dai prestatori di manodopera.
Cantiere
Soggetto che richiede alla ditta una o più prestazioni in uno o più
cantieri di sua proprietà. Può richiedere proposte di preventivo ed
effettuare pagamenti di fatture. Può essere privato o un impresa.
Pagamento, Proposta, Cantiere
Preventivo
Documento emesso dalla ditta verso il cliente, recante una proposta
riguardante l’importo da pagare a seguito di prestazioni che potranno
essere eseguite in un futuro cantiere. Può essere accettato o meno dal
cliente.
Dettaglio Preventivo, Proposta
Dettaglio
preventivo
Componente del preventivo contenente gli elementi: prestazione,
quantità, importo.
Preventivo, Prestazione
Pagamento
Azione svolta dal cliente verso la ditta a seguito dell’esecuzione di una
o più prestazioni. Il pagamento può avvenire in varie modalità (ad es.
in contanti, assegno, bonifico), e può assumere 2 stati (pagamento
avvenuto e non).
Fattura, Cantiere, Cliente
Cliente
Pagamento, Dettaglio fattura
Opera
Bolla, Cliente, Personale
GLOSSARIO DEI TERMINI
GLOSSARIO DEI TERMINI
TERMINE
DESCRIZIONE
Proposta
Azione svolta dalla ditta verso il cliente nella quale la prima si offre di
eseguire una o più prestazioni ad un certo prezzo. La proposta può
venire accettata o meno.
Preventivo, Cliente
Documento emesso da un fornitore a seguito del rifornimento di
materiale ad un certo cantiere. La bolla possiede un codice.
Fornitore, Cantiere
Colui (inteso come negozio, rivenditore, grossista ecc) che fornisce il
materiale necessario al fine di eseguire le prestazioni.
Bolla
Bolla
Fornitore
SINONIMI
COLLEGAMENTI LOGICI
GLOSSARIO DEI TERMINI
GLOSSARIO DEI TERMINI
Si esegue in questo punto la decomposizione del testo dei requisiti in gruppi di frasi relative agli stessi concetti. In caso di frasi
complesse, può venir effettuata una semplificazione e una standardizzazione delle stesse.
FRASI DI CARATTERE GENERALE
Si vuole realizzare una base di dati per una ditta che si occupa di isolamenti acustici e termici interni ed esterni, dipinture di
ogni genere, pavimenti in resine e piccoli restauri.
I dati che si vogliono memorizzare riguardano il personale, i clienti, i cantieri (terminati e in esecuzione), i fornitori, gli stati
delle proposte di preventivo, gli stati dei pagamenti delle fatture, le ore lavorate dal personale e il listino prezzi (prestazioni)
della ditta. Si desidera tener traccia dei preventivi proposti vari clienti e delle fatture emesse.
FRASI RELATIVE AL PERSONALE
Il personale della ditta è composto dai soci, dai dipendenti e dai prestatori di manodopera che, occasionalmente, si uniscono ai
primi per la realizzazione di una qualche cantieri.
Per il personale rappresentiamo dati personali quali nome, cognome, indirizzo, recapiti telefonici ed e-mail. Per i dipendenti
rappresentiamo anche codice fiscale, data assunzione e tipo di contratto. Per quanto riguarda i soci rappresentiamo il codice
fiscale. Per i prestatori di manodopera (in genere artigiani) rappresentiamo la loro partita iva.
FRASI RELATIVE ALLE ORE LAVORATE
Per le ore lavorate dal personale rappresentiamo data e numero di ore.
FRASI RELATIVE AI CLIENTI
Per i clienti, identificati da un codice, rappresentiamo recapiti telefonici (anche multipli) e indirizzi e-mail. I clienti possono
essere privati o imprese. Per i clienti privati rientrano nel rappresentiamo codice fiscale, nome, cognome e indirizzo. Per le
imprese rappresentiamo il nome dell’impresa, la partita iva, il possibile sito web, l’indirizzo della sede legale e l’indirizzo della
sede operativa.
Ogni cliente può possedere più cantieri, richiedere più preventivi e pagare più fatture.
STRUTTURAZIONE DEI REQUISITI
STRUTTURAZIONE DEI REQUISTI
Per i cantieri rappresentiamo nome, indirizzo, data inizio lavori, presunta data di termine dei lavori e lo stato del cantiere (in
fase di realizzazione o terminato).
FRASI RELATIVE ALLE BOLLE
Per le bolle rappresentiamo il loro codice.
FRASI RELATIVE ALLE PRESTAZIONI
Per le prestazioni rappresentiamo un codice identificativo, nome prestazione, prezzo unitario (per tutte le prestazioni l’unità di
misura è €/mq) e breve descrizione.
FRASI RELATIVE ALLE FATTURE
Per le fatture rappresentiamo il numero della fattura (progressivo), la data di emissione, il codice fiscale o la partita iva del
cliente, il totale imponibile, il totale iva e il totale comprensivo di iva.
FRASI RELATIVE AL DETTAGLIO FATTURA
Per il dettaglio fattura rappresentiamo la quantità, l’importo e l’iva applicabile.. Per il dettaglio fattura non è importante
memorizzare l’ordine con il quale i dettagli fatture compaiono.
FRASI RELATIVE AL PAGAMENTO
Per il pagamento della fattura rappresentiamo lo stato (pagato o non pagato), la modalità di pagamento e la data di
pagamento.
FRASI RELATIVE AI PREVENTIVI
Per i preventivi, numerati, rappresentiamo la data di emissione, la data di scadenza (dato che il preventivo ha validità per 30
giorni) e l’importo totale.
STRUTTURAZIONE DEI REQUISITI
FRASI RELATIVE AI CANTIERI
Per il dettaglio preventivo, rappresentiamo la quantità e l’importo (non comprensivo di iva).
FRASI RELATIVE ALLA PROPOSTA DI PREVENTIVO
Per la proposta di preventivo si vuole tener conto dello stato di presa visione (si o no) e di accettazione (si o no).
FRASI RELATIVE AI FORNITORE
Per quanto riguarda i fornitori rappresentiamo il nome, la partita iva, la sede legale e quella operativa, il possibile sito web, i
recapiti telefonici e l'indirizzo e-mail.
STRUTTURAZIONE DEI REQUISITI
FRASI RELATIVE AL DETTAGLIO PREVENTIVO
PROGETTAZIONE CONCETTUALE
• Analisi delle entità e delle relazioni
• Costruzione schema Entità-Relazione
• Business rules
Per lo sviluppo dello schema concettuale si considera una strategia mista (o ibrida). Come previsto da tale strategia:
•
Si definisce uno schema scheletro contenente i concetti principali dell’applicazione.
•
Successivamente si considereranno questi concetti, anche separatamente, e si procederà per raffinamenti
successivi, fino ad ottenere lo schema entità relazione finale.
SCHEMA SCHELETRO
ENTITA’ COINVOLTE
Preventivo
Fattura
Cliente
Cantiere
Personale
RELAZIONI COINVOLTE
Proposta
Pagamento
Proprietà
Ore lavorate
PROGETTAZIONE CONCETTUALE
STRATEGIA DI PROGETTO
Il cliente della ditta può essere privato oppure un impresa .
La generalizzazione dell’entità cliente è dunque totale ed esclusiva dato
che un cliente o è privato o è un impresa.
SPECIALIZZAZIONE ENTITA' PERSONALE
Il personale della ditta può essere suddiviso in dipendenti, soci e
prestatori di manodopera.
La generalizzazione che ne consegue è totale ed esclusiva, dato che
ciascun componente del personale può esser solamente o dipendente o
socio o prestatore di manodopera.
PROGETTAZIONE CONCETTUALE
SPECIALIZZAZIONE ENTITA' CLIENTE
Il concetto di fattura ha proprietà significative (numero, totale imponibile, totale iva, totale, ecc.). Esso, però, è composto da
un elenco di prestazioni, ognuna avente quantità e importi differenti. Anche le prestazioni hanno delle proprietà significative
(ad es. prezzo unitario) ed hanno un esistenza autonoma. E' possibile dunque distinguere due entità, prestazione e fattura,
associate da un concetto comune: il dettaglio, ovvero la rappresentazione della prestazione nelle quantità effettuate che la
fattura vuole addebitare.
RAFFINAMENTO ENTITA' PREVENTIVO
Il raffinamento di tale entità viene effettuatoper le stesse motivazioni che hanno spinto il raffinamento dell’entità fattura.
Si distingueranno dunque le entità fattura e preventivo, associate dalla relazione dettaglio preventivo.
PROGETTAZIONE CONCETTUALE
RAFFINAMENTO ENTITA' FATTURA
Affinché si possano eseguire le prestazioni all’interno di un cantiere, è
necessario ordinare il materiale.
Solamente per scopi informativi (interni alla ditta), si desidera mantenere
traccia delle bolle che i fornitori emettono alla consegna del materiale.
A tal fine vengono aggiunte l’entità fornitore e la relazione emissione
bolla che associa le due entità (cantiere e fornitore).
In tal modo si potrà tenere conto delle bolle emesse da un certo
fornitore per il materiale fornito ad un certo cantiere.
PROGETTAZIONE CONCETTUALE
ULTERIORI ENTITA' E RELAZIONI
Lo schema E-R finale deriva dall’accorpamento dei vari raffinamenti applicati allo schema scheletro.
PROGETTAZIONE CONCETTUALE
SCHEMA ENTITA' RELAZIONE FINALE
PRESTAZIONE
ID PRESTAZIONE
E’ il codice univoco assegnato ad ogni prestazione.
NOME
E’ il nome assegnato alla prestazione.
PREZZO UNITARIO
E’ il prezzo riferito ad una unità di prestazione. Ogni unità è espressa in €/mq.
DESCRIZIONE
Descrive brevemente in cosa consiste la prestazione.
FATTURA
NUMERO
E’ un intero positivo, unico per ogni fattura. Le fatture vengono emesse con numerazione
progressiva.
DATA EMISSIONE
Rappresenta la data corrispondente all’emissione della fattura.
TOTALE IMPONIBILE
Rappresenta l’importo totale (escluso di iva) ricavato dalla somma degli importi dei dettagli che
compongono la fattura.
TOTALE IVA
Rappresenta l’importo totale relativo alla sola iva. Esso viene ricavata dalla somma degli importi iva
dei dettagli che compongono la fattura.
TOTALE
Rappresenta l’importo totale comprensivo di iva. Esso viene calcolato dalla somma del totale
imponibile e del totale iva.
PREVENTIVO
NUMERO
E’ un intero positivo, unico per ogni preventivo.
IMPORTO TOTALE
Rappresenta l’importo totale calcolato dalla somma degli importi dei dettagli.
DATA EMISSIONE
Rappresenta la data corrispondente all’emissione del preventivo.
DATA SCADENZA
Rappresenta la data corrispondente all’ultimo giorno di validità del preventivo.
PROGETTAZIONE CONCETTUALE
ANALISI DELLE ENTITA'
CLIENTE
ID CLIENTE
Codice univoco assegnato ad ogni cliente.
TELEFONO
Numero di telefono del cliente. (Attributo multiplo)
E-MAIL
Indirizzo e-mail del cliente.
PRIVATO
NOME
Nome del cliente.
COGNOME
Cognome del cliente.
CODICE FISCALE
Codice personale del cliente.
INDIRIZZO
Residenza del cliente privato. (Attributo composto)
IMPRESA
NOME
Nome dell’impresa.
PARTITA IVA
Codice identificativo dell’impresa.
SEDE LEGALE
Indirizzo della sede legale. (Attributo composto)
SEDE OPERATIVA
Indirizzo della sede operativa. (Attributo composto)
SITO WEB
Indirizzo del sito web dell’impresa.
PROGETTAZIONE CONCETTUALE
ANALISI DELLE ENTITA'
CANTIERE
NOME
Nome assegnato ad ogni cantiere.
DATA INIZIO
Rappresenta la data corrispondente all’inizio dei lavori nel cantiere.
DATA FINE
Rappresenta la data corrispondente al termine dei lavori nel cantiere. Più precisamente, se il
cantiere è in esecuzione, rappresenta la presunta data di termine dei lavori.
STATO
Rappresenta lo stato dei lavori nel cantiere, che possono essere in esecuzione o terminati.
INDIRIZZO
Sito in cui si trova il cantiere. (Attributo composto)
FORNITORE
PARTITA IVA
Codice univoco che identifica il fornitore.
NOME
Nome del fornitore.
SEDE OPERATIVA
Indirizzo della sede operativa del fornitore. (Attributo composto)
SEDE LEGALE
Indirizzo della sede legale del fornitore. (Attributo composto)
SITO WEB
Sito web del fornitore.
TELEFONO
Numero di telefono del fornitore. (Attributo multiplo)
E-MAIL
Indirizzo e-mail del fornitore.
PROGETTAZIONE CONCETTUALE
ANALISI DELLE ENTITA'
PERSONALE
NOME
Nome del componente del personale.
COGNOME
Cognome del componente del personale.
INDIRIZZO
Residenza del componente del personale. (Attributo composto)
TELEFONO
Numero di telefono del componente del personale. (Attributo multiplo)
E-MAIL
Indirizzo e-mail del componente del personale.
DIPENDENTE
CODICE FISCALE
Codice personale identificativo.
DATA ASSUNZIONE
Data di assunzione.
TIPO CONTRATTO
Indica il tipo di contratto che lega il dipendente alla ditta.
SOCIO
CODICE FISCALE
Codice personale identificativo.
PRESTATORE DI MANODOPERA
PARTITA IVA
Codice identificativo del prestatore di manodopera.
PROGETTAZIONE CONCETTUALE
ANALISI DELLE ENTITA'
DETTAGLIO FATTURA
Collega le entità “Prestazione” e “Fattura”. Descrive i dettagli delle fatture. Rappresenta la quantità delle prestazioni effettuate
ed addebitate nella relativa fattura.
CARDINALITA’
Molti a molti
Una prestazione può comparire in nessun dettaglio delle fatture oppure
comparire nel dettaglio di più fatture.
Una fattura deve contenere nel suo dettaglio una o più prestazioni, ma almeno
una.
QUANTITA’
Rappresenta la quantità di una prestazione.
IMPONIBILE
Rappresenta l’importo della prestazione eseguita nelle quantità indicate. Si ottiene dal prodotto
della quantità per il prezzo unitario della prestazione.
IVA
Rappresenta l’iva applicabile al dettaglio (compreso tra 0 e 1).
TOTALE IVA
Rappresenta il valore della sola IVA applicata all’importo. Si ottiene dal prodotto del valore
“imponibile” e il valore “IVA”
DETTAGLIO PREVENTIVO
Collega le entità “Prestazione” e “Preventivo”. Descrive i dettagli dei preventivi. Rappresenta la quantità delle prestazioni che
verranno svolte.
CARDINALITA’
Molti a molti
Una prestazione può comparire in nessun dettaglio dei preventivi oppure
comparire nel dettaglio di più preventivi.
Un preventivo deve contenere nel suo dettaglio una o più prestazioni, ma
almeno una.
QUANTITA’
Rappresenta la quantità di una prestazione.
IMPORTO
Rappresenta l’importo della prestazione nelle quantità indicate. Si ottiene dal prodotto della
quantità per il prezzo unitario della prestazione.
PROGETTAZIONE CONCETTUALE
ANALISI DELLE RELAZIONE E DELLE CARDINALITA'
PAGAMENTO
Collega le entità “Fattura” e “Cantiere”. Rappresenta il pagamento di una fattura relativamente alle prestazioni eseguite in un
cantiere.
CARDINALITA’
Uno a molti
Una fattura deve essere associata al pagamento di uno ed un solo cantiere.
Un cantiere può essere associato al pagamento di una sola fattura.
Un cliente può effettuare il pagamento di più fatture, riguardanti più cantieri.
STATO
Indica se il pagamento è stato effettuato o meno. Assume i valori “si” se è stato pagato, “no”
altrimenti.
TIPO PAGAMENTO
Rappresenta la modalità con la quale è stato o sarà effettuato il pagamento.
DATA PAGAMENTO
Rappresenta la data corrispondente al pagamento.
PROPOSTA
Collega le entità “Preventivo” e “Cliente”. Rappresenta la proposta di preventivo destinata ad un cliente.
CARDINALITA’
Uno a molti
Un preventivo deve essere proposto ad uno ed un solo cliente.
Ad un cliente possono venir proposti uno o più preventivi.
ACCETTAZIONE
Indica se la proposta di preventivo è stata accettata dal cliente. Assume i valori “si” o “no”.
PRESA VISIONE
Indica se la proposta di preventivo è stata vista. Assume i valori “si” o “no”.
PROGETTAZIONE CONCETTUALE
ANALISI DELLE RELAZIONE E DELLE CARDINALITA'
PROPRIETA’
Collega le entità “Cliente” e “Cantiere”. Rappresenta il possesso di uno o più cantieri da parte di un cliente.
CARDINALITA’
Uno a molti
Un cliente può essere il proprietario di uno o più cantieri.
Un cantiere può essere di proprietà di uno ed un solo cliente.
EMISSIONE BOLLA
Collega le entità “Fornitore” e “Cantiere”. Rappresenta le bolle emesse dai fornitori verso i cantieri.
CARDINALITA’
CODICE BOLLA
Molti a molti
Un fornitore può emettere bolle (a nessun cantiere oppure) a più cantieri.
Un cantiere può ricevere le bolle emesse da più fornitori.
Rappresenta il codice riportato sulla bolla considerata.
ORE LAVORATE
Collega le entità “Personale” e “Cantiere”. Rappresenta le ore che i dipendenti hanno svolto nei cantieri.
CARDINALITA’
Molti a molti
In un cantiere possono lavorare più componenti del personale, ma può anche
non lavorarci nessuno.
Un componente del personale può lavorare in uno o più cantieri, oppure in
nessuno.
DATA
Rappresenta la data nella quale le ore sono state svolte.
NUMERO ORE
Rappresenta il numero di ore svolte.
PROGETTAZIONE CONCETTUALE
ANALISI DELLE RELAZIONE E DELLE CARDINALITA'
Descrizione di concetti non esprimibili con il modello concettuale
REGOLE DI VINCOLO
Una prestazione deve avere un prezzo unitario maggiore o uguale a zero
I dettagli di una fattura devono contenere prestazioni presenti in quantità maggiori
di zero
I dettagli di un preventivo devono contenere prestazioni presenti in quantità
maggiori di zero
I valori dell’attributo IVA nel dettaglio fattura sono valori compresi tra 0 e 1.
In un preventivo, la data di scadenza deve essere successiva a quella di emissione
In un preventivo il valore di “accettazione” può essere vero solamente se “presa
visione” è vero.
La data di pagamento di una fattura deve essere coincidente o successiva alla data
di emissione della fattura stessa.
Il numero di ore lavorate da un dipendente deve essere maggiore di zero.
PROGETTAZIONE CONCETTUALE
BUSINESS RULES
Descrizione di concetti non esprimibili con il modello concettuale
REGOLE DI DERIVAZIONE
In dettaglio fattura, l’IMPONIBILE di ciascun dettaglio si ottiene moltiplicando la
QUANTITA’ per il PREZZO UNITARIO della prestazione relativa.
In dettaglio fattura, il TOTALE IVA di ciascun dettaglio si ottiene moltiplicando il
valore IVA per IMPONIBILE.
In dettaglio preventivo, IMPORTO di ciascun dettaglio si ottiene moltiplicando la
QUANTITA’per il PREZZO UNITARIO della prestazione relativa.
In fattura il TOTALE IMPONIBILE si ottiene sommando i valori di IMPONIBILE di tutti i
dettagli della fattura.
In fattura il TOTALE IVA si ottiene sommando TOTALE IVA di ciascun dettaglio
relativo a tale fattura.
In fattura il TOTALE si ottiene sommando i valori di TOTALE IVA e IMPONIBILE
In preventivo l’attributo IMPORTO TOTALE si ottiene sommando i valori IMPORTO
relativi a ciascun dettaglio relativo al preventivo considerato.
PROGETTAZIONE CONCETTUALE
BUSINESS RULES
PROGETTAZIONE CONCETTUALE
SCHEMA ENTITA' RELAZIONE FINALE CON ATTRIBUTI E CARDINALITA'
PROGETTAZIONE LOGICA
• Analisi delle prestazioni
• Analisi delle ridondanze schema E-R
• Eliminazione generalizzazioni
• Partizionamento/accorpamento di concetti
• Scelta identificatori principali
• Schema E-R ristrutturato
• Traduzione verso il relazionale
[TAVOLA DEI VOLUMI]
TAVOLA DEI VOLUMI
CONCETTO
TIPO
VOLUME
COMMENTO
Prestazione
E
100
Fattura
E
400
Preventivo
E
500
Cliente
E
300
Cantiere
E
400
Personale
E
20
Fornitore
E
20
Dettaglio fattura
R
2000
Assumendo che ogni fattura, mediamente, contenga 5 prestazioni
Dettaglio preventivo
R
2500
Assumendo che ogni preventivo, mediamente, contenga 5 prestazioni
Pagamento
R
400
Basandosi sulla cardinalità, i pagamenti saranno tanti quante sono le
fatture
Proposta
R
500
Basandosi sulla cardinalità , le proposte saranno tante quanti sono i
preventivi
Proprietà
R
400
Basandosi sulla cardinalità , le proprietà saranno tante quanti sono i
cantieri
Ore lavorate
R
3000
Considerando che i dati riguardanti le ore vengono mantenuti per un
periodo pari a 5 mesi (150gg) e che il volume del personale è pari a 20
Emissione bolla
R
800
Supponendo l’emissione media di 2 bolle per cantiere e considerando il
volume del l’entità cantiere
Il volume si presuppone uguale a quello della fattura
Nella tavola dei volumi vengono riportati tutti i concetti dello schema concettuale (entità e relazioni) con il volume previsto a
regime.
PROGETTAZIONE LOGICA
ANALISI DELLE PRESTAZIONI SU SCHEMA E-R
[TAVOLA DELLE OPERAZIONI]
TAVOLA DELLE OPERAZIONI
OPERAZIONE
Inserisci dati prestazione
TAVOLA DELLE OPERAZIONI
TIPO
FREQUENZA
I
2/anno
TIPO
FREQUENZA
I
3/mese
10/settimana
Assegnare il pagamento di una
fattura ad un cliente per un
cantiere di sua proprietà
10/settimana
Aggiorna dati relativi al
pagamento
I
3/mese
I
1/settimana
5/settimana
Assegnare la proposta di un
preventivo ad un cliente
Aggiorna dati relativi alla
proposta
I
1/settimana
Inserisci dati fornitore
I
1/anno
Aggiorna dati fornitore
I
1/anno
Inserisci dati cantiere
I
1/mese
Aggiorna dati cantiere
I
1/mese
Assegnare ad un cliente il
possesso di un cantiere
I
1/mese
Ad una data precisata,
assegnare il numero di ore
lavorate da un componente del
personale in un cantiere
I
1/giorno
Assegna ad un cantiere una
bolla emessa da un fornitore
I
1/settimana
Inserisci dati dettaglio di un
preventivo
I
Aggiorna dati dettaglio di un
preventivo
I
Inserisci dati dettaglio di una
fattura
I
Aggiorna dati dettaglio di una
fattura
I
10/settimana
Inserisci dati preventivo
I
1/settimana
Aggiorna dati preventivo
I
1/settimana
Inserisci dati fattura
I
3/mese
Aggiorna dati fattura
I
3/mese
Inserisci dati cliente
I
1/mese
Aggiorna dati cliente
I
4/anno
Inserisci dati personale
I
1/anno
Aggiorna dati personale
I
1/anno
Cancella dati personale
I
1/anno
OPERAZIONE
Nella tavola delle operazioni si riporta, per ogni operazione, la frequenza prevista e un simbolo indicante se l'operazione è
interattiva (I) o batch(B).
PROGETTAZIONE LOGICA
ANALISI DELLE PRESTAZIONI SU SCHEMA E-R
[TAVOLA DELLE OPERAZIONI]
TAVOLA DELLE OPERAZIONI
OPERAZIONE
TIPO
FREQUENZA
Visualizzare fatture con i relativi dettagli
B
1/settimana
Visualizzare preventivi con i relativi dettagli
B
1/settimana
Visualizzare lo stato dei pagamenti con i relativi cantieri e clienti
B
1/settimana
Visualizzare lo stato delle proposte di preventivo con i relativi clienti
B
1/settimana
Dato un intervallo di tempo e un componente del personale , visualizzare le
ore lavorate da esso in tale periodo
I
Dato un cantiere visualizzare tutte le bolle emesse per tale cantiere
B
1/mese
1/mese
Nella tavola delle operazioni si riporta, per ogni operazione, la frequenza prevista e un simbolo indicante se l'operazione è
interattiva (I) o batch(B).
PROGETTAZIONE LOGICA
ANALISI DELLE PRESTAZIONI SU SCHEMA E-R
In questo frammento di schema sono coinvolte
principalmente le seguenti operazioni:
1 Inserisci dati dettaglio di una fattura
5/settimana
2 Aggiorna dati dettaglio di una fattura
10/settimana
3 Visualizza fattura con i relativi dettagli
1/settimana
Si può notare inoltre la presenza di attributi derivabili e quindi di ridondanze. Gli attributi che generano tali ridondanze sono:
ENTITA’ FATTURA
Totale imponibile
Derivabile dalla somma degli attributi “imponibile” dei dettagli associati ad
una fattura
Totale IVA
Derivabile dalla somma degli attributi “totale iva” dei dettagli associati ad una
fattura
Totale
Derivabile dalla somma degli attributi “totale imponibile” e “totale iva”
dell’entità fattura
RELAZIONE DETTAGLIO FATTURA
Imponibile
Derivabile dal prodotto dell’attributo “quantità” e il prezzo unitario della
prestazione associata
Totale IVA
Derivabile dal prodotto degli attributi “imponibile” e “iva”
Si confrontano ora gli indici di prestazione in caso di presenza o assenza dei dati ridondanti RELATIVI ALL'ENTITA' FATTURA.
Così facendo è possibile decidere se eliminare o mantenere tali ridondanze.
PROGETTAZIONE LOGICA
ANALISI DELLE RIDONDANZE
TAVOLE DEGLI ACCESSI IN ASSENZA DI RIDONDANZA
1 Inserisci dati dettaglio di una fattura
Concetto
Costrutto
Accessi
1 Inserisci dati dettaglio di una fattura
Tipo
Concetto
Costrutto
Accessi
Tipo
FATTURA
ENTITA’
1
LETTURA
FATTURA
ENTITA’
1
LETTURA
PRESTAZIONE
ENTITA’
1
LETTURA
PRESTAZIONE
ENTITA’
1
LETTURA
DETTAGLIO FATTURA
RELAZIONE
1
SCRITTURA
DETTAGLIO FATTURA
RELAZIONE
1
SCRITTURA
FATTURA
ENTITA’
1
SCRITTURA
TOTALE ACCESSI: 20 ACCESSI/SETTIMANA
TOTALE ACCESSI: 30 ACCESSI/SETTIMANA
2 Aggiorna dati dettaglio di una fattura
Concetto
Costrutto
Accessi
2 Aggiorna dati dettaglio di una fattura
Tipo
Concetto
Costrutto
Accessi
Tipo
FATTURA
ENTITA’
1
LETTURA
FATTURA
ENTITA’
1
LETTURA
DETTAGLIO FATTURA
RELAZIONE
1
SCRITTURA
DETTAGLIO FATTURA
RELAZIONE
1
SCRITTURA
FATTURA
ENTITA’
1
SCRITTURA
TOTALE ACCESSI: 30 ACCESSI/SETTIMANA
TOTALE ACCESSI: 50 ACCESSI/SETTIMANA
3 Visualizza fattura con i relativi dettagli
Concetto
Costrutto
Accessi
3 Visualizza fattura con i relativi dettagli
Tipo
Concetto
Costrutto
Accessi
Tipo
FATTURA
ENTITA’
1
LETTURA
FATTURA
ENTITA’
1
LETTURA
DETTAGLIO FATTURA
RELAZIONE
5
LETTURA
DETTAGLIO FATTURA
RELAZIONE
5
LETTURA
TOTALE ACCESSI: 6 ACCESSI/SETTIMANA
TOTALE ACCESSI: 6 ACCESSI/SETTIMANA
Si confrontano ora gli indici di prestazione in caso di presenza e assenza dei dati ridondanti. Così facendo è possibile decidere se
eliminare o mantenere tali ridondanze.
Per gli accessi in scrittura si considera un costo doppio.
PROGETTAZIONE LOGICA
TAVOLE DEGLI ACCESSI IN PRESENZA DI RIDONDANZA
Dall'analisi effettuata ,in assenza dei dati ridondanti:
• Totale imponibile (entità fattura);
•Totale IVA (entità fattura);
•Totale (entità fattura);
si effettueranno mediamente:
•10 accessi/settimana in meno nell'operazione 1 (inserimento dettaglio);
•20 accessi/settimana in meno nell'operazione 2 (aggiornamento dettaglio);
•Stesso numero di accessi/settimana nell'operazione 3 (visualizzazione fattura e relativi dettagli);
Inoltre, la presenza dei dati ridondanti sopra citati, comporterebbe un inutile utilizzo di spazio su disco necessario alla loro
memorizzazione.
Si elimineranno, inoltre, gli attributi ridondanti relativi alla relazione "dettaglio fattura". Tale scelta è giustificata dal
risparmio che si ottiene sia in termini di accessi (in scrittura) sia in termini di spazio.
SOLUZIONI ADOTTATE
Dalle considerazioni fatte, si adottano le seguenti soluzioni:
ELIMINAZIONE DEGLI ATTRIBUTI:
ELIMINAZIONE DEGLI ATTRIBUTI:
ENTITA’ FATTURA
RELAZIONE DETTAGLIO FATTURA
Totale imponibile
Imponibile
Totale IVA
Totale IVA
Totale
ENTITA’ PREVENTIVO *
RELAZIONE DETTAGLIO PREVENTIVO**
Importo totale
* Eliminazione effettuata per motivi analoghi a quelli che
hanno portato all’eliminazione dei 3 attributi relativi
all’entità fattura
Importo
* Eliminazione effettuata per motivi analoghi a quelli che
hanno portato all’eliminazione dei 2 attributi relativi alla
relazione dettaglio fattura
PROGETTAZIONE LOGICA
ANALISI DELLE RIDONDANZE: CONSIDERAZIONI
PROGETTAZIONE LOGICA
ANALISI DELLE RIDONDANZE
In questo frammento di schema possiamo notare la presenza di un ciclo, riconoscendo, inoltre, un'associazione derivabile
(tratto rosso). Quest'ultima è infatti derivabile dall'associazione proprietà (tratto verde).
Operazioni previste in questo frammento di schema:
Visualizzare lo stato dei pagamenti delle fatture con i relativi cantieri e clienti
SOLUZIONE ADOTTATA
Eliminazione dell’associazione ridondante (tratto rosso)
1/settimana
ENTITA’ PADRE
Cliente
ENTITA’ FIGLIE
Privato, Impresa
TIPO
GENERALIZZAZIONE
Totale ed esclusiva
SOLUZIONE ADOTTATA
Si può osservare che le entità figlie "privato" ed "impresa" hanno degli attributi che li distinguono. Inoltre ci sono operazioni
che fanno riferimento solamente alle occorrenze figlie. Risulta quindi preferibile lasciare le due entità "privato" ed "impresa"
aggiungendo due associazioni uno a uno tra queste entità e l'entità cliente. Le entità "privato" ed "impresa" sono identificate
esternamente dall'entità "cliente".
Vantaggi: Così facendo si evita di avere attributi con possibili valori nulli sull'entità genitore (della generalizzazione) e
riduciamo le dimensione delle relazioni (del modello relazionale). Il fatto di avere relazioni di dimensioni abbastanza ridotte,
a livello pratico, permetterà di recuperare più dati ad ogni accesso.
Svantaggi: Aumento del numero di accessi.
Aggiunta di un vincolo: ogni occorrenza di "cliente" deve partecipare o ad un'occorrenza di "dati privato" oppure a
un'occorrenza di "dati impresa".
PROGETTAZIONE LOGICA
ELIMINAZIONE DELLA GENERALIZZAZIONE CLIENTE
ENTITA’ PADRE
Personale
ENTITA’ FIGLIE
Dipendente, Socio,
Prestatore di
manodopera
TIPO GENERALIZZAZIONE
totale ed esclusiva
SOLUZIONE ADOTTATA
Si può osservare che le entità figlie "dipendente", "socio" e "prestatore di mandopera" hanno degli attributi che li distinguono.
Inoltre ci sono operazioni che fanno riferimento solamente alle occorrenze figlie. Risulta quindi preferibile mantenere tali entità
aggiungendo tre associazioni uno a uno tra queste entità e l'entità "personale".Le entità "dipendente", "socio" e "prestatore di
mandopera" sono identificate esternamente dall'entità "personale".
Vantaggi: Così facendo si evita di avere attributi con possibili valori nulli sull'entità genitore (della generalizzazione) e riduciamo le
dimensione delle relazioni (del modello relazionale). Il fatto di avere relazioni di dimensioni ridotte, a livello pratico, permetterà di
recuperare più dati ad ogni accesso.
Svantaggi: Aumento del numero di accessi.
Andrà aggiunto un vincolo: ogni occorrenza di "personale" deve partecipare o ad un'occorrenza di "dati dati dipendente" oppure a
un'occorrenza di "dati socio" oppure a un'occorrenza di "dati prestatore".
PROGETTAZIONE LOGICA
ELIMINAZIONE DELLA GENERALIZZAZIONE PERSONALE
CONCETTO
PERSONALE
CANTIERE
FORNITORE
ATTRIBUTO
SOLUZIONE ADOTTATA
Indirizzo
L’indirizzo dell’entità “personale” viene suddiviso nei seguenti attributi,
accorpati nell’entità stessa:
• Via
• Città
• Provincia
• CAP
Indirizzo
L’indirizzo dell’entità “cantiere” viene suddiviso nei seguenti attributi,
accorpati nell’entità stessa:
• Via
• Città
• Provincia
• CAP
Sede operativa, Sede legale
Per quanto riguarda l’entità fornitore, invece, si vuole mantenere la
distinzione tra sede operativa e sede legale, prevedendo inoltre la
possibilità che un fornitore possa avere più sedi. Per questo motivo
viene definita un’entità “indirizzo sede”, collegata a “fornitore”
mediante la relazione “sede fornitore”, avente i seguenti attributi:
• Via
• Città
• Provincia
•CAP
• Commento (attraverso il quale si può distinguere il tipo di sede, ma
tale distinzione, è affidata all’utente dell’applicazione).
PROGETTAZIONE LOGICA
PARTIZIONAMENTO/ACCORPAMENTO DI CONCETTI : ATTRIBUTI COMPOSTI
CONCETTO
ATTRIBUTO
PRIVATO
Indirizzo
IMPRESA
Sede operativa, Sede
legale
SOLUZIONE ADOTTATA
L’indirizzo dell’entità “privato” viene suddiviso nei seguenti attributi, accorpati
nell’entità stessa:
• Via
• Città
• Provincia
• CAP
Per quanto riguarda i due attributi elencati a fianco, ai fini dell’applicazione e
delle operazioni che operano sull’entità “impresa”, risulta necessario
mantenere traccia di un solo indirizzo. La soluzione adottata prevede dunque
l’accorpamento dei seguenti attributi all’entità “impresa”:
• Via
• Città
• Provincia
• CAP
ATTRIBUTI COMPOSTI: CONSIDERAZIONE FINALE
Con le soluzioni sopra adottate (riguardanti i concetti PRIVATO ed IMPRESA) possiamo quindi trasferire gli attributi "via", "città",
"provincia" e "CAP" dalle entità "privato" ed "impresa" all'entità "cliente", dato che le entità "privato" e "impresa", nella
progettazione concettuale, erano specializzazioni dell'entità "cliente. Inoltre le operazioni più frequenti che vengono effettuate
sulle entità "privato" ed "impresa" non utilizzano questi attributi.
- Così facendo riduciamo la dimensione di queste 2 relazioni (modello relazionale) ottenendo un miglioramento delle prestazioni.
- Con tale soluzione si evita l'inserimento di 4 attributi sia nell'entità "privato" che nell'entità "impresa", con un risparmio di 4
attributi e quindi, un risparmio in termini di spazio utilizzato.
PROGETTAZIONE LOGICA
PARTIZIONAMENTO/ACCORPAMENTO DI CONCETTI : ATTRIBUTI COMPOSTI
CONCETTO
ATTRIBUTO
SOLUZIONE ADOTTATA
Cliente
Telefono
Fornitore
Telefono
Personale
Telefono
Ai fini dell’applicazione è sufficiente la conoscenza di due numeri di
telefono. Considerando tale ipotesi, l’attributo multiplo “telefono”
viene partizionato in due attributi “telefono1” e “telefono2”.
Nel caso in cui si rendesse necessario memorizzare più di 2 numeri
telefonici, la ristrutturazione dell’attributo comporterebbe la definizione
di un’entità “telefono” e una relazione “recapito telefonico” con
cardinalità uno a molti.
PROGETTAZIONE LOGICA
PARTIZIONAMENTO/ACCORPAMENTO DI CONCETTI: ATTRIBUTI MULTIPLI
Gli identificatori sono utilizzati per stabilire i legami tra dati in relazioni diverse. Inoltre i DBMS richiedono tali identificatori per
la costruzione degli indici.
Per la scelta di un identificatore sono stati considerati i seguenti criteri:
1. Gli attributi con valori nulli non possono costituire identificatori principali;
2. Un identificatore costituito da uno o da pochi attributi è da preferire a identificatori costituiti da molti attributi;
• Per garantire che gli indici siano di dimensioni ridotte;
3. Un identificatore interno è da preferire a un identificatore esterno;
• Dato che gli identificatori esterni verranno tradotti in chiavi che includono gli identificatori delle entità coinvolte
nell'identificazione esterna.
ENTITA’
IDENTIFICATORE SCELTO
PRESTAZIONE
ID Prestazione
FATTURA
Numero
PREVENTIVO
Numero
CLIENTE
ID Cliente
PRIVATO
CLIENTE (ESTERNO)
IMPRESA
CLIENTE (ESTERNO)
FORNITORE
Partita IVA
CANTIERE
ID Cantiere (AGGIUNTO)
PERSONALE
ID Personale (AGGIUNTO)
DIPENDENTE
PERSONALE (ESTERNO)
SOCIO
PERSONALE (ESTERNO)
PRESTATORE DI MANODOPERA
PERSONALE (ESTERNO)
INDIRIZZO FORNITORE
ID Indirizzo
PROGETTAZIONE LOGICA
SCELTA IDENTIFICATORI PRINCIPALI
PROGETTAZIONE LOGICA
SCHEMA E-R RISTRUTTURATO
PRESTAZIONE (IDPrestazione, Nome, PrezzoUnitario, Descrizione)
DETTAGLIOFATTURA (Prestazione, Fattura, Quantità, IVA)
DETTAGLIOPREVENTIVO (Prestazione, Preventivo, Quantità)
FATTURA (Numero, DataEmissione, Stato, DataPagamento, TipoPagamento, Cantiere)
PREVENTIVO (Numero, DataEmissione, DataScadenza, PresaVisione, Accettazione, Cliente)
CLIENTE (IDCliente, Telefono1, Telefono2, Via, Città, Provincia, CAP, Email)
CANTIERE (IDCantiere, Nome, DataInizio, DataFine, StatoLavori, Via, Città, Provincia, CAP, Cliente)
PRIVATO (Cliente, Nome, Cognome, CodiceFiscale)
IMPRESA (Cliente, Nome, PartitaIVA, SitoWeb)
EMISSIONEBOLLA (Cantiere, Fornitore, CodiceBolla)
ORELAVORATE (Cantiere, Personale, OreLavorate, Data)
FORNITORE (PartitaIVA, Nome, Telefono1, Telefono2, Email, SitoWeb)
INDIRIZZOFORNITORE (IDIndirizzo, Fornitore, Commento, Via, Città, Provincia, CAP)
PERSONALE (IDPersonale, Nome, Cognome, Telefono1, Telefono2, Email, Via Città, Provincia, CAP)
DIPENDENTE (Personale, CodiceFiscale, TipoContratto, DataAssunzione)
SOCIO (Personale, CodiceFiscale)
PRESTATOREMANODOPERA (Personale, PartitaIVA)
PROGETTAZIONE LOGICA
TRADUZIONE VERSO IL RELAZIONALE: SCHEMI DI RELAZIONALE
PROGETTAZIONE LOGICA
TRADUZIONE VERSO IL RELAZIONALE [RAPPRESENTAZIONE GRAFICA]: VINCOLI DI INTEGRITA' REFERENZIALE
PROGETTAZIONE LOGICA
TRADUZIONE VERSO IL RELAZIONALE [RAPPRESENTAZIONE GRAFICA]
PROGETTAZIONE LOGICA
TRADUZIONE VERSO IL RELAZIONALE
Scarica

DittaManutenzioni - Studenti Dipartimento di Ingegneria