Divisione in algebra relazionale

La divisione è un operatore binario dell'algebra relazionale che contiene le tuple <x> della prima relazione A tali che per ogni tupla <y> della seconda relazione B ci sia una tupla <x,y> nella prima relazione A. $$ A/B = \{ <x> \: | \: \forall <y> \in B, <x,y> \in A \} $$

Si tratta di un operatore derivato perché si ottiene combinando altri operatori primitivi dell'algebra relazionale.

A/B = ∏x(A) - N

Dove N sono i valori interdetti di A ossia quei valori <x> di A che associati a <y> di B formano una tupla <x,y> non presente in A.

N = ∏x((∏x(A) x B)-A)

    Un esempio pratico

    Ho una relazione A di impiegati e una relazione B degli uffici di un'azienda

    le due relazioni

    Per trovare gli impiegati che lavorano in tutti i reparti si ricorre alla divisione A/B.

    A/B

    Nella tabella A c'è solo un valore <impiegato> tale che ogni <impiegato,ufficio> è compreso in A.

    come si svolge

    Il risultato è una tabella contenente l'impiegato che lavora in entrambi i reparti.

    In questo caso è l'impiegato Rossi.

    la divisione A/B

    Nota. Nella tabella della divisione è escluso l'attributo in comune "ufficio".

    E così via.

     


     

    Segnalami un errore, un refuso o un suggerimento per migliorare gli appunti

    FacebookTwitterLinkedinLinkedin
    knowledge base

    Relational Algebra