Prodotto cartesiano in algebra relazionale

Il prodotto cartesiano è un operatore binario insiemistico dell'algebra relazionale che, date due relazioni r1 e r2, crea una relazione composta da tutte le combinazioni possibili delle tuple della prima con le tuple della seconda. Il simbolo del prodotto cartesiano è x. $$ r_3 = r_1 \: x \: r_2 $$

Nel prodotto cartesiano ogni tupla della prima relazione è seguita da tutte le tuple della seconda relazione.

E' un operatore insiemistico perché ha lo stesso significato matematico del prodotto cartesiano nella teoria degli insiemi.

Nota. Nel caso del prodotto cartesiano non è necessario che le tuple siano omogenee. Pertanto, non è richiesta la compatibilità rispetto all'unione.

Un esempio pratico

Ho due tabelle S e T.

le relazioni delle tabelle

Calcolo il prodotto cartesiano delle due tabelle.

S x T

Il prodotto cartesiano è una tabella (relazione) composta da tutte le tuple della prima relazione combinate con tutte le relazioni della seconda.

il prodotto cartesiano delle due tabelle

Il conflitto di nomi negli attributi

Se le relazioni r1 e r2 hanno degli attributi con lo stesso nome, per convenzione nel prodotto cartesiano i campi corrispondenti sono indicati senza alcun nome.

Esempio

Queste due tabelle hanno un attributo con lo stesso nome (b)

un esempio di nome di attributo uguale nelle tabelle operandi

Come risolvere il conflitto di nomi?

Ci sono due soluzioni.

  1. Posso riconoscere gli attributi di origine in base alla loro posizione nello schema del prodotto cartesiano e ridenominarli (ex post).
  2. Posso ridenominare gli attributi con lo stesso nome nello schema delle tabelle di origine prima del prodotto cartesiano (ex ante).

Nota. In alcuni calcolatori di algebra relazionale gli attributi delle tabelle sono associati automaticamente a un prefisso uguale al nome della relazione di origine seguito da un punto di separazione. $$ NomeTabella \: . \: NomeAttributo $$ In questi casi il conflitto di nomi non può verificarsi.
un esempio di prodotto cartesiano

E così via.

 


 

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

FacebookTwitterLinkedinLinkedin
knowledge base

Relational Algebra