Differenza in algebra relazionale
La differenza è un operatore insiemistico binario dell'algebra relazionale che contiene le tuple presenti nella relazione r1 ma non nella relazione r2. $$ r_3 = r_1 - r_2 $$
Le due relazioni operandi r1 e r2 hanno tuple omogenee. In pratica, le due tabelle hanno lo stesso numero di attributo e lo stesso dominio degli attributi visti da sinistra verso destra.
Il risultato della differenza è una relazione composta dalle tuple presenti nella prima relazione ma non nella seconda.
La compatibilità tra relazioni non è sui nomi degli attributi. Le relazioni operandi possono anche avere nomi di attributi diversi tra loro. Se i nomi degli attributi (colonne) sono diversi, per convenzione l'operatore della differenza usa i nomi degli attributi della prima relazione (r1).
Lo schema del risultato è uguale a quello della prima relazione (tabella).
Se una tupla con gli stessi valori è presente in entrambe le relazioni r1 e r2, è considerata una sola volta nella tabella della differenza r3.
Nota. Questo operatore dell'algebra relazionale è detto insiemistico perché ha lo stesso significato della differenza nella teoria degli insiemi.
Un esempio pratico
Prendo in considerazione due relazioni S e T con lo stesso numero di attributi e gli stessi domini.
La relazione S ha 5 tuple e la relazione T ha 4 tuple.
Nota. Le tuple delle due relazioni S e T sono omogenee perché il numero degli attributi e il dominio dei dati è lo stesso visti da sinistra verso destra. In questo caso le tabelle hanno anche lo stesso nome degli attributi ma non è importante.
La differenza è una relazione composta dalle tuple presenti nella prima tupla (r1) ma non nella seconda (r2).
Il risultato è una relazione composta da 3 tuple.
Le tuple [a,100] e [d,200] sono escluse dalla differenza perché sono presenti sia in S che in T.
Esempio 2
Per rendere più chiaro il concetto inverto l'ordine degli operandi.
La differenza T-S restituisce la seguente tabella
La tabella differenza T-S comprende tutti gli elementi di T senza le tuple [a,100] e [d,200] presenti anche in S.
E così via.