La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Ejemplos Cálculo Relacional

Presentaciones similares


Presentación del tema: "Ejemplos Cálculo Relacional"— Transcripción de la presentación:

1 Ejemplos Cálculo Relacional
Francisco Moreno 04/12/2018 Curso Bases de Datos

2 CP CA S P CP s# snombre situacion ciudad S1 Salazar 20 Londres
S2 Jaramillo París S3 Bernal París S4 Caicedo Londres S5 Aldana Atenas P p# pnombre color peso ciudad P1 Tuerca Rojo Londres P2 Perno Verde París P3 Tornillo Azul Roma P4 Tornillo Rojo Londres P5 Leva Azul París P6 Rueda Rojo Londres CP 04/12/2018 Curso Bases de Datos

3 SP s# p# cantidad S1 P1 300 S1 P2 200 S1 P3 400 S1 P4 200 S1 P5 100
CF hacia P SP s# p# cantidad S1 P S1 P S1 P S1 P S1 P S1 P S2 P S2 P S3 P S4 P S4 P S4 P CF hacia S CP 04/12/2018 Curso Bases de Datos

4 Se resolverán algunos de los ejemplos presentados en álgebra y SQL.
Obtener los datos de todos los proveedores de Paris con situación mayor a 10. {sx | sx Î S Ù sx[ciudad] = ‘Paris’ Ù sx[situacion] > 10 } 04/12/2018 Curso Bases de Datos

5 Obtener solo los códigos de los proveedores de Roma.
{t | $ sx Î S ( t[s#] = sx[s#] Ù sx[ciudad] = ‘Roma’ ) } t está definida sobre t[s#] 04/12/2018 Curso Bases de Datos

6 {sx |sx Î S Ù $ spx Î SP (sx[s#] = spx[s#] Ù spx[p#] = ‘P2’ ) }
Obtener todos los datos de los proveedores que suministran el producto P2. {sx |sx Î S Ù $ spx Î SP (sx[s#] = spx[s#] Ù spx[p#] = ‘P2’ ) } 04/12/2018 Curso Bases de Datos

7 {t | $ sx Î S (t[snombre] = sx[snombre] Ù
Obtener solo los nombres de los proveedores que suministran el producto P2. {t | $ sx Î S (t[snombre] = sx[snombre] Ù $ spx Î SP (sx[s#] = spx[s#] Ù spx[p#] = ‘P2’ ) } t está definida sobre t[snombre] 04/12/2018 Curso Bases de Datos

8 {t | $ sx Î S (t[snombre] = sx[snombre] Ù
Obtener los nombres de los proveedores que NO suministran el producto P2. {t | $ sx Î S (t[snombre] = sx[snombre] Ù Ø $ spx Î SP (sx[s#] = spx[s#] Ù spx[p#] = ‘P2’ ) } 04/12/2018 Curso Bases de Datos

9 (t[snombre] = sx[snombre] Ù  px Î P ($ spx Î SP (sx[s#] = spx[s#] Ù
Obtener solo los nombres de los proveedores que suministran todos los productos: {t | $ sx Î S (t[snombre] = sx[snombre] Ù  px Î P ($ spx Î SP (sx[s#] = spx[s#] Ù px[p#] = spx[p#] ) } 04/12/2018 Curso Bases de Datos

10 (t[snombre] = sx[snombre] Ù $ spx Î SP (sx[s#] = spx[s#] Ù
Obtener los nombres de los proveedores que suministran por lo menos un producto rojo {t | $ sx Î S (t[snombre] = sx[snombre] Ù $ spx Î SP (sx[s#] = spx[s#] Ù $ px Î P (spx[p#] = px[p#] Ù px[color] = ‘Rojo’ ) } 04/12/2018 Curso Bases de Datos

11 O intercambiando los dos $ internos: {t | $ sx Î S
(t[snombre] = sx[snombre] Ù $ px Î P (px[color] = ‘Rojo’ Ù $ spx Î SP (spx[s#] = sx[s#] Ù spx[p#] = px[p#] ) } 04/12/2018 Curso Bases de Datos

12 sx1[ciudad] = sx2[ciudad] ) } ¿Qué pasa si se incluye la condición:
Imprimir los códigos de las parejas de proveedores que están situados en la misma ciudad. {t | $ sx1 Î S ( $ sx2 Î S ( t[s# AS s#1] = sx1[s#] Ù t[s# AS s#2] = sx2[s#] Ù sx1[ciudad] = sx2[ciudad] ) } ¿Qué pasa si se incluye la condición: sx1[s#] < sx2[s#] en esta consulta? 04/12/2018 Curso Bases de Datos

13 Ej: ¿Qué hace la siguiente consulta?
El cálculo (originalmente) no incluye operaciones de agregación (similares al operador Ģ del álgebra), aun así hay algunos problemas de agregación que se pueden resolver en cálculo Ej: ¿Qué hace la siguiente consulta? {t | t Î P Ù Ø $ px Î P (px[peso] < t[peso])} 04/12/2018 Curso Bases de Datos

14 Ejercicios: Resolver la consulta anterior usando  en vez de $
Obtener los nombres de los proveedores que no venden productos rojos Obtener los nombres de los proveedores que suministran al menos todos los productos suministrados por el proveedor S2 04/12/2018 Curso Bases de Datos


Descargar ppt "Ejemplos Cálculo Relacional"

Presentaciones similares


Anuncios Google