2 – Modello Relazionale – Algebra Relazionale Cap. 2-3 Basi di dati Atzeni – Ceri –...

24
2 – Modello Relazionale – Algebra Relazionale Cap. 2-3 “Basi di dati” Atzeni – Ceri – Paraboschi - Torlone Basi di Dati prof. A. Longheu

Transcript of 2 – Modello Relazionale – Algebra Relazionale Cap. 2-3 Basi di dati Atzeni – Ceri –...

Page 1: 2 – Modello Relazionale – Algebra Relazionale Cap. 2-3 Basi di dati Atzeni – Ceri – Paraboschi - Torlone Basi di Dati prof. A. Longheu.

2 – Modello Relazionale – Algebra RelazionaleCap. 2-3 “Basi di dati” Atzeni – Ceri – Paraboschi - Torlone

Basi di Datiprof. A. Longheu

Page 2: 2 – Modello Relazionale – Algebra Relazionale Cap. 2-3 Basi di dati Atzeni – Ceri – Paraboschi - Torlone Basi di Dati prof. A. Longheu.

Modello Relazionale

• Esso fu proposto nel 1970 da E.F. Codd• Primi sistemi relazionali appaiono sul mercato

nel 1981• Il modello logico si basa su due concetti:

– relazione: teoria matematica derivata dalla teoria degli insiemi

– tabella: intuitivo ma informalel’uso delle tabelle rende semplice da usare il

modello, mentre la formalizzazione matematica ne consolida la potenza (ad esempio, verifica della correttezza o completezza di un db)

• Le relazioni possono essere efficacemente e semplicemente rappresentate tramite tabelle.

Page 3: 2 – Modello Relazionale – Algebra Relazionale Cap. 2-3 Basi di dati Atzeni – Ceri – Paraboschi - Torlone Basi di Dati prof. A. Longheu.

RelazioneDati due insiemi D1 e D2, si considera anzitutto il loro prodotto cartesiano, ossia l’insieme di tutte le possibili coppie che si possono formare prendendo un elemento di D1 ed uno di D2.Una relazione (in senso matematico) è un sottoinsieme del prodotto cartesiano, ossia è un insieme che contiene alcune di tutte le possibili coppie (al limite, anche tutte, ma non necessariamente)Esempio

D1 = { 1, 3, 5 }D2 = { a, b }

Una possibile relazione R = { (1,a), (3,b), (5,b) }che può essere rappresentata con una tabella

Il prodotto cartesiano e le relazioni si possono estendere a N insiemi

D1 X D2 = { (1,a), (1,b), (3,a), (3,b), (5,a), (5,b) }D1 X D2 = { (1,a), (1,b), (3,a), (3,b), (5,a), (5,b) }

1 a3 b5 b

Page 4: 2 – Modello Relazionale – Algebra Relazionale Cap. 2-3 Basi di dati Atzeni – Ceri – Paraboschi - Torlone Basi di Dati prof. A. Longheu.

Caratteristiche delle relazioni• Ogni riga della tabella viene chiamata n-upla o t-upla• Non è definito alcun ordinamento fra le n-uple, quindi due

tabelle con le stesse righe, anche in ordine diverso, rappresentano la stessa relazione

• Le n-uple di una relazione devono essere distinte l’una dall’altra, quindi una tabella rappresenta una relazione solo se le sue righe sono tutte fra loro diverse

• Per definire il significato e il ruolo di ogni colonna essa viene etichettata mediante un attributo. In tal modo, l’ordine delle colonne risulta irrilevante.

SqCasa SqOspite Casa OspiteJuventus Roma 0 1Lazio Milan 2 0Torino Sampdoria 1 1 T-upla

Attributi

Page 5: 2 – Modello Relazionale – Algebra Relazionale Cap. 2-3 Basi di dati Atzeni – Ceri – Paraboschi - Torlone Basi di Dati prof. A. Longheu.

Una base di dati relazionale è costituita da più relazioni (una di solito non è sufficiente). Alcuni attributi contengono valori comuni (ripetuti cioè in relazioni differenti) necessari per definire collegamenti fra le relazioni

Matricola Cognome Nome Nascita276545 Rossi Maria 21/10/1971565211 Bruni Aldo 12/03/1973446212 Lorenzi Silvio 06/06/1970656422 Vulturi Paolo 22/08/1974

