Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
vuoi
o PayPal
tutte le volte che vuoi
PRODOTTO
LocalitàProvenienza 1-5
CostoUnitarioProdotto CONTENITORE
NomeProdotto composizione PesoNetto
0-1
PesoProdotto CodOrdine
NumCopieDisponibili id: CodOrdine
CodProdotto
id: CodProdotto PACCO 1-5
0-1 ColorePacco
TaraPacco
confezionamento 1-1 inserimento
NumProgressivoPacco 1-1
TipologiaPacco
id: inserimento.CONTENITORE
NumProgressivoPacco
12
Alcune entità presentano identificatori (ad esempio CodProdoitito e CodOrdiie) adottati
anche da altre entità a cui sono associate questo poiché partecipano ad associazioni
con cardinalità (1 1) in entrambe le direzioni e dunque ad un’istanza di un’entità
corrisponde univocamente un’istanza dell’altra collegata.
Anche se le specifiche non ne parlano esplicitamente si deduce dal testo che un
prodotto acquistabile sul sito può avere più copie di sé medesimo (cioèv più unità
attualmente disponibili); questo aspetto va preso in considerazione:o
ORDINE
CodOrdine
DataPagamento
ModalitàPagamento
IndirizzoDestinazione
NumTracking
NomeCorriere
PesoTotaleOrdine
CostoTotaleOrdine
Nome/i prodotto/i[1-5]
id: CodOrdine
1-5
composizione
0-1 PACCO
COPIA_DI_PRODOTTO ColorePacco
NumeroCopia 0-1 confezionamento 1-1 TaraPacco
id: copia-prodotto.PRODOTTO NumProgressivoPacco
NumeroCopia TipologiaPacco
1-1
copia-prodotto
0-N
PRODOTTO
LocalitàProvenienza
CostoUnitarioProdotto
NomeProdotto
PesoProdotto
NumCopieDisponibili
CodProdotto
id: CodProdotto
A questo punto perciò le entità ORDINE e PACCO presenti nello schema non saranno
più in associazione diretta con l’entità PRODOTTO bensì con l’entità
COPIA_DI_PRODOTTO rendendo dunque possibile l’acquisto anche di più copie di uno
stesso prodotto all’interno di un singolo ordine ed il confezionamento di ogni copia in
un apposito pacco. 13
Si ritiene opportuno altresì definire una gerarchia per le varie tipologie di PERSONA
(clienti magazzinieri e conducenti dei veicoli di consegna). Essa possiede una
copertura totale e sovrapposta (un magazziniere o conducente può anche essere a sua
volta un cliente); di seguito la gerarchia appena citata:o
PERSONA
Nome
Cognome
Sesso
CodiceFiscale
id: CodiceFiscale
T CONDUCENTE_VEICOLO
MAGAZZINIERE NumPatente
CodM agazziniere CLIENTE id': NumPatente
id': CodM agazziniere DataNascita
Username
ComuneResidenza
ProvinciaResidenza
IndirizzoResidenza
M etodoPagamentoPreferito
Interessi/Hobby[0-1]
CodCliente
id': CodCliente 14
Nelle specifiche richieste dal responsabile dei corrieri si può leggere testuali parole:o
“...Un determinato veicolo viene guidato da uno specifico conducente non più di una
volta nello stesso giorno...”; si èv dunque deciso di creare un’entità GUIDA non
esplicitamente segnalata nelle specifiche ma necessaria per descrivere il vincolo da
rappresentare. Ogni istanza di questa entità viene individuata univocamente attraverso
il suo attributo DaitaGuida ed esternamente attraverso le partecipazioni alle
associazioni etecuzioie ed uitilizzo. Non potrà perciò mai esistere una guida efettuata
più di una volta nello stesso giorno da una stessa coppia veicolo - conducente veicolo.
VEICOLO
TipologiaVeicolo
CodVeicolo
id: Tip ologiaVeicolo
CodVeicolo
0-N
utilizzo
1-1
GUIDA
DataGuida
id: esecuzione.CONDUCENTE_VEICOLO
utilizzo.VEICOLO
DataGuida 1-1
esecuzione
0-N
CONDUCENTE_VEICOLO
Nome
Cognome
CodiceFiscale
Sesso
NumPatente
id: NumPatente
id': CodiceFiscale
15
2.5 Scchemi concettuali parziali (viste)
In questa sezione vengono presentati gli schemi concettuali parziali che modellano le
specifiche esposte in ognuna delle interviste raccolte nella precedente fase di Aialiti
dei Requitiiti.
Di seguito la vista del programmatore web del sito:o
PAGAMENTO
DataPagamento
ModalitàPagamento
CodOrdine
id: CodOrdine
1-1
transazione
1-1
ORDINE
CodOrdine
IndirizzoDestinazione
NumTracking
NomeCorriere
PesoTotaleOrdine effettuazione
1-1
CostoTotaleOrdine
TipologiaOrdine 0-N
DataPrevistaConsegna[0-1]
DataAvvenutaConsegna[0-1]
Nome/i prodotto/i[1-5] CLIENTE
id: CodOrdine Nome
Username
1-5 Cognome
composizione CodiceFiscale
DataNascita
0-1 Sesso
COPIA_DI_PRODOTTO Residenza
NumeroCopia Comune
Provincia
id: copia-prodotto.PRODOTTO Indirizzo
NumeroCopia MetodoPagamentoPreferito
1-1 Interessi/Hobby[0-1]
CodCliente
copia-prodotto id: CodCliente
0-N id': CodiceFiscale
PRODOTTO
LocalitàProvenienza 0-N
CostoUnitarioProdotto
NomeProdotto carrello
0-N
PesoProdotto
NumCopieDisponibili
CodProdotto
id: CodProdotto 16
La vista del capo magazziniere:o
M AGAZZINIERE
Nome
Cognome CONTENITORE
Sesso DataPrevistaConsegna
CodiceFiscale 0-N Destinazione
CodMagazziniere imballaggio Città
id: CodM agazziniere 1-1 Provincia
id': CodiceFiscale Indirizzo
PesoComplessivo
NomeCliente
1-1 CognomeCliente
provenienza CodOrdine
M AGAZZINO 0-N id: CodOrdine
CodM agazzino
NomeM agazzino
IndirizzoM agazzino
id: CodM agazzino 1-5
COPIA_DI_PRODOTTO inserimento
NumeroCopia 1-1 confezionamento
id: copia-prodotto.PRODOTTO
NumeroCopia 1-1
1-1
1-1
copia-prodotto PACCO
0-N ColorePacco
TaraPacco
PRODOTTO NumProgressivoPacco
LocalitàProvenienza TipologiaPacco
CostoUnitarioProdotto id: inserimento.CONTENITORE
NomeProdotto NumProgressivoPacco
PesoProdotto
NumCopieDisponibili
CodProdotto
id: CodProdotto 17
E per ultima la vista del responsabile dei corrieri:o
TRAGITTO
NumTracking
DistanzaTragitto
Destinazione
Città
Provincia
Indirizzo
id: NumTracking
0-N
percorrenza
1-1
SPEDIZIONE
CodOrdine
assegnazione DataPrevistaConsegna[0-1]
1-1 1-1 responsabilità
DataAvvenutaConsegna[0-1]
id: CodOrdine
1-1 1-1 0-N
trasporto
CONTENITORE
Tara 0-N CORRIERE
DataPrevistaConsegna VEICOLO NomeCorriere
IndirizzoM agazzino CodCorriere
Targa
NomeMagazzino TipologiaVeicolo id: CodCorriere
CF_Magazziniere CodVeicolo
PesoComplessivo
NomeCliente id: Targa
CognomeCliente id': TipologiaVeicolo
NomeCorriere CodVeicolo
CodOrdine 0-N
id: CodOrdine utilizzo
1-1
GUIDA
DataGuida
id: esecuzione.CONDUCENTE_VEICOLO
utilizzo.VEICOLO
DataGuida 1-1
esecuzione
0-N
CONDUCENTE_VEICOLO
Nome
Cognome
CodiceFiscale
Sesso
NumPatente
id: NumPatente
id': CodiceFiscale
18
2.6 Integrazione viste e scchema concettuale finale
19
Capitolo 3
Progettazione logica
In questo capitolo viene afrontata la fase di progettazione logica dell’applicazione
database. Si ricava perciò a partire dallo schema concettuale uno schema logico che
rappresenti in maniera fedele i concetti e i requisiti analizzati e che sia al tempo
stesso efficiente.
Iniziando da una stima del volume dei dati e della frequenza delle operazioni sul
database si passerà successivamente ad un’analisi delle possibili ridondanze ad una
ristrutturazione dello schema e/r precedentemente realizzato e ad una traduzione dei
costrutti residui in elementi del modello relazionale. Infine verranno tradotte le
operazioni in query SQL.
3.1 Stima del volume dei dati
CONCETTO COSTRUTTO VOLUME
Persona Entità 10000
Aagazziniere Entità 350
Conducente veicolo Entità 50
Cliente Entità 9800
Prodotto Entità 1500
Copia di prodotto Entità 5000
Pacco Entità 4000
Contenitore Entità 1900
Aagazzino Entità 8
Ordine Entità 1900
Pagamento Entità 1900
Spedizione Entità 1900
Tragitto Entità 1000
20
CONCETTO COSTRUTTO VOLUME
Corriere Entità 10
Veicolo Entità 300
Guida Entità 1200
Copia-Prodotto Associazione 5000
Confezionamento Associazione 4000
Inserimento Associazione 4000
Provenienza Associazione 1900
Imballaggio Associazione 1900
Assegnazione Associazione 1900
Transazione Associazione 1900
Esecuzione Associazione 1200
Carrello Associazione 30000
Percorrenza Associazione 1900
Responsabilità Associazione 1900
Trasporto Associazione 1900
Utilizzo Associazione 1200
Composizione Associazione 2700
Ordinazione Associazione 1900
3.2 Descrizione delle operazioni principali e
stima della loro frequenza
Le operazioni principali efettuate sono:o
Visualizzare tutti gli username dei clienti che hanno inserito nel proprio
1. carrello un prodotto con nome ‘Aappamondo’ (frequenza 12 volte al giorno);
visualizzare per ogni cliente il codice il nome e il numero di ordini attualmente
2. efettuati (frequenza 5 volte a settimana);
visualizzare il codice la data di nascita e il nome dei 3 clienti che hanno
3. ordinato più unità di prodotti poi per ogni cliente trovato indicare anche il
numero totale delle unità di prodotti acquistate (frequenza 3 volte al mese);
visualizzare tutte le informazioni dei soli prodotti che non sono mai stati
4. acquistati (frequenza 2 volte a settimana);
21
aggiungere un nuovo prodotto e successivamente inserirlo nel carrello del
5. cliente che attualmente possiede meno prodotti a carrello (frequenza 1 volta
ogni 2 settimane);
inserire un’ordinazione da parte del cliente che possiede il maggior numero di
6. unità di prodotto dello stesso tipo all’interno del medesimo ordine.
L’ordinazione deve avere come data di pagamento la data odierna come data di
prevista consegna la data odierna + 5 giorni come metodo di pagamento ‘carta
di credito’ come corriere quello con codice ‘987654’ come veicolo un camion
motrice con codice ‘216549’ come tragitto quello con codice di tracking
‘000045210265399’ come magazzino il numero ‘852741’ come magazziniere
preposto all’imballaggio quello con codice ‘123456’ e deve comprendere un
orologio a pendolo una stampante e 2 astucci (frequenza 2 volte al giorno).
3.3 Scchemi di navigazione e tabelle degli eccessi
Operazione n.1:o
CONCETTO COSTRUTTO ACCESSI TIPO
Prodotto Entità 1 Lettura
Carrello Associazione 9800/1500 ~ 7 Lettura
Cliente Enti