Operadores extendidos en álgebra relacional

Idea básica sobre modelo relacional y operadores básicos en Álgebra Relacional:

modelo relacional

Operadores básicos en álgebra relacional

Los operadores extendidos son aquellos operadores que se pueden derivar de los operadores básicos.

  • Unirse
  • Intersección
  • Dividir

Las relaciones utilizadas para entender los operadores extendidos son ESTUDIANTE, ESTUDIANTE_DEPORTES, TODOS_DEPORTES y EMPLEADO que se muestran en la Tabla 1, Tabla 2, Tabla 3 y Tabla 4 respectivamente.

ALUMNO

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

tabla 1

  ESTUDIANTE_DEPORTES        

ROLLO_NO DEPORTES
1 Bádminton
2 Grillo
2 Bádminton
4 Bádminton

Tabla 2

 TODOS LOS DEPORTES

DEPORTES
Bádminton
Grillo 

Tabla 3

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 4

La intersecció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 intersección cuando se aplica en dos relaciones como R1 R2 dará una relación con tuplas que están tanto en R1 como en R2. Sintaxis:

 Relation1 ∩ Relation2
Example: Find a person who is student as well as employee-  STUDENT ∩ EMPLOYEE  

En términos de operadores básicos (unión y menos):

STUDENT ∩ EMPLOYEE = STUDENT + EMPLOYEE - (STUDENT U EMPLOYEE) 

RESULTADO:

ROLLO_NO NOMBRE DIRECCIÓN TELÉFONO AÑOS
1 RAM DELHI 9455123451 18
4 SEGURO DELHI 9156768971 18

: Unión condicional se utiliza cuando desea unir dos o más relaciones en función de algunas condiciones. Ejemplo: Seleccionar alumnos cuyo ROLL_NO sea mayor que EMP_NO de empleados

STUDENTcSTUDENT.ROLL_NO>EMPLOYEE.EMP_NOEMPLOYEE

En términos de operadores básicos (producto cruzado y selección):

σ (STUDENT.ROLL_NO>EMPLOYEE.EMP_NO)(STUDENT×EMPLOYEE)

RESULTADO:

ROLLO_NO NOMBRE DIRECCIÓN TELÉFONO AÑOS EMP_NO NOMBRE DIRECCIÓN TELÉFONO AÑOS
2 RAMESH GURGAÓN 9652431543 18 1 RAM DELHI 9455123451 18
3 SUJIT ROHTAK 9156253131 20 1 RAM DELHI 9455123451 18
4 SEGURO DELHI 9156768971 18 1 RAM DELHI 9455123451 18

Equijoin es un caso especial de unión condicional donde solo se cumple la condición de igualdad entre un par de atributos. Como los valores de dos atributos serán iguales en el resultado de la unión equitativa, solo aparecerá un atributo en el resultado.

Ejemplo:Seleccione estudiantes cuyo ROLL_NO sea igual a EMP_NO de empleados

STUDENT⋈STUDENT.ROLL_NO=EMPLOYEE.EMP_NOEMPLOYEE

En términos de operadores básicos (producto cruzado, selección y proyección):

(STUDENT.ROLL_NO, STUDENT.NAME, STUDENT.ADDRESS, STUDENT.PHONE, STUDENT.AGE EMPLOYEE.NAME, EMPLOYEE.ADDRESS, EMPLOYEE.PHONE, EMPLOYEE>AGE) (STUDENT.ROLL_NO=EMPLOYEE.EMP_NO) (STUDENT×EMPLOYEE))

RESULTADO:

ROLLO_NO NOMBRE DIRECCIÓN TELÉFONO AÑOS NOMBRE DIRECCIÓN TELÉFONO AÑOS
1 RAM DELHI 9455123451 18 RAM DELHI 9455123451 18
4 SEGURO DELHI 9156768971 18 SEGURO DELHI 9156768971 18

Es un caso especial de equijoin en el que la condición de igualdad se cumple en todos los atributos que tienen el mismo nombre en las relaciones R y S (relaciones en las que se aplica la operación de unión). Al aplicar la unión natural en dos relaciones, no es necesario escribir explícitamente la condición de igualdad. Natural Join también devolverá los atributos similares solo una vez, ya que su valor será el mismo en la relación resultante.

Ejemplo: Seleccione estudiantes cuyo ROLL_NO sea igual al ROLL_NO de STUDENT_SPORTS como:

STUDENT⋈STUDENT_SPORTS

En términos de operadores básicos (producto cruzado, selección y proyección):

(STUDENT.ROLL_NO, STUDENT.NAME, STUDENT.ADDRESS, STUDENT.PHONE, STUDENT.AGE STUDENT_SPORTS.SPORTS) (STUDENT.ROLL_NO=STUDENT_SPORTS.ROLL_NO) (STUDENT×STUDENT_SPORTS))

RESULTADO:

ROLLO_NO NOMBRE DIRECCIÓN TELÉFONO AÑOS DEPORTES
1 RAM DELHI 9455123451 18 Bádminton
2 RAMESH GURGAÓN 9652431543 18 Grillo
2 RAMESH GURGAÓN 9652431543 18 Bádminton
4 SEGURO DELHI 9156768971 18 Bádminton

La unión natural es una unión interna predeterminada porque las tuplas que no cumplen las condiciones de unión no aparecen en el conjunto de resultados. p.ej; La tupla que tiene ROLL_NO 3 en STUDENT no coincide con ninguna tupla en STUDENT_SPORTS, por lo que no ha sido parte del conjunto de resultados.

