Dipendenza funzionale

Una dipendenza funzionale è una proprietà emergente delle relazioni in una base di dati relazionale, descrivibile come un legame sistematico tra le istanze degli attributi compresi in una relazione.

Definizione

Data una relazione r {\displaystyle r} su uno schema relazionale R ( X ) {\displaystyle R(X)} e due sottoinsiemi di attributi non vuoti Y {\displaystyle Y} e Z {\displaystyle Z} di X {\displaystyle X} , si dice che esiste su r {\displaystyle r} una dipendenza funzionale tra Y {\displaystyle Y} e Z {\displaystyle Z} se per ogni coppia di tuple t 1 {\displaystyle t_{1}} e t 2 {\displaystyle t_{2}} di r {\displaystyle r} aventi gli stessi valori sugli attributi Y {\displaystyle Y} , t 1 {\displaystyle t_{1}} e t 2 {\displaystyle t_{2}} hanno gli stessi valori anche sugli attributi Z {\displaystyle Z} :

t 1 , t 2 r , t 1 [ Y ] = t 2 [ Y ] t 1 [ Z ] = t 2 [ Z ] {\displaystyle \forall t_{1},t_{2}\in r,t_{1}[Y]=t_{2}[Y]\rightarrow t_{1}[Z]=t_{2}[Z]}

Verrà denotato con R ( X ) , F {\displaystyle \langle R(X),F\rangle } uno schema R(X) in cui è definito un insieme F delle dipendenze funzionali. Un'istanza r di R(X) è detta istanza legale di R ( X ) , F {\displaystyle \langle R(X),F\rangle } quando essa soddisfa tutte le dipendenze funzionali di F.

Un'implicazione logica si ha quando, partendo da uno schema R ( X ) , F {\displaystyle \langle R(X),F\rangle } e una dipendenza funzionale Y Z {\displaystyle Y\rightarrow Z} , ogni istanza legale r di R ( X ) , F {\displaystyle \langle R(X),F\rangle } soddisfa anche Y Z {\displaystyle Y\rightarrow Z} , si dirà così che F implica logicamente Y Z {\displaystyle Y\rightarrow Z} , indicata come F Y Z {\displaystyle F\vDash Y\rightarrow Z} .

Esempio

Prendiamo come esempio uno studente universitario identificato con un ID, il quale sostiene degli esami e per ognuno di essi ottiene un voto, la dipendenza funzionale risulta essere:

{ I D , E S A M E } V O T O {\displaystyle {\{}ID,ESAME{}\}\rightarrow VOTO}

Chiusura di un insieme di dipendenza funzionale

La chiusura è essenzialmente l'intero set di valori che possono essere determinati da un insieme di valori noti per un determinato rapporto con le sue dipendenze funzionali. Formalmente:

Dato un insieme F di dipendenze funzionali, di uno schema R ( X ) , F {\displaystyle \langle R(X),F\rangle } , la sua chiusura F+ è l'insieme delle dipendenze funzionali che sono implicate logicamente da F:

F + = { Y Z | F Y Z } {\displaystyle F^{+}={\{}Y\rightarrow Z|F\vDash Y\rightarrow Z{}\}}

Esempio

R(A,B,C,D):

  1. A B {\displaystyle A\rightarrow B}
  2. B C {\displaystyle B\rightarrow C}
  3. A B D {\displaystyle AB\rightarrow D}


Chiave e superchiave

Se prendiamo una chiave K di una relazione r si può facilmente verificare che esiste una dipendenza funzionale tra K e un qualunque altro attributo o insieme di attributi dello schema di r, cioè in uno schema R ( X ) , F {\displaystyle \langle R(X),F\rangle } e K X {\displaystyle K\subseteq X} , allora K è detta chiave dello schema se:

K X {\displaystyle K\rightarrow X} è in F+ e Y K {\displaystyle \not \exists Y\subset K} tale che Y X {\displaystyle Y\rightarrow X} è in F+

Per definizione stessa di vincolo di chiave, non possono esistere due tuple con gli stessi valori su K e quindi una dipendenza funzionale che ha K al primo membro sarà sempre soddisfatta. Si fa presente che non è detto però che, dato un attributo di una relazione, questo dipenda completamente da tutta la chiave primaria della relazione stessa: è possibile che un attributo (non appartenente all'insieme degli attributi chiave primaria) dipenda in modo completo anche solo da un sottoinsieme della chiave primaria.

Chiameremo superchiave ogni soprainsieme di una chiave.

Bibliografia

  • Paolo Atzeni, Stefano Ceri, Piero Fraternali, Stefano Paraboschi e Riccardo Torlone, Basi di dati, 5ª ed., Milano, McGraw-Hill, 2018, ISBN 978-88-386-9445-5.
  • Beneventano D., Bergamaschi S., Guerra F. e Vincini M., Progetto di basi di dati relazionali, Bologna, Pitagora Editrice, 2007, ISBN 88-371-1680-2.

Voci correlate

  • Assiomi di Armstrong

Collegamenti esterni

  Portale Informatica
  Portale Ingegneria