Andiamo a definire le regole di integrità all'interno del modello relazionale:
Chiavi primarie, candidate ed alternative
Sia R una relazione, con attributi A1, A2,..., An.
Il sottoinsieme di attributi K = (Ai, Aj,..., Ak) è detta chiave candidata se e solo se soddisfa le due seguenti proprietà:
- Unicità: in ogni momento, due distinte tuple di R non avranno mai lo stesso valore per gli attributi Ai, Aj,..., Ak.
- Minimalità: Nessuno tra gli attributi Ai, Aj,..., Ak può essere rimosso da K senza distruggere il vincolo di unicità
Ogni relazione ha almeno una chiave candidata, perché (come minimo) la combinazione di tutti i suoi attributi ha la proprietà di unicità.
Per una data relazione, una chiave candidata venga arbitrariamente designata come chiave primaria; le chiavi candidate rimanenti (se esistono) saranno dette chiavi alternative.
Chiavi esterne
Una chiave esterna è un attributo, o una combinazione di attributi, di una relazione R2 i cui valori corrispondono a quelli della chiave primaria di un'altra relazione R1. R1 ed R2 non devono necessariamente essere distinte.
Regole d'integrità
Il modello relazionale comprende due regole generali sull'integrità, espresse nei termini di chiavi primarie ed esterne. Le regole sono "generali" nel senso che ogni DBMS che affermi di conformarsi al modello relazionale deve soddisfarle.
- Integrità delle entità: nessun attributo che partecipi alla chiave primaria di una relazione può accettare valori NULL.
- Integrità relazionale: se la relazione R2 include una chiave esterna FK che corrisponda alla chiave primaria PK di un'altra relazione R1, allora ogni valore di FK in R2 deve alternativamente:
- essere uguale al valore di PK in qualche tupla di R1, oppure
- essere composta esclusivamente di valori NULL
R1 ed R2 non devono necessariamente essere distinte.
Nota: la terminologia del modello relazionale si traduce con la nomenclatura standard delle implementazioni RDBMS: relazione -> tabella; attributo -> colonna; tupla -> riga.
In generale la relazione R può essere realizzata tanto da una tabella quanto da una vista; si consideri però che le regole di integrità si applicano esclusivamente a tabelle reali e non a viste.
Nessun commento:
Posta un commento