Testing

Il database da noi progettato viene testato su SQL Server. Di seguito sono presentate le immagini relative alla creazione delle tabelle, con l’inserimento delle relative righe, e le immagini che mostrano il risultato delle operazioni sul database.

Creazione delle tabelle

Tabella Fornitori

Tabella Clienti

Tabella Serbatoio

Tabella CollSerbatoio

Tabella Conf

Tabella Util

Tabella Macchine

Tabella ProdNCM

Tabella RotoliM

Tabella ProdNC

Tabella Rotoli

Tabella Ordine

Tabella ProdConf

Tabella ConfProd

Tabella Cont

Tabella FornitRotoli

Tabella FornitProdNC

Tabella Vendita

 

Test delle operazioni

Operazione 1
INSERT INTO Fornitori(Codice, Nome, Citta, Telefono, Via, NCivico, CAP, Fax, Email, Tipo)
      VALUES (14, 'NuovoFornitore', 'Roma', '06787878', NULL, NULL, NULL, NULL, 'new@roma.it', 'ProdNC')

Operazione 2
INSERT INTO Clienti(Codice, Nome, Citta, Telefono, Via, NCivico, CAP, Fax, Email)
      VALUES (40, 'NuovoCliente', 'Milano', '02101099', NULL, NULL, '20100', '02101099', NULL)

Operazione 3
INSERT INTO ProdNC(Codice, TipoProd, Quantita)
      VALUES(101, 'Latte intero', 10000)

INSERT INTO FornitProdNC(Codice, Fornitore, Spesa, Data)
      VALUES(101, 14, 2300000, '02/01/2002')

UPDATE ProdNCM
      SET Quantita = Quantita + 10000
      WHERE TipoProd = 'Latte intero'

Operazione 4
INSERT INTO Rotoli(Codice, TipoRot, Lunghezza)
      VALUES(300, 'Latte intero Granarolo', 1000)

INSERT INTO FornitRotoli(Codice, Fornitore, Spesa, Data)
      VALUES(300, 13, 800000, '02/01/2002')

UPDATE RotoliM
      SET Lunghezza = Lunghezza + 1000
      WHERE TipoRot = 'Latte intero Granarolo'

Operazione 5
INSERT INTO ConfProd(Rotoli, Macchine)
      VALUES ('Latte intero Granarolo', 'BZ3')

INSERT INTO ProdConf(Codice, LungRotolo, NomeMacchina)
      VALUES (1, 900, 'BZ3')

INSERT INTO Vendita(Codice, Cliente, Ricavo, Data)
      VALUES (1, 20, 4500000, '02/01/2002')

UPDATE ProdNCM
      SET Quantita = Quantita – 50
      WHERE TipoProd = 'Latte intero'

UPDATE RotoliM
      SET Lunghezza = Lunghezza – 900
      WHERE TipoRot = 'Latte intero Granarolo'

Operazione 6
INSERT INTO Ordine(Codice, TipoProd, DataConsegna, Quantita, TipoRot, Capacita, DataRichiesta, CodiceCliente)
      VALUES (110, 'Latte e cacao', '15/01/2002', 1500, 'Latte e cacao Granarolo', 500, '02/01/2002', 20)

Operazione 7
INSERT INTO Macchine(Nome, Ngruppo, Stato)
      VALUES ('NEW00', 5, 'Produzione')

Operazione 8
INSERT INTO Serbatoio(Nome)
      VALUES ('SERB7')

INSERT INTO Cont(Serbatoio, ProdSerb)
      VALUES ('SERB7', 'Latte intero')
INSERT INTO Cont(Serbatoio, ProdSerb)
     
VALUES ('SERB7', 'Latte parzialmente scremato')

Operazione 9
DELETE FROM Macchine
      WHERE
Nome = 'NEW00'

DELETE FROM CollSerbatoio
      WHERE NOT EXISTS (SELECT *
                        FROM Macchine
                        WHERE CollSerbatoio.NGruppo = Macchine.Ngruppo)

DELETE FROM Conf
      WHERE NOT EXISTS (SELECT *
                        FROM Macchine
                        WHERE Conf.NGruppo = Macchine.Ngruppo)

DELETE FROM Util
      WHERE NOT EXISTS (SELECT *
                       
FROM Macchine
                        WHERE Util.NGruppo = Macchine.Ngruppo)

Operazione 10
DELETE FROM Serbatoio
      WHERE Nome = 'SERB7'

