Alcuni link Importanti:
Definizione (di Wikipedia):
In informatica l’algebra relazionale e il collegato calcolo relazionale fanno parte dell’insieme di linguaggi che permettono di esaminare le query (interrogazioni) da effettuare nell’ambito della gestione/utilizzo di un database. (da Wikipedia).
Per gli esempi successivi prendiamo in considerazione queste tabelle:
Tabella PERSONE:
Nome | Cognome | Sesso | Matricola |
---|---|---|---|
Adrian | Neri | M | 9297 |
Mirco | Neri | M | 7432 |
Giada | Verdi | F | 9824 |
Marta | Bianchi | F | 9858 |
Tabella PROGETTI:
Nome_P | Numero_P | Sede_P | Numero_D |
---|---|---|---|
ProgettoX | 1 | Bellaire | 5 |
ProgettoY | 2 | Sugarland | 5 |
ProgettoZ | 3 | Houston | 5 |
Informatizzazione | 10 | Salford | 4 |
Riorganizzazione | 20 | Houston | 1 |
nuove opportunità | 30 | Salford | 4 |
Tabella SEDI_DIPARTIMENTO:
Numero_D | Sede_D |
---|---|
1 | Houston |
4 | Salford |
5 | Bellaire |
5 | Sugarland |
5 | Houston |
Tabella LAURETATI:
Matricola | Nome | Età |
---|---|---|
7274 | Rossi | 42 |
7432 | Neri | 54 |
9824 | Verdi | 45 |
Tabella SPECIALISTI:
Matricola | Nome | Età |
---|---|---|
9297 | Neri | 33 |
7432 | Neri | 54 |
9824 | Verdi | 45 |
Gli operatori si suddividono in 2 categorie principali:
Nota: gli operatori di: Selezione, Proiezione, Ridenominazione, Unione, Differenza, Prodotto Cartesiano sono operatori di base (primitivi). Mentre i restanti 3 (intersezione, join, divisione) sono derivati dai primi 6.
La selezione è un operatore unario ortogonale dell’algebra relazionale che seleziona le tuple di una relazione (tabella) che soddisfano una particolare condizione. Il simbolo della selezione è sigma o SEL.
oppure:
Il risultato della selezione è una tabella con lo stesso schema della relazione r(X) in ingresso. Dove X è l’insieme degli attributi.
Nota: La selezione si dice operatore “ortogonale” perché seleziona le righe della tabella che soddisfano la condizione specificata, senza duplicazioni, mantenendo gli stessi attributi (X).
esempio 1: Trovare i progetti sviluppati nella sede di Huston:
Soluzione:
il risultato di questa query sarà:
Sede_P |
---|
Houston |
Houston |
esempio 2: Trovare il nome dei progetti e il numero di dipartimenti dei progetti sviluppati nella sede di Huston:
Soluzione:
il risultato di questa query sarà:
Nome_P | Numero_D |
---|---|
ProgettoZ | 5 |
Riorganizzazione | 1 |
La proiezione è un operatore unario ortogonale dell’algebra relazionale che seleziona alcuni attributi (colonne) di una relazione (tabella). Il simbolo della proiezione è la pi greco con in pedice la lista degli attributi e tra parentesi il nome della relazione:
oppure:
Il risultato della proiezione è una tabella contenente al più tutte le ennuple della relazione in ingresso senza duplicazioni ma soltanto alcune colonne.
esempio: Trovare il nome e il cognome delle persone:
Soluzione:
il risultato di questa query sarà:
Nome | Cognome |
---|---|
Adrian | Neri |
Mirco | Neri |
Giada | Verdi |
Marta | Bianchi |
La ridenominazione è un operatore unario dell’algebra relazionale che permette di cambiare i nomi degli attributi di una relazione R. Il simbolo è :
oppure:
L’operazione di ridenominazione cambia soltanto i nomi degli attributi nello schema della relazione e non i dati nelle tuple.
Il contenuto della tabella resta tale e quale.
esempio 1: Rinominare l’attributo “Nome” della tablella SPECIALISTI in “Cognome”:
Soluzione:
il risultato di questa query sarà:
Matricola | Cognome | Età |
---|---|---|
9297 | Neri | 33 |
7432 | Neri | 54 |
9824 | Verdi | 45 |
esempio 2: Rinominare l’attributo “Nome” della tablella SPECIALISTI in “Cognome” e l’attributo “Età” in Anni:
Soluzione:
il risultato di questa query sarà:
Matricola | Cognome | Anni |
---|---|---|
9297 | Neri | 33 |
7432 | Neri | 54 |
9824 | Verdi | 45 |
In matematica: In termini rigorosi l’unione di due insiemi contenuti in un insieme universo é l’insieme contenente tutti gli elementi dell’insieme e tutti gli elementi dell’insieme . II simbolo di unione , dunque indichiamo runione tra gli insiemi con la notazione:
La definizione di unione insiemistica in simboli é data dalla seguente rappresentazione per caratteristica:
esempio: Consideriamo come insieme universo :
e i seguenti suoi sottoinsiemi:
Quanto fa ?
RISPOSTA:
In Algebra Relazionale: L’unione è un operatore insiemistico binario dell’algebra relazionale che unisce due relazioni r1 e r2 (tabelle) in un’unica relazione r3. Il simbolo dell’unione è .
Le due relazioni operandi r1 e r2 devono avere lo stesso numero e tipo (dominio) di attributi da sinistra verso destra, ossia tuple omogenee.
Il risultato è una relazione unione r3 composta da tutte le tuple delle due relazioni, senza duplicazioni.
esempio 1: Eseguire l’unione tra Laureati e Specialisti:
Soluzione:
il risultato di questa query sarà:
Matricola | Nome | Età |
---|---|---|
7274 | Rossi | 42 |
7432 | Neri | 54 |
9824 | Verdi | 45 |
9297 | Neri | 33 |
esempio 2: Eseguire l’unione tra Laureati e Specialisti proiettando solo la matricola:
Soluzione:
il risultato di questa query sarà:
Matricola |
---|
7274 |
7432 |
9824 |
9297 |
Nota: Naturalmente l’unione viene eseguita anche sugli altri attributi, ma stiamo proiettando solo la matricola.
In matematica: La differenza tra due insiemi contenuti in un insieme universo é per definizione l’operazione che sottrae agli elementi del primo insieme gli elementi del secondo insieme . II simbolo della differenza insiemistica é il meno -, o in alternativa la barra discendente \ così che l’insieme differenza tra e si indica in modo equivalente come:
Se volessimo descrivere la differenza insiemistica mediante simboli, potremmo scrivere:
esempio: Consideriamo come insieme universo :
e i seguenti suoi sottoinsiemi:
Quanto fa ?
RISPOSTA:
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:
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.
Nota Bene: è possibile eseguire l’operazione di differenza tra 2 tabelle se e solo se hanno lo stesso schema
esempio: Eseguire la differenza tra Laureati e Specialisti:
Soluzione:
il risultato di questa query sarà:
Matricola | Nome | Età |
---|---|---|
7274 | Rossi | 42 |
In matematica: Il prodotto cartesiano è un’operazione tra due insiemi. Dati due insiemi e , il prodotto cartesiano è l’insieme di tutte le coppie ordinate dove il primo elemento appartiene all’insieme e il secondo elemento appartiene all’insieme .
il prodotto cartesiano è definito in questo modo:
Si legge “A per B” oppure “A cartesiano B”.
esempio: Prendo in considerazione due insiemi A e B composti da due e tre elementi.
Il prodotto cartesiano AxB risulterà:
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 è :
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.
esempio: Trova il prodotto cartesiano fra PERSONE e LAUREATI:
Soluzione:
il risultato di questa query sarà:
Nome | Cognome | Sesso | Matricola | Matricola_L | Nome_L | Età_L |
---|---|---|---|---|---|---|
Adrian | Neri | M | 9297 | 7274 | Rossi | 42 |
Adrian | Neri | M | 9297 | 7432 | Neri | 54 |
Adrian | Neri | M | 9297 | 9824 | Verdi | 45 |
Mirco | Neri | M | 7432 | 7274 | Rossi | 42 |
Mirco | Neri | M | 7432 | 7432 | Neri | 54 |
Mirco | Neri | M | 7432 | 9824 | Verdi | 45 |
Giada | … | … | … | … | … | … |
… | … | … | … | … | … | … |
esempio: Trova il prodotto cartesiano fra PERSONE e LAUREATI, questa volta estraendo solo le tuple significative:
Soluzione:
il risultato di questa query sarà:
Nome | Cognome | Sesso | Matricola | Matricola_L | Nome_L | Età_L |
---|---|---|---|---|---|---|
Mirco | Neri | M | 7432 | 7432 | Neri | 54 |
Giada | Verdi | F | 9824 | 9824 | Verdi | 45 |
In matematica: Consideriamo due insiemi contenuti in un insieme universo . Definiamo l’intersezione tra gli insiemi come l’insieme degli elementi appartenenti a entrambi gli insiemi, ossia degli elementi in comune tra di essi. II simbolo di intersezione é , quindi per indicare I’intersezione tra e scriviamo:
Possiamo tradurre la definizione di intersezione insiemistica in simboli nel seguente modo:
esempio: Consideriamo come insieme universo :
e i seguenti suoi sottoinsiemi:
Quanto fa ?
RISPOSTA:
In Algebra Relazionale: L’intersezione è un operatore insiemistico binario dell’algebra relazionale che seleziona le tuple in comune in due relazioni r1 e r2 (tabelle). Il simbolo dell’intersezione è .
Le due relazioni operandi r1 e r2 hanno tuple omogenee, ossia lo stesso numero e tipo (dominio) di attributi visti da sinistra verso destra.
Il risultato dell’intersezione è una relazione composta dalle tuple presenti in entrambe le relazioni, senza duplicazioni.
esempio: Eseguire l’intersezione tra LAUREATI e SPECIALISTI:
Soluzione:
il risultato di questa query sarà:
Matricola | Nome | Età |
---|---|---|
7432 | Neri | 54 |
9824 | Verdi | 45 |
L’operatore join in algebra relazionale correla i dati contenuti in relazioni diverse confrontando i valori. Esistono due tipi di join: il join naturale e il join condizionale (theta join).
Si tratta di un operatore che ha per operandi una o due relazioni (tabelle) in ingresso e fornisce in uscita un’altra relazione (tabella).
Il join naturale correla i dati in due relazioni diverse sulla base dei valori uguali negli attributi con lo stesso nome. Il simbolo del join naturale è una “farfalla” .
Il presupposto è che ci siano due relazioni contenenti alcuni attributi con lo stesso nome.
3 casi:
Nota: Se nel join naturale non ci sono attributi in comune, il risultato è il prodotto cartesiano delle relazioni r1 x r2.
Nota: Se nel join naturale tutti gli attributi in comune, il risultato è l’intersezione delle relazioni r1 x r2.
Il join condizionale (theta join) correla i dati in due relazioni diverse sulla base di una condizione booleana. E’ anche detto theta join. Il simbolo del join condizionale è una farfalla seguita da una C:
L’operatore theta join legge le tuple della prima relazione e verifica quali tuple della seconda relazione soddisfano la condizione di join.
Se la condizione è soddisfatta le tuple sono combinate e aggiunte nella tabella di join.
Viceversa, le tuple che non la soddisfano sono escluse.
Nota: Il join condizionale tra due relazioni r1 e r2 equivale a una selezione sul prodotto cartesiano delle relazioni r1 X r2.
esempio: Eseguire la Join tra PERSONE e SPECIALISTI:
Soluzione:
il risultato di questa query sarà:
Nome | Cognome | Sesso | Matricola | Matricola_S | Nome_S | Età_S |
---|---|---|---|---|---|---|
Adrian | Neri | M | 9297 | 9297 | Neri | 33 |
Mirco | Neri | M | 7432 | 7432 | Neri | 54 |
Giada | Verdi | F | 9824 | 9824 | Verdi | 45 |
Nota: colorati in blu gli attributi e le tuple appartenenti alla tebella SPECILISTI.
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:
Si tratta di un operatore derivato perché si ottiene combinando altri operatori primitivi dell’algebra relazionale.
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.