Forme Normali Integrità Referenziale (superiori)
Forme Normali
modificaLe Forme Normali sono ulteriori vincoli oltre a quelli richiesti dal modello relazionale che migliorano la struttura del database.
- La prima forma normale 1FN richiede che il database rispetti le regole del database relazionale ad esempio atomicità dei campi, presenza di una chiave primaria univoca, ecc.
- La seconda forma normale 2FN si applica quando la chiave primaria è una chiave composta da due o più campi, per essere rispettata richiede che il database sia in 1FN e che i campi non chiave dipendano da tutti i campi della chiave primaria. Quindi nei casi in cui la chiave primaria sia composta i campi che non formano la chiave primaria devono dipendere da tutta la chiave primaria, non da uno solo dei suoi campi. Ipotizziamo ad esempio di avere una tabella che ci descrive l'entità "compiti" riferita alla scuola. In questa tabella come chiave primaria utilizziamo due campi: "professori" e "data", perciò un dato compito è identificato dal professore che lo ha fatto e dalla data in cui è stato eseguito. Adesso noi potremmo inserire il campo "voto", esso infatti fa riferimento al compito, quindi a entrambi i campi della chiave primaria. Non potremmo però inserire il campo "telefono professore" poiché farebbe riferimento solo al campo professore e non al campo "data". Nel caso sia necessario il numero di telefono sarà necessario creare un'altra tabella. La seconda forma normale serve per eliminare i campi che hanno, rispetto alla chiave primaria, una dipendenza di tipo parziale.
- La terza forma normale 3FN elimina la dipendenza transitiva dei campi rispetto alla chiave primaria. Cioè mettiamo il caso che nella tabella "Verifiche" ci sia un campo che non dipende dalla chiave primaria, come ad esempio il numero di telefono del professore che ha fatto la verifica, ma che dipende da un altro campo, nel nostro caso il campo del professore, esso va rimosso. Per essere in 3FN bisogna che sia in 2FN e che tutti i campi non chiave dipendano direttamente dalla chiave primaria.
Integrità referenziale
modificaL'integrità referenziale è un insieme di istruzioni che indicano al database come comportarsi in caso di modifica, inserimento, eliminazione dei dati evitando che l'archivio diventi inconsistente. Sono ulteriori vincoli che si vanno ad aggiungere al rispetto delle caratteristiche del database relazionale e alla 1FN,2FN,3FN, non riguardano la struttura del database ma sono rivolte a risolvere problemi in fase di inserimento, modifica, cancellazione dei dati. Esse implicano che:
- Non si possa cancellare una chiave primaria se prima non sono stati cancellati tutti i record che si riferiscono a quella chiave primaria;
- Non si possa modificare una chiave primaria se contestualmente non vengono modificati anche le relative chiavi esterne collegate alla chiave primaria oggetto della modifica;
- Non si possa inserire una chiave esterna se non si è creata prima la chiave primaria corrispondente;