DELETE FROM Cont
      WHERE NOT EXISTS (SELECT *
                        FROM Serbatoio
                        WHERE Cont.Serbatoio = Serbatoio.Nome)

Operazione 11
UPDATE Macchine
      SET Stato = 'Produzione'
      WHERE Nome = 'IMG16'
UPDATE Macchine
      SET Stato = 'Riserva'
      WHERE Nome = 'GHS'

Operazione 12
SELECT *
FROM Macchine
ORDER BY Ngruppo, Stato

Operazione 13
SELECT
Nome
FROM Serbatoio
WHERE
Nome <> ALL (SELECT Serbatoio
                   FROM CollSerbatoio)

Operazione 14
UPDATE Macchine
      SET Stato = 'Produzione'
      WHERE Nome = 'GHT'

Operazione 15
SELECT Ordine.Codice, Ordine.TipoProd, Ordine.TipoRot, Ordine.Quantita,
       Ordine.Capacita, Ordine.DataConsegna, Ordine.DataRichiesta, Clienti.Nome
FROM Ordine, Clienti
WHERE Ordine.CodiceCliente = Clienti.Codice AND
      Ordine.DataConsegna >= '02/01/2002' AND
      Ordine.DataConsegna <= ('09/01/2002') AND
      Ordine
.Codice <> ALL (SELECT ProdConf.Codice
                            FROM ProdConf)
ORDER BY Ordine.DataConsegna, Ordine.DataRichiesta

Operazione 16
SELECT SUM (ALL Spesa) AS SpeseSettimanali
FROM Spese
WHERE Data <= '30/12/2001' AND Data >= ('23/12/2001')

Operazione 17
SELECT SUM (ALL Spesa) AS SpeseMensili
FROM Spese
WHERE MONTH(Data) = MONTH('30/12/2001') AND
      YEAR(Data) = YEAR('30/12/2001')

Operazione 18
SELECT SUM (ALL Spesa) AS SpeseAnnuali
FROM Spese
WHERE YEAR(Data) = YEAR('30/12/2001')

Operazione 19
SELECT SUM (ALL Ricavo) AS RicaviSettimanali
FROM Vendita
WHERE Data <= '24/12/2001' AND Data >= ('17/12/2001')

Operazione 20
SELECT SUM (ALL Ricavo) AS RicaviMensili
FROM Vendita
WHERE MONTH(Data) = MONTH('24/12/2001') AND
      YEAR(Data) = YEAR('24/12/2001')

Operazione 21
SELECT SUM (ALL Ricavo) AS RicaviAnnuali
FROM Vendita
WHERE YEAR(Data) = YEAR('24/12/2001')

Operazione 22
CREATE VIEW SpMens(SpeseMensili) AS
      SELECT SUM (ALL Spesa)
      FROM Spese
      WHERE MONTH(Data) = MONTH('24/12/2001') AND
            YEAR(Data) = YEAR('24/12/2001')

CREATE VIEW RicMens(RicaviMensili) AS
      SELECT SUM (ALL Ricavo)
      FROM Vendita
      WHERE MONTH(Data) = MONTH('24/12/2001') AND
            YEAR(Data) = YEAR('24/12/2001')

SELECT R.RicaviMensili - S.SpeseMensili AS BilancioMensile
FROM RicMens AS R, SpMens AS S

Operazione 23
CREATE VIEW SpAnno(SpeseAnnuali) AS
      SELECT SUM (ALL Spesa)
      FROM Spese
      WHERE YEAR(Data) = YEAR('24/11/2001')

CREATE VIEW RicAnno(RicaviAnnuali) AS
      SELECT SUM (ALL Ricavo)
      FROM Vendita
      WHERE YEAR(Data) = YEAR('24/11/2001')

SELECT R.RicaviAnnuali - S.SpeseAnnuali AS BilancioAnnuale
FROM RicAnno AS R, SpAnno AS S

Operazione 24
CREATE VIEW Magazzino(Oggetto, QuantitaLunghezza, Tipo) AS
      SELECT TipoProd, Quantita, 'Prodotto Non Confezionato'
     
FROM ProdNCM
      UNION
      SELECT TipoRot, Lunghezza, 'Rotolo'
      FROM RotoliM



[indice] - [Analisi dei requisiti] - [Progettazione concettuale] - [Progettazione logica] - [Codifica SQL]