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)