Le dipendenze funzionali si applicano all'intero database o a una relazione particolare?


8

Sono nuovo di dbms. Ho visto un video della conferenza sulle dipendenze funzionali. Ma sono un po 'confuso dal fatto che la dipendenza funzionale sia un vincolo posto sull'intero database o su uno schema particolare?

Risposte:


9

Una dipendenza funzionale è esattamente ciò che implica il termine: l'output della funzione è sempre determinato dall'input. Se ad esempio abbiamo una funzione f () e forniamo la variabile x e riceviamo sempre l'output y , allora y dipende funzionalmente da x. Puoi pensarlo come una semplice funzione grafica 2x + 1 = y Collegando alcuni valori di esempio nella funzione che otteniamo:

X    Y
------
1    3
2    5
3    7

e così via. Quindi sappiamo che per ogni valore di x, esiste un valore di y che sarà sempre quel valore di y per quella x.

Codd lo ha adattato alla gestione dei dati per determinare se il valore di un elemento di dati risulta sempre in un valore noto di un secondo elemento di dati come se fosse l'input e l'output di una funzione. Quindi, ad esempio, se troviamo che a ciascun dipendente di una piccola azienda viene assegnato un numero di dipendente e creiamo un semplice elenco di numeri e nomi di dipendenti, scopriamo che il nome dipende funzionalmente da quel numero di dipendente. Ogni volta che vediamo, ad esempio, il dipendente numero 7, vediamo il nome "Jim Brown". Questo rappresenta nel database la proposizione che è vera nel mondo reale - vale a dire che il dipendente numero 7 è la persona di nome "Jim Brown" a cui possiamo indicare e dire "quello è lui".

La dipendenza funzionale può essere implementata come un vincolo univoco perché esiste una relazione uno a uno tra l'input per la funzione e l'output previsto. Nell'esempio di algebra, quando inseriamo 2 nell'equazione 2x + 1 otterremo sempre 5. Applicando quell'esempio alla gestione dei dati nell'esempio sopra, ogni volta che abbiamo il numero di dipendente 7 dobbiamo avere un solo e un solo nome e altre caratteristiche che ne derivano. Non possiamo avere dipendenti numero 7 associati a "Jim Brown" e "Bob Jones" più di quanto potremmo dire che collegare 7 a 2x + 1 può produrre 15 e 25.

Le dipendenze funzionali sono per definizione implementate quando un vincolo univoco è posto su ogni tabella identificando ogni set di elementi di dati che hanno una relazione uno a uno con un altro set di elementi di dati e i cui valori variano sempre con quel primo set. La notazione è in genere:

A,B ---> C

Ciò significa che il valore di A e B determina il valore di C. Forse A è il numero di dipendente e B è il numero dipendente e C è il nome del dipendente. Quindi, in questo senso, si applicano a ciascuna tabella in ogni schema in ogni database.

Alcuni buoni riferimenti sulla teoria relazionale sono la Practical Database Foundation Series di Fabian Pascal e il libro Relational Theory for Computer Professionals di Chris Date .

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.