L'algebra relazionale è un linguaggio di query procedurale. Fornisce un processo passo passo per ottenere il risultato della query. Utilizza gli operatori per eseguire query.
Tipi di operazione relazionale
1. Selezionare Operazione:
- L'operazione di selezione seleziona le tuple che soddisfano un dato predicato.
- È indicato con sigma (σ).
Notation: σ p(r)
Dove:
P viene utilizzato per la previsione della selezione
R è usato per la relazione
P è usato come una formula logica proposizionale che può utilizzare connettori come: AND OR e NOT. Questi relazionali possono utilizzare come operatori relazionali come =, ≠, ≧, , ≦.
Ad esempio: Relazione PRESTITO
| FILIALE_NOME | PRESTITO_NO | QUANTITÀ |
|---|---|---|
| Centro | L-17 | 1000 |
| Sequoia | L-23 | 2000 |
| Perryride | L-15 | 1500 |
| Centro | L-14 | 1500 |
| Mianus | L-13 | 500 |
| Roundhill | L-11 | 900 |
| Perryride | L-16 | 1300 |
Ingresso:
σ BRANCH_NAME='perryride' (LOAN)
Produzione:
convertire la stringa in oggetto json
| FILIALE_NOME | PRESTITO_NO | QUANTITÀ |
|---|---|---|
| Perryride | L-15 | 1500 |
| Perryride | L-16 | 1300 |
2. Operazione del progetto:
- Questa operazione mostra l'elenco degli attributi che desideriamo appaiano nel risultato. Il resto degli attributi vengono eliminati dalla tabella.
- È indicato con ∏.
Notation: ∏ A1, A2, An (r)
Dove
A1 , A2 , A3 viene utilizzato come nome di attributo della relazione R .
Esempio: RELAZIONE CON IL CLIENTE
| NOME | STRADA | CITTÀ |
|---|---|---|
| Jones | Principale | Harrison |
| fabbro | Nord | Segale |
| Hays | Principale | Harrison |
| Curry | Nord | Segale |
| Johnson | Anima | Brooklyn |
| Brooks | Senatore | Brooklyn |
Ingresso:
∏ NAME, CITY (CUSTOMER)
Produzione:
| NOME | CITTÀ |
|---|---|
| Jones | Harrison |
| fabbro | Segale |
| Hays | Harrison |
| Curry | Segale |
| Johnson | Brooklyn |
| Brooks | Brooklyn |
3. Operazione sindacale:
- Supponiamo che ci siano due tuple R e S. L'operazione di unione contiene tutte le tuple che sono in R o S o entrambe in R e S.
- Elimina le tuple duplicate. È indicato con ∪.
Notation: R ∪ S
Un’operazione sindacale deve soddisfare la seguente condizione:
- R e S devono avere l'attributo dello stesso numero.
- Le tuple duplicate vengono eliminate automaticamente.
Esempio:
RAPPORTO DEPOSITANTE
| NOME DEL CLIENTE | CONTO_NO |
|---|---|
| Johnson | A-101 |
| fabbro | A-121 |
| Mayes | A-321 |
| Turner | A-176 |
| Johnson | A-273 |
| Jones | A-472 |
| Lindsay | A-284 |
RAPPORTO DI PRESTITO
tostring java
| NOME DEL CLIENTE | PRESTITO_NO |
|---|---|
| Jones | L-17 |
| fabbro | L-23 |
| Hayes | L-15 |
| Jackson | L-14 |
| Curry | L-93 |
| fabbro | L-11 |
| Williams | L-17 |
Ingresso:
converte la stringa in intero
∏ CUSTOMER_NAME (BORROW) ∪ ∏ CUSTOMER_NAME (DEPOSITOR)
Produzione:
| NOME DEL CLIENTE |
|---|
| Johnson |
| fabbro |
| Hayes |
| Turner |
| Jones |
| Lindsay |
| Jackson |
| Curry |
| Williams |
| Mayes |
4. Imposta l'intersezione:
- Supponiamo che ci siano due tuple R e S. L'operazione di intersezione degli insiemi contiene tutte le tuple che si trovano sia in R che in S.
- È indicato dall'intersezione ∩.
Notation: R ∩ S
Esempio: Utilizzando la tabella DEPOSITOR e la tabella BORROW sopra
Ingresso:
∏ CUSTOMER_NAME (BORROW) ∩ ∏ CUSTOMER_NAME (DEPOSITOR)
Produzione:
| NOME DEL CLIENTE |
|---|
| fabbro |
| Jones |
5. Imposta la differenza:
- Supponiamo che ci siano due tuple R e S. L'operazione di intersezione degli insiemi contiene tutte le tuple che sono in R ma non in S.
- È indicato dall'intersezione meno (-).
Notation: R - S
Esempio: Utilizzando la tabella DEPOSITOR e la tabella BORROW sopra
Ingresso:
∏ CUSTOMER_NAME (BORROW) - ∏ CUSTOMER_NAME (DEPOSITOR)
Produzione:
| NOME DEL CLIENTE |
|---|
| Jackson |
| Hayes |
| Williams |
| Curry |
6. Prodotto cartesiano
- Il prodotto cartesiano viene utilizzato per combinare ciascuna riga di una tabella con ciascuna riga dell'altra tabella. È noto anche come prodotto incrociato.
- È indicato con X.
Notation: E X D
Esempio:
DIPENDENTE
| EMP_ID | EMP_NAME | EMP_DEPT |
|---|---|---|
| 1 | fabbro | UN |
| 2 | Harry | C |
| 3 | John | B |
DIPARTIMENTO
| UFF_NO | DEPT_NAME |
|---|---|
| UN | Marketing |
| B | Saldi |
| C | Legale |
Ingresso:
EMPLOYEE X DEPARTMENT
Produzione:
| EMP_ID | EMP_NAME | EMP_DEPT | UFF_NO | DEPT_NAME |
|---|---|---|---|---|
| 1 | fabbro | UN | UN | Marketing |
| 1 | fabbro | UN | B | Saldi |
| 1 | fabbro | UN | C | Legale |
| 2 | Harry | C | UN | Marketing |
| 2 | Harry | C | B | Saldi |
| 2 | Harry | C | C | Legale |
| 3 | John | B | UN | Marketing |
| 3 | John | B | B | Saldi |
| 3 | John | B | C | Legale |
7. Operazione di ridenominazione:
L'operazione di ridenominazione viene utilizzata per rinominare la relazione di output. È indicato con Rho (P).
coda di Giava
Esempio: Possiamo usare l'operatore rename per rinominare la relazione STUDENT in STUDENT1.
ρ(STUDENT1, STUDENT)