Matricola Cognome Nome Nascita276545 Rossi Maria 21/10/1971565211 Bruni Aldo 12/03/1973446212 Lorenzi Silvio 06/06/1970656422 Vulturi Paolo 22/08/1974

Studente Voto Corso276545 28 A04565211 26 A10446212 25 A23656422 30 A45

Studente Voto Corso276545 28 A04565211 26 A10446212 25 A23656422 30 A45

Codice DocenteA04 SergiA10 PalazzoA23 La CorteA45 Ingrassia

Codice DocenteA04 SergiA10 PalazzoA23 La CorteA45 Ingrassia

Corsi

Esami

Studenti

Database Relazionali - Generalità

Page 6: 2 – Modello Relazionale – Algebra Relazionale Cap. 2-3 Basi di dati Atzeni – Ceri – Paraboschi - Torlone Basi di Dati prof. A. Longheu.

Uno schema di relazione è costituito :–da un simbolo R, detto nome della relazione–da un insieme di nomi di attributi X = {A1, A2, ... , An}

Informalmente, uno schema di relazione è l’insieme del nome di una tabella e dei nomi dei suoi attributi (senza valori).

Database Relazionali - Definizioni

Matricola Cognome Nome NascitaMatricola Cognome Nome NascitaStudenti

R = StudentiX = { Matricola, Cognome, Nome, Nascita }L’insieme di R ed X si indica con R (X)

Page 7: 2 – Modello Relazionale – Algebra Relazionale Cap. 2-3 Basi di dati Atzeni – Ceri – Paraboschi - Torlone Basi di Dati prof. A. Longheu.

Uno schema di base di dati è un insieme di schemi di relazione con nomi diversi DB = { R1(X1) , R2(X2) , ... , Rn(Xn) }Informalmente, uno schema di base di dati è l’insieme dei nomi di tutte le tabelle e dei nomi tutti i loro attributi (senza valori), o, in altre parole, il database vuoto, senza dati (solo lo “scheletro”).

Codice DocenteCodice DocenteCorsi

Schema di base di dati

R= { Studenti (Matricola, ...),Esami (Studente, Voto, Corso),Corsi (Codice, Docente) }

Schema di base di dati

R= { Studenti (Matricola, ...),Esami (Studente, Voto, Corso),Corsi (Codice, Docente) }

Matricola Cognome Nome NascitaMatricola Cognome Nome NascitaStudenti

Studente Voto CorsoStudente Voto CorsoEsami

Schemi di relazione

R1 = StudentiX1 = { Matricola, ... }

R2 = CorsiX2 = { Codice, Docente }

R3 = EsamiX3 = { Studente, Voto, Corso }

Schemi di relazione

R1 = StudentiX1 = { Matricola, ... }

R2 = CorsiX2 = { Codice, Docente }

R3 = EsamiX3 = { Studente, Voto, Corso }

Database Relazionali - Definizioni

Page 8: 2 – Modello Relazionale – Algebra Relazionale Cap. 2-3 Basi di dati Atzeni – Ceri – Paraboschi - Torlone Basi di Dati prof. A. Longheu.

276545 Rossi Maria 21/10/1971565211 Bruni Aldo 12/03/1973446212 Lorenzi Silvio 06/06/1970656422 Vulturi Paolo 22/08/1974

276545 Rossi Maria 21/10/1971565211 Bruni Aldo 12/03/1973446212 Lorenzi Silvio 06/06/1970656422 Vulturi Paolo 22/08/1974

Una istanza di relazione (o anche semplicemente relazione) su uno schema di relazione R(X) è un insieme di t t-uple su X.Informalmente, una istanza di relazione è l’insieme di righe dei suoi dati. (Studenti)

Una istanza di base di dati su uno schema di base di dati DB è un insieme di relazioni t = { t1, ..., tn } dove ogni elemento ti è una relazione sullo schema di relazione Ri(Xi)Informalmente, una istanza di base di dati è l’insieme di tutti i dati di tutte le tabelle del database

Database Relazionali - Definizioni

Un database è l’insieme del suo schema (tabelle vuote) e della sua istanza (dati che popoleranno le tabelle)

Un database è l’insieme del suo schema (tabelle vuote) e della sua istanza (dati che popoleranno le tabelle)

