Valores nulos
Es necesario analizar la forma en la que las
operaciones del álgebra relacional manejan los valores nulos (y las
complicaciones que surgen).
Las operaciones y comparaciones con valores nulos
se deberían evitar siempre que sea posible.
Valor nulo: Valor desconocido o
no existente.
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.
Reunión natural
Cuando se utiliza el producto
cartesiano, se suele reducir forzando que los argumentos con contenidos iguales
tengan valores iguales relación1
relación2
=σrelación1.argumento=relación2.argumento
(relación1 x relación2)
Reunión theta
La reunión theta permite reflejar
una condición arbitraria de reunión al producto cartesiano relación Condición relación2
=σcondición (relación x relación)
Eje 1
DNI NOMBRE DIRECCIÓN
35784843 María Gutiérrez?
La siguiente tupla:
{(dni, 35784843), (nombre, María
Gutiérrez), (dirección,?)}
Que se puede denotar como tupla
T, es una representación de esta función mediante pares
(Atributo, valor). En esta tupla
es atributo dirección tiene valor nulo indicando que se
Desconoce la dirección de esta
persona.
Eje.2
5 < null o
null <> null o null = null
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.
La operación
proyección generalizada amplía la operación proyección permitiendo que se
utilicen funciones aritméticas en la lista de argumentos
Π funciones (relación)
Eje 1
Averiguar el
importe de crédito disponible para cada línea de crédito activa (límite de
crédito: 25000)
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.
Las funciones de
agregación toman como entrada una colección de valores y devuelven como
resultado un valor resumen Se representa por la G caligráfica: G sum: suma de
los valores avg: media de los valores count: número de valores min: valor
mínimo de los valores max: valor máximo de los valores Para no repetir valores
Æ función-distinct
argumento G función(argumento) (relación).
Eje 1
Averiguar la suma
total de los sueldos de los empleados del banco G sum (sueldo)
(EmpleadosTP)
Averiguar número de
sucursales en los que hay al menos un empleado a tiempo parcial G count-distinct
(nombre sucursal)
Ejem 2
Hallar la suma total de sueldos de los empleados a
tiempo parcial por sucursal
nombre_sucursal G sum
(sueldo)
(EmpleadosTP)
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.
La operación reunión
externa es una ampliación de
La operación
reunión para trabajar con información ausente (desconocida, no relevante,…)
Eje 1
Generar una única
relación que contenga toda la información de los empleados (calle, ciudad, sucursal
y sueldo)
Reunión externa izquierda
La reunión externa
por la izquierda toma todas las tuplas de la relación de la izquierda que no
coincidan con ninguna tupla de la relación de la derecha, las rellana con
valores nulos en los demás atributos de la relación de la derecha y las añade al
resultado de la reunión natural
Reunión externa derecha
Empleado Empleado
Reunión externa completa
La reunión externa
completa realiza las operaciones de la reunión externa por la izquierda y de la
reunión externa por la derecha
Empleado EmpleadoTC
Ejercicios
Eje 1
Dada la Base de Datos, en Modelo Relacional, compuesta por
los siguientes 4 esquemas
·
PRODUCTO(Fabricante, Modelo, Tipo)
·
PC(Modelo, Velocidad, RAM, Disco Duro, Precio)
·
PORTATÍL(Modelo , Velocidad, RAM, Disco, Pantalla, Precio)
·
IMPRESORA(Modelo ,Color, Tipo, Precio)
¿Qué modelo de PC tiene una velocidad de al menos 150?
πmodelo,velocidad(σvelocidad>=150(PC)))
¿Qué fabricante produce portátiles con
Disco Duro de por lo menos 1GB?
πfabricante, Disco duro(σDisco Duro>=1BG(portatiles))
Eje 2
Encontrar los números de modelo y el
precio de todos los productos elaborados por fabricante B.
πnum_modelo
and precio (producto (fabricante B))
Encontrar los números de modelo de todas
las impresoras Laser Color.
πnum_modelo
(Laser_color (impresoras))
Encontrar los tamaños de Disco Duro que
ocurren en 2 o más computadoras personales.
πTamaño, Disco
Duro (σcomputadora>=2)
Encontrar los fabricantes de al menos 2
computadoras distintas (PC ó portátiles) con una velocidad de al menos 133.
πFabricantes (σ PC >=2(σvelocidad >=130(PC)))
Encontrar
los fabricantes que venden exactamente 3 modelos de PC.
πfabricante (σmodelo =
3(PC))
No hay comentarios:
Publicar un comentario