Anteprima
Vedrai una selezione di 3 pagine su 7
Basi di Dati - Domande e Risposte Pag. 1 Basi di Dati - Domande e Risposte Pag. 2
Anteprima di 3 pagg. su 7.
Scarica il documento per vederlo tutto.
Basi di Dati - Domande e Risposte Pag. 6
1 su 7
D/illustrazione/soddisfatti o rimborsati
Disdici quando
vuoi
Acquista con carta
o PayPal
Scarica i documenti
tutte le volte che vuoi
Estratto del documento

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

Dettagli
Publisher
A.A. 2013-2014
7 pagine
2 download
SSD Scienze matematiche e informatiche INF/01 Informatica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher koganzjo di informazioni apprese con la frequenza delle lezioni di Basi di dati e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università degli Studi dell' Insubria o del prof Carminati Barbara.