Page 9: 2 – Modello Relazionale – Algebra Relazionale Cap. 2-3 Basi di dati Atzeni – Ceri – Paraboschi - Torlone Basi di Dati prof. A. Longheu.

Studente Voto CorsoNULL 28 NULLNULL 26 A10NULL 26 A10656422 30 A45

Studente Voto CorsoNULL 28 NULLNULL 26 A10NULL 26 A10656422 30 A45

•In alcuni casi è necessario assegnare ad un attributo un valore non significativo perché:

–non se ne conosce il valore–non è significativo per gli altri attributi–deve essere inserito in un secondo momentoNon sempre esiste un valore al quale sia possibile assegnare il significato di “nullo”, per cui viene introdotto un valore “speciale” NULL.Non tutte le colonne possono essere nulle (ad esempio, un numero di matricola nella tabella STUDENTI).Occorre un controllo per evitare che la presenza multipla di più NULL in righe diverse generi ambiguità o faccia perdere di significato la tupla considerata.

Esami inutilizzabile

ambiguo

Valori Nulli

Page 10: 2 – Modello Relazionale – Algebra Relazionale Cap. 2-3 Basi di dati Atzeni – Ceri – Paraboschi - Torlone Basi di Dati prof. A. Longheu.

Matricola Cognome Nome Nascita276545 Rossi Maria 21/10/1971565211 Bruni Aldo 12/03/1973446212 Lorenzi Silvio 06/06/1970446212 Vulturi Paolo 22/08/1974

Matricola Cognome Nome Nascita276545 Rossi Maria 21/10/1971565211 Bruni Aldo 12/03/1973446212 Lorenzi Silvio 06/06/1970446212 Vulturi Paolo 22/08/1974

Vincoli di integrità

• è una proprietà che deve essere soddisfatta dalle istanze per potere esse rappresentare informazioni corrette. I vincoli sono di due categorie:

• vincoli intrarelazionali (all’interno di una relazione)– vincolo su valori (ad esempio, VOTO compreso fra 18 e 30)– vincolo di t-upla (ad esempio, LODE non può esserci se il VOTO è

inferiore a 30)• vincoli interrelazionali (su più relazioni), ad esempio una tupla in

ESAMI per essere valida deve contenere un numero di matricola che esista anche in STUDENTI

EsamiStudenti

Studente Voto Lode Corso276545 36 - A04565211 28 X A10446212 25 - A23999100 30 X A45

Studente Voto Lode Corso276545 36 - A04565211 28 X A10446212 25 - A23999100 30 X A45

Page 11: 2 – Modello Relazionale – Algebra Relazionale Cap. 2-3 Basi di dati Atzeni – Ceri – Paraboschi - Torlone Basi di Dati prof. A. Longheu.

Chiave - 1

• superchiave: un insieme K di attributi è superchiave di R se non contiene due t-uple distinte, ad esempio come chiave si può prendere l’insieme di tutti gli attributi della relazione .

• chiave: un insieme K è chiave se è una superchiave minimale (cioè non contiene al suo interno altre superchiavi)

insieme di attributi utilizzato per identificare univocamente le t-uple di una relazione

insieme di attributi utilizzato per identificare univocamente le t-uple di una relazione

Studenti

Cognome Nome Nascita CorsoRossi Maria 21/10/1971 Ing. Meccan.Bruni Aldo 12/03/1973 Ing. CivileLorenzi Silvio 06/06/1970 Ing. Inform.Vulturi Paolo 22/08/1974 Ing. Inform.

Cognome Nome Nascita CorsoRossi Maria 21/10/1971 Ing. Meccan.Bruni Aldo 12/03/1973 Ing. CivileLorenzi Silvio 06/06/1970 Ing. Inform.Vulturi Paolo 22/08/1974 Ing. Inform.

{ Cognome, Nome, Nascita, Corso } è superchiave, e contiene la superchiave minimale (ossia, la chiave) {Cognome, Nome, Nascita } nell’ipotesi che siano sufficienti a distinguere le singole persone.

Page 12: 2 – Modello Relazionale – Algebra Relazionale Cap. 2-3 Basi di dati Atzeni – Ceri – Paraboschi - Torlone Basi di Dati prof. A. Longheu.

