Cerință prealabilă: Model relațional în SGBD
Algebra relațională este un limbaj procedural de interogare. Algebra relațională oferă în principal o bază teoretică pentru bazele de date relaționale și SQL . Scopul principal al utilizării algebrei relaționale este de a defini operatori care transformă una sau mai multe relații de intrare într-o relație de ieșire. Având în vedere că acești operatori acceptă relații ca intrare și produc relații ca ieșire, ele pot fi combinate și utilizate pentru a exprima interogări potențial complexe care transformă potențial multe relații de intrare (ale căror date sunt stocate în baza de date) într-o singură relație de ieșire (rezultatele interogării) . Deoarece este matematică pură, nu se folosesc cuvinte cheie englezești în algebra relațională, iar operatorii sunt reprezentați folosind simboluri.
Operatori fundamentali
Aceștia sunt operatorii de bază/fundamentali utilizați în algebra relațională.
- Selecție (σ)
- proiecție (π)
- Uniune(U)
- Setați diferența (-)
- Setați intersecția (∩)
- Redenumiți(ρ)
- Produs cartezian(X)
1. Selectare (σ): Este folosit pentru a selecta tuplurile necesare ale relațiilor.
Exemplu:
| A | B | C |
|---|---|---|
| 1 | 2 | 4 |
| 2 | 2 | 3 |
| 3 | 2 | 3 |
| 4 | 3 | 4 |
Pentru relatia de mai sus, σ(c>3)R va selecta tuplurile care au c mai mult de 3.
| A | B | C |
|---|---|---|
| 1 | 2 | 4 |
| 4 | 3 | 4 |
Notă: Operatorul de selecție selectează doar tuplurile necesare, dar nu le afișează. Pentru afișare se folosește operatorul de proiecție a datelor.
2. Proiecție (π): Este folosit pentru a proiecta datele de coloană necesare dintr-o relație.
urfi javed
Exemplu: Luați în considerare tabelul 1. Să presupunem că vrem coloanele B și C din relația R.
π(B,C)R will show following columns.>
| B | C |
|---|---|
| 2 | 4 |
| 2 | 3 |
| 3 | 4 |
Notă: În mod implicit, proiecția elimină datele duplicat.
3. Uniune(U): Operația de unire în algebra relațională este aceeași cu operația de unire în teoria mulțimilor.
Exemplu:
LIMBA FRANCEZA
| Numele studentului | Roll_Number |
|---|---|
| RAM | 01 |
| Mohan | 02 |
| Vivek | 13 |
| Geeta | 17 |
LIMBA GERMANA
| Numele studentului | Roll_Number |
|---|---|
| Vivek | 13 |
| Geeta | 17 |
| Shyam | douăzeci și unu |
| Rohan | 25 |
Luați în considerare următorul tabel de studenți care au diferite discipline opționale în cursul lor.
π(Student_Name)FRENCH U π(Student_Name)GERMAN>
| Numele studentului |
|---|
| RAM |
| Mohan |
| Vivek |
| Geeta |
| Shyam |
| Rohan |
Notă: Singura constrângere în unirea a două relații este aceea că ambele relații trebuie să aibă același set de atribute.
4. Setați diferența (-): Diferența de set în algebra relațională este aceeași operație de diferență de mulțimi ca și în teoria mulțimilor.
Exemplu: Din tabelul de mai sus pentru FRANCEZĂ și GERMANĂ, Set Difference este utilizat după cum urmează
π(Student_Name)FRENCH - π(Student_Name)GERMAN>
| Numele studentului |
|---|
| RAM |
| Mohan |
Notă: Singura constrângere în diferența de set între două relații este că ambele relații trebuie să aibă același set de atribute.
5. Setați intersecția (∩): Intersecția mulțimilor în algebra relațională este aceeași operație de intersecție a mulțimilor în teoria mulțimilor.
Exemplu: Din tabelul de mai sus de FRANCEZĂ și GERMANĂ, Intersecția Set este utilizată după cum urmează
π(Student_Name)FRENCH ∩ π(Student_Name)GERMAN>
| Numele studentului |
|---|
| Vivek |
| Geeta |
Notă: Singura constrângere în Setul Diferență dintre două relații este că ambele relații trebuie să aibă același set de Atribute.
6. Redenumiți(ρ): Redenumirea este o operație unară folosită pentru redenumirea atributelor unei relații.
ρ(a/b)R will rename the attribute 'b' of the relation by 'a'.>
7. Produs încrucișat(X): Produs încrucișat între două relații. Să spunem A și B, deci produsul încrucișat dintre A X B va avea ca rezultat toate atributele lui A urmate de fiecare atribut al lui B. Fiecare înregistrare a lui A se va împerechea cu fiecare înregistrare a lui B.
Exemplu:
char în șir java
A
| Nume | Vârstă | Sex |
|---|---|---|
| RAM | 14 | M |
| până la capăt | cincisprezece | F |
| Kim | douăzeci | M |
B
| ID | Curs |
|---|---|
| 1 | DS |
| 2 | SGBD |
A X B
| Nume | Vârstă | Sex | ID | Curs |
|---|---|---|---|---|
| RAM | 14 | M | 1 | DS |
| RAM | 14 | M | 2 | SGBD |
| până la capăt | cincisprezece | F | 1 | DS |
| până la capăt | cincisprezece | F | 2 | SGBD |
| Kim | douăzeci | M | 1 | DS |
| Kim | douăzeci | M | 2 | SGBD |
Notă: Dacă A are „n” tupluri și B are „m” tupluri, atunci A X B va avea „n*m” tupluri.
Operatori derivați
Aceștia sunt câțiva dintre operatorii derivați, care sunt derivați din operatorii fundamentali.
- Asociere naturală(⋈)
- Asociere condiționată
1. Îmbinare naturală(⋈): Asocierea naturală este un operator binar. Îmbinarea naturală între două sau mai multe relații va avea ca rezultat un set de toate combinațiile de tupluri în care au un atribut comun egal.
Exemplu:
EMP
| Nume | ID | Dept_Nume |
|---|---|---|
| A | 120 | ACEASTA |
| B | 125 | HR |
| C | 110 | Vânzări |
| D | 111 | ACEASTA |
DEPT
| Dept_Nume | Administrator |
|---|---|
| Vânzări | ȘI |
| Productie | CU |
| ACEASTA | A |
Îmbinare naturală între EMP și DEPT cu condiția:
EMP.Dept_Name = DEPT.Dept_Name
EMP ⋈ DEPT
alternativa xampp
| Nume | ID | Dept_Nume | Administrator |
|---|---|---|---|
| A | 120 | ACEASTA | A |
| C | 110 | Vânzări | ȘI |
| D | 111 | ACEASTA | A |
2. Asociere condiționată: Îmbinarea condiționată funcționează similar cu îmbinarea naturală. În îmbinarea naturală, condiția implicită este egală între atributele comune, în timp ce în îmbinarea condiționată putem specifica orice condiție, cum ar fi mai mare decât, mai mică decât sau nu este egală.
Exemplu:
R
| ID | Sex | Marci |
|---|---|---|
| 1 | F | Patru cinci |
| 2 | F | 55 |
| 3 | F | 60 |
S
| ID | Sex | Marci |
|---|---|---|
| 10 | M | douăzeci |
| unsprezece | M | 22 |
| 12 | M | 59 |
Unire între R și S cu condiție R.marks>= S.marks
| SCĂPA | R.Sex | R.Marcs | S.ID | S.Sex | S.Marci |
|---|---|---|---|---|---|
| 1 | F | Patru cinci | 10 | M | douăzeci |
| 1 | F | Patru cinci | unsprezece | M | 22 |
| 2 | F | 55 | 10 | M | douăzeci |
| 2 | F | 55 | unsprezece | M | 22 |
| 3 | F | 60 | 10 | M | douăzeci |
| 3 | F | 60 | unsprezece | M | 22 |
| 3 | F | 60 | 12 | M | 59 |
Calcul relațional
Deoarece algebra relațională este un limbaj de interogare procedural, calculul relațional este un limbaj de interogare non-procedural. Practic se ocupă de rezultatele finale. Îmi spune întotdeauna ce să fac, dar nu îmi spune niciodată cum să o fac.
Există două tipuri de calcul relațional
- Calcul relațional tuplu (TRC)
- Calcul relațional de domeniu (DRC)
Articole aprofundate:
Operatori-de-bază-în-algebră-relațională
Operatori de algebră relațională extinsă