Cómo resolver problemas de Álgebra Relacional para GATE

En este artículo, analicemos los tipos comunes de preguntas en álgebra relacional que se hacen en GATE. Antes de leer este artículo, debe tener una idea sobre los operadores básicos y los operadores extendidos en álgebra relacional. 

Tipo-1: Dada una expresión de álgebra relacional, encuentra el resultado. 
Suponga que tiene una relación Order(Prod_Id, Agent_Id, Order_Month) y tiene que averiguar qué devolverá la siguiente expresión algebraica. 

Order1.Prod_Id (ρ(Order1,Order) Order1.Prod_Id=Order2.Prod_Id 
                                          and Order1.Agent_Id≠Order2.Agent_Id 
                                          and Order1.Order_Month=Order2.Order_Month ρ(Order2,Order)) 

Procese la expresión a partir de los corchetes más internos. 

En este ejemplo, hemos renombrado order a Order1 y Order2 (ambos representan la misma relación order). Luego hemos aplicado la combinación condicional entre Order1 y Order2. Devolverá aquellas filas donde Product_Id y Order_Month de Order1 y Order2 son iguales pero Agent_Id de Order1 y Order2 es diferente. Implica las filas donde el mismo producto es ordenado por dos agentes diferentes en el mismo mes. Entonces estamos proyectando el Prod_Id. 

Entonces, el resultado final devolverá el Prod_Id de los productos que ordenan diferentes agentes en el mismo mes. Podemos hacer esto tomando datos de muestra. Let La relación de orden consta de los siguientes datos. 

Tabla – Orden 

Id_producto Id_agente Order_Month
P001 A001 ENE
P002 A002 FEB
P002 A001 FEB
P001 A002 FEB

Cuando aplicamos la siguiente expresión, se seleccionarán las filas que están resaltadas en azul. 

(ρ(Order1,Order)Order1.Prod_Id=Order2.Prod_Id 
                   and Order1.Agent_Id≠Order2.Agent_Id 
                   and Order1.Order_Month=Order2.Order_Month ρ(Order2,Order))
Pedido1.Prod_Id Pedido1.Agent_Id Pedido1.Pedido_Mes Pedido2.Prod_Id Pedido2.Agent_Id Pedido2.Pedido_Mes
P001 A001 ENE P001 A001 ENE
P002 A002 FEB P001 A001 ENE
P002 A001 FEB P001 A001 ENE
P001 A002 FEB P001 A001 ENE
P001 A001 ENE P002 A002 FEB
P002 A002 FEB P002 A002 FEB
P002 A001 FEB P002 A002 FEB
P001 A002 FEB P002 A002 FEB
P001 A001 ENE P002 A001 FEB
P002 A002 FEB P002 A001 FEB
P002 A001 FEB P002 A001 FEB
P001 A002 FEB P002 A001 FEB
P001 A001 ENE P001 A002 FEB
P002 A002 FEB P001 A002 FEB
P002 A001 FEB P001 A002 FEB
P001 A002 FEB P001 A002 FEB

Después de proyectar Order1.Prod_Id, la salida será P002 , que es Prod_Id de los productos pedidos por al menos dos agentes diferentes en el mismo mes. 

Nota: si queremos encontrar Prod_Id ordenados por al menos tres agentes diferentes en el mismo mes, se puede hacer de la siguiente manera: 
 

Order1.Prod_IdOrder1.Prod_Id=Order2.Prod_Id 
                                 and Order1.Prod_Id=Order3.Prod_Id 
                                 and  Order1.Agent_Id≠Order2.Agent_Id 
                                 and Order1.Agent_Id≠Order3.Agent_Id 
                                 and Order2.Agent_Id≠Order3.Agent_Id 
                                 and Order1.Order_Month=Order2.Order_Month 
                                 and Order1.Order_Month=Order3.Order_Month(ρ(Order1,Order)X ρ(Order2,Order)X ρ(Order3,Order))) 

Tipo 2: dadas dos relaciones, ¿cuál será el número máximo y mínimo de tuplas después de la unión natural? 

Considere la siguiente relación R (A, B , C) y S ( B, D , E) con clave principal subrayada. La relación R contiene 200 tuplas y la relación S contiene 100 tuplas. ¿Cuál es el número máximo de tuplas posibles en el Join natural R y S? 

Para resolver este tipo de cuestiones, en primer lugar, veremos sobre qué atributo se producirá la unión natural. La combinación natural selecciona aquellas filas que tienen valores iguales para el atributo común. En este caso, la expresión sería como: 

σR.B=S.B (RX S) 

En la relación R, el atributo B es la clave primaria. Entonces, la relación R tendrá 200 valores distintos de B. Por otro lado, la relación S tiene BD como clave principal. Entonces, el atributo B puede tener 100 valores distintos o 1 valor para todas las filas. 

Caso-1: SB tiene 100 valores distintos y cada uno de estos valores coincide con RB 

En este caso, cada valor de B en S coincidirá con un valor de B en R. Entonces, la unión natural tendrá 100 tuplas. 

Caso-2: SB tiene 1 valores y estos valores coinciden con RB 

En este caso, cada valor de B en S coincidirá con un valor de B en R. Entonces, la unión natural tendrá 100 tuplas. 

Caso-3: SB tiene 100 valores distintos y ninguno de estos valores coincide con RB 

En este caso, ningún valor de B en S coincidirá con un valor de B en R. Entonces, la unión natural tendrá 0 tuplas. 

Caso-4: SB tiene 1 valor y no coincide con RB 

En este caso, ningún valor de B en S coincidirá con un valor de B en R. Entonces, la unión natural tendrá 0 tuplas. 

Entonces el número máximo de tuplas será 100 y el mínimo será 0. 

Nota: si se menciona explícitamente que SB es una clave externa para RB, entonces el Caso 3 y el Caso 4 discutidos anteriormente no son posibles porque el valor de SB será de los valores de RB Entonces, el número mínimo y máximo de tuplas en unión natural será 100. 

Referencia – Fundamentos de los sistemas de bases de datos bu Navathe

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 *