Matricola Cognome Nome Nascita CorsoNULL Rossi Maria NULL Ing. Meccan.565211 Bruni Aldo 12/03/1973 Ing. CivileNULL Lorenzi Silvio 06/06/1970 Ing. Inform.446212 Lorenzi Silvio NULL Ing. Inform.

Matricola Cognome Nome Nascita CorsoNULL Rossi Maria NULL Ing. Meccan.565211 Bruni Aldo 12/03/1973 Ing. CivileNULL Lorenzi Silvio 06/06/1970 Ing. Inform.446212 Lorenzi Silvio NULL Ing. Inform.

Chiave - 2•Per trovare una chiave, si cerca una superchiave e si scartano quanti più attributi possibili, fino a restare con quelli indispensabili, che rappresenteranno una chiave.•In una relazione possono esistere più chiavi, tutte egualmente valide.•Nei casi reali, è quasi impossibile trovare attributi che siano sempre identificanti e disponibili (noti). Per ovviare a questo problema, si introduce un attributo avente il compito specifico di fare da chiave, motivo della nascita di matricole, numeri di targa, codici fiscali eccetera.•La presenza indiscriminata di valori nulli negli attributi può rendere impossibile o inutile l’uso di una chiave.

Chiavi : { Cognome, Nome, Nascita } e { Matricola }Se esiste almeno un valore nullo su tutte le chiavi, la tupla non è più identificabileSe esiste almeno un valore nullo su almeno una chiave, potrebbe sorgere ambiguitàPer evitare problemi, si definisce una delle chiavi come primaria, e si impone per essa l’assenza di valori nulli.

impossibile

inutile

Page 13: 2 – Modello Relazionale – Algebra Relazionale Cap. 2-3 Basi di dati Atzeni – Ceri – Paraboschi - Torlone Basi di Dati prof. A. Longheu.

Prov. Numero ProprietarioRM 6H5567 Rossi MarioRM 6D9909 Broni AldoSA 2F8534 Sineri LuigiBA 998342 Russo Paolo

Prov. Numero ProprietarioRM 6H5567 Rossi MarioRM 6D9909 Broni AldoSA 2F8534 Sineri LuigiBA 998342 Russo Paolo

Codice Articolo Prov. Numero Agente1123 567 RM 2F8534 55-891256 125 RM 6D9909 12-881433 322 FI D45668 82-332300 219 NA F81642 23-43

Codice Articolo Prov. Numero Agente1123 567 RM 2F8534 55-891256 125 RM 6D9909 12-881433 322 FI D45668 82-332300 219 NA F81642 23-43

Vincoli di Integrità Referenziale

Un Vincolo di Integrità Referenziale (foreign key) fra un insieme di attributi X di una relazione R1 ed un’altra relazione R2 è soddisfatto se i valori su X per ogni tupla di R2 figurano come chiave primaria su R2.

Agente Nome40-10 Mico Sergio12-88 Luni Piero82-33 Ronchi Aldo23-43 Busi Nemo

Agente Nome40-10 Mico Sergio12-88 Luni Piero82-33 Ronchi Aldo23-43 Busi Nemo

Page 14: 2 – Modello Relazionale – Algebra Relazionale Cap. 2-3 Basi di dati Atzeni – Ceri – Paraboschi - Torlone Basi di Dati prof. A. Longheu.

Rispetto agli altri modelli (reticolare, gerarchico), il modello relazionale è basato su valori, quindi:

•richiede di rappresentare solo ciò che è rilevante da parte dell’utente (altri modelli richiedono di tenere conto di altri campi, necessari alla gestione interna). Questo implica che:

•è semplice spostare l’informazione da un contesto ad un altro (ad esempio, da un calcolatore ad un altro).

•la rappresentazione logica non fa riferimento a quella fisica.

Basi di Dati Relazionali

Page 15: 2 – Modello Relazionale – Algebra Relazionale Cap. 2-3 Basi di dati Atzeni – Ceri – Paraboschi - Torlone Basi di Dati prof. A. Longheu.

Cenni di Algebra Relazionale - 1

L’algebra relazionale è un linguaggio procedurale, ossia un linguaggio in cui le operazioni complesse vengono specificate descrivendo il procedimento da seguire per ottenere la soluzione.

L’algebra relazionale fornisce dei procedimenti formali per effettuare operazioni di uso comune sulle relazioni (tabelle), come estrazione di particolari dati, aggiornamenti eccetera.

