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.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
vuoi
o PayPal
tutte le volte che vuoi
Minore probabilità di fermo macchine per mancanza di MP €7000,00
• Minore probabilità di fermo operai per mancanza di MP €9000.00
•
• Maggiori ricavi:
Maggiore capacità di risposta alle esigenze del mercato €8000,00
•
• Vantaggi competitivi:
Maggiore velocità di esecuzione delle attività di acquisto € 10000,00
•
• Riduzione del rischio:
Riduzione rischio nell'espletamento della codifica delle MP €2000,00
• Riduzione rischio nella definizione dei fornitori €1000.00
• Benefici relativi ad un
anno di esercizio
• Totale benefici € 50.500,00
Modello entità relazione
Tabelle del modello entità
relazione
Diagrammi UML
Successivamente sono riportati alcuni esempi
trattati nel progetto di :
• Diag. Casi d’uso
• Diag. Delle sequenze
• Diag. Delle classi
• Diag. Delle attività
Casi d’uso
Produzione
Specifiche
Specifiche
Specifiche
Casi d’uso gestione qualità
fornitori
Casi d’uso magazzino
Visualizza programma di
produzione settimanale
Visualizza livello scorte e quantità in
scadenza di una materia prima
Visualizza qualità
Aggiorna qualità .
• Fa riferimento a visualizza qualità,infatti la prima parte riprende il diagramma delle sequenze precedente
Visualizza programma
approvviginamento
Visualizza Fornitore
Inserisci ordine d’acquisto
Annulla dati
Programma produzione
Programma di
approvvigionamento
Aggiornamento qualità ed
eventuale eliminazione dalla
lista dei fornitori
Diagramma delle classi (1)
Diagramma delle classi (2)
Popolamento e Interrogazione
database
Per il popolamento e l’interrogazione del
database è stato utilizzato il software
navicat for mySQL
Di seguito verranno riportate le tabelle
popolate e le queries con i relativi risultati
Popolamento(esempi)
• ComposizioneOrdineAcquisto
• Fattura
Popolamento(esempi)
• Fornitore
• Mpnondeperibili
Esempi di popolamento
• Fornitura
• Lotto Queries
Query 1) Il codice del fornitore e la relativa e–mail e la qualità di fornitori che forniscono la materia
prima “mpd1” che ha un costo compreso tra 30 e 100 , ed ha autorizzazione sanitaria.
•
• SELECT f.CodiceFornitore, f.qualit_ , f.email
• from fornitura fo, Fornitore f
• where f.CodiceFornitore=fo.CodiceFornitore
• and fo.codiceMP="mpd1" and fo.costo between 30 and 100 and fo.autorizSanitaria="s“
• Query 2) Restituire I fornitori, che hanno un numero di telefono con prefisso “0984” , e il numero di forniture
effettuate di materie prime non deperibili che hanno costo minore di 100
• select f.CodiceFornitore, f.telefono_fax, count(*) as fornitureeffettuate
• from Fornitore f, fornituraND n
• where f.telefono_fax like "0984%"
• and f.CodiceFornitore=n.CodiceFornitore
• and n.costo<100
• group by f.CodiceFornitore Queries
• Query 3) Restituire per il fornitore “f1” il numero di fatture effettuate nel 2008, l’importo
totale e l’importo medio
• select f.CodiceFornitore, avg(f.importo) as importoMedio, count(*) as fatture2008, sum(f.importo)as
importoTot2008
• from Fattura f
• WHERE f.data between "2008-01.01" and "2009-01-01"
• and f.CodiceFornitore="f1"
• group by f.CodiceFornitore
• Query 4) Restituire il prodotto costituito sia dalla materia prima deperibile “mpd1” e dalla materia prima non
deperibile “mpnd1”, indicandone anche la quantità di composizione. Indicare solo i prodotti che hanno un
prezzo superiore a 5.
• select p.codiceProdotto, c.codiceMP, c.quantit_ as quantitàMPdeperibile, n.CodiceMP, n.quantita as
quantitàMPnonDeperibile
• from Composizione c, ComposizioneND n, Prodotto p
• where c.codiceProdotto=p.codiceProdotto
• and n.codiceProdotto=p.codiceProdotto
• and c.codiceMP="mpd1"
• and n.codiceMP="mpnd1"
• and p.prezzo>5 Queries
• Query 5) Tutti I fornitori che hanno fornito tutte le materie prime deperibili( cioè quei fornitori per cui non
esiste una materia prima deperibile che non sia stata fornita)
• select *
• from Fornitore f
• where not exists (select m.codiceMP
• from MPDeperibili m
• where m.codiceMP not in (select fo.codiceMP
• from fornitura fo
• where fo.CodiceFornitore=f.CodiceFornitore))
• Query 6) Le materie prime che hanno almeno 2 lotti( cioè tutte le materie prime percui non si hanno meno di 2
lotti)
• select m.codiceMP
• from MPDeperibili m
• where not exists (select *
• from Lotto l
• where l.codiceMP=m.codiceMP
• group by l.codiceMP
• having(count(*)<2 )) Queries
• Query 7) I programmi di approvvigionamento precedenti al 2009, nei quali non è stato mai acquistato la
materia prima deperibile “mpd1”
• select *
• from ProgApprovSettimale p
• where p.data<"2009-01-01"
• and not exists (select *
• from costituito c
• where p.data=c.data
• and c.codiceMP="mpd1")
• Query 8) Indicare il codice della materia prima deperibile di cui si ha la quantità maggiore in magazzino( la
quantità di ogni materia prima è data dalla somma delle quantità dei suoi lotti)
• CREATE View Quantità Materia Prima deperibile(codiceMP, quantitaTot) as
• Select l.codiceMP, sum(l.quantita)
• From Lotto l
• Group by l.codiceMP
•
• SELECT
• q.codiceMP,
• q.quantitaTot
• FROM
• quantità materia prima deperibile q
• where
• q.quantitaTot= (select max(q.quantitaTot)
• from quantità materia prima deperibile q)
Queries
• Query 9) Restituire la qualità del fornitore che ha emesso la fattura con il più alto numero di ordini che sono
stati approvati ed archiviati(approvato e ed archiviato sono 2 booleane).
• CREATE View ordiniperfattura(NumFattura, numordini) as
• select ord.NumFattura, count(*) AS numOrdini
• from ordineacquisto ord
• where ((ord.archiviato = 's') and (ord.approvato = 's'))
• group by ord.NumFattura
•
• SELECT f.CodiceFornitore, f.qualit_
• from ordineacquisto oa, fornitore f
• where
• oa.CodiceFornitore=f.CodiceFornitore and
• oa.numFattura=(select o.NumFattura
• from ordiniperfattura o
• where o.numordini=(select max(od.numordini)
• from ordiniperfattura od
• )) Queries
• Query 10) Restituire le materie prime deperibili e lo stoccaggio massimo con il quale possono essere
immagazzinate , delle materie che non sono presenti nei piani di approvvigionamento della settimana del
“2008-11-11” e del “2009-12-19”, e che hanno tra l’altro stoccaggio massimo diverso da 500
• Select c.codiceMP, c.StoccaggioMax
• From MPDeperibili c
• Where
• (c.StoccaggioMax < 500 or c.StoccaggioMax>500)
• and c.codiceMP not in (select co.codiceMP
• from costituito co
• where co.data ="2009-12-19"
• )
• and c.codiceMP not in(select co.codiceMP
• from costituito co
• where co.data="2008-11-11")
Queries
• Query 11) Le materie prime non deperibili presenti in tutti gli ordini d’acquisto
• Select mpnd.codiceMP
• From mpnondeperibili as mpnd
• where not exists ( select o.numeroordine
• from OrdineAcquisto o
• where o.numeroordine not in (select c.numeroordine
• from ComposizioneOrdineMPND c
• where mpnd.CodiceMP=c.codiceMP))
• Query 14)Restituire i prodotti indicandone il numero di volte che è stato prodotto nel 2009 e la quantità
prodotta in quell’anno.
• SELECT p.codiceProdotto, count(*) as numeroProduzioni, SUM(p.quantit_daprodurre) as
produzioneAnnuale
• FROM progproduzionesettimanale p
• where p.data>"2008-12-31" and p.data<"2010-01-01"
• group by p.codiceProdotto Queries
• Query 12) Le materie prime deperibili e le loro quantità giacenti in magazzino e presenti in tutti gli ordini
d’acquisto(cioè le materie prime deperibili per cui non esiste un ordine che non sia composto da quella materia
prima deperibile)
• CREATE View Quantità Materia Prima deperibile(codiceMP, quantitaTot) as
• Select l.codiceMP, sum(l.quantita)
• From Lotto l
• Group by l.codiceMP
•
• select m.codiceMP, `quantità materia prima deperibile`.quantitaTot
• from MPDeperibili m, `quantità materia prima deperibile`
• where `quantità materia prima deperibile`.codiceMP=m.codiceMP and not exists (select *
• from OrdineAcquisto o
• where o.numeroordine not in(SELECT co.numeroordine
• FROM ComposizioneOrdineAcquisto co
• where m.codiceMP=co.codiceMP)) Queries
• Query 13) Restituire tutti I prodotti e le relative materie prime non deperibili da cui sono
composti, solo per prodotti presenti in uno e un solo programma di produzione settimanale,
cioè relativi ad una sola data.
• select p.codiceProdotto, cn.codiceMP
• from Prodotto p, ComposizioneND cn
• where p.codiceProdotto=cn.codiceProdotto and exists
• (select*
• from ProgProduzioneSettimanale pp
• where pp.codiceProdotto=p.codiceProdotto
• group by pp.codiceProdotto Queries
• Query 15) Le materie prime deperibili e il loro stoccaggio max fornite dal fornitore
con qualità superiore a 50, che ha effettuato il maggior numero di forniture
• CREATE View Fornitoreforniture (fornitore, numforniture) as
• Select f.CodiceFornitore, count(*) as numforniture
• From fornitura fo,Fornitore f
• Where f.CodiceFornitore=fo.CodiceFornitore AND f.qualit_>50
• Group by f.CodiceFornitore
• select m.codiceMP, m.StoccaggioMax
• from fornitura fo, MPDeperibili m
• where fo.codiceMP=m.codiceMP and
• fo.CodiceFornitore=(
• select f.fornitore
• from fornitoreforniture f
• where f.numforniture=(select max(forn.numforniture)
• from fornitoreforniture forn)) Queries
• Query 16) Restituire I prodotti che non sono presenti in nessun programma di
produzione, le materie pri