2. Progettazione del database
In questo capitolo è riportata la progettazione del database
che sta alla base del sito Web del progetto VAMP.
2.1
Schema E/R di massima
Figura
2: schema E/R di massima
|
2.2
Schema logico
Nel presente schema logico sono descritte le tabelle
realizzate nel database e i relativi vincoli.
2.2.1
Tabelle di supporto
sup_Dispositivo_Comunic(cod, des)
Nessuno,
Telefono, Fax, PC+Modem
sup_Tipo_Utente(cod, des)
Privato, Impresa, PA
sup_Tipo_Utente_Legge(cod, des)
|
2 Commerciante/Intermediario
|
3 Recuperatore
|
4 Smaltitore
|
5 Produttore
|
6 Produttore RSU e assimilati
|
7 Gestore RSU e assimilati
|
Codice_ISTAT(Cod_ISTAT, Descrizione)
2.2.2
Utenti
Utente(Cod_Utente, Tipo_Utente, Ragione_Sociale,
Partita_IVA, Nome, Cognome, CF, Via_NC, CAP, cod_place, Telefono, Fax, email,
Note, username, password)
FK: Tipo_Utente REFERENCES sup_Tipo_Utente
FK: cod_place
REFERENCES Place
Vincoli: è necessario che solo alcuni dei campi sopra
siano riempiti (in base al tipo di utente). Ad esempio, se un utente è un
privato, non è possibile specificare la ragione sociale o la partita IVA.
Con questa struttura è invece immediato imporre il vincolo
che un sito appartenga ad un solo utente. Infatti nella tabella Sito è
sufficiente specificare il codice dell’utente.
Con la seguente tabella si elencano le categorie legislative
alle quali appartiene l’utente
Tipo_Utente_Legge(Cod_Utente, Cod_Tipo_Utente_Legge)
FK: Cod_Utente REFERENCES Utente
FK: cod REFERENCES sup_Tipo_Utente_Legge
Attivita_ISTAT(Cod_Utente, cod_ISTAT)
FK: Cod_Utente REFERENCES Utente
FK: cod_ISTAT REFERENCES Codice_ISTAT
2.2.3
Caratterizzazione siti
Sito(Cod_Sito, Cod_Utente, Denominazione_Sito,
Via_NC, cod_place, Telefono, Fax, email, Cellulare, Note, Trasporto_in_proprio,
Data_Comunic_Albo, Come_Ragione_Sociale, Referente, Disp_Sito, Dispositivo_Comuninic)
FK: Cod_Utente REFERENCES Utente
FK: cod_place REFERENCES Place
FK: Dispositivo_Comunic REFERENCES sup_Dispositivo_Comunic
Referente indica il referente del sito.
Con Disp_Sito si specificano eventuali regole di
accesso al sito, come gli orari di apertura. E’ un semplice text.
Nelle seguenti tabelle sono indicati i tipi di impianti di
trattamento fissi o mobili che possono essere presenti in un sito:
sup_Tipo_Impianto_Mobile(cod,
des)
sup_Tipo_Impianto_Fisso(cod,
des)
Si vuole ora descrivere quali impianti sono presenti in un sito. Si è creata una chiave primaria
non costituita dalle chiavi importate: in caso contrario, non sarebbe stato
possibile specificare che un sito può avere più impianti dello stesso tipo.
Impianto_Mobile(Cod_IM,
Cod_Sito, Cod_TIM, Descrizione)
FK: Cod_Sito REFERENCES Sito
FK: Cod_TIM REFERENCCES sup_Tipo_Impianto_Mobile
Impianto_Fisso(Cod_IF,
Cod_Sito, Cod_TIF, Descrizione)
FK: Cod_Sito REFERENCES Sito
FK: Cod_TIF REFERENCCES sup_Tipo_Impianto_Fisso
Ogni impianto fisso può recuperare rifiuti di un certo tipo in determinate quantità:
Rifiuti_Recuperati_Da_Impianto_Fisso(Cod_IF,
Cod_R, Capacita_Recupero, Note)
FK: Cod_IF REFERENCCES Impianto_Fisso
FK: Cod_R REFERENCCES Rifiuto
2.2.4
Merci
Rifiuto(Cod_R, Denominazione, UM, Pred)
FK: Pred
REFERENCES Rifiuto
2.2.5
Attività
Tipo_Attivita(Cod_TA, Descrizione,
Impatto_Ambientale)
Un sito può avere una o più attività, anche dello stesso
tipo:
Attivita(Cod_Sito, Cod_TA, Progr_A,
Cod_A, Descrizione, time_to, time_from)
AK: Cod_A
FK: Cod_TA REFERENCES Tipo_Attivita
DD:
time_from: data a partire dal quale l’attività è
considerata di interesse (è attiva). Se time_from = NULL allora l’attività è
sempre valida.
time_to: data che indica il termine dell’attività.
Quando Now > time_to è necessario eliminare l’attività in modo automatico.
Se time_to = NULL l’attività è sempre valida
Le attività trattano dei rifiuti:
Rifiuti_In(Cod_A,
Cod_R, Capacità_Stoccaggio, Prezzo, Qta, mat_description)
FK: Cod_A REFERENCES Attivita
FK: Cod_R REFERENCCES Rifiuto
Rifiuti_Recuperati(Cod_A,
Cod_R, Note)
FK: Cod_A REFERENCES Attivita
FK: Cod_R REFERENCCES Rifiuto
Rifiuti_Out(Cod_A,
Cod_R, Prezzo, Qta, mat_description)
FK: Cod_A REFERENCES Attivita
FK: Cod_R REFERENCCES Rifiuto
2.2.6
Informazioni geografiche
Place(Cod_Place, polo-nome, prov-cod,
com-cod, casa-com-flag, X, Y, ISTAT-CODE)
FK :
ISTAT-CODE REFERENCES Commune
Modificare
POLIMORE_ in Cod_Place
Commune(COD-ISTAT, prov-cod,
com-cod, cod-morfology)
FK: Prov_cod REFERENCES Provincia
Provincia(PROV-COD, Prov-nome)
Modificare prov-ID in prov_nome
Grafo_Capoluoghi(V1, V2, dest)
FK: V1, V2 REFERENCES Commune
2.3
Suddivisione concettuale del database
Può essere vantaggiosa una suddivisione del database
trasversale allo schema E/R presentato in Figura 2. Lo scopo di questa
suddivisione è essenzialmente quello di arricchire i DFD presentati nel
Capitolo 3, rendendo evidente quale sottoinsieme del database partecipa alla
realizzazione del processo descritto. Questa suddivisione rende anche
immediatamente evidenti quali sono le informazioni da procurare per permettere
il funzionamento del Sito Web.
La suddivisione è la seguente:
·
database degli
utenti (USER_DB), che contiene tutti i dati degli utenti a cui è permesso
l’accesso al sistema VAMP, compresi username
e password;
·
database dei
siti (SITE_DB). In esso sono contenuti tutti i siti di interesse per il
progetto VAMP e le attività che in essi si svolgono (permanenti o temporanee).
Questo archivio è costantemente aggiornato dagli utenti stessi, i quali
aggiungono e cancellano siti oppure ne modificano i dati in base alle loro
esigenze;
·
database dei
rifiuti (WASTE_DB) che contiene la descrizione delle liste dei rifiuti che
il sito Web è in grado di trattare, nonché i relativi parametri di identificazione
e caratterizzazione.
·
database del
territorio (TERRITORY_DB). Rappresenta
il territorio in cui agisce il progetto e contiene la descrizione delle
località, dei comuni, delle province e del grafo dei capoluoghi. Questo
database è la base informativa per la realizzazione del modello del territorio.
L’accorpamento dei database precedenti è chiamato VAMP_DB.
Esistono poi dei database di supporto i cui dati non sono
accessibili agli utenti:
·
PARAMETER_DB: database che contiene tutte le
informazioni necessarie per la costruzione Multicriteria Decision Problem.
© 2001 Andrea Bulgarelli
|