La formalizzazione consente di verificare la correttezza delle operazioni che vengono fatte, nonche’ di (se possibile) ottimizzarle.

L’algebra relazionale è costituita da un insieme di operatori che in ingresso accettano delle relazioni e che in uscita ne producono altre, ottenute elaborando quelle di ingresso. Le tabelle ottenute in uscita prendono il nome di viste, in quanto il calcolo di cui rappresentano il risultato è un filtro logico che serve ad ottenere le sole informazioni che interessano (la “vista” che si vuole in quel momento avere dell’intero db).

Page 16: 2 – Modello Relazionale – Algebra Relazionale Cap. 2-3 Basi di dati Atzeni – Ceri – Paraboschi - Torlone Basi di Dati prof. A. Longheu.

Cenni di Algebra Relazionale - 2

Unionel’unione di due relazioni è una relazione che contiene le t-uple che appartengono alla prima o alla seconda o ad entrambe.

Cognome NomePaperino PaolinoRossi PaoloVerdi MarioMickey Mouse

LAUREATI STUDENTI

Cognome Nome

Rossi Paolo

Verdi Mario

STUDENTILAUREATI

Cognome Nome

Paperino Paolino

Mickey Mouse

Page 17: 2 – Modello Relazionale – Algebra Relazionale Cap. 2-3 Basi di dati Atzeni – Ceri – Paraboschi - Torlone Basi di Dati prof. A. Longheu.

Differenzala differenza di due relazioni è una relazione che contiene le tuple che appartengono alla prima e non appartengono alla seconda.

Cenni di Algebra Relazionale - 3

Cognome NomeMickey Mouse

LAUREATI - STUDENTI

LAUREATI

Cognome Nome

Paperino Paolino

Mickey Mouse

STUDENTI

Cognome Nome

Paperino Paolino

Verdi Mario

Page 18: 2 – Modello Relazionale – Algebra Relazionale Cap. 2-3 Basi di dati Atzeni – Ceri – Paraboschi - Torlone Basi di Dati prof. A. Longheu.

Intersezionel’intersezione di due relazioni è una relazione che contiene le tuple che appartengono alla prima e alla seconda.

Cenni di Algebra Relazionale - 4

Cognome NomePaperino Paolino

LAUREATI STUDENTI

LAUREATI

Cognome Nome

Paperino Paolino

Mickey Mouse

STUDENTI

Cognome Nome

Paperino Paolino

Verdi Mario

Page 19: 2 – Modello Relazionale – Algebra Relazionale Cap. 2-3 Basi di dati Atzeni – Ceri – Paraboschi - Torlone Basi di Dati prof. A. Longheu.

Prodotto CartesianoIl prodotto cartesiano di due relazioni è una relazione che contiene tutte le possibili combinazioni di tuple prese da entrambe le relazioni.

Cenni di Algebra Relazionale - 5

Facolta studing 10let 11ing 12

FACOLTA

matricola cognome Facolta Stud11 Paolino ing 1012 Pluto ing 1010 Mouse ing 1011 Paolino let 1112 Pluto let 1110 Mouse let 1111 Paolino ing 1212 Pluto ing 1210 Mouse ing 12

STUDENTI x FACOLTA

STUDENTImatricola cognome11 Paolino12 Pluto10 Mouse

Page 20: 2 – Modello Relazionale – Algebra Relazionale Cap. 2-3 Basi di dati Atzeni – Ceri – Paraboschi - Torlone Basi di Dati prof. A. Longheu.

Selezione la selezione produce un sottoinsieme delle t-uple su tutti gli attributi (seleziona alcune righe sulla base di un dato criterio).

matricola cognome Facolta Stud11 Paolino ing 1012 Pluto ing 1010 Mouse ing 1011 Paolino let 1112 Pluto let 1110 Mouse let 1111 Paolino ing 1212 Pluto ing 1210 Mouse ing 12

STUDENTI x FACOLTA

Cenni di Algebra Relazionale - 6

matricola cognome Facolta Stud11 Paolino ing 1012 Pluto ing 1010 Mouse ing 1011 Paolino let 1112 Pluto let 1110 Mouse let 1111 Paolino ing 1212 Pluto ing 1210 Mouse ing 12

(STUDENTI x FACOLTA) mat=stud