Al aplicar la combinación en dos relaciones R y S, algunas tuplas de R o S no aparecen en el conjunto de resultados que no satisfacen las condiciones de combinación. Pero Left Outer Joins da todas las tuplas de R en el conjunto de resultados. Las tuplas de R que no cumplan la condición de unión tendrán valores NULL para los atributos de S.

Ejemplo: seleccione estudiantes cuyo ROLL_NO sea mayor que EMP_NO de empleados y detalles de otros estudiantes también

STUDENT&#10197STUDENT.ROLL_NO>EMPLOYEE.EMP_NOEMPLOYEE

RESULTADO

ROLLO_NO NOMBRE DIRECCIÓN TELÉFONO AÑOS EMP_NO NOMBRE DIRECCIÓN TELÉFONO AÑOS
2 RAMESH GURGAÓN 9652431543 18 1 RAM DELHI 9455123451 18
3 SUJIT ROHTAK 9156253131 20 1 RAM DELHI 9455123451 18
4 SEGURO DELHI 9156768971 18 1 RAM DELHI 9455123451 18
1 RAM DELHI 9455123451 18 NULO NULO NULO NULO NULO

Al aplicar la combinación en dos relaciones R y S, algunas tuplas de R o S no aparecen en el conjunto de resultados que no satisfacen las condiciones de combinación. Pero Right Outer Joins da todas las tuplas de S en el conjunto de resultados. Las tuplas de S que no satisfagan la condición de unión tendrán valores como NULL para los atributos de R.

Ejemplo: seleccione estudiantes cuyo ROLL_NO sea mayor que EMP_NO de empleados y detalles de otros empleados también

STUDENT⟖STUDENT.ROLL_NO>EMPLOYEE.EMP_NOEMPLOYEE

RESULTADO:

ROLLO_NO NOMBRE DIRECCIÓN TELÉFONO AÑOS EMP_NO NOMBRE DIRECCIÓN TELÉFONO AÑOS
2 RAMESH GURGAÓN 9652431543 18 1 RAM DELHI 9455123451 18
3 SUJIT ROHTAK 9156253131 20 1 RAM DELHI 9455123451 18
4 SEGURO DELHI 9156768971 18 1 RAM DELHI 9455123451 18
NULO NULO NULO NULO NULO 5 NARESH HISAR 9782918192 22
NULO NULO NULO NULO NULO 6 SWETA RANCHI 9852617621 21
NULO NULO NULO NULO NULO 4 SEGURO DELHI 9156768971 18

Al aplicar la combinación en dos relaciones R y S, algunas tuplas de R o S no aparecen en el conjunto de resultados que no satisfacen las condiciones de combinación. Pero Full Outer Joins da todas las tuplas de S y todas las tuplas de R en el conjunto de resultados. Las tuplas de S que no cumplan la condición de unión tendrán valores como NULL para los atributos de R y viceversa.

Ejemplo: seleccione estudiantes cuyo ROLL_NO sea mayor que EMP_NO de empleados y detalles de otros empleados también y otros estudiantes también

STUDENT⟗STUDENT.ROLL_NO>EMPLOYEE.EMP_NOEMPLOYEE

RESULTADO:

ROLLO_NO NOMBRE DIRECCIÓN TELÉFONO AÑOS EMP_NO NOMBRE DIRECCIÓN TELÉFONO AÑOS
2 RAMESH GURGAÓN 9652431543 18 1 RAM DELHI 9455123451 18
3 SUJIT ROHTAK 9156253131 20 1 RAM DELHI 9455123451 18
4 SEGURO DELHI 9156768971 18 1 RAM DELHI 9455123451 18
NULO NULO NULO NULO NULO 5 NARESH HISAR 9782918192 22
NULO NULO NULO NULO NULO 6 SWETA RANCHI 9852617621 21
NULO NULO NULO NULO NULO 4 SEGURO DELHI 9156768971 18
1 RAM DELHI 9455123451 18 NULO NULO NULO NULO NULO

El operador de división A ÷ B se puede aplicar si y solo si:

  • Los atributos de B son un subconjunto propio de los atributos de A.
  • La relación devuelta por el operador de división tendrá atributos = (Todos los atributos de A – Todos los atributos de B)
  • La relación devuelta por el operador de división devolverá aquellas tuplas de la relación A que están asociadas a cada tupla de B.

Considere la relación ESTUDIANTE_DEPORTES y TODOS_DEPORTES dada en la Tabla 2 y la Tabla 3 anteriores.

Para aplicar el operador de división como

  STUDENT_SPORTS÷ ALL_SPORTS
  • La operación es válida ya que los atributos en ALL_SPORTS son un subconjunto adecuado de atributos en STUDENT_SPORTS.
  • Los atributos en la relación resultante tendrán atributos {ROLL_NO,SPORTS}-{SPORTS}=ROLL_NO
  • Las tuplas en relación resultante tendrán aquellos ROLL_NO que están asociados con todas las tuplas de B {Badminton, Cricket}. ROLL_NO 1 y 4 están asociados solo a Bádminton. ROLL_NO 2 está asociado a todas las tuplas de B. Por lo que la relación resultante será:
ROLLO_NO
2

Descripción general de los operadores de álgebra relacional

Preguntas de puerta 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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *