Předpoklad: Relační model v DBMS
Relační algebra je procedurální dotazovací jazyk. Relační algebra poskytuje především teoretický základ pro relační databáze a SQL . Hlavním účelem použití relační algebry je definovat operátory, které transformují jeden nebo více vstupních vztahů na výstupní. Vzhledem k tomu, že tyto operátory přijímají vztahy jako vstup a vytvářejí vztahy jako výstup, lze je kombinovat a používat k vyjádření potenciálně složitých dotazů, které transformují potenciálně mnoho vstupních vztahů (jejichž data jsou uložena v databázi) na jeden výstupní vztah (výsledek dotazu). . Protože se jedná o čistou matematiku, v relační algebře se nepoužívají anglická klíčová slova a operátory jsou reprezentovány pomocí symbolů.
Základní operátoři
Toto jsou základní/základní operátory používané v relační algebře.
- Výběr (σ)
- Projekce (π)
- unie (U)
- Nastavit rozdíl (-)
- Nastavit křižovatku (∩)
- Přejmenovat (ρ)
- Kartézský součin (X)
1. Výběr (σ): Slouží k výběru požadovaných n-tic relací.
Příklad:
| A | B | C |
|---|---|---|
| 1 | 2 | 4 |
| 2 | 2 | 3 |
| 3 | 2 | 3 |
| 4 | 3 | 4 |
Pro výše uvedený vztah, a(c>3)R vybere n-tice, které mají c větší než 3.
| A | B | C |
|---|---|---|
| 1 | 2 | 4 |
| 4 | 3 | 4 |
Poznámka: Operátor výběru pouze vybere požadované n-tice, ale nezobrazí je. Pro zobrazení se používá operátor datové projekce.
2. Projekce (π): Používá se k projektování požadovaných dat sloupců z relace.
třída vs objekt java
Příklad: Uvažujme tabulku 1. Předpokládejme, že chceme sloupce B a C ze vztahu R.
π(B,C)R will show following columns.>
| B | C |
|---|---|
| 2 | 4 |
| 2 | 3 |
| 3 | 4 |
Poznámka: Ve výchozím nastavení odstraňuje projekce duplicitní data.
3. Unie (U): Operace unie v relační algebře je stejná jako operace unie v teorii množin.
Příklad:
FRANCOUZŠTINA
| Jméno studenta | Číslo role |
|---|---|
| RAM | 01 |
| Mohan | 02 |
| Vivek | 13 |
| Geeta | 17 |
NĚMEC
| Jméno studenta | Číslo role |
|---|---|
| Vivek | 13 |
| Geeta | 17 |
| Shyam | dvacet jedna |
| Rohan | 25 |
Zvažte následující tabulku studentů, kteří mají v kurzu různé volitelné předměty.
π(Student_Name)FRENCH U π(Student_Name)GERMAN>
| Jméno studenta |
|---|
| RAM |
| Mohan |
| Vivek |
| Geeta |
| Shyam |
| Rohan |
Poznámka: Jediným omezením ve spojení dvou vztahů je, že oba vztahy musí mít stejnou sadu atributů.
4. Nastavit rozdíl (-): Rozdíl množin v relační algebře je stejná operace rozdílu množin jako v teorii množin.
Příklad: Z výše uvedené tabulky FRANCOUZŠTINY a NĚMČINY je Set Difference použit následovně
π(Student_Name)FRENCH - π(Student_Name)GERMAN>
| Jméno studenta |
|---|
| RAM |
| Mohan |
Poznámka: Jediným omezením v množinovém rozdílu mezi dvěma vztahy je, že oba vztahy musí mít stejnou množinu atributů.
5. Nastavte průsečík (∩): Průsečík množin v relační algebře je stejná operace průniku množin v teorii množin.
Příklad: Z výše uvedené tabulky FRANCOUZŠTINY a NĚMČINY se Set Intersection používá následovně
π(Student_Name)FRENCH ∩ π(Student_Name)GERMAN>
| Jméno studenta |
|---|
| Vivek |
| Geeta |
Poznámka: Jediným omezením v rozdílu mezi dvěma vztahy je, že oba vztahy musí mít stejnou sadu atributů.
6. Přejmenovat (ρ): Přejmenování je unární operace používaná k přejmenování atributů relace.
ρ(a/b)R will rename the attribute 'b' of the relation by 'a'.>
7. Křížový produkt (X): Křížový produkt mezi dvěma vztahy. Řekněme A a B, takže křížový součin mezi A X B bude mít za následek všechny atributy A následované každým atributem B. Každý záznam A se spáruje s každým záznamem B.
Příklad:
java listnode
A
| název | Stáří | Sex |
|---|---|---|
| RAM | 14 | M |
| do konce | patnáct | F |
| Kim | dvacet | M |
B
| ID | Chod |
|---|---|
| 1 | DS |
| 2 | DBMS |
A X B
| název | Stáří | Sex | ID | Chod |
|---|---|---|---|---|
| RAM | 14 | M | 1 | DS |
| RAM | 14 | M | 2 | DBMS |
| do konce | patnáct | F | 1 | DS |
| do konce | patnáct | F | 2 | DBMS |
| Kim | dvacet | M | 1 | DS |
| Kim | dvacet | M | 2 | DBMS |
Poznámka: Pokud A má „n“ n-tic a B má „m“ n-tic, pak A X B bude mít „n*m“ n-tic.
Odvozené operátory
Toto jsou některé z odvozených operátorů, které jsou odvozeny od základních operátorů.
- Přirozené spojení (⋈)
- Podmíněné připojení
1. Přirozené spojení (⋈): Přirozené spojení je binární operátor. Přirozené spojení dvou nebo více vztahů povede k množině všech kombinací n-tic, kde mají stejný společný atribut.
Příklad:
EMP
| název | ID | Název_oddělení |
|---|---|---|
| A | 120 | TO |
| B | 125 | HR |
| C | 110 | Odbyt |
| D | 111 | TO |
ODD
| Název_oddělení | Manažer |
|---|---|
| Odbyt | A |
| Výroba | S |
| TO | A |
Přirozené spojení mezi EMP a DEPT s podmínkou:
EMP.Dept_Name = DEPT.Dept_Name
EMP ⋈ DEPT
| název | ID | Název_oddělení | Manažer |
|---|---|---|---|
| A | 120 | TO | A |
| C | 110 | Odbyt | A |
| D | 111 | TO | A |
2. Podmíněné připojení: Podmíněné spojení funguje podobně jako přirozené spojení. V přirozeném spojení je ve výchozím nastavení podmínka stejná mezi společnými atributy, zatímco v podmíněném spojení můžeme zadat libovolnou podmínku, jako je větší než, menší než nebo nestejná.
Příklad:
R
| ID | Sex | Marks |
|---|---|---|
| 1 | F | Čtyři pět |
| 2 | F | 55 |
| 3 | F | 60 |
S
| ID | Sex | Marks |
|---|---|---|
| 10 | M | dvacet |
| jedenáct | M | 22 |
| 12 | M | 59 |
Spojte R a S s podmínkou R.marks>= S.marks
| ZBAVIT | R.Sex | R.Marks | S.ID | S.Sex | S.Marks |
|---|---|---|---|---|---|
| 1 | F | Čtyři pět | 10 | M | dvacet |
| 1 | F | Čtyři pět | jedenáct | M | 22 |
| 2 | F | 55 | 10 | M | dvacet |
| 2 | F | 55 | jedenáct | M | 22 |
| 3 | F | 60 | 10 | M | dvacet |
| 3 | F | 60 | jedenáct | M | 22 |
| 3 | F | 60 | 12 | M | 59 |
Relační počet
Protože relační algebra je procedurální dotazovací jazyk, relační počet je neprocedurální dotazovací jazyk. V zásadě se zabývá konečnými výsledky. Vždy mi říká, co mám dělat, ale nikdy mi neříká, jak to mám dělat.
Existují dva typy relačního počtu
- N-ticový relační počet (TRC)
- Doménový relační počet (DRC)
Podrobné články:
Základní-operátory-v-relační-algebře
Operátory rozšířené relační algebry
java nahradit znak v řetězci