TAREA UNIDAD 5: VALORES NULOS


Reunión
Las reuniones se pueden expresar como un producto cartesiano seguido de una selección.
La definición de la forma en la cual la selección trata los nulos también define la forma en que la operación reunión trata los nulos.
En una reunión natural, si dos tuplas tienen valor nulo en el atributo común, las tuplas no casan.
Se utiliza la equivalencia reunión = selección (producto cartesiano)
Por tanto dos tuplas con valor nulo en el atributo común no coinciden.

Ejemplos:

Ø  Para el siguiente esquema se pide obtener el DNI de los empleados que trabajan en el departamento “Contabilidad”. EMP (DNI, NUMDEP) DPTO (ND, NOMD)
     Solución: 
R1 σNOMD = “Contabilidad” (DPTO) /* Tuplas con NOMD = “Contabilidad” */
R2 EMP NUMDEP = ND R1 /* Tuplas de los empleados de “Contabilidad”. */
RES ΠDNI (R2)

Ø  Dado el siguiente esquema, obtener el nombre de los propietarios de coches modelo “Ferrari F50”.
CLIENTES (DNI, NOM, DIR) COCHES (MATR, MODELO, ANIO)PROPIEDAD (DNI,MATR)
􀂋Solución:
R1 σMODELO = “Ferrari F50” (COCHES)
􀂄/* Tuplas del modelo “Ferrari F50” */
R2 PROPIEDAD R1
􀂄/* DNI de propietarios junto a los datos de sus coches */
RES ΠNOM (CLIENTES R2)
􀂄/* Nombre de los propietarios de “Ferrari F50” */

Proyección Generalizada
Los nulos en las expresiones de los atributos en la proyección generalizada se tratan como en cualquier expresión.                                                                                                                             Las tuplas duplicadas que contienen valores nulos se tratan como en la operación proyección.

Ejemplos:

Ø  Averiguar el importe de crédito disponible para cada línea de crédito activa (límite de crédito: 25000)
Πnumero_prestamo, 25000-importe (Préstamo)
Πnumero_prestamo, (25000-importe) as disponible (Préstamo)

numero_prestamo        disponible
P-13                                  15000
P-23                                  16300
P-18                                  9900


Funciones de Agregación
Cuando hay nulos en atributos agregados, la operación borra los valores nulos del resultado antes de aplicar la agregación.
El tratamiento de los valores nulos aquí es diferente al realizado en las operaciones aritméticas <- aplicarlo como en las operaciones aritméticas significaría que un único valor desconocido en un gran grupo podría hacer que el resultado agregado sobre el grupo fuese nulo, y se perdería una gran cantidad de información útil.
Ejemplos:

Ø  Averiguar la suma total de los sueldos de los empleados del banco

                     G sum(sueldo)(EmpleadosTP)

EmpleadosTP

Nombre_ empleado
Nombre_sucursal
sueldo
Ribera
Fingoi
1800
Fernández 
Plaza Roja                                
1450
Jiménez 
Murallas
2900
Díaz   
Fingoi
3900
González
Principal
2700

                            


Averiguar número de sucursales en los que hay al menos un empleado a tiempo parcial

                G count-distinct(nombre_sucursal)(EmpleadosTP)

Hallar la suma total de sueldos de los empleados a tiempo parcial por sucursal

EmpleadosTP

Nombre_ empleado
Nombre_sucursal
sueldo
Ribera
Fingoi
1800
Fernández 
Plaza Roja                                
1450
Jiménez 
Murallas
2900
Díaz   
Fingoi
3900
González
Principal
2700

nombre_sucursalG sum(sueldo) (EmpleadosTP)


nombre_sucursal
suma de sueldo
Plaza Roja                                              
1450
Murallas
2900
Fingoi
5700
Principal
2700




Reunión Externa
Las operaciones de reunión externa se comportan como las operaciones de reunión, excepto sobre las tuplas que no aparecen en el resultado.
Funciona de manera similar para aquellas tuplas que cumplan las condiciones de reunión.
Para el resto de tuplas, dependiendo del tipo de reunión externa, se incluirán el resto de tuplas rellenando con valores nulos.


Ejemplos:
Ø   


Ø  Generar una única relación que contenga toda la información de los empleados (calle, ciudad, sucursal y sueldo)

Empleado

Nombre
Calle
Ciudad
Valdivieso
Pimentel
Lugo
Gómez 
Jazmín
Rábade
Domínguez
La Rosa                
Santiago
Segura
Diputación 
Lugo

Empleado TC

Nombre
sucursal
sueldo

Valdivieso
Fingoi
5300
Gómez 
Principal                         
8000
Domínguez
Principal
12000
Segura
Fingoi
3000

No hay comentarios:

Publicar un comentario