Relační algebra
RELATIONAL ALGEBRA je široce používaný jazyk procedurálních dotazů. Shromažďuje instance relací jako vstup a dává výskyty relací jako výstup. K provedení této akce používá různé operace. Operace dotazu relační algebry SQL se provádějí rekurzivně na relaci. Výstupem těchto operací je nový vztah, který může být vytvořen z jednoho nebo více vstupních vztahů.
V tomto výukovém programu se naučíte:
- Relační algebra
- SELECT (σ)
- Projekce (π)
- Přejmenovat (ρ)
- Operace Unie (υ)
- Nastavit rozdíl (-)
- Průsečík
- Kartézský součin (X)
- Připojte se k operacím
- Vnitřní spojení:
- Theta Připojte se:
- Připojení EQUI:
- PŘÍRODNÍ PŘIPOJENÍ (⋈)
- VNĚJŠÍ PŘIPOJENÍ
- Levý vnější spoj (A B)
- Pravý vnější spoj: (A B)
- Úplné vnější spojení: (A B)
Základní operace relační algebry SQL
Relační algebra se dělila do různých skupin
Unární relační operace
- VYBRAT (symbol: σ)
- PROJEKT (symbol: π)
- RENAME (symbol: ρ)
Operace relační algebry z teorie množin
- UNIE (υ)
- KŘÍŽENÍ (),
- ROZDÍL (-)
- KARTÁSKÝ VÝROBEK (x)
Binární relační operace
- PŘIPOJIT SE
- DIVIZE
Pojďme si je podrobně prostudovat s řešeními:
SELECT (σ)
Operace SELECT se používá k výběru podmnožiny n-tic podle dané podmínky výběru. Symbol Sigma (σ) jej označuje. Používá se jako výraz k výběru n-tic, které splňují podmínku výběru. Operátor výběru vybírá n-tice, které splňují daný predikát.
σp(r)
σ
je predikát r
znamená relace, což je název tabulky, p
je předložková logika
Příklad 1
σ topic = "Database" (Tutorials)
Výstup - Vybírá n-tice z Tutoriálů, kde topic = 'Databáze'.
Příklad 2
σ topic = "Database" and author = "guru99"( Tutorials)
Výstup - Vybírá n-tice z Tutoriálů, kde téma je „Databáze“ a „autor“ je guru99.
Příklad 3
σ sales > 50000 (Customers)
Výstup - Vybírá n-tice od zákazníků, u nichž je prodej vyšší než 50 000
Projekce (π)
Projekce vylučuje všechny atributy vstupního vztahu kromě těch, které jsou uvedeny v seznamu projekcí. Metoda projekce definuje relaci, která obsahuje vertikální podmnožinu relace.
To pomáhá extrahovat hodnoty zadaných atributů a eliminovat tak duplicitní hodnoty. Symbol (pi) se používá k výběru atributů z relace. Tento operátor vám pomůže udržet konkrétní sloupce z relace a zahodí ostatní sloupce.
Příklad projekce:
Zvažte následující tabulku
Zákaznické identifikační číslo | Jméno zákazníka | Postavení |
---|---|---|
1 | Aktivní | |
2 | Amazonka | Aktivní |
3 | Jablko | Neaktivní |
4 | Alibaba | Aktivní |
Zde se zobrazí projekce CustomerName a stavu
Π CustomerName, Status (Customers)
Jméno zákazníka | Postavení |
---|---|
Aktivní | |
Amazonka | Aktivní |
Jablko | Neaktivní |
Alibaba | Aktivní |
Přejmenovat (ρ)
Přejmenování je unární operace používaná k přejmenování atributů relace.
ρ (a / b) R přejmenuje atribut „b“ relace na „a“.
Operace Unie (υ)
UNIE je symbolizována symbolem ∪. Zahrnuje všechny n-tice, které jsou v tabulkách A nebo B. Rovněž eliminuje duplicitní n-tice. Sada A UNION sada B by byla vyjádřena jako:
Výsledek <- A ∪ B
Aby byla operace unie platná, musí platit následující podmínky -
- R a S musí mít stejný počet atributů.
- Atributové domény musí být kompatibilní.
- Duplicitní n-tice by měly být automaticky odstraněny.
Příklad
Zvažte následující tabulky.
Tabulka A | Tabulka B | |||
sloupec 1 | sloupec 2 | sloupec 1 | sloupec 2 | |
---|---|---|---|---|
1 | 1 | 1 | 1 | |
1 | 2 | 1 | 3 |
A ∪ B dává
Tabulka A ∪ B | |
sloupec 1 | sloupec 2 |
---|---|
1 | 1 |
1 | 2 |
1 | 3 |
Nastavit rozdíl (-)
- Symbol to označuje. Výsledkem A - B je vztah, který zahrnuje všechny n-tice, které jsou v A, ale ne v B.
- Název atributu A se musí shodovat s názvem atributu v B.
- Vztahy dvou operandů A a B by měly být kompatibilní nebo kompatibilní s Unií.
- Měl by být definován vztah skládající se z n-tic, které jsou ve vztahu A, ale ne v B.
Příklad
A-B
Tabulka A - B | |
sloupec 1 | sloupec 2 |
---|---|
1 | 2 |
Průsečík
Průsečík je definován symbolem ∩
A ∩ B
Definuje relaci skládající se ze sady všech n-tic, které jsou v A i B. Avšak A a B musí být kompatibilní s unií.
Příklad:
A ∩ B
Tabulka A ∩ B | |
sloupec 1 | sloupec 2 |
---|---|
1 | 1 |
Kartézský součin (X) v DBMS
Kartézský součin v DBMS je operace používaná ke sloučení sloupců ze dvou relací. Kartézský produkt obecně nikdy není smysluplnou operací, pokud se provádí samostatně. Stává se však smysluplným, když po něm následují další operace. Nazývá se také Cross Product nebo Cross Join.
Příklad - kartézský součin
σ sloupec 2 = '1' (AXB)
Výstup - Výše uvedený příklad ukazuje všechny řádky ze vztahu A a B, jejichž sloupec 2 má hodnotu 1
σ sloupec 2 = '1' (AXB) | |
sloupec 1 | sloupec 2 |
---|---|
1 | 1 |
1 | 1 |
Připojte se k operacím
Operace join je v podstatě kartézský produkt, za nímž následuje výběrové kritérium.
Operace připojení označená ⋈.
Operace JOIN také umožňuje spojovat různě související n-tice z různých vztahů.
Typy PŘIPOJENÍ:
Různé formy operace spojení jsou:
Vnitřní spojení:
- Theta se připoj
- Připojte se k EQUI
- Přirozené spojení
Vnější spojení:
- Levý vnější spoj
- Pravý vnější spoj
- Úplné vnější připojení
Vnitřní spojení:
Ve vnitřním spojení jsou zahrnuty pouze ty n-tice, které splňují kritéria shody, zatímco ostatní jsou vyloučeny. Pojďme si prostudovat různé typy vnitřních spojení:
Theta Připojte se:
Obecný případ operace JOIN se nazývá spojení Theta. Je označen symbolem θ
Příklad
A ⋈θ B
Theta join může v kritériích výběru použít jakékoli podmínky.
Například:
A ⋈ A.column 2 > B.column 2 (B)
A ⋈ A. sloupec 2> B. sloupec 2 (B) | |
sloupec 1 | sloupec 2 |
---|---|
1 | 2 |
Připojení EQUI:
Když spojení theta používá pouze podmínku rovnocennosti, stane se spojením ekv.
Například:
A ⋈ A.column 2 = B.column 2 (B)
A ⋈ A. sloupec 2 = B. sloupec 2 (B) | |
sloupec 1 | sloupec 2 |
---|---|
1 | 1 |
Spojení EQUI je nejobtížnější implementací efektivně využívající SQL v RDBMS a jedním z důvodů, proč mají RDBMS zásadní problémy s výkonem.
PŘÍRODNÍ PŘIPOJENÍ (⋈)
Přirozené spojení lze provést, pouze pokud je mezi relacemi společný atribut (sloupec). Název a typ atributu musí být stejné.
Příklad
Zvažte následující dvě tabulky
C | |
Num | Náměstí |
---|---|
2 | 4 |
3 | 9 |
D | |
Num | Krychle |
---|---|
2 | 8 |
3 | 27 |
C ⋈ D
C ⋈ D | ||
Num | Náměstí | Krychle |
---|---|---|
2 | 4 | 4 |
3 | 9 | 27 |
VNĚJŠÍ PŘIPOJENÍ
Ve vnějším spojení spolu s n-ticemi, které splňují kritéria shody, zahrneme také některé nebo všechny n-tice, které kritériím neodpovídají.
Levý vnější spoj (A B)
V levém vnějším spojení operace umožňuje udržet všechny n-tice v levém vztahu. Pokud však v pravém vztahu není nalezena žádná odpovídající n-tice, jsou atributy pravého vztahu ve výsledku spojení vyplněny hodnotami null.
Zvažte následující 2 tabulky
A | |
Num | Náměstí |
---|---|
2 | 4 |
3 | 9 |
4 | 16 |
B | |
Num | Krychle |
---|---|
2 | 8 |
3 | 18 |
5 | 75 |
A B
A ⋈ B | ||
Num | Náměstí | Krychle |
---|---|---|
2 | 4 | 4 |
3 | 9 | 9 |
4 | 16 | - |
Pravý vnější spoj: (A B)
V pravém vnějším spojení operace umožňuje udržet všechny n-tice ve správném vztahu. Pokud však v levém vztahu není nalezena žádná odpovídající n-tice, jsou atributy levého vztahu ve výsledku spojení vyplněny hodnotami null.
A B
A ⋈ B | ||
Num | Krychle | Náměstí |
---|---|---|
2 | 8 | 4 |
3 | 18 | 9 |
5 | 75 | - |
Úplné vnější spojení: (A B)
V úplném vnějším spojení jsou do výsledku zahrnuty všechny n-tice z obou relací, bez ohledu na podmínku shody.
A B
A ⋈ B | ||
Num | Krychle | Náměstí |
---|---|---|
2 | 4 | 8 |
3 | 9 | 18 |
4 | 16 | - |
5 | - | 75 |
souhrn
Provoz (symboly) |
Účel |
---|---|
Vyberte (σ) |
Operace SELECT se používá k výběru podmnožiny n-tic podle dané podmínky výběru |
Projekce (π) |
Projekce vylučuje všechny atributy vstupního vztahu kromě těch, které jsou uvedeny v seznamu projekcí. |
Operace Unie (∪) |
UNIE je symbolizována symbolem. Zahrnuje všechny n-tice, které jsou v tabulkách A nebo B. |
Nastavit rozdíl (-) |
- Symbol to označuje. Výsledkem A - B je vztah, který zahrnuje všechny n-tice, které jsou v A, ale ne v B. |
Křižovatka (∩) |
Křižovatka definuje vztah skládající se ze sady všech n-tic, které jsou v A i B. |
Kartézský součin (X) |
Kartézská operace je užitečná ke sloučení sloupců ze dvou relací. |
Vnitřní spojení |
Vnitřní spojení zahrnuje pouze ty n-tice, které splňují kritéria shody. |
Theta Připojit (θ) |
Obecný případ operace JOIN se nazývá spojení Theta. Je označen symbolem θ. |
Připojte se EQUI |
Když spojení theta používá pouze podmínku rovnocennosti, stane se spojením ekv. |
Přirozené spojení (⋈) |
Přirozené spojení lze provést, pouze pokud je mezi relacemi společný atribut (sloupec). |
Vnější připojení |
Ve vnějším spojení spolu s n-ticemi, které splňují kritéria shody. |
Levý vnější spoj ( ) |
V levém vnějším spojení operace umožňuje udržet všechny n-tice v levém vztahu. |
Pravé vnější spojení ( ) |
V pravém vnějším spojení operace umožňuje udržet všechny n-tice ve správném vztahu. |
Úplné vnější připojení ( ) |
V úplném vnějším spojení jsou všechny n-tice z obou relací zahrnuty do výsledku bez ohledu na podmínku shody. |