Algebra relacyjna jest proceduralnym językiem zapytań. Przedstawia krok po kroku proces uzyskiwania wyniku zapytania. Do wykonywania zapytań używa operatorów.
Rodzaje operacji relacyjnych
1. Wybierz operację:
- Operacja Select wybiera krotki spełniające dany predykat.
- Jest to oznaczone sigma (σ).
Notation: σ p(r)
Gdzie:
P służy do przewidywania wyboru
R służy do relacji
P jest używany jako formuła logiki zdań, która może wykorzystywać łączniki takie jak: AND OR i NOT. Te relacyjne mogą być używane jako operatory relacyjne, takie jak =, ≠, ≧, , ≦.
Na przykład: Relacja POŻYCZKA
| NAZWA FILII | KREDYT_NIE | KWOTA |
|---|---|---|
| Śródmieście | L-17 | 1000 |
| Sekwoja | L-23 | 2000 |
| Perryride | L-15 | 1500 |
| Śródmieście | L-14 | 1500 |
| Mianus | L-13 | 500 |
| Roundhill | L-11 | 900 |
| Perryride | L-16 | 1300 |
Wejście:
σ BRANCH_NAME='perryride' (LOAN)
Wyjście:
sztuczna sieć neuronowa
| NAZWA FILII | KREDYT_NIE | KWOTA |
|---|---|---|
| Perryride | L-15 | 1500 |
| Perryride | L-16 | 1300 |
2. Działanie projektu:
- Ta operacja pokazuje listę tych atrybutów, które chcemy, aby pojawiły się w wyniku. Pozostałe atrybuty zostały usunięte z tabeli.
- Jest on oznaczony przez ∏.
Notation: ∏ A1, A2, An (r)
Gdzie
A1 , A2 , A3 jest używany jako nazwa atrybutu relacji R .
Przykład: RELACJE Z KLIENTEM
| NAZWA | ULICA | MIASTO |
|---|---|---|
| Jonesa | Główny | Harrisona |
| Kowal | Północ | Żyto |
| Siano | Główny | Harrisona |
| Curry | Północ | Żyto |
| Johnsona | Dusza | Brooklynie |
| Brooksa | Senator | Brooklynie |
Wejście:
∏ NAME, CITY (CUSTOMER)
Wyjście:
| NAZWA | MIASTO |
|---|---|
| Jonesa | Harrisona |
| Kowal | Żyto |
| Siano | Harrisona |
| Curry | Żyto |
| Johnsona | Brooklynie |
| Brooksa | Brooklynie |
3. Działanie Unii:
- Załóżmy, że istnieją dwie krotki R i S. Operacja sumowania zawiera wszystkie krotki znajdujące się w R, S lub obu w R i S.
- Eliminuje zduplikowane krotki. Jest oznaczony przez ∪.
Notation: R ∪ S
Operacja sumowania musi spełniać następujący warunek:
lista Javy
- R i S muszą mieć atrybut o tej samej liczbie.
- Zduplikowane krotki są eliminowane automatycznie.
Przykład:
RELACJA Z DEPOZYTOREM
| NAZWA KLIENTA | NR KONTA |
|---|---|
| Johnsona | A-101 |
| Kowal | A-121 |
| Mayes | A-321 |
| Tokarz | A-176 |
| Johnsona | A-273 |
| Jonesa | A-472 |
| Lindsay | A-284 |
POŻYCZ RELACJA
| NAZWA KLIENTA | KREDYT_NIE |
|---|---|
| Jonesa | L-17 |
| Kowal | L-23 |
| Hayesa | L-15 |
| Jacksona | L-14 |
| Curry | L-93 |
| Kowal | L-11 |
| Williamsa | L-17 |
Wejście:
∏ CUSTOMER_NAME (BORROW) ∪ ∏ CUSTOMER_NAME (DEPOSITOR)
Wyjście:
| NAZWA KLIENTA |
|---|
| Johnsona |
| Kowal |
| Hayesa |
| Tokarz |
| Jonesa |
| Lindsay |
| Jacksona |
| Curry |
| Williamsa |
| Mayes |
4. Ustaw przecięcie:
- Załóżmy, że istnieją dwie krotki R i S. Operacja przecięcia zestawu zawiera wszystkie krotki, które znajdują się w obu R i S.
- Jest to oznaczone przecięciem ∩.
Notation: R ∩ S
Przykład: Korzystając z powyższej tabeli DEPOSITOR i tabeli BORROW
Wejście:
Struktury danych w Javie
∏ CUSTOMER_NAME (BORROW) ∩ ∏ CUSTOMER_NAME (DEPOSITOR)
Wyjście:
| NAZWA KLIENTA |
|---|
| Kowal |
| Jonesa |
5. Ustaw różnicę:
- Załóżmy, że istnieją dwie krotki R i S. Operacja przecięcia zestawu zawiera wszystkie krotki znajdujące się w R, ale nie w S.
- Jest to oznaczone przecięciem minus (-).
Notation: R - S
Przykład: Korzystając z powyższej tabeli DEPOSITOR i tabeli BORROW
Wejście:
∏ CUSTOMER_NAME (BORROW) - ∏ CUSTOMER_NAME (DEPOSITOR)
Wyjście:
| NAZWA KLIENTA |
|---|
| Jacksona |
| Hayesa |
| Williamsa |
| Curry |
6. Iloczyn kartezjański
- Iloczyn kartezjański służy do łączenia każdego wiersza w jednej tabeli z każdym wierszem w drugiej tabeli. Nazywa się go również produktem krzyżowym.
- Jest on oznaczony przez X.
Notation: E X D
Przykład:
PRACOWNIK
| EMP_ID | EMP_NAME | EMP_DEPT |
|---|---|---|
| 1 | Kowal | A |
| 2 | Złupić | C |
| 3 | Jan | B |
DZIAŁ
| DEPT_NO | DEPT_NAME |
|---|---|
| A | Marketing |
| B | Obroty |
| C | Prawny |
Wejście:
q1 q2 q3 q4
EMPLOYEE X DEPARTMENT
Wyjście:
| EMP_ID | EMP_NAME | EMP_DEPT | DEPT_NO | DEPT_NAME |
|---|---|---|---|---|
| 1 | Kowal | A | A | Marketing |
| 1 | Kowal | A | B | Obroty |
| 1 | Kowal | A | C | Prawny |
| 2 | Złupić | C | A | Marketing |
| 2 | Złupić | C | B | Obroty |
| 2 | Złupić | C | C | Prawny |
| 3 | Jan | B | A | Marketing |
| 3 | Jan | B | B | Obroty |
| 3 | Jan | B | C | Prawny |
7. Zmień nazwę operacji:
Operacja zmiany nazwy służy do zmiany nazwy relacji wyjściowej. Jest oznaczony przez rho (P).
Przykład: Możemy użyć operatora zmiany nazwy, aby zmienić nazwę relacji STUDENT na STUDENT1.
ρ(STUDENT1, STUDENT)