Requisit previ: Model relacional en DBMS
L'àlgebra relacional és un llenguatge de consulta procedimental. L'àlgebra relacional proporciona principalment una base teòrica per a bases de dades relacionals i SQL . El propòsit principal d'utilitzar l'àlgebra relacional és definir operadors que transformen una o més relacions d'entrada en una relació de sortida. Atès que aquests operadors accepten relacions com a entrada i produeixen relacions com a sortida, es poden combinar i utilitzar per expressar consultes potencialment complexes que transformen potencialment moltes relacions d'entrada (les dades de les quals s'emmagatzemen a la base de dades) en una única relació de sortida (els resultats de la consulta) . Com que es tracta de matemàtiques pures, no s'utilitzen paraules clau angleses a l'àlgebra relacional i els operadors es representen mitjançant símbols.
Operadors fonamentals
Aquests són els operadors bàsics/fonamentals utilitzats en àlgebra relacional.
- Selecció (σ)
- Projecció (π)
- Unió (U)
- Estableix la diferència (-)
- Estableix la intersecció (∩)
- Canvia el nom (ρ)
- Producte cartesià (X)
1. Selecció (σ): S'utilitza per seleccionar les tuples requerides de les relacions.
Exemple:
A | B | C |
---|---|---|
1 | 2 | 4 |
2 | 2 | 3 |
3 | 2 | 3 |
4 | 3 | 4 |
Per a la relació anterior, σ(c>3)R seleccionarà les tuples que tinguin c més de 3.
A | B | C |
---|---|---|
1 | 2 | 4 |
4 | 3 | 4 |
Nota: L'operador de selecció només selecciona les tuples requerides però no les mostra. Per a la visualització, s'utilitza l'operador de projecció de dades.
2. Projecció (π): S'utilitza per projectar les dades de columna requerides d'una relació.
quins mesos són q1
Exemple: Considereu la taula 1. Suposem que volem les columnes B i C de la relació R.
π(B,C)R will show following columns.>
B | C |
---|---|
2 | 4 |
2 | 3 |
3 | 4 |
Nota: Per defecte, la projecció elimina les dades duplicades.
3. Unió (U): L'operació d'unió en àlgebra relacional és la mateixa que en la teoria de conjunts.
Exemple:
FRANCÈS
Nom de l'estudiant | Número_Roll |
---|---|
Ram | 01 |
Mohan | 02 |
Vivek | 13 |
Geeta | 17 |
ALEMANY
Nom de l'estudiant | Número_Roll |
---|---|
Vivek | 13 |
Geeta | 17 |
Shyam | 21 |
Rohan | 25 |
Considereu la següent taula d'estudiants que tenen diferents assignatures optatives al seu curs.
π(Student_Name)FRENCH U π(Student_Name)GERMAN>
Nom de l'estudiant |
---|
Ram |
Mohan |
Vivek |
Geeta |
Shyam |
Rohan |
Nota: L'única limitació en la unió de dues relacions és que ambdues relacions han de tenir el mateix conjunt d'atributs.
4. Estableix la diferència (-): La diferència de conjunts en àlgebra relacional és la mateixa operació de diferència de conjunts que en la teoria de conjunts.
Exemple: A la taula anterior de FRANCÉS i ALEMANY, s'utilitza la diferència de conjunt de la manera següent
π(Student_Name)FRENCH - π(Student_Name)GERMAN>
Nom de l'estudiant |
---|
Ram |
Mohan |
Nota: L'única restricció en el conjunt de diferència entre dues relacions és que ambdues relacions han de tenir el mateix conjunt d'atributs.
5. Estableix la intersecció (∩): La intersecció de conjunts en àlgebra relacional és la mateixa operació d'intersecció de conjunts en la teoria de conjunts.
Exemple: A la taula anterior de FRANCÉS i ALEMANY, la intersecció de conjunt s'utilitza de la següent manera
π(Student_Name)FRENCH ∩ π(Student_Name)GERMAN>
Nom de l'estudiant |
---|
Vivek |
Geeta |
Nota: L'única restricció en el conjunt de diferència entre dues relacions és que ambdues relacions han de tenir el mateix conjunt d'atributs.
6. Canvia el nom (ρ): El canvi de nom és una operació unària que s'utilitza per canviar el nom dels atributs d'una relació.
ρ(a/b)R will rename the attribute 'b' of the relation by 'a'.>
7. Producte creuat (X): Producte creuat entre dues relacions. Posem per cas A i B, de manera que el producte creuat entre A X B donarà com a resultat tots els atributs de A seguits de cada atribut de B. Cada registre d'A s'aparellarà amb cada registre de B.
Exemple:
sense senyal d'entrada
A
Nom | Edat | Sexe |
---|---|---|
Ram | 14 | M |
final | 15 | F |
Quim | 20 | M |
B
ID | Curs |
---|---|
1 | DS |
2 | DBMS |
A X B
Nom | Edat | Sexe | ID | Curs |
---|---|---|---|---|
Ram | 14 | M | 1 | DS |
Ram | 14 | M | 2 | DBMS |
final | 15 | F | 1 | DS |
final | 15 | F | 2 | DBMS |
Quim | 20 | M | 1 | DS |
Quim | 20 | M | 2 | DBMS |
Nota: Si A té 'n' tuples i B té 'm' tuples, llavors A X B tindrà 'n*m' tuples.
Operadors derivats
Aquests són alguns dels operadors derivats, que es deriven dels operadors fonamentals.
- Unió natural(⋈)
- Unió condicional
1. Unió natural(⋈): La unió natural és un operador binari. La unió natural entre dues o més relacions donarà lloc a un conjunt de totes les combinacions de tuples on tenen un atribut comú igual.
Exemple:
EMP
Nom | ID | Nom_departament |
---|---|---|
A | 120 | IT |
B | 125 | RRHH |
C | 110 | Vendes |
D | 111 | IT |
DEPT
Nom_departament | Gerent |
---|---|
Vendes | I |
Producció | AMB |
IT | A |
Unió natural entre EMP i DEPT amb condició:
EMP.Dept_Name = DEPT.Dept_Name
on són la configuració del navegador
EMP ⋈ DEPT
Nom | ID | Nom_departament | Gerent |
---|---|---|---|
A | 120 | IT | A |
C | 110 | Vendes | I |
D | 111 | IT | A |
2. Unió condicional: La unió condicional funciona de manera similar a la unió natural. A la unió natural, per defecte, la condició és igual entre els atributs comuns, mentre que a la unió condicional podem especificar qualsevol condició com ara major que, menor que o no igual.
Exemple:
R
ID | Sexe | Marques |
---|---|---|
1 | F | 45 |
2 | F | 55 |
3 | F | 60 |
S
ID | Sexe | Marques |
---|---|---|
10 | M | 20 |
11 | M | 22 |
12 | M | 59 |
Uniu entre R i S amb condició R.marks>= S.marks
R.ID | R.Sex | R.Marques | S.ID | S.Sex | S.Marques |
---|---|---|---|---|---|
1 | F | 45 | 10 | M | 20 |
1 | F | 45 | 11 | M | 22 |
2 | F | 55 | 10 | M | 20 |
2 | F | 55 | 11 | M | 22 |
3 | F | 60 | 10 | M | 20 |
3 | F | 60 | 11 | M | 22 |
3 | F | 60 | 12 | M | 59 |
Càlcul relacional
Com que l'àlgebra relacional és un llenguatge de consulta procedimental, el càlcul relacional és un llenguatge de consulta no procedimental. Bàsicament tracta dels resultats finals. Sempre em diu què he de fer però mai em diu com ho he de fer.
Hi ha dos tipus de càlcul relacional
- Càlcul relacional de tuples (TRC)
- Càlcul relacional de domini (DRC)
Articles en profunditat:
Operadors-bàsics-en-àlgebra-relacional
Operadors d'àlgebra relacional estesa