Estratto del documento

BASI DI DATI DOMANDE DI TEORIA

Forme normali

Dipendenza funzionale:​

dato uno schema di relazione R(X), una dipendenza funzionale (FD) su R è un vincolo di

integrità espresso nelal forma Y→Z, dove Y e Z sono sottoinsiemi di X; in tal caso si dice che Y

determina funzionalmente Z.

Es:​

Persona(CF,città, regione) una dipendenza funzionale su persona è un vincolo di integrità

espresso nella forma FD:città→regione che stabilisce che nelle tuple della relazione persona

alla stessa città deve corrispondere sempre la stessa regione. città determina funzionalmente

regione, la chiave CF determina funzionalmente ogni attributo.

Forme normali:

l’obiettivo è quello di produrre schemi di qualità.

la qualità è data da l’assenza di:

-​ ridondanza nei dati

-​ anomalie di aggiornamento dei dati

uno schema (R(T),F) dove F contiene solo dipendenze funzionali del tipo X→A.

Definizione 1NF (modello piatto) Uno schema R(X) è in 1NF se e solo se i valori di tutti i domini

degli attributi A € X sono atomici (semplici).

Definizione 2NF (serve per definire schemi esenti dai problemi derivanti dalla dipendenza

parziale di un attributo dalla chiave) Uno schema (R(T),F) è in 2NF se e solo se ogni attributo

non primo di R dipende completamente da ognuna delle chiavi di R.

(attributo primo: appartiene ad almeno una chiave)

esempio di violazione:

FREQUENZA(MATR, CODCOR, NUMEROORE, CODDOC)

FD:CODCOR→CODDOC

CODDOC non è primo, ma dipende solo da CODCOR, non dall’intera chiave

problemi:

-​ ridondanza: in tutte le frequenza di un corso di ripete lo stesso docente

-​ anomalia di modifica: se un corso cambia docente si devono modificare tutte le tuple

relative alla frequenza di quel corso

-​ anomalia di inserimento: non si può inserire un corso senza inserire almeno uno

studente che frequenta

-​ anomalia di cancellazione: se vengono cancellate tutte le frequenze relative ad un corso

si perde anche l’informazione sul docente del corso

Definizione 3NF (serve per evitare problemi derivanti da attributi non superchiave che

determinano funzionalmente altri attributi non primi) Uno schema (R(T),F) è in 3NF se e solo per

ogni dipendenza funzionale non banale X→A€F, o X è una superchiave o A è primo.

(superchiave: qualsiasi soprainsieme di una chiave)

esempio di violazione:

CORSO(CODCOR, NOME, CODDOC, CODDIP)

FD:CODDOC→CODDIP

CODDOC→CODDIP che stabilisce che un attributo non superchiave (CODDOC) determina

funzionalmente un altro attributo (CODDIP).

problemi:

-​ ridondanza: in tutti i corsi di un docente si ripete lo stesso dipartimento

-​ anomalia di modifica: se un docente cambia dipartimento si devono modificare tutte le

tuple relative ai corsi di quel docente

-​ anomalia di inserimento: non si può inserire un dipartimento senza inserire almeno un

corso di un suo docente

-​ anomalia di cancellazione: se vengono cancellati tutti i corsi di un docente si perde

anche l’informazione sul dipartimento del docente.

Teorema 4: se uno schema è in 3NF allora lo è anche in 2NF

Definizione BCNF (tutti gli attributi(anche primi) dipendono funzionalmente solo dalle

superchiavi) Uno schema (R(T),F) è in BCNF se e solo se per ogni dipendenza funzionale non

banale X→A€F, X è una superchiave.

Sintassi di interrogazioni innestate

Un’interrogazione innestata esprime delle condizioni che si basano sul risultato di altre

interrogazioni (esterne) (subquery, o query innestate o query nidificate).

-​ Operatori Quantificati: ANY/ALL Confronta il risultato della subquery con un attributo

della query esterna. Teoricamente non è corretto poiché si confronta il singolo valore,

con l'insieme di valori restituiti dalla subquery. Tuttavia, il confronto è possibile quando

viene prodotto in runtime un valore atomico.

studenti con anno di corso più basso

SELECT*

FROM S

WHERE ACorso <= ALL (SELECT ACorso FROM S)

-​ Operatori Esistenziali: (NOT) EXISTS EXISTS ha valore True se solo se l'insieme di

valori restituiti dalla subquery è non vuoto. Al contrario NOT EXISTS ha valore True se e

solo se l'insieme dei valori istituiti dalla subquery è vuoto.

​ nome degli studenti che non hanno sostenuto l’esame del corso C1

​ SELECT SNome FROM S WHERE EXISTS (

​ SELECT * FROM E WHERE E.MATR = S.MATR AND E.CC = ‘C1’)

-​ Operatori di Set: (NOT) IN valori pres

Anteprima
Vedrai una selezione di 4 pagine su 11
Teoria Basi di dati Pag. 1 Teoria Basi di dati Pag. 2
Anteprima di 4 pagg. su 11.
Scarica il documento per vederlo tutto.
Teoria Basi di dati Pag. 6
Anteprima di 4 pagg. su 11.
Scarica il documento per vederlo tutto.
Teoria Basi di dati Pag. 11
1 su 11
D/illustrazione/soddisfatti o rimborsati
Acquista con carta o PayPal
Scarica i documenti tutte le volte che vuoi
Dettagli
SSD
Scienze matematiche e informatiche INF/01 Informatica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher simosan04 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 di Modena e Reggio Emilia o del prof Beneventano Domenico.
Appunti correlati Invia appunti e guadagna

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community