Realizzare un sito web in Jsp passo dopo passo (III-2 Parte)
Pagina 2 di 2
Progettazionelogica
La progettazione logica prevede innanzitutto laristrutturazione dello schema E-R elaborato nella fase dellaprogettazione concettuale: noi, per questioni di spazio,abbiamo riportato soltanto la versione finale dello schemaE-R, cioè quella ristrutturata, in quanto èpraticamente identica a quella precedente (ad eccezione diuna generalizzazione che è stata eliminata).
Come si può facilmente notare, nello schema ritroviamole entità e le relazioni esattamente come sono statedescritte nel dizionario dei dati.
Fig. 6 Descrizione del database
Traduzione verso il modello relazionale
Siamo sempre nella fase della progettazione logica dicui, un ulteriore passo fondamentale, è la traduzionedello schema E-R ristrutturato nel modello relazionale, cheriportiamo di seguito:
Vulnerabilità(Codice, Autore, Nome, Info*, UsoTipico, CVE,ServizioInternet, DataPubblicazione*, DataAggiornamento,Pericolosità, TipoVulnerabilità)
Vincolo di integrità referenziale tra l'attributoAutore e l'attributo ID della relazione Autore.
SistemaOperativo(Codice, Nome, Release, Tecnologia, ServicePack*)
Patch(Nome, LinkSito, Dimensione*,Vulnerabilità)
Vincolo di integrità referenziale tra l'attributoVulnerabilità e l'attributo Codice della relazioneVulnerabilità.
Exploit(Nome,Vulnerabilità , Versione*, Dimensione,TipoFile, UsoTipico, DataPubblicazione*, DataAggiornamento)
Vincolo di integrità referenziale tra l'attributoVulnerabilità e l'attributo Codice della relazioneVulnerabilità.
Autore(ID, Nome, LinkSito*, Email*, TipoAutore)
BersagliO(SO, Vulnerabilità )
Vincolo di integrità referenziale tra l'attributoSO e l'attributo Codice della relazione SISTEMAOPERATIVO;
vincolo di integrità referenziale tra l'attributoVulnerabilità e l'attributo Codice della relazioneVulnerabilità.
Realizzazione(Exploit, Autore, Vulnerabilità )
Vincolo di integrità referenziale tra l'attributoAutore e l'attributo ID della relazione Autore;
vincolo di integrità referenziale tra l'attributoExploit e l'attributo Nome della relazione EXPLOIT;
vincolo di integrità referenziale tra l'attributoVulnerabilità e l'attributo Vulnerabilitàdella relazione EXPLOIT.
NORMALIZZAZIONE
E' questa l'ultima fase della progettazione delnostro database: l' obiettivo è di dimostrare chelo schema di base di dati relazionale ottenuto verifica lacosiddetta forma normale, proprietà chene certifica la qualità.
Per gli schemi che non dovessero soddisfare questaproprietà è possibile applicare un procedimentodetto di normalizzazione che permette ditrasformarli in nuovi schemi che garantiscono invece unaforma normale. Nel nostro caso non dovrebbe presentarsiquesta necessità in quanto il modello relazionaleè stato ottenuto con le precise metodologie diprogettazione viste in precedenza che di solito permettono diottenere schemi in forma normale.
Ciò che dobbiamo dimostrare è che ciascunadelle relazioni che abbiamo ottenuto si trova nella forma:
- BCNF (forma normale di Boyce e Codd), quando per ogni dipendenza funzionale X->Y definita su una relazione r, X contiene una chiave di r.
oppure
- 3FN (terza forma normale), quando per ogni dipendenza funzionale X->Y definita su una relazione r, X contiene una chiave di r oppure ogni attributo in Y è contenuto in almeno una chiave di r.
Relazione | Dipendenze funzionali | Commento |
Vulnerabilità | Codice -> Autore, Nome, Info, UsoTipico, CVE, ServizioInternet, DataPubblicazione, DataAggiornamento, Pericolosità, TipoVulnerabilità | BCNF |
Autore | ID -> Nome ID,Nome -> LinkSito, Email, TipoAutore | BCNF |
Patch | Vulnerabilità -> Nome Nome -> LinkSito, Dimensione | 3FN |
Exploit | Vulnerabilità -> Nome Nome, Vulnerabilità -> Versione, Dimensione, TipoFile, UsoTipico, DataPubblicazione, DataAggiornamento | 3FN |
Sistema Operativo | Codice -> Nome, Release, Tecnologia, ServicePack | BCNF |
Bersaglio | Vulnerabilità -> SO | BCNF |
Realizzazione | Vulnerabilità -> Exploit, Autore | 3FN |
Come si può notare tutte le nostre relazioni sono inBCNF o al limite in 3FN, quindi non necessitano delprocedimento di normalizzazione. Questo, come ci aspettavamo,verifica la qualità del nostro schema di base di datiche non deve quindi essere ulteriormente decomposto.
- Articolo precedente Realizzare un sito web in Jsp passo dopo passo (III-1 Parte)
- Articolo successivo Realizzare un sito web in Jsp passo dopo passo (IV-1 Parte)