Page 21: 2 – Modello Relazionale – Algebra Relazionale Cap. 2-3 Basi di dati Atzeni – Ceri – Paraboschi - Torlone Basi di Dati prof. A. Longheu.

Proiezione la proiezione genera un risultato cui contribuiscono tutte le tuple, ma su un sottoinsieme degli attributi (sostanzialmente, si prendono alcune colonne della relazione, eliminando quelle eventualmente ripetute)

Cenni di Algebra Relazionale - 7

Matricola Cognome Facolta Stud11 Paolino ing 1012 Pluto ing 1010 Mouse ing 1011 Paolino let 1112 Pluto let 1110 Mouse let 1111 Paolino ing 1212 Pluto ing 1210 Mouse ing 12

STUDENTI x FACOLTA

Cognome FacoltaPaolino ingPluto ingMouse ingPaolino letPluto letMouse letPaolino ingPluto ingMouse ing

Cognome FacoltaPaolino ingPluto ingMouse ingPaolino letPluto letMouse let

(STUDENTI x FACOLTA) cognome, facoltà

Page 22: 2 – Modello Relazionale – Algebra Relazionale Cap. 2-3 Basi di dati Atzeni – Ceri – Paraboschi - Torlone Basi di Dati prof. A. Longheu.

Join Naturaleil Join naturale unisce due relazioni aventi entrambe un certo numero di colonne comuni, generando una terza relazione che contiene tutte le colonne delle due relazioni, e tutte le righe delle due relazioni che hanno valori uguali nelle colonne (attributi) comuni. Se si escludono le colonne non comuni della seconda relazione, si parla di semi-join.

Cenni di Algebra Relazionale - 8

R

C E3 16 26 87 2

S

A B C1 2 34 5 67 8 9

A B C E

1 2 3 1

4 5 6 2

4 5 6 8

R S

Page 23: 2 – Modello Relazionale – Algebra Relazionale Cap. 2-3 Basi di dati Atzeni – Ceri – Paraboschi - Torlone Basi di Dati prof. A. Longheu.

Cenni di Algebra Relazionale - 9

R

C E3 16 26 87 2

S

A B C1 2 34 5 67 8 9

A B C E1 2 3 14 5 6 24 5 6 87 8 9 Null

R S left

R S right

A B C E1 2 3 14 5 6 24 5 6 8

Null Null 7 2

R S full

A B C E1 2 3 14 5 6 24 5 6 87 8 9 Null

Null Null 7 2

Il join esclude le righe della prima e seconda relazione quando esse non hanno attributi comuni uguali. Se si vogliono includere le righe della prima, seconda, o entrambe, si usano i join sinistro, destro, o totale. Quando sono coinvolte a qualunque titolo le righe con valori non coincidenti negli attributi comuni si parla di outer join (join esterno), altrimenti si parla di inner join (join interno)

Il join esclude le righe della prima e seconda relazione quando esse non hanno attributi comuni uguali. Se si vogliono includere le righe della prima, seconda, o entrambe, si usano i join sinistro, destro, o totale. Quando sono coinvolte a qualunque titolo le righe con valori non coincidenti negli attributi comuni si parla di outer join (join esterno), altrimenti si parla di inner join (join interno)

Page 24: 2 – Modello Relazionale – Algebra Relazionale Cap. 2-3 Basi di dati Atzeni – Ceri – Paraboschi - Torlone Basi di Dati prof. A. Longheu.

Cenni di Algebra Relazionale - 10

R

Codice NomeH4 MarteN6 UranoG8 Giove

S

Imp. ProgettoPolda H4Versi H4Rossi N6 Imp. Progetto Codice Nome

Polda H4 H4 MarteVersi H4 H4 MarteRossi N6 N6 Urano

R progetto=codice S

L’equi-join si ha quando non esistono attributi comuni, ma si decide comunque di voler unire le due relazioni, specificando quali attributi (colonne) debbano essere uguali.Se l’espressione, anziché una semplice uguaglianza fra due attributi di due relazioni, è più complessa, il join prende il nome di theta-join

L’equi-join si ha quando non esistono attributi comuni, ma si decide comunque di voler unire le due relazioni, specificando quali attributi (colonne) debbano essere uguali.Se l’espressione, anziché una semplice uguaglianza fra due attributi di due relazioni, è più complessa, il join prende il nome di theta-join