Vincoli

Vincoli di integrità

Il vicolo di integrità è una proprietà che deve essere soddisfatto delle istanze che rappresentano informazione corrette per l’applicazione. Ogni vincolo può essere visto come un predicato che associa ad ogni istanza il valore vero o falso. Se il predicato assume il valore vero diciamo che l’istanza soddisfa il vincolo. In generali ad una schema di base di dati associamo un insieme di vincoli e consideriamo corrette (liste o ammissibile) le istanze che soddifano tutti i vincoli.

E’ possibile classificare i vincoli a seconda degli elementi di una base di dati che sono coinvolti.

Distinguiamo due categorie:

  • Un vincolo è interrelazione se il suo soddisfacimento è definito rispetto a singole relazioni della base di dati
    • un vincolo di tupla è un vincolo che può essere valutato su ciascuna tupla indipendentemente dalle altre
    • come cosa ancora più specifico un vincolo definito con riferimento a singoli valori viene detto vincolo su valori o vincolo di dominio in quanto in quanto impone una restrizione sul dominio dell’attributo.
  • Un vincolo è interrelazionale se coinvolge più relazioni.

Vincoli di tupla

I vincoli di tupla esprimono condizioni sui valori di ciascuna tupla indipendente dalle altre tuple.

Una possibile sintassi per esprimere vincoli di questo tipo è quella che permette di definire espressioni booleani (cioè con connettivi End or Not) con atomi che confrontano (con gli operatori di ugualianza, disugualiaza e ordinamento) valori di attributo o espressioni aritmetiche su valori di attributo.

Chiavi

Una chiaveè un insiemedi attributi utilizzato per identificare univocamente le tuple di una relazione . Per formalizzarela definizione, procediamo in due passi

  • un insieme K di attributi è superchiave di una relazione r se r non contiene due tuple distiinte t1 e t2 con t1[K]=t2[K];
  • K è chiave di r se è una superchiave minimale di r (cioènon esiste un’altra superchiave K’ che sia contenuta in K come sottoinsieme proprio.

Possiamo notare come ciascuna relazione e ciasuno schema di relazione abbiamo sempre una chiave. Una relazione è un insieme, quindi come più volte ribadito è costituita di elementi fraloro diversi di conseguenze per ogni relazione r(x), l’insieme X di tutti gli attributi su cui è definita è senzaltro una superchiave per essa. Ora, i casi sono due o tali insieme è anche chiave, nel quale caso confortiamo l’esistenza della stessa oppure non c’è chiave perchè esiste un’altra superchiave in essa contenuta; allora possiamo procedere ricorsivamente ripetendo il ragionamento su quast’ultimo insieme e così via ;poichè l’insiemedi attibuti su cui è definita una relazione è definito il processo termina in un numero finito di passi con una superchiave minimale. Quindipossiamo affermare con certezza che ogni relazione ha una chiave.

Lo stesso ragionamento può essere svolto a livelllo di chema di relazione: l’insieme di tutti gli attributi è superchiave per ciascuna relazione, quindi lo è per ciascuna relazione lecita,; la ricerca di superchiavi minimali procede poi come sopra.

Il fatto che ciascuno schema di relazione possa essere definita almeno una chiave garantisce la accessibilità a tutti i valori di una base di dai e la loro unica identificabilità. In oltre contenuti in relazioni diverse cne caratterizzano il modello ralazionale come”modello basato su valori”. -i valori attraverso cui vengono stabilite le corrispondenze fra tuple di relazioni diverse sono valori delle chiavi delle relazioni cui fa riferimento dall’esterno.

chiavi e valori nulli

La necessità di limitare la presenza di valori nulli nelle chiavi delle relazioni. In pratica, si adatta una soluzine semplice , che permette di garantire l’identificazione univoca di tutte le uple e la possibilità di fare riferimento ad essa da parte di altre relazioni: su un delle chiavi(detta chiave) si vieta la prsenzadi valori nulli:sulle alte ; valori nulli sono in genere( salvo necessità specifiche) ammessi. GLI attributi che costituiscono la chiave primaria vengono spesso evidenziate attravrso la sottomenclatura. La maggiorparte dei riferimenti tra relazioni attraverso i valori della chiave primaria.

E’ opportuno notare in qusi tutti i casi reali è possibile trovare attributi i cui valori sono identificati e sempre disponibili. quando ciò non accada, è necessario introdurre un attributo aggiuntivo, un codice, probabilmente non significativo dal punto di vista dell’applicazione, che viene in qualche modo grnerato ed attribuito a ciascunatuplu all’atto dell’iserimento. tra l’altro, si può dire che molticodici identificativi(quali ad esempio il numero di matricola, il codice fiscale, in numerodi targhe)siano stati introdotti i passatop prima dell’invenzione o della diffusione delle basi di dati , proprio per gestire l’identificazione univoca dei soggetti di un dominio (rispettivamente gli studenti, i contribuenti, le automobili) o per favorire il riferimnto a essi: esattamente gli obiettivi delle chiavi

Vincoli di integrità referenziale

l vicolo di integrità referenziale fra un insieme di analisi di attributi X di una relazione R1 e soddisfatto se i valori della chiave (primaria) dell’istanza di R2. La definizione precisa richiede un po’ di attenzione in particolare nel caso in cui la chiave di R2 è unica e composta di un solo attributo B( e quindi l’insieme X è a sua volta costituito da un solo attributo A) : allora , il vincolo di integrità referenziale fra l’attributo A di R1 e la relazione R2 p soddisfatto se per ogni tupla t1 in R1 per cui t1[A] non è nullo esiste una tupla t1 in R2 tali che t1 [ A]=t2[B]

Nel caso è più generale dobbiamo fare attenzione al fatto che ciascuno degli attributi in X deve corrispondere ad un preciso attributo delle chiavi primaria X di R2.

Allo scopo è necessario specificare un ordinamento sia nell’insieme X sia in K. Indicando gli attribui in ordine , X=A1A2..An e K=B1B2…Bn il vincolo è soddisfatto se per ogni tupla t1 in R1 senza nulli su X esiste una tupla t2 con t[Ai]=t[bi] per ogni compreso tra 1 e p.


Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Verificato da MonsterInsights