Relační algebra v DBMS: Operas příklady
Relační algebra
VZTAHOVÁ ALGEBRA je široce používaný procedurální dotazovací jazyk. Shromažďuje instance vztahů jako vstup a dává výskyty vztahů jako výstup. K provedení této akce používá různé operace. SQL Operace dotazů relační algebry 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ů.
Základní SQL relační algebra Operace
Relační algebra rozdělená do různých skupin
Unární relační Operace
- VYBRAT (symbol: σ)
- PROJEKT (symbol: π)
- PŘEJMENOVAT (symbol: ρ)
Relační algebra Operaz teorie množin
- UNION (υ)
- INTERSECTION ( ),
- ROZDÍL (-)
- KARTÉZSKÝ PRODUKT ( x )
Binární relační Operace
- REGISTRACE
- DIVIZE
Pojďme si je podrobně prostudovat s řešeními:
VYBRAT (σ)
Operace SELECT se používá pro výběr podmnožiny n-tic podle dané podmínky výběru. Symbol Sigma(σ) to označuje. Používá se jako výraz pro výběr n-tic, které splňují podmínku výběru. Operátor Select vybere n-tice, které splňují daný predikát.
σp(r)
σ
je predikát
r
znamená vztah, což je název tabulky
p
je předložková logika
Příklad 1
σ topic = "Database" (Tutorials)
Výstup – Vybere n-tice z výukových programů, kde téma = 'Databáze'.
Příklad 2
σ topic = "Database" and author = "guru99"( Tutorials)
Výstup – Vybere n-tice z výukových programů, kde je téma 'Databáze' a 'autor' je guru99.
Příklad 3
σ sales > 50000 (Customers)
Výstup – Vybírá n-tice od zákazníků, u kterých je prodej větší než 50000 XNUMX
Projekce (π)
Projekce eliminuje všechny atributy vstupního vztahu kromě těch, které jsou uvedeny v seznamu projekcí. Metoda projekce definuje vztah, který obsahuje vertikální podmnožinu vztahu.
To pomáhá extrahovat hodnoty zadaných atributů a eliminovat duplicitní hodnoty. Symbol (pi) se používá k výběru atributů ze vztahu. Tento operátor vám pomůže zachovat určité sloupce z relace a ostatní sloupce zahodí.
Příklad projekce:
Zvažte následující tabulku
Zákaznické identifikační číslo | Jméno zákazníka | Status |
---|---|---|
1 | Aktivní | |
2 | Amazon | Aktivní |
3 | jablko | Neaktivní |
4 | Alibaba | Aktivní |
Zde se zobrazí projekce CustomerName a status
Π CustomerName, Status (Customers)
Jméno zákazníka | Status |
---|---|
Aktivní | |
Amazon | 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' vztahu na 'a'.
Unie operace (υ)
UNION je symbolizován symbolem ∪. Zahrnuje všechny n-tice, které jsou v tabulkách A nebo B. Také eliminuje duplicitní n-tice. Takže množina A UNION množina B by byla vyjádřena jako:
Výsledek <- A ∪ B
Aby byla operace sjednocení platná, musí splňovat následující podmínky –
- R a S musí mít stejný počet atributů.
- Domény atributů musí být kompatibilní.
- Duplicitní n-tice by měly být automaticky odstraněny.
Příklad
Zvažte následující tabulky.
sloupec 1 | sloupec 2 | sloupec 1 | sloupec 2 | |
---|---|---|---|---|
1 | 1 | 1 | 1 | |
1 | 2 | 1 | 3 |
A ∪ B dává
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 buď kompatibilní, nebo kompatibilní s Unií.
- Měl by být definován vztah sestávající z n-tic, které jsou ve vztahu A, ale ne v B.
Příklad
A-B
sloupec 1 | sloupec 2 |
---|---|
1 | 2 |
Křižovatka
Průsečík je definován symbolem ∩
A ∩ B
Definuje relaci sestávající z množiny všech n-tic, které jsou v A i B. A a B však musí být slučitelné se sjednocením.
Příklad:
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 vztahů. Obecně platí, že kartézský součin není nikdy smysluplnou operací, když funguje samostatně. Smysluplný však nabývá, když po něm následují další operace. Říká se mu 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 1 | sloupec 2 |
---|---|
1 | 1 |
1 | 1 |
Připojte Operace
Spojování je v podstatě kartézský produkt, za kterým následuje výběrové kritérium.
Operace spojení označená ⋈.
Operace JOIN také umožňuje spojování různě příbuzných n-tic z různých vztahů.
Typy JOIN:
Různé formy operace spojení jsou:
Vnitřní spoje:
- Připojte se k Theta
- Připojte se EQUI
- Přirozené spojení
Vnější spojení:
- Levý vnější spoj
- Pravé vnější spojení
- Ú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 studovat různé typy vnitřních spojení:
Theta Připojte se
Obecný případ operace JOIN se nazývá připojení Theta. Označuje se symbolem θ
Příklad
A ⋈θ B
Theta join může použít libovolné podmínky ve výběrových kritériích.
Například:
A ⋈ A.column 2 > B.column 2 (B)
sloupec 1 | sloupec 2 |
---|---|
1 | 2 |
Připojte se EQUI
Když theta spojení používá pouze podmínku ekvivalence, stává se ekvi spojením.
Například:
A ⋈ A.column 2 = B.column 2 (B)
sloupec 1 | sloupec 2 |
---|---|
1 | 1 |
EQUI join je nejobtížnější operace pro efektivní implementaci pomocí SQL v RDBMS a jeden důvod proč RDBMS mají zásadní problémy s výkonem.
PŘIROZENÉ PŘIPOJENÍ (⋈)
Přirozené spojení lze provést pouze v případě, že mezi vztahy existuje společný atribut (sloupec). Název a typ atributu musí být stejný.
Příklad
Zvažte následující dvě tabulky
V | náměstí |
---|---|
2 | 4 |
3 | 9 |
V | Kostka |
---|---|
2 | 8 |
3 | 27 |
C ⋈ D
V | náměstí | Kostka |
---|---|---|
2 | 4 | 8 |
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 zachovat všechny n-tice v levém vztahu. Pokud však není nalezena žádná odpovídající n-tice ve správném vztahu, pak jsou atributy správného vztahu ve výsledku spojení vyplněny hodnotami null.
Zvažte následující 2 tabulky
V | náměstí |
---|---|
2 | 4 |
3 | 9 |
4 | 16 |
V | Kostka |
---|---|
2 | 8 |
3 | 18 |
5 | 75 |
AB
V | náměstí | Kostka |
---|---|---|
2 | 4 | 8 |
3 | 9 | 18 |
4 | 16 | - |
Pravý vnější spoj (A ⟖ B)
V pravém vnějším spojení umožňuje operace udržovat všechny n-tice ve správném vztahu. Pokud však v levém vztahu není nalezena žádná odpovídající n-tice, pak jsou atributy levého vztahu ve výsledku spojení vyplněny hodnotami null.
AB
V | Kostka | 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 vztahů, bez ohledu na podmínku shody.
AB
V | Kostka | náměstí |
---|---|---|
2 | 4 | 8 |
3 | 9 | 18 |
4 | 16 | - |
5 | - | 75 |
Shrnutí
Operation (symboly) | Účel |
---|---|
Vybrat (σ) | Operace SELECT se používá pro výběr podmnožiny n-tic podle dané podmínky výběru |
Projekce (π) | Projekce eliminuje všechny atributy vstupního vztahu kromě těch, které jsou uvedeny v seznamu projekcí. |
svaz Operation (∪) | UNION je symbolizován 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 (∩) | Průnik definuje vztah sestávající z množiny všech n-tic, které jsou v A i B. |
Kartézský součin (X) | Kartézská operace je užitečná pro sloučení sloupců ze dvou vztahů. |
Vnitřní spojení | Vnitřní spojení zahrnuje pouze ty n-tice, které splňují kritéria shody. |
Theta Join (θ) | Obecný případ operace JOIN se nazývá připojení Theta. Označuje se symbolem θ. |
EQUI Připojte se | Když theta spojení používá pouze podmínku ekvivalence, stává se ekvi spojením. |
Přirozené spojení (⋈) | Přirozené spojení lze provést pouze v případě, že mezi vztahy existuje 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 zachovat všechny n-tice v levém vztahu. |
Pravé vnější spojení ( |
V pravém vnějším spojení umožňuje operace udržovat všechny n-tice ve správném vztahu. |
Úplné vnější spojení ( |
V úplném vnějším spojení jsou do výsledku zahrnuty všechny n-tice z obou vztahů bez ohledu na podmínku shody. |