vuoi
o PayPal
tutte le volte che vuoi
MODELLO RELAZIONALE
8. Dare la definizione formale di chiave e chiave esterna nel modello relazionale.
Nel modello relazionale la Chiave è un insieme di attributi che identificano univocamente le
tuple di una relazione, la Chiave Esterna sono gli attributi di una relazione che corrispondono
ad una chiave in un’altra relazione, esse vengono usate per modellare l’associazione tra le
tuple delle due relazioni.
9. Illustrare informalmente il modello relazionale e spiegare quali sono i principali suoi vantaggi.
Il modello relazionale è basato sulla relazione, è caratterizzato da teoria degli insiemi e logica
dei predicati, i vantaggi offerti sono la semplicità della rappresentazione dei dati e la facilità
con cui si esprimono interrogazioni anche complesse
10. Spiegare cosa si intende per integrità referenziale nel modello relazionale ed illustrare le varie opzioni
tramite cui può essere gestita in SQL.
L’integrità referenziale è un insieme di regole che garantiscono l’integrità dei dati in una
relazione tra due tabelle associate attraverso una chiave esterna, essa garantisce la
sincronizzazione tra le tabelle durante le operazioni di aggiornamento e di eliminazione dei
dati.
L’integrità referenziale viene imposta attraverso i vincoli di integrità referenziale, questi vincoli,
a seconda dell’azione stabilita al momento della creazione dello schema di relazione, svolgono
un’azione differente che può essere (sia ON UPDATE che ON DELETE):
- NO ACTION impediscono la cancellazione/aggiornamento se è presente un riferimento a
quella tupla
- CASCADE cancella/aggiorna tutte le tuple che si riferiscono a quella tupla
(nell’aggiornamento vengono settate a null o default)
- SET NULL con la cancellazione/aggiornamento le chieve esterna di tutte le tuple che si
riferiscono a quella tupla viene settata a null (se ammesso)
- SET DEFAULT con la cancellazione/aggiornamento le chieve esterna di tutte le tuple che si
riferiscono a quella tupla viene settata al valore se default
11. Spiegare come il modello relazionale organizza i dati, dando la definizione formale di relazione.
Il modello relazionale è basato su una semplice struttura dati la relazione, dove i dati sono
organizzati in colonne (ciascuna con un proprio dominio). La relazione è un insieme finito di
tuple, le tuple sono elementi ottenuti dal prodotto cartesiano tra i domini di due o più insiemi,
l’insieme di tuple non è ordinato, anche se ogni tupla è ordinata al suo interno.
12. Spiegare come il modello relazionale organizza i dati e come vengono in tale modello rappresentate
le associazioni.
Il modello relazionale è basato su una semplice struttura dati la relazione, dove i dati sono
organizzati in colonne (ciascuna con un proprio dominio).
11 e 12
Il modello relazionale è basato su una semplice struttura dati, la relazione, definita come
sottoinsieme finito del prodotto cartesiano dei domini che partecipano alla relazione stessa.
Questo modello è quindi caratterizzato da precise basi matematiche, e consente di
rappresentare i dati in modo semplice: ogni elemento del prodotto cartesiano è detto tupla, e
la relazione definisce quindi un insieme di tuple non ordinate e distinte tra loro. Ogni tupla è
però ordinata al suo interno, in quanto la prima componente appartiene al primo dominio, la
seconda al secondo, e così via.
Le associazione tra tuple di diverse relazioni vengono modellate attraverso le cosiddette chiavi
esterne: un insieme di attributi in una relazione, dette referente, usati per “riferire” una tupla
in un’altra relazione, detta appunto riferita.
SQL 13. Spiegare cos’è e come viene gestita in SQL l’integrità referenziale.
L’integrità referenziale è un insieme di regole che garantiscono l’integrità dei dati in una
relazione tra due tabelle associate attraverso una chiave esterna, essa garantisce la
sincronizzazione tra le tabelle durante le operazioni di aggiornamento e di eliminazione dei
dati.
L’integrità referenziale viene imposta attraverso i vincoli di integrità referenziale, questi vincoli,
a seconda dell’azione stabilita al momento della creazione dello schema di relazione, svolgono
un’azione differente che può essere (sia ON UPDATE che ON DELETE):
- NO ACTION impediscono la cancellazione/aggiornamento se è presente un riferimento a
quella tupla
- CASCADE cancella/aggiorna tutte le tuple che si riferiscono a quella tupla
(nell’aggiornamento vengono settate a null o default)
- SET NULL con la cancellazione/aggiornamento le chieve esterna di tutte le tuple che si
riferiscono a quella tupla viene settata a null (se ammesso)
- SET DEFAULT con la cancellazione/aggiornamento le chieve esterna di tutte le tuple che si
riferiscono a quella tupla viene settata al valore se default
14. Spiegare cosa sono i vincoli di integrità semantica in SQL e come possono essere specificati.
Oltre ai vincoli di chiave, di obbligatorietà di colonne e di integrità referenziale, SQL mette a
disposizione i vincoli CHECK su colonna e su relazione (su tupla) durante la creazione della
tabella, in modo tale da limitare la possibilità dei valori inseriti dall’utente.
Nel CHECK su colonna, la parola chiave CHECK è seguita da una condizione che dev’essere
soddisfatta per poter inserire il dato nella colonna.
Nel CHECK su relazione, la parola chiave CHECK è seguita da una condizione (predicato o
combinazione di predicati) che fa riferimento ad altre tabelle.
È inoltre possibile assegnare dei nomi ai vincoli per potervisi poi riferire, è sufficiente far
seguire alla specifica del vincolo la parola chiave CONSTRAINT.
I vincoli di integrità semantica sono dei vincoli che è possibile definire attraverso la parola
chiave CHECK seguita da una condizione, che deve essere verificata per poter inserire il dato. I
vincoli CHECK possono essere definiti sia su una colonna che su una relazione. Inoltre è
possibile assegnare dei nomi ai vincoli, per potervisi poi riferire, facendo seguire alla specifica
del vincolo la parola chiave CONSTRAINT e il nome scelto.
15. Spiegare cosa sono le viste e dare il comando SQL per la loro definizione, illustrando il significato di
tutte le clausole.
Una vista è una relazione virtuale attraverso cui è possibile “vedere” i dati memorizzati nelle
relazioni “reali” (dette di base). Una vista non contiene tuple, ma può essere usata a quasi tutti
gli effetti come una relazione di base. Una vista è definita tramite un’interrogazione su una o
più relazioni di base o su altre viste. Il meccanismo delle viste è utile per semplificare l’accesso
ai dati, fornire indipendenza logica e garantire la protezione dei dati.
Il comando per la creazione è:
CREATE VIEW <nome vista> [(<lista nomi colonne>)]
AS <interrogazione> [WITH [{LOCAL|CASCADED}] CHECK OPTION];
<nome vista> è il nome della vista, <interrogazione> è l’interrogazione della vista (dove le
colonne della vista corrispondono a quelle della clausola di proiezione dell’interrogazione),
<lista nomi colonne> è una lista di nomi da assegnare alle colonne della vista (obbligatoria solo
se l’interrogazione genera colonne virtuali).
16. Spiegare cos’è un’estensione procedurale di SQL ed illustrare le tipologie di istruzioni che deve
fornire.
Per estendere il potere espressivo di SQL bisogna combinarlo con un linguaggio di programmazione
generico, in modo da poterlo utilizzare all’interno di un DBMS per definire funzioni e procedure
richiamabili da qualsiasi applicazione.
Lo standard propone quindi delle estensioni procedurali che definiscono procedure e funzioni relative
alle operazioni più frequenti sulla base di dati, che vengono poi richiamate da applicazioni sviluppate
con un linguaggio tradizionale.
17. Spiegare cosa sono i valori nulli e come vengono gestiti durante l’esecuzione di una interrogazione e
l’inserimento di tuple in una base di dati.
I valori nulli servono a denotare la mancanza del valore per quella determinata colonna della tabella al
momento dell’inserimento della tupla, o generati dalla rimozione di riferimenti di quel valore.
Una tupla per cui il valore di verità è “?” non viene restituita dall’interrogazione, viceversa se in un
vincolo di integrità la valutazione della condizione di controllo restituisce “?” il vincolo non è violato.
Se viene fatta la verifica di un vincolo d’integrità su un valore nullo, essa restituirà UNKNOWN, ossia che
il valore non è determinabile. La valutazione di predicati semplici su attributi restituiscono “?” mentre
per i predicati complessi il risultato viene determinato da tabelle AND, OR, NOT (composte dai valori T,
F, ?).
Esistono due predicati “IS NULL” che restituisce true se l’attributo al quale viene applicato è nullo e “IS
NOT NULL” che restituisce true se l’attributo al quale viene applicato non è nullo.
Nelle espressioni se un argomento dell’espressione ha valore NULL allora tutta l’espressione ha valore
NULL, nelle funzioni di gruppo le tuple contenenti valore NULL nella colonna sottoposta a tali funzioni
vengono escluse dal calcolo (le funzioni di gruppo restituiscono NULL se vengono applicate a un insieme
vuoto).
18. Spiegare le tipologie di vincoli che in SQL possono essere specificati ed illustrare la sintassi SQL per la loro
specifica.
In SQL esistono vincoli statici (relativi a uno stato della base di dati) e vincoli di transizione (che mettono
in relazione diversi stati della base di dati). I vincoli possono inoltre essere classificati in vincoli su
singola relazione (se sono su singola tupla o su più tuple di una stessa relazione) o su più relazioni
(come i vincoli d’integrità referenziale). Le tipologie di vincolo sono:
- Vincoli di obbligatorietà di colonne (NOT NULL), vietano l’inserimento di valori nulli nelle colonne
sulle quali vengono messi
- Vincoli di chiave (UNIQUE e PRIMARY KEY), non permettono l’esistenza di 2 o più tuple aventi i
medesimi valori per tutti gli attributi di chiave (unique) e non permettono l’esistenza di 2 o più
tuple aventi i medesimi valori di chiave per tutti gli attributi di chiave o valori nulli per gli attributi di
chiave (primary key)
- Vincoli d’integrità referenziale (FOREIGN KEY) garantiscono l’integrità dei dati in una relazione tra
due tabelle associate attraverso una chiave esterna che garantisce la sincronizzazione tra le tabelle
durante le operazioni di aggiornamento e di eliminazione dei dati. Vengono sta