Algebra relacyjna w DBMS z przykładami
⚡ Inteligentne podsumowanie
Algebra relacyjna w systemie DBMS to proceduralny język zapytań, który przyjmuje relacje jako dane wejściowe i generuje nowe relacje jako dane wyjściowe. Grupuje operatory na kategorie unarne, zbiorowe i binarne, zapewniając teoretyczną podstawę, którą silniki SQL tłumaczą na wykonywalne plany zapytań.

Czym jest algebra relacyjna?
Algebra relacyjna to proceduralny język zapytań, który akceptuje wystąpienia relacji jako dane wejściowe i zwraca nowe wystąpienia relacji jako dane wyjściowe. Stosuje on rekurencyjnie stały zestaw operatorów do jednej lub większej liczby relacji, a wynik każdego operatora jest relacją, którą można przekazać do kolejnej operacji. Silniki SQL wykorzystują tę algebrę do planowania i wykonywania zapytań.
Podstawowa algebra relacyjna Operanych
Operatory algebry relacyjnej dzielą się na trzy grupy.
Jednoargumentowy relacyjny Operanych
- WYBIERZ (σ)
- PROJEKT (π)
- ZMIEŃ NAZWĘ (ρ)
Operacje z teorii mnogości
- UNIA (∪)
- PRZECINANIE (∩)
- RÓŻNICA (−)
- ILOCZYN KARTEZJAŃSKI (×)
Binarna relacja Operanych
- DOŁĄCZ
- PODZIAŁ
Poniższe sekcje opisują każdego operatora i przykłady jego działania.
WYBIERZ (σ)
SELECT Operacja wybiera podzbiór krotek spełniających dany predykat. Symbol sigma σ oznacza to:
σp(r)
gdzie σ jest operatorem, p jest warunkiem zdania i r jest relacją (tabelą). SELECT zachowuje schemat i odrzuca wiersze, które nie spełniają predykatu.
1 przykład
σ topic = "Database" (Tutorials)
Wybiera krotki z Poradniki gdzie temat jest równy „Baza danych”.
2 przykład
σ topic = "Database" AND author = "guru99" (Tutorials)
Wybiera krotki z Poradniki gdzie tematem jest „Baza danych”, a autorem jest guru99.
3 przykład
σ sales > 50000 (Customers)
Wybiera krotki z Nasi Klienci których wartość sprzedaży przekracza 50 000.
Projekcja (π)
projekcja Operator usuwa wszystkie atrybuty z relacji wejściowej z wyjątkiem wymienionych, tworząc pionowy podzbiór. Projekcja eliminuje również duplikaty wierszy, które powstają w wyniku upuszczenia.ping atrybuty. Symbol pi π oznacza to.
Przykład: rozważ poniższą tabelę.
| Identyfikator klienta | Nazwa klienta | Status |
|---|---|---|
| 1 | Aktywna | |
| 2 | Amazon | Aktywna |
| 3 | Apple | Nieaktywny |
| 4 | Alibaba | Aktywna |
Projekcja na podstawie nazwy klienta i statusu:
π CustomerName, Status (Customers)
| Nazwa klienta | Status |
|---|---|
| Aktywna | |
| Amazon | Aktywna |
| Apple | Nieaktywny |
| Alibaba | Aktywna |
Zmień nazwę (ρ)
przemianować Operator to operacja jednoargumentowa, która nadaje nową nazwę atrybutowi (lub całej relacji). Na przykład: ρ(a/b) R zmienia nazwy atrybutów b relacji R do aZmiana nazwy jest szczególnie użyteczna, gdy trzeba wykonać połączenie własne lub połączyć dwie relacje o wspólnych nazwach atrybutów.
Unia Operacja (∪)
UNION operator oznaczony przez ∪, zwraca każdą krotkę, która pojawia się w relacji A lub relacji B, automatycznie usuwając duplikaty.
Result ← A ∪ B
Aby związek był ważny:
- A i B muszą mieć taką samą liczbę atrybutów (tę samą arność).
- Odpowiednie domeny atrybutów muszą być kompatybilne.
- Duplikaty krotek są usuwane automatycznie.
Przykład. Rozważ te dwie tabele:
| Tabela A | Tabela B | |||
|---|---|---|---|---|
| kolumna 1 | kolumna 2 | kolumna 1 | kolumna 2 | |
| 1 | 1 | 1 | 1 | |
| 1 | 2 | 1 | 3 | |
A ∪ B daje:
| kolumna 1 | kolumna 2 |
|---|---|
| 1 | 1 |
| 1 | 2 |
| 1 | 3 |
Ustaw różnicę (−)
Symbol minus oznacza ustawić różnicę. Wynik A − B jest relacją zawierającą wszystkie krotki, które znajdują się w A, ale nie znajdują się w B.
- A i B muszą być zgodne ze związkiem zawodowym.
- Nazwy atrybutów i domeny muszą być zgodne.
Przykład: A − B
| kolumna 1 | kolumna 2 |
|---|---|
| 1 | 2 |
Przecięcie (∩)
skrzyżowanie operator oznaczony przez ∩, definiuje relację zawierającą każdą krotkę pojawiającą się zarówno w A, jak i B. A i B muszą być zgodne ze sobą pod względem unii.
Wizualna definicja skrzyżowania.
Przykład: A ∩ B
| kolumna 1 | kolumna 2 |
|---|---|
| 1 | 1 |
Iloczyn kartezjański (×) w systemie DBMS
Produkt kartezjański Łączy każdą krotkę jednej relacji z każdą krotką innej relacji, scalając ich kolumny. Sam wynik rzadko jest użyteczny, ale w połączeniu z predykatem SELECT staje się podstawą JOIN. Nazywa się to również iloczynem wektorowym lub łączeniem krzyżowym.
Przykład: σ kolumna 2 = '1' (A × B)
Wyrażenie zwraca każdy wiersz A × B którego column 2 wartość wynosi 1.
| kolumna 1 | kolumna 2 |
|---|---|
| 1 | 1 |
| 1 | 1 |
Dołącz do rejestru Operanych
A przystąpić jest iloczynem kartezjańskim, po którym następuje predykat selekcji. Połączenia są oznaczone symbolem ⋈ symbol i umożliwia łączenie powiązanych krotek z różnych relacji w sensowny sposób.
Typy połączeń:
- Połączenia wewnętrzne: Połączenie Theta, połączenie Equi, połączenie Natural.
- Połączenia zewnętrzne: Połączenia lewe, prawe i zewnętrzne całkowite.
Połączenie wewnętrzne
W połączenie wewnętrzne, uwzględniane są tylko krotki spełniające kryteria dopasowania; pozostałe są odrzucane.
Dołącz do Thety
Ogólna forma JOIN to Dołącz do Theta, oznaczonego jako θ. Połączenie theta może wykorzystywać w kryteriach wyboru dowolny warunek porównania.
A ⋈θ B
Na przykład:
A ⋈ A.column 2 > B.column 2 (B)
| kolumna 1 | kolumna 2 |
|---|---|
| 1 | 2 |
Equi Dołącz
Gdy połączenie Theta wykorzystuje wyłącznie warunki równości, staje się Equi join.
A ⋈ A.column 2 = B.column 2 (B)
| kolumna 1 | kolumna 2 |
|---|---|
| 1 | 1 |
Połączenie Equi jest jednym z najczęściej używanych stylów połączeń, a RDBMS optymalizator zapytań zazwyczaj wkłada dużo wysiłku w zwiększenie jego wydajności.
Naturalne połączenie (⋈)
A Naturalne połączenie Wymaga wspólnego atrybutu (kolumny) dla relacji. Wspólny atrybut musi mieć tę samą nazwę i domenę. Wynik zawiera jedną kopię pasującej kolumny.
Rozważ te dwie tabele.
| Tabela C. | |
|---|---|
| Ilość | Kwadratowe |
| 2 | 4 |
| 3 | 9 |
| Tabela D. | |
|---|---|
| Ilość | Kostka |
| 2 | 8 |
| 3 | 27 |
C ⋈ D produkuje:
| Ilość | Kwadratowe | Kostka |
|---|---|---|
| 2 | 4 | 8 |
| 3 | 9 | 27 |
Połączenie zewnętrzne
An złącze zewnętrzne przechowuje krotki spełniające kryteria dopasowania oraz krotki, które tego nie robią, wypełniając brakujące kolumny wartością NULL.
Lewe połączenie zewnętrzne (A ⟕ B)
Lewe sprzężenie zewnętrzne zachowuje każdą krotkę w relacji lewej. Jeśli wiersz w A nie ma odpowiadającego mu wiersza w B, atrybuty wniesione przez B są wypełniane wartością NULL.
Rozważ poniższe tabele:
| Tabela A | |
|---|---|
| Ilość | Kwadratowe |
| 2 | 4 |
| 3 | 9 |
| 4 | 16 |
| Tabela B | |
|---|---|
| Ilość | Kostka |
| 2 | 8 |
| 3 | 18 |
| 5 | 75 |
A ⟕ B daje:
| Ilość | Kwadratowe | Kostka |
|---|---|---|
| 2 | 4 | 8 |
| 3 | 9 | 18 |
| 4 | 16 | NULL |
Prawe połączenie zewnętrzne (A ⟖ B)
Prawe sprzężenie zewnętrzne utrzymuje każdą krotkę we właściwej relacji. Jeśli wiersz w B nie ma odpowiadającego mu wiersza w A, kolumny wniesione przez A są wypełniane wartością NULL.
A ⟖ B daje:
| Ilość | Kostka | Kwadratowe |
|---|---|---|
| 2 | 8 | 4 |
| 3 | 18 | 9 |
| 5 | 75 | NULL |
Pełne połączenie zewnętrzne (A ⟗ B)
Pełne sprzężenie zewnętrzne zachowuje każdą krotkę z obu relacji, niezależnie od tego, czy warunek sprzężenia został spełniony. Brakujące wartości po obu stronach stają się wartościami NULL.
A ⟗ B daje:
| Ilość | Kwadratowe | Kostka |
|---|---|---|
| 2 | 4 | 8 |
| 3 | 9 | 18 |
| 4 | 16 | NULL |
| 5 | NULL | 75 |
OperaPodsumowanie odniesienia tor
Użyj tej tabeli referencyjnej, aby na pierwszy rzut oka przypomnieć sobie, co robi każdy operator.
| Operacja (Symbol) | Cel |
|---|---|
| WYBIERZ (σ) | Wybiera podzbiór krotek spełniających dany predykat. |
| PROJEKT (π) | Zachowuje tylko wymienione atrybuty i usuwa zduplikowane wiersze. |
| UNIA (∪) | Zwraca każdą krotkę pojawiającą się w A lub B bez duplikatów. |
| RÓŻNICA ZESTAWÓW (−) | Zwraca krotki w A, których nie ma w B. |
| PRZECINANIE (∩) | Zwraca krotki występujące zarówno w A, jak i B. |
| ILOCZYN KARTEZJAŃSKI (×) | Łączy każdą krotkę A z każdą krotką B. |
| INNER JOIN | Zachowuje tylko krotki spełniające warunek połączenia. |
| DOŁĄCZENIE THETA (θ) | Połączenie w formie ogólnej przy użyciu dowolnego predykatu porównania. |
| DOŁĄCZ DO EQUI | Połączenie theta wykorzystujące wyłącznie porównania równości. |
| NATURALNE POŁĄCZENIE (⋈) | Łączy relacje atrybutów o tej samej nazwie i domenie. |
| LEWE POŁĄCZENIE ZEWNĘTRZNE (⟕) | Zachowuje każdą krotkę z lewej relacji, wypełnia prawą wartością NULL. |
| PRAWE POŁĄCZENIE ZEWNĘTRZNE (⟖) | Zatrzymuje każdą krotkę z prawej relacji, wypełnia lewą wartość NULL. |
| PEŁNE POŁĄCZENIE ZEWNĘTRZNE (⟗) | Zachowuje każdą krotkę z obu relacji, wypełniając brakujące wartości wartością NULL. |



