5° Anno TEORIA 4. Introduzione al linguaggio SQL | Page 13

16 . Il linguaggio SQL Vers . 9.3 – Marzo 2024
Linguaggio SQL : Vincoli di integrità
Riassumendo quanto visto finora per creare e gestire i vincoli RELAZIONALI in SQL possiamo dire che :
• Per esprimere i vincoli interni o intrarelazionali ( su singola ennupla o su più ennuple ) utilizziamo durante la creazione di una tabella ( istruzione CREATE TABLE ):
- la clausola NOT NULL per esprimere i vincoli sul valore di un attributo ; - la clausola PRIMARY KEY per esprimere i vincoli sulle chiavi primarie ; - la clausola UNIQUE per esprimere vincoli sulle chiavi candidate ; - la clausola CHECK per esprimere vincoli di ennupla che coinvolgono uno o più attributi ;
• Per esprimere i vincoli interrelazionali o esterni referenziali utilizziamo durante la creazione di una tabella ( istruzione CREATE TABLE ):
- la clausola FOREIGN KEY … REFERENCES per indicare le chiavi esterne con in aggiunta la clausola NO ACTION ( analogo a RESTRICT ) | CASCADE | SET DEFAULT | SET NULL per implementare una delle tre politiche :
• rifiuto delle modifiche che violano un vincolo
• propagazione a cascata delle modifiche
• impostazione al valore di default delle chiavi delle tabelle interessate
• impostazione a NULL delle chiavi delle tabelle interessate
• Per esprimere i vincoli interrelazionali esterni non referenziali non si utilizzano specificazioni di elementi dello schema inserendole all ’ interno di altre istruzioni SQL .
Essi vengono tradotti utilizzando apposite istruzioni SQL le asserzioni che sono esse stesse elementi dello schema . Per creare un ’ asserzione si utilizza l ’ istruzione CREATE ASSERTION che ha la seguente sintassi :
CREATE ASSERTION < NomeAsserzione > CHECK (< Condizione >) ;
dove < Condizione > deve essere sempre verificata ( ossia sempre vera ) e qualsiasi modifica alle relazioni che la renda falsa deve essere rifiutata .
Autore : Rio Chierego ( email : riochierego @ libero . it - sito web : www . riochierego . it ) Pag . 13