|
Operatori tradizionali su insiemi
 |
Unione
Date due relazioni R ed S, che abbiano lo stesso schema, cioè
R(A1, A2, ...,An) ed
S(A1, A2, ..., An),
l’unione di R ed S, rappresentata da R S, è la relazione costituita da
tutte le tuple che appartengono almeno a R od a S; lo schema è
R S(A1, A2, ..., An).
|
 |
Intersezione
Date due relazioni R ed S, che abbiano lo stesso schema, cioè
R(A1, A2, ..., An) ed
S(A1, A2, ..., An), l’intersezione di R ed S,
rappresentata da R S, è la relazione costituita da
tutte le tuple che appartengono sia ad R che ad S; lo schema è
R S(A1, A2, ..., An).
|
 |
Differenza
Date due relazioni R ed S, che abbiano lo stesso schema, cioè R(A1, A2, ..., An) ed S(A1, A2, ..., An), la differenza fra R ed S, rappresentata da, R\S, è la relazione costituita da tutte le tuple di R che non appartengono anche ad S; lo schema associato è R\S(A1, A2, ..., An).
|
 |
Prodotto cartesiano
Date due relazioni R ed S, il prodotto cartesiano di R ed S, rappresentato da R×S,
è la relazione costituita da tutte le possibili coppie (r,s) tali che r è
una tupla di R ed s è una tupla di S. Ogni tupla t di R×S è, pertanto,
una concatenazione (r,s) di una tupla r di R e di una tupla s di S. Se le due relazioni
hanno gli schemi R(A1, A2, ..., An) ed
S(B1, B2, ..., Bm), allora lo schema di R×S è
R×S(A1, A2, ..., An, B1,
B2, ..., Bm).
esempi prodotto cartesiano
|
 |
Operatori relazionali
| |
Un operatore relazionale è un operatore
che agisce su relazioni e che dà come risultato ancora una relazione. Un'espressione
relazionale è una espressione ottenuta per mezzo di operatori relazionali applicati
a relazioni.
Gli operatori relazionali sono quelli di proiezione,
selezione, u-join, join naturale, divisione e ridenominazione (operatori specifici su relazioni).
|
 |
Proiezione
Tale operatore consente di estrarre da una relazione informazioni relative ad una sua sottoparte
effettuando la scelta in senso verticale (si scelgono quali colonne o attributi
prendere da una relazione).
Sia R una relazione con schema R(A1, A2, ..., An)
e sia X un sottoinsieme degli attributi nello schema di R, la proiezione di R sugli
attributi X è una relazione T che ha come schema T(X); le tuple di T sono
costituite dai valori che appaiono nelle tuple di R negli attributi di X; eventuali
tuple duplicate in T devono essere eliminate da T stessa.
esempi proiezione
|
 |
Selezione
Tale operatore consente di estrarre da una relazione informazioni che
soddisfano una condizione specificata. La selezione permette di estrarre da
una relazione una sua sottoparte; l'estrazione viene effettuata in
senso orizzontale, cioè vengono eliminate tutte le tuple che non soddisfano una
certa condizione.
Sia R una relazione con schema R(A1, A2, ..., An) e
sia F un predicato composta da uno o più predicati semplici collegati tra di
loro dagli operatori logici and, or e not; ciascun predicato semplice opera su un
attributo nello schema di R e su una costante per mezzo degli operatori di confronto.
La selezione su R per mezzo di F è una relazione T che ha lo stesso schema di R
e che è costituita dalle tuple di R che soddisfano il predicato F. Si dice che una
tupla r di R soddisfa il predicato F se, sostituendo a ciascun attributo in F il valore
che appare nella tupla r in quell’attributo, si ottiene il valore logico vero. Si noti
che T è una sottorelazione, eventualmente vuota, di R.
esempi selezione
|
 |
-Join e Join naturale
Gli operatori di -join e join naturale sono
utilizzati per collegare informazioni contenute in relazioni diverse.
L'operatore di join richiede di specificare gli attributi attraverso i
quali si effettua il collegamento, mentre nell'operatore di join naturale
questi attributi sono direttamente indicati negli schemi delle relazioni.
L'operatore di join naturale ha un significato
analogo a quello del join con l'unica differenza che, per ogni tupla che appare
nella relazione risultante dal join naturale, i valori uguali sono riportati
una sola volta.
Siano R una relazione con schema R(A1, A2, ..., An)
ed S una relazione con schema S(B1, B2, ..., Bm); sia
P un predicato semplice che opera su un attributo A nello schema di R e su un attributo
B nello schema di S per mezzo di un operatore di confronto
(ipsilon). L’ -Join su R ed
S per mezzo di P è una relazione T costituita solo dalle tuple (r,s) del prodotto
cartesiano R×S tali che l’operatore di confronto
è soddisfatto dal valore
che nella tupla r di R è associato all’attributo A e dal valore che nella tupla s
di S è associato all’attributo B. Lo schema di T è T(A1,
A2, ..., An, B1, B2, ..., Bm).
esempi join
Siano R ed S due relazioni con schema R(A1, A2, ...,Ai,
..., An) e con schema S(B1, B2, ...,Bi, ...,
Bm) tali che gli attributi A1, A2, ...,Ai
siano uguali , rispettivamente, a B1, B2, ...,Bi,
con i 1.
Il join naturale di R con S è una relazione T nella quale ciascuna
tupla è una concatenazione (r,s) di una tupla r di R e di una tupla s di S
che hanno gli stessi valori, rispettivamente, negli attributi A1,
A2, ...,Ai e negli attributi B1, B2,
..., Bi. Ciascuno dei valori uguali è riportato una sola volta.
Lo schema di T è T(A1, A2, ...,Ai, ...,
An, Bi+1, ..., Bm).
esempi join naturale
|
 |
Divisione
Siano R una relazione con schema R(A1, A2, ..., An)
ed S una relazione con schema S(B1, B2, ...,Bm) tali
che n>m, S e tutti gli attributi di S sono anche attributi di R. La divisione di R
per S è una relazione T costituita da tutte le tuple t tali che, per ogni tupla
s di S, la tupla r=(t,s) è una tupla r della relazione R. Lo schema della
relazione T è costituito dagli attributi di R che non sono anche attributi di S.
La divisione può essere utilizzata per determinare quali informazioni di R contengano
anche tutte le informazioni descritte in S.
|
Dati tali operatori è possibile definire l’algebra relazionale:
AR { A, D, R, W, P }
ove:
A è un insieme di attributi;
D è un insieme di domini;
R è un insieme di relazioni (o database relazionali) gli schemi delle quali sono definiti su sottoinsiemi di A;
W è l’insieme degli operatori di confronto =, >, <, , , ;
P è l’insieme degli operatori relazionali unione, intersezione, differenza, selezione, proiezione, join naturale, -join, divisione.
|