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_Id (σOrder1.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