Dipendenza funzionale: differenze tra le versioni

Da Wikipedia, l'enciclopedia libera.
Vai alla navigazione Vai alla ricerca
Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica
Riga 71: Riga 71:
* <small>(PDF)</small> [http://www.di.unipi.it/~ghelli/bd1/Dipendenze.pdf Dipendenza funzionale]
* <small>(PDF)</small> [http://www.di.unipi.it/~ghelli/bd1/Dipendenze.pdf Dipendenza funzionale]


== Bobliografia ==
== Bibliografia ==
* Beneventano D. Bergamaschi S. Guerra F. Vincini M., ''Progetto di basi di dati relazionali'', Pitagora Editrice, Bologna,2007/2, [https://it.wikipedia.org/wiki/Special:BookSources/8837116802 ISBN 88-371-1680-2].
* Beneventano D. Bergamaschi S. Guerra F. Vincini M., ''Progetto di basi di dati relazionali'', Pitagora Editrice, Bologna,2007/2, [https://it.wikipedia.org/wiki/Special:BookSources/8837116802 ISBN 88-371-1680-2].

{{Portale|informatica|ingegneria}}
{{Portale|informatica|ingegneria}}

[[Categoria:Terminologia informatica]]
[[Categoria:Terminologia informatica]]
[[Categoria:Teoria delle basi di dati]]
[[Categoria:Teoria delle basi di dati]]

Versione delle 15:15, 8 apr 2015

Definizione

Una dipendenza funzionale è un particolare vincolo di integrità per il modello relazionale che descrive legami di tipo funzionale tra gli attributi di una relazione.

Data una relazione su uno schema relazionale e due sottoinsiemi di attributi non vuoti e di , si dice che esiste su una dipendenza funzionale tra e se per ogni coppia di tuple e di aventi gli stessi valori sugli attributi , e hanno gli stessi valori anche sugli attributi :

Una dipendenza funzionale tra gli attributi e viene generalmente indicata con la notazione e come gli altri vincoli di integrità viene associata ad uno schema: una relazione su quello schema verrà considerata corretta se soddisfa tale dipendenza funzionale.

Verrà denotato con uno schema R(X) in cui è definito un insieme F delle dipendenze funzionali. Un’istanza r di R(X) è detta istanza legale di quando essa soddisfa tutte le dipendenze funzionali di F.

Un'implicazione logica si ha quando, partendo da uno schema e una dipendenza funzionale , ogni istanza legale r di   soddisfa anche , si dirà così che F implica logicamente , indicata come .

Esempio

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

Chiusura di un insieme di dipendenza funzionale

La chiusura è essenzialmente l'intero set di valori che possono essere determinate 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 , la sua chiusura F+ è l’insieme delle dipendenze funzionali che sono implicate logicamente da F:

Esempio

Prendiamo le seguenti dipendenze funzionali dello schema R(A,B,C,D):

La chiusura, applicando gli Assiomi di Armstrong, sarebbe la seguente:

(Riflessività)

(1. unita alla (a))

(Transitività tra (b) e 3.)

((b) unita alla (c))

(Transitività tra 1 e 2)

((d) unita alla (e))

La chiusura è quindi . Calcolando la chiusura di A abbiamo dimostrato che A è anche chiave.

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 inseme di attributi dello schema di r, cioè in uno schema e , allora K è detta chiave dello schema se:

è in F+ e tale che è 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  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.

Voci correlate

Collegamenti esterni

Bibliografia

  • Beneventano D. Bergamaschi S. Guerra F. Vincini M., Progetto di basi di dati relazionali, Pitagora Editrice, Bologna,2007/2, ISBN 88-371-1680-2.