definizione di dipendenza funzionale
una dipendenza funzionale su R è una coppia ordinata di sottoinsiemi non vuoti X ed Y di R si legge “X determina (funzionalmente) Y”
- X si dice determinante
- Y si dice dipendente
dati uno shcema R e una dipendenza funzionale
X->Y
su R, un’istanza soddisfa la dipendenza funzionaleX->Y
se:(implicazione logica)
- essenzialmente, le dipendenze funzionali esprimono dei vincoli sui dati (es. se il codice fiscale di due persone è uguale, lo deve essere anche la data di nascita)
esempio
- in una relazione che rappresenta esami, non c’è dipendenza funzionale
Voto -> Lode
perché si può prendere 30 senza prendere la lode, e neancheLode->Voto
, perché non prendere la lode non determina il voto, che può essere tra il 18 e il 30
un’istanza si dice legale se rispetta tutte le dipendenze in F
dato uno schema di relazione R e un insieme F di dipendenze funzionali su R, ci sono delle dipendenze funzionali che non sono in F, ma sono soddisfatte da ogni istanza legale di R.
per esempio:
sarà sempre vero per ogni istanza legale - quindi, sarà soddisfatta anche Matricola -> DataNascita
chiusura di un insieme di dipendenze fuzionali
definizione
dato uno schema di relazione R e un insieme F di dipendenze funzionali su R, la chiusura di F è l’insieme di dipendenze funzionali che sono soddisfatte da ogni istanza legale di R.
si denota con:
e si ha che:
chiave
definizione
dati uno schema di relazione R e un insieme F di dipendenze funzionali, un sottoinsieme K di uno schema di relazione R è una chiave di R se:
- (in qualche modo, in questo insieme di dipendenze è presente la dipendenza
K -> R
- questa condizione la rende superchiave -perché sia chiave serve: )- non esiste un sottoinsieme proprio
K'
diK
tale che:
per esempio, per uno schema Studente = Matricola, Cognome, Nome, Data:
- il numero di matricola viene assegnato allo studente per identificarlo
- poiché non ci possono essere due studenti con lo stesso numero di matricola, non ci possono essere due tuple con la stessa Matricola.
- quindi
Matricola -> Matricola, Cognome, Nome, Data
deve essere soddisfatta da ogni istanza legale - matricola è chiave per studente.
chiave primaria
dato uno schema di relazione R e un insieme F di dipendenze funzionali, possono esistere più chiavi di R
- in SQL, una chiave sarà scelta come chiave primaria, e questa non potrà assumere valore nullo
dipendenze funzionali banali
Sono dipendenze che non vale la pena specificare. Sono date da:
perciò, ogni istanza di r soddisfa necessariamente la dipendenza funzionale (es. Nome, Cognome → Nome)
Pertanto, se è detta dipendenza banale.
Dati uno schema di relazione R e un insieme di dipendenze funzionali F, si ha:
domande orale
possibili domande orale
- cos’è una dipendenza funzionale? quando è soddisfatta?
- cos’è una chiave?
- cos’è un’istanza legale?
- cos’è la chiusura di un insieme di dipendenze F?
- cos’è una dipendenza banale?