Conceptos básicos del modelo relacional: modelo relacional
El álgebra relacional es un lenguaje de consulta procedimental que toma relaciones como entrada y las devuelve como salida. Hay algunos operadores básicos que se pueden aplicar en las relaciones para producir los resultados requeridos que discutiremos uno por uno. Usaremos las relaciones ESTUDIANTE_DEPORTES, EMPLEADO y ESTUDIANTE como se indica en la Tabla 1, Tabla 2 y Tabla 3 respectivamente para comprender los diversos operadores.
Tabla 1: ESTUDIANTE_DEPORTES
ROLLO_NO | DEPORTES |
1 | Bádminton |
2 | Grillo |
2 | Bádminton |
4 | Bádminton |
Tabla 2: EMPLEADO
EMP_NO | NOMBRE | DIRECCIÓN | TELÉFONO | AÑOS |
1 | RAM | DELHI | 9455123451 | 18 |
5 | NARESH | HISAR | 9782918192 | 22 |
6 | SWETA | RANCHI | 9852617621 | 21 |
4 | SEGURO | DELHI | 9156768971 | 18 |
Tabla 3: ESTUDIANTE
ROLLO_NO | NOMBRE | DIRECCIÓN | TELÉFONO | AÑOS |
1 | RAM | DELHI | 9455123451 | 18 |
2 | RAMESH | GURGAÓN | 9652431543 | 18 |
3 | SUJIT | ROHTAK | 9156253131 | 20 |
4 | SEGURO | DELHI | 9156768971 | 18 |
El operador de selección se usa para seleccionar tuplas de una relación basada en alguna condición. Sintaxis:
σ (Cond)(Relation Name)
Extraer estudiantes cuya edad sea mayor de 18 años de la relación ESTUDIANTE dada en la Tabla 3
σ (AGE>18)(STUDENT)
[Nota: el operador SELECCIONAR no muestra ningún resultado, el operador de proyección debe llamarse antes que el operador de selección para generar o proyectar el resultado. Entonces, la sintaxis correcta para generar el resultado es : ∏(σ (EDAD>18)(ESTUDIANTE))]
RESULTADO:
ROLLO_NO | NOMBRE | DIRECCIÓN | TELÉFONO | AÑOS |
3 | SUJIT | ROHTAK | 9156253131 | 20 |
El operador de proyección se usa para proyectar columnas particulares de una relación. Sintaxis:
∏(Column 1,Column 2….Column n)(Relation Name)
Extraiga ROLL_NO y NAME de la relación ESTUDIANTE dada en la Tabla 3
∏(ROLL_NO,NAME)(STUDENT)
RESULTADO:
ROLLO_NO | NOMBRE |
1 | RAM |
2 | RAMESH |
3 | SUJIT |
4 | SEGURO |
Nota: Si la relación resultante después de la proyección tiene filas duplicadas, se eliminará. Por ejemplo, ∏ (DIRECCIÓN) (ESTUDIANTE) eliminará una fila duplicada con el valor DELHI y devolverá tres filas.
El producto cruzado se utiliza para unir dos relaciones. Para cada fila de Relación1, cada fila de Relación2 se concatena. Si Relación1 tiene m tuplas y Relación2 tiene n tuplas, el producto cruzado de Relación1 y Relación2 tendrá m X n tuplas. Sintaxis:
Relation1 X Relation2
Para aplicar el Producto Cruzado en la relación ESTUDIANTE dada en la Tabla 1 y la relación ESTUDIANTE_DEPORTES dada en la Tabla 2,
STUDENT X STUDENT_SPORTS
RESULTADO:
ROLLO_NO | NOMBRE | DIRECCIÓN | TELÉFONO | AÑOS | ROLLO_NO | DEPORTES |
1 | RAM | DELHI | 9455123451 | 18 | 1 | Bádminton |
1 | RAM | DELHI | 9455123451 | 18 | 2 | Grillo |
1 | RAM | DELHI | 9455123451 | 18 | 2 | Bádminton |
1 | RAM | DELHI | 9455123451 | 18 | 4 | Bádminton |
2 | RAMESH | GURGAÓN | 9652431543 | 18 | 1 | Bádminton |
2 | RAMESH | GURGAÓN | 9652431543 | 18 | 2 | Grillo |
2 | RAMESH | GURGAÓN | 9652431543 | 18 | 2 | Bádminton |
2 | RAMESH | GURGAÓN | 9652431543 | 18 | 4 | Bádminton |
3 | SUJIT | ROHTAK | 9156253131 | 20 | 1 | Bádminton |
3 | SUJIT | ROHTAK | 9156253131 | 20 | 2 | Grillo |
3 | SUJIT | ROHTAK | 9156253131 | 20 | 2 | Bádminton |
3 | SUJIT | ROHTAK | 9156253131 | 20 | 4 | Bádminton |
4 | SEGURO | DELHI | 9156768971 | 18 | 1 | Bádminton |
4 | SEGURO | DELHI | 9156768971 | 18 | 2 | Grillo |
4 | SEGURO | DELHI | 9156768971 | 18 | 2 | Bádminton |
4 | SEGURO | DELHI | 9156768971 | 18 | 4 | Bádminton |
La unión en dos relaciones R1 y R2 solo se puede calcular si R1 y R2 son compatibles con la unión (estas dos relaciones deben tener el mismo número de atributos y los atributos correspondientes en dos relaciones tienen el mismo dominio). El operador de unión cuando se aplica en dos relaciones R1 y R2 dará una relación con tuplas que están en R1 o en R2. Las tuplas que están tanto en R1 como en R2 aparecerán solo una vez en la relación de resultados. Sintaxis:
Relation1 U Relation2
Encuentre una persona que sea estudiante o empleado, podemos usar operadores de la Unión como:
STUDENT U EMPLOYEE
RESULTADO:
ROLLO_NO | NOMBRE | DIRECCIÓN | TELÉFONO | AÑOS |
1 | RAM | DELHI | 9455123451 | 18 |
2 | RAMESH | GURGAÓN | 9652431543 | 18 |
3 | SUJIT | ROHTAK | 9156253131 | 20 |
4 | SEGURO | DELHI | 9156768971 | 18 |
5 | NARESH | HISAR | 9782918192 | 22 |
6 | SWETA | RANCHI | 9852617621 | 21 |
El menos en dos relaciones R1 y R2 solo se puede calcular si R1 y R2 son compatibles con la unión . El operador menos cuando se aplica en dos relaciones como R1-R2 dará una relación con tuplas que están en R1 pero no en R2. Sintaxis:
Relation1 - Relation2
Encuentre una persona que sea estudiante pero no empleado, podemos usar el operador menos como:
STUDENT - EMPLOYEE
RESULTADO:
ROLLO_NO | NOMBRE | DIRECCIÓN | TELÉFONO | AÑOS |
2 | RAMESH | GURGAÓN | 9652431543 | 18 |
3 | SUJIT | ROHTAK | 9156253131 | 20 |
El operador de cambio de nombre se utiliza para dar otro nombre a una relación. Sintaxis:
ρ(Relation2, Relation1)
Para cambiar el nombre de la relación ESTUDIANTE a ESTUDIANTE1, podemos usar el operador de cambio de nombre como:
ρ(STUDENT1, STUDENT)
Si desea crear una relación STUDENT_NAMES con ROLL_NO y NAME from STUDENT, puede hacerlo usando el operador de cambio de nombre como:
ρ(STUDENT_NAMES, ∏(ROLL_NO, NAME)(STUDENT))
Operadores de álgebra relacional extendida Descripción general de los operadores de álgebra relacional
Preguntas de Gate del año anterior
https://www.geeksforgeeks.org/gate-gate-cs-2012-question-50/
https://www.geeksforgeeks.org/gate-gate-cs-2012-question-43/
Artículo aportado por Sonal Tuteja. Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA