Database
Organizzazione di archivi mediante
basi di dati
ing. Alfredo Cozzi
1
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 loro
descrizione, 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 (mediante
un linguaggio di interrogazione QL)
2
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
3
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 associazioni
che individuano le correlazioni logiche tra le entità individuate.
4
Clienti
Nome(pk)
Via
Città
cap
N
Possedere >
1 Conto
NumConto(pk)
Saldo
1
<
N
Variare
Movimento
NumReg(pk)
Data
Casuale
importo
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
5
Tipi di modelli per la base di dati
• Gerarchico
• Reticolare
• Relazionale
6
Modello gerarchico
Il 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.
7
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
8
Modello relazionale
Il modello relazionale rappresenta 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
9
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
10
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)
11
L’architettura a tre livelli dei sistemi per database
Vista 1
Vista 2
Vista 3
Schema logico
del database
Schema fisico
del database
Database
12
Organizzazione fisica dei dati
Caratteristiche dell’architettura a
3 livelli
• Realizza meccanismi di astrazione dei dati e
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 database da parte degli
utenti in quanto essi vedono solo le informazioni
alle quali sono interessati limitando la possibilità
di errore
13
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)
14
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
15
Gli utenti di un DB
16
Lo sviluppo del progetto informatico
17
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 archivi
informatizzati già presenti nel sistema per evitare duplicazione
di dati
Il risultato di questa prima fase è la documentazione dell’area
del progetto e una serie di ipotesi di prodotto
18
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
19
La progettazione di dettaglio
L’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
20
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)
21
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
22
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.
23
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)
24
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.
25
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
26
Modellazione dei dati
Lo sviluppo della base di dati dell’applicazione passa attraverso 3
fasi:
- Progettazione concettuale
- Progettazione logica
- Progettazione fisica
27
Progettazione concettuale
La progettazione concettuale è la sintesi tra la visione degli utenti
e la visione dei progettisti dell’applicazione. Deve possedere 2
caratteristiche 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 formalismi
sufficientemente semplici da permettere la lettura e la
comprensione anche da parte di utenti non tecnici.
Il modello Entità/Associazione presenta tali caratteristiche.
28
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 concettuale rappresenta 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).
29
Modello concettuale
Il modello concettuale viene definito attraverso lo schema dei
dati: una rappresentazione sintetica degli elementi fondamentali
che 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
30
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
31
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
32
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
Possedere
automobile
Di norma i nomi delle entità sono sostantivi mentre i nomi delle associazioni sono verbi
33
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à Dipendente partecipa
all’associazione Coordinatore nel duplice ruolo di Supervisore e Collaboratore
Coordinatore
Supervisore
Dipendente
Collaboratore
34
Gli attributi
Le 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 dimensione indica 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 dominio
dell’attributo (valori omogenei tra loro cioè dello stesso tipo).
35
Attributi
Gli attributi sono elencati nella parte inferiore del rettangolo che
rappresenta l’entità
Automobile
Modello
Produttore
Cilindrata
PrezzoListino
36
Chiave
Si 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}
Nome
Cognome
DataNascita
Indirizzo
37
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
38
La cardinalità può essere a uno oppure 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
39
Associazione 1:1
Un associazione si dice uno a uno o 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à Studente e 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à Classe e Docente e l’associazione Coordinatore che 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
1
1
Classe
Coordinatore
40
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 1
N
Movimento
Effettuare
41
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à Docente e Classe e 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
N
N
Classe
Insegnare
42
Regole di lettura
Ogni
<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
1
N
Prodotto
Fornire
43
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 chiave o 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.
44
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
45
devono avere sottoattributi)
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..)
46
Seconda forma normale
Una relazione è in seconda forma normale quando è 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 parziale degli 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à)
47
Terza forma normale
Una relazione è in terza forma normale quando è 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)
48
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.
49
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 nella
tabella correlata
- non si può modificare il valore alla chiave nella tabella primaria
se ad essa corrispondono righe nella tabella correlata
50