Database - TiscaliNewsweb.tiscali.it/ontano/Db1.pdfpratica su memoria di massa, a partire da un...
Transcript of Database - TiscaliNewsweb.tiscali.it/ontano/Db1.pdfpratica su memoria di massa, a partire da un...
ing. Alfredo Cozzi 1
Database
Organizzazione di archivi mediante basi di dati
2
Il databaseè una collezione di dati logicamente correlati e condivisi, che ha lo scopo di soddisfare i fabbisogni informativi di una specifica organizzazione. I dati, congiuntamente con la lorodescrizione, sono gestiti da un unico sistema, chiamato DBMS (Data Base Management System), che ne permette la gestione e ne regola gli accessi.
Un DBMS deve essere in grado di:
- Permettere la creazione di una nuova base di dati (mediante un apposito linguaggio di definizione dei dati DDL )
- Facilitare gli utenti nell’inserimento, cancellazione e variazione dei dati del DB (mediante un linguaggio di manipolazione dei dati DML )
- Rendere possibile l’estrazione di informazioni dal DB (medianteun linguaggio di interrogazione QL )
3
Inoltre un DBMS deve avere le seguenti caratteristiche:
• Facilità di accesso
• Indipendenza dalla struttura logica dei dati
• Indipendenza dalla struttura fisica dei dati
• Eliminazione della ridondanza
• Eliminazione dell’inconsistenza
• Integrità dei dati
• Utilizzo da parte di più utenti
• Controllo della concorrenza
• Sicurezza dei dati
4
Modelli per il database
Entità/Associazioni(E/R Entity/Relationship) è il modello maggiormente diffuso per la progettazione concettuale.
Permette di rappresentare gli aspetti significativi della porzione di mondo reale che si vuole modellare mediante opportuni schemi, le entità, gli attributi , che rappresentano le caratteristiche delle entità individuate, e infine le associazioniche individuano le correlazioni logiche tra le entità individuate.
5
Clienti
Nome(pk)ViaCittàcap
Conto
NumConto(pk)Saldo
Movimento
NumReg(pk)DataCasualeimporto
Possedere> < Variare
N 1 1 N
Nel modello si evidenziano 3 entità: Cliente, Conto, Movimento
L’entità cliente è caratterizzata dagli attributi : Nome, Via, Città, Cap
Il modello descrive anche 2 associazioni: una tra Cliente e Conto indicata con Possedere e la seconda tra Movimento e Conto di nome Variare
6
Tipi di modelli per la base di dati
• Gerarchico
• Reticolare
• Relazionale
7
Modello gerarchicoIl modello gerarchicoè particolarmente adatto per rappresentare situazioni nelle quali è possibile fornire all’insieme dei dati una struttura nella quale ci sono entità che stanno in alto e entità che stanno in basso, secondo uno schema ad albero, nel quale i nodi rappresentano le entità e gli archi rappresentano le associazioni. Un DB gerarchico consiste in una collezione di record collegati da archi che rappresentano le associazioni.
8
Modello reticolare
Nel modello reticolare le entità rappresentano i nodi e le associazioni rappresentano gli archi di uno schema a grafo orientato: si tratta di un’estensione del modello di albero gerarchico, essendo consentite anche associazioni tra entità che stanno in basso, e non solo dall’alto verso il basso come avviene nel modello gerarchico
9
Modello relazionaleIl modello relazionalerappresenta il database come un insieme di tabelle. Esso viene considerato attualmente il modello più semplice ed efficace, perché è più vicino al modo consueto di pensare i dati, e si adatta in modo naturale alla classificazione e alla strutturazione dei dati
10
La gestione del database
Il DBMS (Data Base Management System) è il software che consente di costruire e gestire una base di dati, realizzandola nella pratica su memoria di massa, a partire da un progetto e da uno schema dei dati definiti a livello concettuale e tradotto poi in un modello logico dei dati.
Il DBMS costituisce quindi un’interfaccia tra gli utenti di un database con le loro applicazioni e le risorse costituite dall’hardware e dagli archivi di dati presenti in un sistema di elaborazione
11
Le funzioni di un DBMS
• Implementazione del modello logico sul sistema di elaborazione(definizione dei dati derivati dallo schema logico, definizione dei sottoschemi(viste), organizzazione fisica dei dati su supporti di memorizzazione)
• Manipolazione e interrogazione sulla base di dati(inserimento modifica e cancellazione dei dati nel database, interfaccia tra programmi degli utenti e la base di dati, accesso ai contenti del database per le interrogazioni)
• Controllo dell’integrità dei dati (integrità dei dati in relazione ai valori che possono assumere, integrità definite dall’utente
• Sicurezza e protezione(garanzia di sicurezza dei dati contro i danni causati da malfunzionamenti di componenti Hw e sw, protezione dei dati da eventuali danneggiamenti offrendo la possibilità di attivare procedure di recovery, autorizzazione degli utenti che accedono alla base di dati, controllo degli accessi in modo concorrente)
• Supporto alle transazioni(garanzia che tutte le operazioni che compongono la transizione siano eseguite)
12
L’architettura a tre livelli dei sistemi per database
Vista 1 Vista 2 Vista 3
Schema logico del database
Schema fisicodel database
Database
Organizzazione fisica dei dati
13
Caratteristiche dell’architettura a 3 livelli
• Realizza meccanismi di astrazione dei datie assicura l’indipendenza dei dati ( i livelli superiori non sono influenzati dai cambiamenti che avvengono nei livelli inferiori dell’architettura dei dati)
• Semplifica la visione del databaseda parte degli utenti in quanto essi vedono solo le informazioni alle quali sono interessati limitando la possibilità di errore
14
I linguaggi del database
• DDL (data definition Language): linguaggio per la descrizione dei dati, delle tabelle e delle viste, delle associazioni tra tabelle, dei vincoli di integrità e dei controlli relativi alla sicurezza
• DML (data manipulation language): linguaggio per il trattamento dei dati contenuti nel database (inserimento, modifica e cancellazione di dati)
• QL (query language): linguaggio per le interrogazioni alla base di dati (consente il ritrovamento dei dati che interessano, sulla
base dei criteri richiesti dall’utente)
15
Gli utenti di un DB
• DBA (database administrator):responsabile della gestione del database con compito di implementare il modello logico del DB, gestire i dati (controllo di inserimento, modifiche e cancellazione), autorizzazione degli accessi, definizione delle viste, manutenzione del DB nel tempo, controllo della disponibilità degli spazi di memoria di massa
• Programmatori : utilizzano il linguaggio DML per utilizzare i dati del DB per le applicazioni, usano i comandi che sono un’estensione dei linguaggi tradizionali di programmazione
• Utenti finali : accedono al DB attraverso i comandi di QL o mediante interfacce sw che presentano su video finestre, menu e icone
16
Gli utenti di un DB
17
Lo sviluppo del progetto informatico
18
La conoscenza degli obiettivi
La prima fase del processo di sviluppo, detta analisi dei requisiti, riguarda la conoscenza degli obiettivi.
Inoltre occorre la conoscenza globale dell’ambito del progetto (il sistema esistente). Bisogna conoscere quali sono gli archiviinformatizzati già presenti nel sistema per evitare duplicazionedi dati
Il risultato di questa prima fase è la documentazione dell’area del progetto e una serie di ipotesi di prodotto
19
L’analisi
La fase di analisi ha l’obiettivo di determinare e di descrivere tutte le componenti del progetto. Il risultato di questo lavoro diventa la base e la guida di tutto il progetto.
Questa fase del processo di sviluppo tratta la definizione di 3 aspetti fondamentali:
- dati (le informazioni che caratterizzano il progetto)
- funzione (le funzionalità richieste al progetto)
- flusso dei dati(le modalità di acquisizione e di uscita dei dati rispetto alle funzioni
La documentazione dei dati prevede che ogni tipologia di dati abbia un nome e una descrizione. Inoltre si definisce il formato, la dimensione e l’obbligatorietà.
Documentare il flusso dei dati tre le funzioni significa abbinare, a ogni funzione, quali dati utilizza in input e quali dati produce in output
20
La progettazione di dettaglioL’obiettivo della fase di progettazione è definire e descrivere dettagliatamente le caratteristiche del sistema informatico del progetto. I risultati principali di questa fase sono:
- le specifiche per la creazione degli archivi elettronici
- le specifiche per lo sviluppo dei moduli sw del progetto
I prodotti di questa fase sono molteplici:
- gli archivi del progetto (i dati si concretizzano in strutture di archivi � tracciato record)
- i moduli applicativi ( i modulo sw devono essere documentati con le specifiche informatiche indicanti il linguaggio di programmazione da usare e gli archivi elettronici da elaborare)
- il formato dei report e delle interfacce (la descrizione degli output cartacei che i moduli sw producono
- il sistema di comunicazione(nel caso di sistema informatico distribuito i protocolli di rete e il criterio di collegamento tra gli archivi)
- i controlli (i controlli che devono essere previste nei moduli applicativi per garantire la sicurezza
21
La transizione
L’obiettivo della transizione è quello di definire le modalità di passaggio dal sistema esistente al sistema del nuovo progetto (decidere cosa fare al momento dell’attivazione del progetto per garantire all’utente il minore disagio possibile)
Le attività da eseguire sono:
-definizione del piano di rilascio(pianificare le attività necessarie per la partenza del nuovo progetto)
- definizione del piano di formazione(determina la necessità di formazione degli utenti del sistema, corsi di formazione, la pubblicazione di un manuale)
- definizione del piano di migrazione dei dati(le specifiche da produrre consentono di generare i dati di partenza del nuovo progetto)
- definizione del piano di installazione(occorre analizzare le componenti informatiche generali, le apparecchiature e il sw di sistema necessari, le persone che devono attivarsi per contribuire all’installazione)
22
Realizzazione
La fase della realizzazione genera il prodotto del progetto. Trattandosi di un progetto informatico il prodotto è costituito da moduli sw (programmi) e dagli archivi utilizzati dai programmi stessi. I programmi sviluppati devono essere provati per garantire la qualità del sw (unit test eseguiti dalla persona che ha sviluppato il sw). Gli obiettivi delle prove sono:
- verificare la logica del programma rispetto alle specifiche
- verificare la correttezza e la completezza degli archivi di output
- verificare le prestazioni del programma in termini di tempi di elaborazione
23
La documentazione
L’obiettivo della fase di documentazione è fornire a tutti gli utenti del nuovo sistema il materiale documentativo da consultare nel corso dell’attività lavorativa.
Il prodotto della documentazione è composto dal manuale per l’utente. Il manuale deve descrivere le funzionalità del progetto con un opportuno indice. La descrizione deve essere di facile consultazione e di dimensione ridotta
Le fasi di documentazione, prove e formazione, hanno in comune la caratteristica di essere a corredo del progetto per ottimizzare l’ambiente in
cui si deve operare.
24
Testing
La finalità specifica di questa fase è quella di verificare il grado di aderenza del progetto alle necessità indicate dall’utente-committente e di rimuovere eventuali errori presenti nel sw (system test). Per raggiungere questo obiettivo occorre creare un ambiente, detto sistema di prova, che simuli la situazione effettivamente in essere al momento dell’attivazione del progetto.
Predisposto l’ambiente di prova, inizia la vera attività di test. Il risultato finale delle prove consiste nella certificazione del progetto.
Le tecniche di colloquio possono essere distinte in:
- tecniche black-box (non si considera la struttura interna del sw, ma soltanto le sue funzionalità)
- tecniche white-box (controlla l’esecuzione corretta delle singole istruzioni e delle strutture di controllo)
25
La formazione
Obiettivo della fase di formazione è quello di mettere in condizione tutti gli utenti del nuovo sistema di operare conoscendo le caratteristiche del progetto. Il prodotto di questa fase è l’erogazione di corsi rivolti agli utenti del sistema.
26
L’esercizio o produzione
L’obiettivo di questa fase è attivare il progetto presso gli utenti, controllare che i processi elaborativi producano i risultati attesi e verificare globalmente il sistema.
Per consolidare il progetto è opportuno assistere e verificare le prime sessioni di elaborazione, attraverso attività di consulenza su casi pratici, rimozione di situazioni anomale e verifica degli output
27
Modellazione dei dati
Lo sviluppo della base di dati dell’applicazione passa attraverso 3 fasi:
- Progettazione concettuale
- Progettazione logica
- Progettazione fisica
28
Progettazione concettuale
La progettazione concettuale è la sintesi tra la visione degli utenti e la visione dei progettisti dell’applicazione. Deve possedere 2caratteristiche antitetiche: da una parte deve essere assolutamente precisa per non lasciare dubbi in merito alla caratteristica della base di dati, dall’altro deve essere espressa tramite formalismisufficientemente semplici da permettere la lettura e la comprensione anche da parte di utenti non tecnici.
Il modello Entità/Associazione presenta tali caratteristiche.
29
Modellazione dei dati
Modellare i dati significa costruire una rappresentazione semplificata della realtà osservata o di un problema aziendale, individuandone gli elementi caratterizzati e i legami intercorrenti tra essi. La progettazione del modello di dati avviene a livelli diversi:
- Il livello concettualerappresenta la realtà dei dati e le relazioni tra essi attraverso uno schema
- il livello logico rappresenta il modo attraverso il quale i dati sono organizzati negli archivi elettronici: descrive quindi la composizione e il formato dei dati nel loro aspetto di struttura logica di dati. Il livello logico viene derivato dal livello concettuale applicando alcune sempli regole di trasformazione
- Il livello fisico rappresenta l’effettiva installazione degli archivi elettronici: esso indica l’ubicazione dei dati nelle memorie di massa. Il livello fisico è quindi l’implementazione del livello logico sui supporti per la registrazione fisica dei dati (partizione, puntatori, blocchi fisici, cluster, indici).
30
Modello concettuale
Il modello concettuale viene definito attraverso lo schemadei dati: una rappresentazione sintetica degli elementi fondamentaliche caratterizzano la realtà osservata. Questa rappresentazione è indipendente da:
- i valori che vengono assegnati ai dati
- le applicazioni degli utenti che utilizzano i dati
- le visioni parziali dei dati da parte degli utenti
31
Modello Entità/Associazione
Il modello Entità/Associazione è il modello più utilizzato nella progettazione concettuale. Introdotto nel 1976 dal matematico Chen, è uno strumento per analizzare le caratteristiche di una realtà in modo indipendente dagli eventi che in essa accadono.
Il risultato di questo lavoro è la definizione di una rappresentazione grafica, detta schema E/R(Entity/Relationship), che mette in evidenza gli aspetti fondamentali del modello concettuale, con i dati caratterizzanti e le associazioni tra essi.
Gli elementi di un modello entità/associazioni sono:
- Entità
- associazioni
- attributi
32
L’entità
L’entità è un oggetto che ha un significato anche quando viene considerato in modo isolato ed è di interesse per la realtà che si vuole modellare. Esempi di entità sono una persona, un modello di automobile, un movimento contabile……..
Nella rappresentazione grafica le entità sono identificate con un rettangolo
contenente all’interno il nome dell’entità.
studente automobile persona
33
L’associazione
L’associazione(relationship) è un legame che stabilisce un’iterazione tra entità.
La rappresentazione grafica usata per indicare un associazione è una linea con un simbolo che unisce le due entità interessate; il nome dell’associazione compare sulla linea con un simbolo che indica la punta della freccia per indicare il senso di lettura della associazione.
persona automobilePossedere
Di norma i nomi delle entità sono sostantivi mentre i nomi delle associazioni sono verbi
34
Grado di un associazione
Le associazioni hanno un grado. Il grado è dato dal numero di entità che partecipano all’associazione. L’associazione tra automobile e persona è un associazione di grado 2 (associazione binaria).
Ci sono associazioni tra un’entità e se stessa (associazioni ricorsive). L’associazione in figura è un esempio di associazione ricorsiva nella quale l’entità Dipendentepartecipa all’associazione Coordinatorenel duplice ruolo di Supervisoree Collaboratore
Dipendente
Supervisore
Collaboratore
Coordinatore
35
Gli attributiLe proprietà delle entità e delle associazioni sono descritte attraverso gli attributi.
Esempi di attributi per l’entità Automobile sono: Modello, Produttore, Cilindrata,
PrezzoListino.
Le caratteristiche di ogni attributo sono il formato, la dimensione e l’opzionalità:
- Il formato di un attributo indica il tipo di valori che assume (carattere, numerico, data/ora)
- la dimensioneindica la quantità massima di caratteri o cifre inseribili
- l’opzionalità indica la possibilità di non essere sempre valorizzato: l’attributo è obbligatorio se deve avere valore non nullo, facoltativo se sono accettati valori nulli
Il valore nullo (Null) rappresenta un’informazione mancante (da non confondere col numero 0). L’insieme dei possibili valori assunti da un attributo si chiama dominiodell’attributo (valori omogenei tra loro cioè dello stesso tipo).
36
Attributi
Gli attributi sono elencati nella parte inferiore del rettangolo che rappresenta l’entità
AutomobileModello
ProduttoreCilindrata
PrezzoListino
37
ChiaveSi indica con il termine chiave o chiave primaria (primary key) un insieme minimale di attributi che permettono di distinguere tra loro le istanze di una stessa entità.
Esempi di chiavi sono il codice di un prodotto, la matricola di un dipendente (La chiave primaria di un entità viene riconosciuta dalla presenza dell’acronimo {PK} accanto all’attributo chiave)
Persona
CodiceFiscale {PK}NomeCognomeDataNascitaIndirizzo
38
Le associazioni tra entità
La molteplicità di un associazioneè il numero di possibili istanze di un’entità che viene messo in corrispondenza con un’istanza dell’altra entità che partecipa all’associazione.
Il numero minimo e massimo di possibili istanze viene rappresentato mediante una coppia di valori separati da punti: 1..1, 0..1, 1..N.
Al valore minimo e massimo sono associati gli importanti concetti di obbligatorietà e cardinalità dell’associazione:
- il valore minimo assume uno dei due valori 0 e 1. Lo 0 indica che la partecipazione è facoltativa, mentre il valore 1 indica che la partecipazione è obbligatoria.
- il valore massimo definisce la cardinalità della partecipazione all’associazione. Esso assume uno dei due valori 1 o N per indicare una o molte partecipazioni all’associazione
39
La cardinalitàpuò essere a unooppure a molti e pertanto le associazioni tra due entità si classificano in:
- associazione uno a uno, indicata con 1:1
- associazione uno a molti, indicata con 1:N
- associazione molti a molti , indicata con N:N
40
Associazione 1:1
Un associazione si dice uno a unoo biunivoca quando ogni istanza della prima entità si deve associare a una sola istanza della seconda entità e viceversa.Per es. l’associazione tra l’entità Studentee l’entità Diploma, in una scuola superiore, è biunivoca perché a ogni studente corrisponde un solo diploma e viceversa a un diploma corrisponde un solo studente.
Consideriamo le entità Classee Docentee l’associazione Coordinatoreche collega un docente con la classe di cui è coordinatore. Ogni classe deve essere coordinata da un Docente e ogni Docente può coordinare una sola classe:
Docente Classe1 1
Coordinatore
41
Associazione 1:N (uno a molti)Un associazione si dice uno a molti, o semplice, e si indica con 1:N, quando ogni istanza della prima entità si può associare a una o più istanze della seconda entità, mentre a ogni istanza della seconda entità si deve associare una sola istanza della prima.
Per es. nella gestione dei movimenti su un conto corrente, ogni conto può effettuare una o
più operazioni, ma ogni movimento deve riferirsi a un solo conto corrente.
ContoCorrente Movimento
Effettuare
1 N
42
Associazione N:N (molti a molti)Un associazione si molti a molti , o complessa, e si indica con N:N, se a ogni istanza della prima entità si possono associare a una o più istanze della seconda entità e a ogni istanza della seconda entità si possono associare una o più istanze della prima.Consideriamo per es. le entità Docentee Classee l’associazione Insegnare che associa i docenti di una scuola alle classi dove insegnano: ogni docente insegna in più classi e in ogni classe insegnano più docenti
Docente ClasseN N
Insegnare
43
Regole di letturaOgni
<nome dell’entità di partenza> deve/può
<nome dell’associazione> un solo/uno o più
<nome dell’entità di arrivo>
Per es. l’associazione tra l’entità Fornitore e l’entità Prodotto viene letta: ogni fornitore può fornire uno o più prodotti, ogni prodotto deve essere fornito da un solo fornitore
Fornitore Prodotto1 N
Fornire
44
La normalizzazione delle relazioni
La normalizzazione consente di creare tabelle ben definite, che facilitano le operazioni di aggiunta, modifica e cancellazione delle informazioni, e che rendono possibili i cambiamenti nella struttura del modello con l’evolvere delle esigenze aziendali e degli utenti del database.
Nel seguito della trattazione verranno utilizzate le seguenti definizioni:
- la chiaveo chiave primaria, è l’insieme di uno o più attributi che identificano in modo univoco una n-upla (riga della tabella)
- la chiave candidataè ogni insieme minimale di uno o più attributi che possono svolgere la funzione di chiave (ci possono essere molte chiavi candidate, ma una sola chiave candidata)
- l’attributo non-chiave è un campo che non fa parte della chiave primaria.
45
Prima forma normale
Una relazione è in prima forma normale quando rispetta i requisiti fondamentali del modello relazionale che sono:
- tutte le righe della tabella contengono lo stesso numero di colonne
- gli attributi rappresentano informazioni elementari
- i valori che compaiono in una colonna sono dello stesso tipo, cioè appartengono allo stesso dominio
- ogni riga è diversa da tutte le altre, cioè non ci possono essere due righe con gli stessi valori nelle colonne
- l’ordine con il quale le righe compaiono nella tabella è irrilevante
Gli attributi devono essere informazioni non ulteriormente scomponibili (cioè non devono avere sottoattributi)
46
Prima forma normale
Per es. nella relazione:
Dipendenti (Matricola, Nome, Indirizzo, FamiliariACarico)
L’attributo FamiliariACarico non è elementare, in quanto non è costituito da un gruppo di attributi ripetuti dello stesso tipo (i nomi dei familiari). La relazionenon è in prima forma normale.
La relazione può essere convertita in due tabelle:
Dipendenti (Matricola, Nome, Indirizzo)
Familiari (CodiceFam, NomeFam, MatricolaDip)Risulta più facile aggiungere eventuali nuovi attributi (es. età, sesso..)
47
Seconda forma normale
Una relazione è in seconda forma normalequando è in prima forma normale e tutti i suoi attributi non chiave dipendono dall’intera chiave, cioè non possiede attributi che
dipendono soltanto da una parte della chiave. La seconda forma normale elimina la dipendenza parzialedegli attributi dalla chiave e riguarda il caso di relazioni con chiavi composte (formate da più attributi).
La relazione Inventario:
Inventario (Prodotto, Magazzino, Quantità, IndirizzoMagazzino)
non è in seconda forma normale; infatti l’attributo IndirizzoMagazzino dipende funzionalmente dall’attributo Magazzino, che rappresenta una porzione di chiave. La soluzione consiste nel costruire nuove relazioni, togliendo dalla relazione di partenza gli attributi che dipendono solo parzialmente dalla chiave primaria.
R1 (Magazzino, IndirizzoMagazzino)
R2 (Prodotto, Magazzino, Quantità)
48
Terza forma normale
Una relazione è in terza forma normalequando è in seconda forma normale e tutti gli attributi non-chiave dipendono direttamente dalla chiave (viene eliminata la dipendenza transitiva degli attributi dalla chiave).Per es. si consideri la gestione anagrafica di un’associazione di studenti di scuole diverse.
Studenti (Nome, scuola, telefonoScuola)
Il nome è l’attributo chiave e il telefono della scuola dipende dalla scuola. Nella relazione è presente un attributo non chiave (telefonoScuola) che dipende da un altro attributo non-chiave (scuola). Si possono avere anomalie nell’agiornamento e inconsistenza dei dati per il fatto che il telefono della scuola è ripetuto per ogni studente appartenente a quella scuola. La normalizzazione in 3FN si ottiene scomponendo la relazione di partenza in due nuove relazioni, nelle quali gli atributi dipendono direttamente dalla chiave.
Studenti (Nome, scuola) Istituti (scuola, telefonoScuola)
49
L’integrità referenziale L’integrità referenziale è un insieme di regole del modello relazionale che garantiscono l’integrità dei dati quando si hanno relazioni associate tra loro attraverso la chiave esterna; queste regole servono per rendere valide le associazioni tra le tabelle e per eliminare gli errori di inserimento, cancellazione o modifica dei dati collegati tra loro.
L’integrità referenziale viene rispettata quando per ogni valore non nullo della chiave esterna, esiste un valore corrispondente della chiave primaria nella tabella associata.
Per es. nel db relazionale che contiene la tabella dei Clienti e la tabella degli Ordini, il codice del cliente della tabella Ordini è associato alla chiave della tabella Clienti.
Clienti (Codice, RagioneSociale, Indirizzo)
Ordini (NumeroOrdine, DataOrdine, CodiceCliente)
Applicare l’integrità referenziale al db significa garantire che un valore, presente nella tabella Ordini per la chiave esterna CodiceCliente, abbia un corrispondente valore di Codice in una delle righe della tabella Clienti. Inoltre non si deve consentire la cancellazione di un cliente dalla tabella Clienti se ci sono righe nella tabella Ordini che si riferiscono ad esso.
50
L’integrità referenziale
Quando viene applicata l’integrità referenziale, è necessario osservare le seguenti regole pratiche:
- non è possibile immettere un valore nella chiave esterna della tabella associata, se tale valore non esiste tra le chiavi della tabella primaria
- non è possibile eliminare una n-pla dalla tabella primaria, se esistono righe legate ad essa attraverso la chiave esterna nellatabella correlata
- non si può modificare il valore alla chiave nella tabella primaria se ad essa corrispondono righe nella tabella correlata