Che materia stai cercando?

Anteprima

ESTRATTO DOCUMENTO

È 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 stabiliti al momento

della creazione della tabella attraverso le clausole ON UPDATE, ON DELETE specificando uno dei tipi

di operazioni tra NO ACTION, CASCADE, SET NULL, SET DEFAULT.

- Vincoli CHECK su colonna o su relazione, limitano la possibilità d’inserimento dei valori nella

colonna della tabella.

ER 19. Spiegare cosa sono le gerarchie di generalizzazione nel modello ER, a cosa servono e di quali tipologie

possono essere (anche con esempio).

Una entità E è detta generalizzazione delle entità E , E , ..., E se ogni istanza di queste entità è

1 2 n

anche un’istanza di E, quindi E è detta entità padre e E , E , ..., E sono dette entità figlie.

1 2 n

Tutte le proprietà dell’entità padre vengono ereditate dalle entità figlie.

Una gerarchia di generalizzazione può essere totale, se ogni istanza di E è istanza di almeno

un’entità E , o parziale, se esiste almeno un’istanza di E che non è istanza di alcuna entità E .

i i

Inoltre può essere esclusiva, se ogni istanza di E è istanza di al più un’entità E , o condivisa, se

i

esiste almeno un’istanza di E che è istanza di più di un’entità E .

i

Es. Cliente – Standard, Vip : Totale, se standard e vip sono le uniche tipologie di clienti

previste

Parziale, se esistono clienti che non appartengono a queste

categorie

Esclusiva, i clienti possono essere o standard o vip

Film – FilmAnimazione, FilmEssay : condivisa, i film possono appartenere a entrambe le

categorie

20. Spiegare cosa sono gli identificatori nel modello ER e illustrare le varie tipologie tramite esempi.

Gli identificatori per un’entità sono un insieme di attributi e/o entità che identificano

univocamente le istanze dell’entità e possono essere di diverse tipologie: interni, cioè uno o

più attributi dell’entità, esterni, cioè una o più entità collegate da una associazione all’entità a

cui si riferiscono, misti, cioè una combinazione delle due tipologie precedenti, semplici, se sono

composti da un solo elemento, o composti, se sono composti da più di un elemento.

21. Illustrare le varie tipologie di associazioni binarie che possono esistere in uno schema ER e dare un

esempio per ognuna di esse.

A seconda della cardinalità massima delle due entità che collega, un’associazione binaria A tra

E e E (o unaria con E =E ) si dice:

1 2 1 2

- Uno a uno: se c_max di E ed E rispetto ad A è 1

1 2

- Uno a molti: se c_max di E rispetto ad A è n e c_max di E rispetto ad A è 1

1 2

Oppure se c_max di E rispetto ad A è 1 e c_max di E rispetto ad A è n

1 2

- Molti a molti: se c_max di E ed E rispetto ad A è n

1 2

22. Spiegare come si eliminano gli attributi composti da uno schema ER.

Per eliminare un attributo composto A da un’entità E ci sono due soluzioni:

a. Eliminazione dei sotto-attributi di A, cioè un attributo composto diventa semplice.

b. Considerare i sotto-attributi di A come attributi di E, ridefinendo il dominio

dell’attributo e perdendo quindi la relazione tra i sotto-attributi.

23. Spiegare le componenti principali del modello ER.

Le componenti principali del modello ER sono:

- Entità: collezione di oggetti della realtà che vogliamo modellare, che possiedono

caratteristiche comuni.

- Istanze di entità: specifici oggetti appartenenti ad una certa entità.

- Associazione (o relazione): legame logico tra entità.

- Istanze di associazione: combinazioni di istanze delle entità che prendono parte ad una

associazione

Es. c istanza di Cliente, f istanza di Film, (c,f) istanza di Consiglia

- Attributo: proprietà posseduta da un’entità o da un’associazione

PROGETTAZIONE

24. Illustrare la fase di ristrutturazione della progettazione logica di una base di dati relazionale.

La fase di ristrutturazione genera uno schema ER semplificato, detto appunto schema ER ristrutturato,

equivalente a quello di partenza, al fine di semplificarne la traduzione successiva.

La ristrutturazione consiste nell’eliminazione dallo schema di tutti i costrutti non direttamente

rappresentabili nel modello relazionale, cioè nell’eliminazione degli attributi composti e multi-valore e

delle gerarchie di generalizzazione.

25. Spiegare brevemente le varie fasi della progettazione di una base di dati, indicando per ognuna di

esse i principali compiti, l’input e l’output.

1. Raccolta ed analisi dei requisiti

a. Output specifiche dei requisiti

2. Progettazione concettuale

a. Input specifiche dei requisiti

b. Output schema concettuale, documentazione

3. Progettazione logica

a. Input schema concettuale, documentazione

b. Output schema logico, documentazione

4. Normalizzazione

a. Input schema logico, documentazione

b. Output schema logico normalizzato, documentazione

5. Progettazione fisica

a. Input schema logico normalizzato, documentazione

b. Output schema fisico

1. Raccolta ed analisi dei requisiti: in questa fase vengono definite le caratteristiche della

base di dati, per produrre un documento in linguaggio naturale di specifica dei requisiti.

2. Progettazione concettuale: in questa fase, a partire dal documento di specifica, viene

creato uno schema concettuale sulla base di dati, cioè una descrizione formale ad alto

livello del suo contenuto, corredato da una documentazione.

3. Progettazione logica: in questa fase si effettua la traduzione dello schema concettuale nel

modello dei dati del DBMS target, producendo quindi uno schema logico corredato da una

documentazione.

4. Normalizzazione: in questa fase si verifica la qualità dello schema logico prodotto,

attraverso opportuni strumenti formali. Si produce quindi uno schema logico normalizzato,

corredato dalla sua documentazione.


ACQUISTATO

2 volte

PAGINE

7

PESO

273.88 KB

AUTORE

koganzjo

PUBBLICATO

+1 anno fa


DETTAGLI
Esame: Basi di dati
Corso di laurea: Corso di laurea in informatica
SSD:
A.A.: 2014-2015

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à Insubria Como Varese - Uninsubria o del prof Carminati Barbara.

Acquista con carta o conto PayPal

Scarica il file tutte le volte che vuoi

Paga con un conto PayPal per usufruire della garanzia Soddisfatto o rimborsato

Recensioni
Ti è piaciuto questo appunto? Valutalo!

Altri appunti di Basi di dati

Basi Di Dati - Riassunti Completi
Appunto
Basi di dati - controllo dell'accesso in SQL standard
Appunto
Basi di dati - linguaggio di Query
Appunto
Basi di dati - modello Relazionale
Appunto