# Informatica 3 Liceo Scientifico Scienze Applicate/Forme Normali Integrità Referenziale

Informatica 3 Liceo Scientifico Scienze Applicate
Copertina Tutti i moduli · Sviluppo
    CopertinaInformatica 3 Liceo Scientifico Scienze Applicate/Copertina
* I DataBaseInformatica 3 Liceo Scientifico Scienze Applicate/I DataBase
* Modelli di DatabaseInformatica 3 Liceo Scientifico Scienze Applicate/Modelli di Database
* Progettare un database relazionaleInformatica 3 Liceo Scientifico Scienze Applicate/Progettare un database relazionale
* Modello ERInformatica 3 Liceo Scientifico Scienze Applicate/Modello ER
* Modello RelazionaleInformatica 3 Liceo Scientifico Scienze Applicate/Modello Relazionale
** Es Concessionaria MotoInformatica 3 Liceo Scientifico Scienze Applicate/Es Concessionaria Moto
** Es Agenzia ImmobiliareInformatica 3 Liceo Scientifico Scienze Applicate/Es Agenzia Immobiliare
** Es Mercato del Pesce
** Es1 PrenotazioneVaporettoInformatica 3 Liceo Scientifico Scienze Applicate/Es1 PrenotazioneVaporetto
** Es2 InterrogazioniPianificateInformatica 3 Liceo Scientifico Scienze Applicate/Es2 InterrogazioniPianificate
** Es2 TaglioFashionInformatica 3 Liceo Scientifico Scienze Applicate/Es2 TaglioFashion
* Forme Normali Integrità ReferenzialeInformatica 3 Liceo Scientifico Scienze Applicate/Forme Normali Integrità Referenziale
* Linguaggio SQLInformatica 3 Liceo Scientifico Scienze Applicate/Linguaggio SQL
** Query tramite SELECTInformatica 3 Liceo Scientifico Scienze Applicate/Query tramite SELECT
** SubQuery e Group ByInformatica 3 Liceo Scientifico Scienze Applicate/SubQuery e Group By
** Comandi SQL per creare tabelleInformatica 3 Liceo Scientifico Scienze Applicate/Comandi SQL per creare tabelle
** Comandi SQL per inserire datiInformatica 3 Liceo Scientifico Scienze Applicate/Comandi SQL per inserire dati
* Compito1Informatica 3 Liceo Scientifico Scienze Applicate/Compito1
* Compito2Informatica 3 Liceo Scientifico Scienze Applicate/Compito2
* Compito3
* HTMLInformatica 3 Liceo Scientifico Scienze Applicate/HTML
** HTML tag
** HTML formInformatica 3 Liceo Scientifico Scienze Applicate/HTML form
* Mysql e EasyPhpInformatica 3 Liceo Scientifico Scienze Applicate/Mysql e EasyPhp
* MySQL WorkbenchInformatica 3 Liceo Scientifico Scienze Applicate/MySQL Workbench
* PHPInformatica 3 Liceo Scientifico Scienze Applicate/PHP
* PHP tabellaInformatica 3 Liceo Scientifico Scienze Applicate/PHP tabella
* PHP Es. ProgettiInformatica 3 Liceo Scientifico Scienze Applicate/PHP Es. Progetti
** Spiegazione Uso FormsInformatica 3 Liceo Scientifico Scienze Applicate/Spiegazione Uso Forms
** Spiegazione Uso Mysql
** Programmi UtilizzatiInformatica 3 Liceo Scientifico Scienze Applicate/Programmi Utilizzati
** Schema CollegamentiInformatica 3 Liceo Scientifico Scienze Applicate/Schema Collegamenti
** Database ImpiegatoInformatica 3 Liceo Scientifico Scienze Applicate/Database Impiegato
** Modulo CapoProgettoInformatica 3 Liceo Scientifico Scienze Applicate/Modulo CapoProgetto
** Modulo CredenzialiInformatica 3 Liceo Scientifico Scienze Applicate/Modulo Credenziali
** Modulo ProgettiInformatica 3 Liceo Scientifico Scienze Applicate/Modulo Progetti
** Modulo Visualizza ProgettiInformatica 3 Liceo Scientifico Scienze Applicate/Modulo Visualizza Progetti
** CSS pag1 ProgettoInformatica 3 Liceo Scientifico Scienze Applicate/CSS pag1 Progetto
** CSS pag2 ProgettoInformatica 3 Liceo Scientifico Scienze Applicate/CSS pag2 Progetto
** CSS pag3 ProgettoInformatica 3 Liceo Scientifico Scienze Applicate/CSS pag3 Progetto
** CSS pag4 ProgettoInformatica 3 Liceo Scientifico Scienze Applicate/CSS pag4 Progetto
** Realizzazione SitoInformatica 3 Liceo Scientifico Scienze Applicate/Realizzazione Sito
* CSS
** Posizionamento CSSInformatica 3 Liceo Scientifico Scienze Applicate/Posizionamento CSS
Modifica il sommario

## Forme Normali

Le 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

L'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;