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

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
![]()

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
FROM Serbatoio
WHERE
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]