SlideShare una empresa de Scribd logo
1 de 13
Descargar para leer sin conexión
1
Operaciones enOperaciones en
el Modeloel Modelo
RelacionalRelacional
Bases de DatosBases de Datos
IngenierIngenieríía Ta Téécnica en Informcnica en Informáática de Sistemastica de Sistemas
ÁÁlgebra Relacionallgebra Relacional
IntroducciIntroduccióónn 22
El interés de los usuarios de las bases de datos se suele
centrar en realizar consultas (contestar a interrogantes
sobre la instancia actual de la base de datos)
El modelo relacional posee un conjunto concreto
de operaciones “estándar” sobre los datos
(a diferencia del modelo E/R que no ofrece una
forma específica de manipular la información)
Estas operaciones estándar pueden expresarse en un
álgebra que se conoce como “álgebra relacional”
Álgebra
Rama de las Matemáticas que tiene por objeto de estudio la
generalización de las relaciones aritméticas de los números
Álgebra Relacional
Álgebra Relacional Extendida
Modificaciones de la Base de Datos
Valores Nulos
ÍÍndicendice
IntroducciIntroduccióónn 33
ÁÁlgebralgebra
RelacionalRelacional
Operaciones en el Modelo RelacionalOperaciones en el Modelo Relacional
Bases de DatosBases de Datos
IngenierIngenieríía Ta Téécnica en Informcnica en Informáática de Sistemastica de Sistemas
Lenguajes de ConsultaLenguajes de Consulta
ÁÁlgebra Relacionallgebra Relacional 55
Un lenguaje de consulta es un lenguaje en el que
un usuario solicita información de la base de datos
Los lenguajes de consulta de bases de datos
suelen ser de un nivel conceptual superior
a los lenguajes de programación habituales
Procedimentales: el usuario instruye al sistema para
que lleve a cabo una serie de operaciones para calcular el
resultado
No procedimentales: el usuario describe la información
deseada, sin dar un procedimiento para obtenerla
Álgebra Relacional
Es una forma de lenguaje de consulta en el modelo relacional
Sus operadores principales son: unión, intersección, diferencia,
selección, proyección, producto Cartesiano, reunión natural,
reunión theta y cambio de nombre (renombramiento)
ÁÁlgebra Relacionallgebra Relacional
ÁÁlgebra Relacionallgebra Relacional 66
El álgebra relacional es un lenguaje de consulta
procedimental que consta de un conjunto de operaciones
que toman como entrada una o dos relaciones y producen
como resultado una nueva relación (construye nuevas
relaciones a partir de relacionas existentes)
Expresiones u Operaciones: comienzan con las relaciones
como operandos y generan como resultado una relación
(se puede construir expresiones complejas al utilizar como
operandos resultados de expresiones del Álgebra Relacional)
Consulta:
expresión del
Álgebra
Relacional
2
OperacionesOperaciones ÁÁlgebra Relacionallgebra Relacional
ÁÁlgebra Relacionallgebra Relacional 77
Las operaciones del Álgebra Relacional se pueden
clasificar en cuatro clases:
1.- Operaciones habituales de los conjuntos (unión,
intersección y diferencia)
2.- Operaciones que suprimen partes de una relación (la
selección elimina algunas tuplas y la proyección algunas
columnas)
Operaciones fundamentales: selección,
proyección, unión, diferencia de conjuntos,
producto cartesiano y renombramiento
Unarias / Binarias
OperacionesOperaciones ÁÁlgebra Relacionallgebra Relacional
ÁÁlgebra Relacionallgebra Relacional 88
Operaciones fundamentales: selección,
proyección, unión, diferencia de conjuntos,
producto cartesiano y renombramiento
Unarias / Binarias
Las operaciones del Álgebra Relacional se pueden
clasificar en cuatro clases:
3.- Operaciones que combinan las tuplas de dos relaciones (el
producto cartesiano combina pares de tuplas de dos
relaciones y varias clases de reuniones que forman parejas,
de forma selectiva, a partir de dos relaciones)
4.- Operación renombramiento que modifica el esquema de
una relación (nombres de atributos y/o nombre de la relación
Ejemplo 1: BancoEjemplo 1: Banco
99
Cliente
ciudad_
cliente
calle_
cliente
nombre_
cliente
Sucursal
activosciudad_
sucursal
nombre_
sucursal
Cuenta
saldonombre_
sucursal
numero_
cuenta
Impositor
numero_
cuenta
nombre_
cliente
Préstamo
importenombre_
sucursal
numero_
prestamo
Prestatario
numero_
prestamo
nombre_
cliente
ÁÁlgebra Relacionallgebra Relacional
Ejemplo 1: BancoEjemplo 1: Banco
1010
12000A CoruñaRiazor
8000SantiagoVite
5000SantiagoPlaza Roja
2500LugoMurallas
10000LugoFingoi
75000SantiagoPrincipal
Sucursal
activosciudad_
sucursal
nombre_
sucursal
150RiazorC-317
100ViteC-316
1000PrincipalC-315
1200FingoiC-225
450Plaza RojaC-201
900MurallasC-103
700FingoiC-102
500PrincipalC-101
Cuenta
saldonombre_
sucursal
numero_
cuenta
ÁÁlgebra Relacionallgebra Relacional
Ejemplo 1: BancoEjemplo 1: Banco
1111
OleirosFidelRodríguez
AmesMagdalenaSantos
A CoruñaOrzánLópez
AmesAgroGómez
NegreiraConstituciónGonzález
SantiagoCameliasPérez
LugoPimentelFernández
RábadeJazmínBarreiro
SantiagoLa RosaAmo
LugoDiputaciónAbril
Cliente
ciudad_
cliente
calle_
cliente
nombre_
cliente
15100ViteP-18
8700FingoiP-23
10000FingoiP-13
Préstamo
importenombre_
sucursal
numero_
prestamo
ÁÁlgebra Relacionallgebra Relacional
Ejemplo 1: BancoEjemplo 1: Banco
1212
C-317Rodríguez
C-316Gómez
C-315Pérez
C-103Fernández
C-225Barreiro
C-102Fernández
C-201Santos
C-102López
C-201López
C-315González
C-102Abril
C-101Amo
Impositor
numero_
cuenta
nombre_
cliente
P-18Rodríguez
P-13Barreiro
P-23Fernández
P-18Pérez
P-13Abril
P-13Fernández
Prestatario
numero_
prestamo
nombre_
cliente
ÁÁlgebra Relacionallgebra Relacional
3
SelecciSeleccióónn
ÁÁlgebra Relacionallgebra Relacional 1313
La operación selección selecciona tuplas que satisfacen
un predicado dado y produce una nueva relación con un
subconjunto de tuplas de la relación original
Para denotar la selección se utiliza la letra griega sigma
minúscula (σ)
El predicado aparece como subíndice de σ
La relación sobre la que se aplica aparece entre paréntesis
σ predicado (relación)
Ejemplo 1: BancoEjemplo 1: Banco
1414ÁÁlgebra Relacionallgebra Relacional
Seleccionar las tuplas de la relación préstamo en las
cuales la sucursal es Fingoi
σnombre_sucursal=“Fingoi” (Préstamo)
8700FingoiP-23
10000FingoiP-13
importenombre_
sucursal
numero_
prestamo
Ejemplo 1: BancoEjemplo 1: Banco
1515ÁÁlgebra Relacionallgebra Relacional
Seleccionar las tuplas en las cuales el importe
prestado sea mayor que 9000 €
σimporte>9000 (Préstamo)
15100ViteP-18
10000FingoiP-13
importenombre_
sucursal
numero_
prestamo
SelecciSeleccióónn
ÁÁlgebra Relacionallgebra Relacional 1616
Se permiten las comparaciones que utilizan
=, ≠, <, ≤, >, ó ≥ en el predicado
Se pueden combinar varios predicados con las
conectivas y(٨) y o(٧)
σnombre_sucursal=“Fingoi” ٨ importe>9000 (Préstamo)
El predicado puede incluir comparaciones entre dos
atributos
σnombre_cliente=nombre_banquero (ReponsablePréstamo)
ProyecciProyeccióónn
ÁÁlgebra Relacionallgebra Relacional 1717
La operación proyección selecciona argumentos de una
relación (elimina filas duplicadas) y produce una nueva
relación que contiene algunas de las columnas de la original
Para denotar la proyección se utiliza la letra griega pi
mayúscula (Π)
Los argumentos aparecen como subíndice de Π
La relación sobre la que se aplica aparece entre paréntesis
Π argumentos (relación)
Ejemplo 1: BancoEjemplo 1: Banco
1818ÁÁlgebra Relacionallgebra Relacional
Crear una lista de todos los números de préstamo y
del importe de los mismos
Πnumero_prestamo, importe (Préstamo)
15100P-18
8700P-23
10000P-13
importenumero_
prestamo
4
ComposiciComposicióón de Operacionesn de Operaciones
ÁÁlgebra Relacionallgebra Relacional 1919
Es muy importante el hecho de que el resultado de
una operación relacional es también una relación
Las operaciones del álgebra relacional pueden
componerse para formar una expresión compleja
del álgebra relacional
Ejemplo 1: BancoEjemplo 1: Banco
2020ÁÁlgebra Relacionallgebra Relacional
Encontrar los clientes que viven en Santiago
Πnombre_cliente (σciudad_cliente=“Santiago” (Cliente))
SantiagoCameliasPérez
SantiagoLa RosaAmo
ciudad_
cliente
calle_
cliente
nombre_
cliente
Pérez
Amo
nombre_
cliente
UniUnióónn
ÁÁlgebra Relacionallgebra Relacional 2121
La operación unión une tuplas de dos relaciones (que
tengan el mismo número de atributos y dominios iguales
Compatibles) eliminando las tuplas repetidas
Para denotar la unión se utiliza la notación de conjuntos (U)
Las relaciones sobre las que se aplica aparecen a los lados
del operador
Define una relación lógica OR
relación1 U relación2
Ejemplo 1: BancoEjemplo 1: Banco
2222ÁÁlgebra Relacionallgebra Relacional
Averiguar el nombre de todos los clientes del
banco que tienen una cuenta, un préstamo o
ambas cosas
Πnombre_cliente (Impositor) U
Πnombre_cliente (Prestatario)
Rodríguez
Gómez
Pérez
Barreiro
Fernández
Santos
López
González
Abril
Amo
nombre_
cliente
Rodríguez
Barreiro
Pérez
Abril
Fernández
nombre_
cliente
Rodríguez
Gómez
Pérez
Barreiro
Fernández
Santos
López
González
Abril
Amo
nombre_
cliente
Diferencia de ConjuntosDiferencia de Conjuntos
ÁÁlgebra Relacionallgebra Relacional 2323
La operación diferencia de conjuntos selecciona tuplas
de dos relaciones que estén en una pero que no estén
en la otra (que tengan el mismo número de atributos y
dominios iguales Compatibles)
Para denotar la diferencia de conjuntos se utiliza la notación
de matemáticas (-)
Las relaciones sobre las que se aplica aparecen a los lados
del operador
relación1 - relación2
Ejemplo 1: BancoEjemplo 1: Banco
2424ÁÁlgebra Relacionallgebra Relacional
Buscar todos los clientes del banco que tienen
abierta una cuenta pero no tienen concedido
ningún préstamo
Πnombre_cliente (Impositor) -
Πnombre_cliente (Prestatario)
Rodríguez
Gómez
Pérez
Barreiro
Fernández
Santos
López
González
Abril
Amo
nombre_
cliente
Rodríguez
Barreiro
Pérez
Abril
Fernández
nombre_
cliente
Gómez
Santos
López
González
Amo
nombre_
cliente
5
Producto CartesianoProducto Cartesiano
ÁÁlgebra Relacionallgebra Relacional 2525
La operación producto cartesiano, o producto, combina
tuplas de dos relaciones formando nuevas tuplas que tienen
como primera parte una tupla de una relación y como
segunda parte una tupla de la otra relación
Para denotar el producto cartesiano se utiliza la notación de
matemáticas (X)
Las relaciones sobre las que se aplica aparecen a los lados
del operador
Define una relación lógica AND
relación1 x relación2
Nombres de AtributosNombres de Atributos
ÁÁlgebra Relacionallgebra Relacional 2626
Al combinar dos relaciones puede ocurrir que
atributos pertenecientes a ambas relaciones
tengan el mismo nombre
Esquema_prestatario=
(nombre_cliente, numero_prestamo)
Esquema_prestamo=
(numero_prestamo, nombre_sucursal, importe)
Esquema_r [=prestatarioxprestamo] =
(prestatario.nombre_cliente,
prestatario.número_prestamo,
prestamo.numero_prestamo,
prestamo.nombre_sucursal, prestamo.importe)
TuplasTuplas deldel ProdProd.. CartCart..
ÁÁlgebra Relacionallgebra Relacional 2727
Se crea una tupla en el Producto Cartesiano a partir de cada
posible par de tuplas de las relaciones que participan
La relación procedente del Producto Cartesiano suele
ser de gran tamaño
r = a x b, n1 tuplas en a y n2 tuplas en b
n1 * n2 tuplas en r
Ejemplo 1: BancoEjemplo 1: Banco
2828ÁÁlgebra Relacionallgebra Relacional
Averiguar los nombres de todos los clientes que tienen
concedido un préstamo en la Sucursal de Fingoi
15100ViteP-18
8700FingoiP-23
10000FingoiP-13
Préstamo
importenombre_
sucursal
numero_
prestamo
P-18Rodríguez
P-13Barreiro
P-23Fernández
P-18Pérez
P-13Abril
P-13Fernández
Prestatario
numero_
prestamo
nombre_
cliente
Ejemplo 1: BancoEjemplo 1: Banco
2929ÁÁlgebra Relacionallgebra Relacional
prestatario x prestamo
P-18
P-23
P-13
P-18
P-23
P-13
P-18
P-23
P-13
prestamo.
numero_
prestamo
Vite
Fingoi
Fingoi
Vite
Fingoi
Fingoi
Vite
Fingoi
Fingoi
nombre_
sucursal
P-18
P-18
P-18
P-13
P-13
P-13
P-13
P-13
P-13
prestatario.
numero_
prestamo
8700Pérez
8700Abril
15100Abril
10000Pérez
15100Pérez
8700Fernández
15100Fernández
10000Abril
10000Fernández
importenombre_
cliente
Ejemplo 1: BancoEjemplo 1: Banco
3030ÁÁlgebra Relacionallgebra Relacional
prestatario x prestamo
P-18
P-18
P-18
P-13
P-13
P-13
P-23
P-23
P-23
prestatario.
numero_
prestamo
P-18
P-23
P-13
P-18
P-23
P-13
P-18
P-23
P-13
prestamo.
numero_
prestamo
Vite
Fingoi
Fingoi
Vite
Fingoi
Fingoi
Vite
Fingoi
Fingoi
nombre_
sucursal
8700Rodríguez
8700Barreiro
15100Barreiro
10000Rodríguez
15100Rodríguez
8700Fernández
15100Fernández
10000Barreiro
10000Fernández
importenombre_
cliente
6
Ejemplo 1: BancoEjemplo 1: Banco
3131ÁÁlgebra Relacionallgebra Relacional
Seleccionamos en el resultado del producto cartesiano
las tuplas cuyo valor en nombre_sucursal sea el que se
busca
σnombre_sucursal=“Fingoi” (prestatario x prestamo)
Ejemplo 1: BancoEjemplo 1: Banco
3232ÁÁlgebra Relacionallgebra Relacional
10000FingoiP-13P-23Fernández
8700FingoiP-23P-23Fernández
10000FingoiP-13P-13Barreiro
8700FingoiP-23P-13Barreiro
10000FingoiP-13P-18Rodríguez
8700FingoiP-23P-18Rodríguez
8700FingoiP-23P-18Pérez
P-13
P-23
P-13
P-23
P-13
prestamo.
numero_
prestamo
Fingoi
Fingoi
Fingoi
Fingoi
Fingoi
nombre_
sucursal
P-18
P-13
P-13
P-13
P-13
prestatario.
numero_
prestamo
8700Abril
10000Pérez
8700Fernández
10000Abril
10000Fernández
importenombre_
cliente
Ejemplo 1: BancoEjemplo 1: Banco
3333ÁÁlgebra Relacionallgebra Relacional
Filtramos el resultado a través del número de préstamo
σprestatario.numero_prestamo=prestamo.numero_prestamo
(σnombre_sucursal=“Fingoi” (prestatario x prestamo))
8700FingoiP-23P-23Fernández
10000FingoiP-13P-13Barreiro
P-13
P-13
prestamo.
numero_
prestamo
Fingoi
Fingoi
nombre_
sucursal
P-13
P-13
prestatario.
numero_
prestamo
10000Abril
10000Fernández
importenombre_
cliente
Ejemplo 1: BancoEjemplo 1: Banco
3434ÁÁlgebra Relacionallgebra Relacional
Y proyectamos el resultado buscado
Πnombre_cliente (σprestatario.numero_prestamo=prestamo.numero_prestamo
(σnombre_sucursal=“Fingoi” (prestatario x prestamo)))
Barreiro
Abril
Fernández
nombre_
cliente
RenombramientoRenombramiento
ÁÁlgebra Relacionallgebra Relacional 3535
La operación renombramiento permite poner nombre a
una relación (obtenida a través de una expresión) que no lo
tenga
Para denotar la proyección se utiliza la letra griega rho
minúscula (ρ) (también la partícula as en una lista de
argumentos)
El nombre a dar a la relación aparece como subíndice de ρ y
el nombre a dar a los atributos como argumentos
La expresión sobre la que se aplica aparece entre paréntesis
ρ nombre(argumentos) (expresión)
Otras OperacionesOtras Operaciones
ÁÁlgebra Relacionallgebra Relacional 3636
Las operaciones fundamentales del álgebra
relacional son suficientes para expresar
cualquier consulta del álgebra relacional
Operaciones que no añaden potencial al álgebra
pero que simplifican la expresión de las consultas
Tienen una expresión equivalente usando sólo las
operaciones fundamentales
7
IntersecciInterseccióónn
ÁÁlgebra Relacionallgebra Relacional 3737
Obtener relaciones del tipo y
relación1 relación2
U
=relación1-
(relación1-relación2)
ReuniReunióón Naturaln Natural
ÁÁlgebra Relacionallgebra Relacional 3838
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)
ReuniReunióón Thetan Theta
ÁÁlgebra Relacionallgebra Relacional 3939
La reunión theta permite reflejar una condición
arbitraria de reunión al producto cartesiano
relación1 Condición relación2
=σcondición (relación1 x relación2)
AsignaciAsignacióónn
ÁÁlgebra Relacionallgebra Relacional 4040
La operación asignación actúa de forma similar a la
asignación en los lenguajes de programación
relación1 Expresión
El resultado de la expresión de la
derecha de se asigna a la variable
relación situada a la izquierda de
ÁÁlgebralgebra
RelacionalRelacional
ExtendidaExtendida
Operaciones en el Modelo RelacionalOperaciones en el Modelo Relacional
Bases de DatosBases de Datos
IngenierIngenieríía Ta Téécnica en Informcnica en Informáática de Sistemastica de Sistemas
ProyecciProyeccióón Generalizadan Generalizada
ÁÁlgebra Relacional Extendidalgebra Relacional Extendida 4242
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)
8
Ejemplo 1: BancoEjemplo 1: Banco
4343ÁÁlgebra Relacional Extendidalgebra Relacional Extendida
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)
9900P-18
16300P-23
15000P-13
disponiblenumero_
prestamo
Funciones de AgregaciFunciones de Agregacióónn
ÁÁlgebra Relacional Extendidalgebra Relacional Extendida 4444
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)
Ejemplo 1: BancoEjemplo 1: Banco
4545ÁÁlgebra Relacional Extendidalgebra Relacional Extendida
Averiguar la suma total
de los sueldos de los
empleados del banco
1800FingoiRibera
1450Plaza RojaFernández
2900MurallasJiménez
3900FingoiDíaz
2700PrincipalGonzález
EmpleadosTP
sueldonombre_
sucursal
nombre_
empleado
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)(EmpleadosTP)
Ejemplo 1: BancoEjemplo 1: Banco
4646ÁÁlgebra Relacional Extendidalgebra Relacional Extendida
Hallar la suma total de
sueldos de los empleados
a tiempo parcial por
sucursal
1800FingoiRibera
1450Plaza RojaFernández
2900MurallasJiménez
3900FingoiDíaz
2700PrincipalGonzález
EmpleadosTP
sueldonombre_
sucursal
nombre_
empleado
nombre_sucursal G sum(sueldo)
(EmpleadosTP)
1450Plaza Roja
2900Murallas
5700Fingoi
2700Principal
suma de
sueldo
nombre_
sucursal
ReuniReunióón Externan Externa
ÁÁlgebra Relacional Extendidalgebra Relacional Extendida 4747
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, …)
¡ Genera valores nulos !
Ejemplo 1: BancoEjemplo 1: Banco
ÁÁlgebra Relacional Extendidalgebra Relacional Extendida 4848
Generar una única relación que contenga toda
la información de los empleados (calle, ciudad,
sucursal y sueldo)
LugoPimentelValdivieso
RábadeJazmínGómez
SantiagoLa RosaDomínguez
LugoDiputaciónSegura
Empleado
ciudadcallenombre
5300FingoiValdivieso
8000PrincipalBarea
12000PrincipalDomínguez
3000FingoiSegura
EmpleadoTC
sueldosucursalnombre
9
ReuniReunióón Naturaln Natural
ÁÁlgebra Relacional Extendidalgebra Relacional Extendida 4949
Generar una única relación que contenga toda
la información de los empleados (calle, ciudad,
sucursal y sueldo)
Empleado EmpleadoTC
Lugo
Santiago
Lugo
ciudad
Fingoi
Principal
Fingoi
sucursal
5300PimentelValdivieso
12000La RosaDomínguez
3000DiputaciónSegura
sueldocallenombre
ReuniReunióón Externa Izquierdan Externa Izquierda
ÁÁlgebra Relacional Extendidalgebra Relacional Extendida 5050
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
Empleado EmpleadoTC
nulonuloRábadeJazmínGómez
Lugo
Santiago
Lugo
ciudad
Fingoi
Principal
Fingoi
sucursal
5300PimentelValdivieso
12000La RosaDomínguez
3000DiputaciónSegura
sueldocallenombre
ReuniReunióón Externa Derechan Externa Derecha
ÁÁlgebra Relacional Extendidalgebra Relacional Extendida 5151
La reunión externa por la derecha toma todas las tuplas
de la relación de la derecha que no coincidan con ninguna
tupla de la relación de la izquierda, las rellana con valores
nulos en los demás atributos de la relación de la izquierda y
las añade al resultado de la reunión natural
Empleado EmpleadoTC
8000PrincipalnulonuloBarea
Lugo
Santiago
Lugo
ciudad
Fingoi
Principal
Fingoi
sucursal
5300PimentelValdivieso
12000La RosaDomínguez
3000DiputaciónSegura
sueldocallenombre
ReuniReunióón Externa Completan Externa Completa
ÁÁlgebra Relacional Extendidalgebra Relacional Extendida 5252
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
nulonuloRábadeJazmínGómez
8000PrincipalnulonuloBarea
Lugo
Santiago
Lugo
ciudad
Fingoi
Principal
Fingoi
sucursal
5300PimentelValdivieso
12000La RosaDomínguez
3000DiputaciónSegura
sueldocallenombre
ModificacionesModificaciones
de la Base dede la Base de
DatosDatos
Operaciones en el Modelo RelacionalOperaciones en el Modelo Relacional
Bases de DatosBases de Datos
IngenierIngenieríía Ta Téécnica en Informcnica en Informáática de Sistemastica de Sistemas
Modificar la Base de DatosModificar la Base de Datos
Modificaciones de la Base de DatosModificaciones de la Base de Datos 5454
Las modificaciones de la Base de Datos se expresan
utilizando la operación de asignación
Las principales operaciones de modificación de una Base de
Datos son el Borrado, la Inserción y la Actualización
Las Relaciones como Bolsas en los Sistemas Comerciales
En los sistemas comerciales de bases de datos, las relaciones son en realidad
bolsas y en ellas se permite que una misma tupla aparezca varias veces
Las operaciones del álgebra relacional con conjuntos pueden aplicarse a las
bolsas, pero hay algunas leyes algebraicas que no se cumplen
Además de emplear el modelo de bolsas para las relaciones, estos sistemas
ofrecen operaciones que no existen en el álgebra relacional
Entre ellas figuran: inserción, eliminación y actualización de las tuplas en
relaciones, agregaciones en las relaciones y valores nulos en las tuplas
10
BorradoBorrado
Modificaciones de la Base de DatosModificaciones de la Base de Datos 5555
Las solicitudes de borrado es expresan, básicamente,
igual que las consultas en lugar de mostrar las
tuplas resultantes se eliminan de la Base de Datos
Sólo se pueden borrar tuplas enteras
r r – E, E consulta
del Álgebra Relacional
Ejemplo 1: BancoEjemplo 1: Banco
ÁÁlgebra Relacional Extendidalgebra Relacional Extendida 5656
Borrar todas las cuentas de Gómez
impositor impositor –
σnombre_cliente=“Gómez” (impositor)
InsercciInserccióónn
Modificaciones de la Base de DatosModificaciones de la Base de Datos 5757
Para insertar datos hay que especificar la tupla
que se va insertar o escribir una consulta cuyo
resultado sea el conjunto de tuplas a insertar
r r U E, E expresión
del Álgebra Relacional ó
una relación constante
Ejemplo 1: BancoEjemplo 1: Banco
ÁÁlgebra Relacional Extendidalgebra Relacional Extendida 5858
Insertar el hecho de que Gómez abre una cuenta (C-
973) en la sucursal de la Plaza Roja de Santiago con
1200 €
cuenta cuenta U {(C-973, “Plaza Roja”, 1200)}
impositor impositor U {(“Gómez”, C-973)}
ActualizaciActualizacióónn
Modificaciones de la Base de DatosModificaciones de la Base de Datos 5959
Puede que, en algunas situaciones, se desee
modificar sólo algunos valores en una tupla
r ΠF1, F2, …, Fn
(σp (r)) U (r-σp (r))
r ΠF1, F2, …, Fn
(r)
Ejemplo 1: BancoEjemplo 1: Banco
ÁÁlgebra Relacional Extendidalgebra Relacional Extendida 6060
Realizar un pago de intereses del 2% a todas las
cuentas activas
cuenta Πnumero_cuenta, nombre_sucursal, saldo*1.02 (cuenta)
11
Valores NulosValores Nulos
Operaciones en el Modelo RelacionalOperaciones en el Modelo Relacional
Bases de DatosBases de Datos
IngenierIngenieríía Ta Téécnica en Informcnica en Informáática de Sistemastica de Sistemas
Tratamiento Valores NulosTratamiento Valores Nulos
Valores NulosValores Nulos 6262
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
Operaciones AritmOperaciones Aritmééticasticas
Valores NulosValores Nulos 6363
Dado que el valor especial nulo indica “valor
desconocido o no existente”, cualquier operación
aritmética (como +, -, * y /) que incluya valores
nulos debe devolver un valor nulo
ComparacionesComparaciones
Valores NulosValores Nulos 6464
Cualquier comparación (como <, <=, >, >=, = y ≠)
que incluya un valor nulo se evalúa al valor especial
desconocido
Como no se puede decir si el resultado de la
comparación es cierto o falso, se dice que el resultado
es un nuevo valor lógico denominado desconocido
Operaciones LOperaciones Lóógicasgicas
Valores NulosValores Nulos 6565
desconocido=desconocidonoNOT
desconocido=desconocidoodesconocido
desconocido=desconocidoofalso
cierto=desconocidoocierto
OR
desconocido=desconocidoydesconocido
falso=desconocidoyfalso
desconocido=desconocidoycierto
AND
SelecciSeleccióónn
Valores NulosValores Nulos 6666
La operación selección evalúa el predicado P en
σP(E) sobre cada tupla de E
Si el predicado devuelve el valor cierto, se añade la
tupla al resultado
Si el predicado devuelve desconocido o falso, la tupla
no se añade al resultado
12
ProyecciProyeccióónn
Valores NulosValores Nulos 6767
La operación proyección trata los nulos como
cualquier otro valor al eliminar duplicados
La decisión es un tanto arbitraria porque sin saber cuál
es el valor real no se sabe si los dos valores nulos son
duplicados o no
UniUnióón,n, IntersecIntersec., Diferencia., Diferencia
Valores NulosValores Nulos 6868
La unión, intersección y diferencia tratan los
valores nulos de la misma forma que la operación
proyección
El comportamiento es un tanto arbitrario,
especialmente en el caso de la intersección y la
diferencia, dado que no se sabe si los valores reales
(si existen) representados por los nulos son los
mismos
ReuniReunióónn
Valores NulosValores Nulos 6969
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
ProyecciProyeccióón Generalizadan Generalizada
Valores NulosValores Nulos 7070
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
Funciones de AgregaciFunciones de Agregacióónn
Valores NulosValores Nulos 7171
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
ReuniReunióón Externan Externa
Valores NulosValores Nulos 7272
Las operaciones de reunión externa se comportan
como las operaciones de reunión, excepto sobre las
tuplas que no aparecen en el resultado
13
TemasTemas
de Discuside Discusióónn
y Ejerciciosy Ejercicios
Operaciones en el Modelo RelacionalOperaciones en el Modelo Relacional
Bases de DatosBases de Datos
IngenierIngenieríía Ta Téécnica en Informcnica en Informáática de Sistemastica de Sistemas
Temas de DiscusiTemas de Discusióónn
Temas de DiscusiTemas de Discusióón y Ejerciciosn y Ejercicios 7474
La reunión natural y la reunión theta cuando la condición
de esta última abarca exactamente los atributos comunes,
¿existen diferencias?
EjerciciosEjercicios
Temas de DiscusiTemas de Discusióón y Ejerciciosn y Ejercicios 7575
Dada la base de datos, en modelo relacional, compuesta por
las siguientes cuatro reuniones
Producto (fabricante, modelo, tipo)
PC (modelo, velocidad, ram, disco, cd, precio)
Portatil (modelo, velocidad, ram, disco, pantalla, precio)
Impresora (modelo, color, tipo, precio)
¿Qué modelos de PC tienen una velocidad de al menos 150?
¿Qué fabricantes producen portátiles con disco duro de por la
menos 1 gigabyte?
EjerciciosEjercicios
Temas de DiscusiTemas de Discusióón y Ejerciciosn y Ejercicios 7676
Encontrar los números de modelo y el precio de todos los
productos elaborados por el fabricante B
Encontrar los números de modelo de todas las impresoras láser
color
Encontrar los tamaños de disco duro que ocurren en dos o más
computadoras personales
Encontrar los fabricantes de al menos dos computadoras
distintas (PC o portátiles) con una velocidad de al menos
133
Encontrar los fabricantes que venden exactamente tres
modelos de PC

Más contenido relacionado

La actualidad más candente

Algebra y calculo relacional
Algebra y calculo relacionalAlgebra y calculo relacional
Algebra y calculo relacional
Albert Sinergy
 
Estructura de datos manipulación de listas y tablas
Estructura de datos manipulación de listas y tablas Estructura de datos manipulación de listas y tablas
Estructura de datos manipulación de listas y tablas
David Yupanqui
 

La actualidad más candente (19)

Bases de Datos Cap:IV
Bases de Datos  Cap:IVBases de Datos  Cap:IV
Bases de Datos Cap:IV
 
Sql
SqlSql
Sql
 
Algebra relacional
Algebra relacionalAlgebra relacional
Algebra relacional
 
Bases de datos
Bases de datosBases de datos
Bases de datos
 
Algebra relacional
Algebra relacionalAlgebra relacional
Algebra relacional
 
Algebra y calculo relacional
Algebra y calculo relacionalAlgebra y calculo relacional
Algebra y calculo relacional
 
Fundamentos de BD - Unidad 5 algebra relacional
Fundamentos de BD - Unidad 5 algebra relacionalFundamentos de BD - Unidad 5 algebra relacional
Fundamentos de BD - Unidad 5 algebra relacional
 
Unidad v algebra relacional
Unidad v   algebra relacionalUnidad v   algebra relacional
Unidad v algebra relacional
 
Estructura de datos manipulación de listas y tablas
Estructura de datos manipulación de listas y tablas Estructura de datos manipulación de listas y tablas
Estructura de datos manipulación de listas y tablas
 
Estructura de datos manipulación de listas y tablas fundamentos
Estructura de datos manipulación de listas y tablas fundamentos Estructura de datos manipulación de listas y tablas fundamentos
Estructura de datos manipulación de listas y tablas fundamentos
 
Algebra relacional
Algebra relacionalAlgebra relacional
Algebra relacional
 
Estructura de datos manipulación de listas y tablas
Estructura de datos manipulación de listas y tablas Estructura de datos manipulación de listas y tablas
Estructura de datos manipulación de listas y tablas
 
Estructura de datos manipulación de listas y tablas
Estructura de datos manipulación de listas y tablas Estructura de datos manipulación de listas y tablas
Estructura de datos manipulación de listas y tablas
 
Base de datos
Base de datosBase de datos
Base de datos
 
Estructura de datos manipulación de listas y tablas
Estructura de datos manipulación de listas y tablas Estructura de datos manipulación de listas y tablas
Estructura de datos manipulación de listas y tablas
 
Estructura de datos manipulación de listas y tablas funda
Estructura de datos manipulación de listas y tablas fundaEstructura de datos manipulación de listas y tablas funda
Estructura de datos manipulación de listas y tablas funda
 
Estructura de datos manipulación de listas y tablas
Estructura de datos manipulación de listas y tablasEstructura de datos manipulación de listas y tablas
Estructura de datos manipulación de listas y tablas
 
Excel leccion2
Excel leccion2Excel leccion2
Excel leccion2
 
12 función lógica si
12 función lógica si12 función lógica si
12 función lógica si
 

Destacado (7)

Gotham Products
Gotham ProductsGotham Products
Gotham Products
 
Gotham city
Gotham cityGotham city
Gotham city
 
Gotham City Council of Communication
Gotham City Council of CommunicationGotham City Council of Communication
Gotham City Council of Communication
 
Practicadesoftwareyhardware(1)(1)
Practicadesoftwareyhardware(1)(1)Practicadesoftwareyhardware(1)(1)
Practicadesoftwareyhardware(1)(1)
 
Gotham 1º temporada 08.10
Gotham   1º temporada 08.10Gotham   1º temporada 08.10
Gotham 1º temporada 08.10
 
Working for the Joker from Gotham City
Working for the Joker from Gotham CityWorking for the Joker from Gotham City
Working for the Joker from Gotham City
 
In the heart of gotham city
In the heart of gotham cityIn the heart of gotham city
In the heart of gotham city
 

Similar a Pb operaciones modelorelacional_gris

Lenguajes formales
Lenguajes formalesLenguajes formales
Lenguajes formales
laloflatland
 
Lenguajes formales
Lenguajes formalesLenguajes formales
Lenguajes formales
laloflatland
 
fdocuments.es_el-modelo-relacional-john-freddy-duitama-munoz-facultad-de-inge...
fdocuments.es_el-modelo-relacional-john-freddy-duitama-munoz-facultad-de-inge...fdocuments.es_el-modelo-relacional-john-freddy-duitama-munoz-facultad-de-inge...
fdocuments.es_el-modelo-relacional-john-freddy-duitama-munoz-facultad-de-inge...
ssuser869fd0
 
Algebra relacional
Algebra relacionalAlgebra relacional
Algebra relacional
Luis Jherry
 
Unidad 4 Modelo De Datos Para La ImplementacióN
Unidad 4 Modelo De Datos Para La ImplementacióNUnidad 4 Modelo De Datos Para La ImplementacióN
Unidad 4 Modelo De Datos Para La ImplementacióN
Sergio Sanchez
 

Similar a Pb operaciones modelorelacional_gris (20)

ALGEBRA RELACIONAL
ALGEBRA RELACIONALALGEBRA RELACIONAL
ALGEBRA RELACIONAL
 
Lenguajes formales
Lenguajes formalesLenguajes formales
Lenguajes formales
 
Lenguajes formales
Lenguajes formalesLenguajes formales
Lenguajes formales
 
P:\Lenguajes Formales
P:\Lenguajes FormalesP:\Lenguajes Formales
P:\Lenguajes Formales
 
5.-Algebra-Relacional_parte-1.pdf
5.-Algebra-Relacional_parte-1.pdf5.-Algebra-Relacional_parte-1.pdf
5.-Algebra-Relacional_parte-1.pdf
 
unidad v Algebra Relacinal
unidad v Algebra Relacinalunidad v Algebra Relacinal
unidad v Algebra Relacinal
 
Ud2 el modelo relacional
Ud2  el modelo relacionalUd2  el modelo relacional
Ud2 el modelo relacional
 
presentacion
presentacionpresentacion
presentacion
 
Base de datos relacionales
Base de datos relacionalesBase de datos relacionales
Base de datos relacionales
 
fdocuments.es_el-modelo-relacional-john-freddy-duitama-munoz-facultad-de-inge...
fdocuments.es_el-modelo-relacional-john-freddy-duitama-munoz-facultad-de-inge...fdocuments.es_el-modelo-relacional-john-freddy-duitama-munoz-facultad-de-inge...
fdocuments.es_el-modelo-relacional-john-freddy-duitama-munoz-facultad-de-inge...
 
Algebra relacional
Algebra relacionalAlgebra relacional
Algebra relacional
 
PresentacióN Tema 8
PresentacióN Tema 8PresentacióN Tema 8
PresentacióN Tema 8
 
bd2-teorico01.pdf
bd2-teorico01.pdfbd2-teorico01.pdf
bd2-teorico01.pdf
 
Algebra relacional
Algebra relacionalAlgebra relacional
Algebra relacional
 
Algebra relacional
Algebra relacionalAlgebra relacional
Algebra relacional
 
clase 3-MODELO RELACIONAL.ppt
clase 3-MODELO RELACIONAL.pptclase 3-MODELO RELACIONAL.ppt
clase 3-MODELO RELACIONAL.ppt
 
BASES DE DATOS CL2 para PPT.pdf
BASES DE DATOS CL2 para PPT.pdfBASES DE DATOS CL2 para PPT.pdf
BASES DE DATOS CL2 para PPT.pdf
 
El modelo entidad_relacion
El modelo entidad_relacionEl modelo entidad_relacion
El modelo entidad_relacion
 
Unidad 4 Modelo De Datos Para La ImplementacióN
Unidad 4 Modelo De Datos Para La ImplementacióNUnidad 4 Modelo De Datos Para La ImplementacióN
Unidad 4 Modelo De Datos Para La ImplementacióN
 
Diseño Lógico de la base de datos
Diseño Lógico de la base de datosDiseño Lógico de la base de datos
Diseño Lógico de la base de datos
 

Último

sistema de CLORACIÓN DE AGUA POTABLE gst
sistema de CLORACIÓN DE AGUA POTABLE gstsistema de CLORACIÓN DE AGUA POTABLE gst
sistema de CLORACIÓN DE AGUA POTABLE gst
DavidRojas870673
 
3.6.2 Lab - Implement VLANs and Trunking - ILM.pdf
3.6.2 Lab - Implement VLANs and Trunking - ILM.pdf3.6.2 Lab - Implement VLANs and Trunking - ILM.pdf
3.6.2 Lab - Implement VLANs and Trunking - ILM.pdf
GustavoAdolfoDiaz3
 
Tema ilustrado 9.2.docxbbbbbbbbbbbbbbbbbbb
Tema ilustrado 9.2.docxbbbbbbbbbbbbbbbbbbbTema ilustrado 9.2.docxbbbbbbbbbbbbbbbbbbb
Tema ilustrado 9.2.docxbbbbbbbbbbbbbbbbbbb
antoniolfdez2006
 

Último (20)

ATS-FORMATO cara.pdf PARA TRABAJO SEGURO
ATS-FORMATO cara.pdf  PARA TRABAJO SEGUROATS-FORMATO cara.pdf  PARA TRABAJO SEGURO
ATS-FORMATO cara.pdf PARA TRABAJO SEGURO
 
Análisis de Costos y Presupuestos CAPECO
Análisis de Costos y Presupuestos CAPECOAnálisis de Costos y Presupuestos CAPECO
Análisis de Costos y Presupuestos CAPECO
 
3er Informe Laboratorio Quimica General (2) (1).pdf
3er Informe Laboratorio Quimica General  (2) (1).pdf3er Informe Laboratorio Quimica General  (2) (1).pdf
3er Informe Laboratorio Quimica General (2) (1).pdf
 
ingenieria grafica para la carrera de ingeniera .pptx
ingenieria grafica para la carrera de ingeniera .pptxingenieria grafica para la carrera de ingeniera .pptx
ingenieria grafica para la carrera de ingeniera .pptx
 
APORTES A LA ARQUITECTURA DE WALTER GROPIUS Y FRANK LLOYD WRIGHT
APORTES A LA ARQUITECTURA DE WALTER GROPIUS Y FRANK LLOYD WRIGHTAPORTES A LA ARQUITECTURA DE WALTER GROPIUS Y FRANK LLOYD WRIGHT
APORTES A LA ARQUITECTURA DE WALTER GROPIUS Y FRANK LLOYD WRIGHT
 
TAIICHI OHNO, historia, obras, reconocimientos
TAIICHI OHNO, historia, obras, reconocimientosTAIICHI OHNO, historia, obras, reconocimientos
TAIICHI OHNO, historia, obras, reconocimientos
 
sistema de CLORACIÓN DE AGUA POTABLE gst
sistema de CLORACIÓN DE AGUA POTABLE gstsistema de CLORACIÓN DE AGUA POTABLE gst
sistema de CLORACIÓN DE AGUA POTABLE gst
 
portafolio final manco 2 1816827 portafolio de evidencias
portafolio final manco 2 1816827 portafolio de evidenciasportafolio final manco 2 1816827 portafolio de evidencias
portafolio final manco 2 1816827 portafolio de evidencias
 
Clasificación de Equipos e Instrumentos en Electricidad.docx
Clasificación de Equipos e Instrumentos en Electricidad.docxClasificación de Equipos e Instrumentos en Electricidad.docx
Clasificación de Equipos e Instrumentos en Electricidad.docx
 
3.6.2 Lab - Implement VLANs and Trunking - ILM.pdf
3.6.2 Lab - Implement VLANs and Trunking - ILM.pdf3.6.2 Lab - Implement VLANs and Trunking - ILM.pdf
3.6.2 Lab - Implement VLANs and Trunking - ILM.pdf
 
1. Equipos Primarios de una Subestaciones electricas
1. Equipos Primarios de una Subestaciones electricas1. Equipos Primarios de una Subestaciones electricas
1. Equipos Primarios de una Subestaciones electricas
 
Six Sigma Process and the dmaic metodo process
Six Sigma Process and the dmaic metodo processSix Sigma Process and the dmaic metodo process
Six Sigma Process and the dmaic metodo process
 
Tema ilustrado 9.2.docxbbbbbbbbbbbbbbbbbbb
Tema ilustrado 9.2.docxbbbbbbbbbbbbbbbbbbbTema ilustrado 9.2.docxbbbbbbbbbbbbbbbbbbb
Tema ilustrado 9.2.docxbbbbbbbbbbbbbbbbbbb
 
2. Cristaloquimica. ingenieria geologica
2. Cristaloquimica. ingenieria geologica2. Cristaloquimica. ingenieria geologica
2. Cristaloquimica. ingenieria geologica
 
ARMADURAS METODO NODOS.pptx......................
ARMADURAS METODO NODOS.pptx......................ARMADURAS METODO NODOS.pptx......................
ARMADURAS METODO NODOS.pptx......................
 
GUIA DE SEGURIDAD PARA VENTILACION DE MINAS-POSITIVA.pdf
GUIA DE SEGURIDAD PARA VENTILACION DE MINAS-POSITIVA.pdfGUIA DE SEGURIDAD PARA VENTILACION DE MINAS-POSITIVA.pdf
GUIA DE SEGURIDAD PARA VENTILACION DE MINAS-POSITIVA.pdf
 
Arquitecto cambio de uso de suelo Limache
Arquitecto cambio de uso de suelo LimacheArquitecto cambio de uso de suelo Limache
Arquitecto cambio de uso de suelo Limache
 
27311861-Cuencas-sedimentarias-en-Colombia.ppt
27311861-Cuencas-sedimentarias-en-Colombia.ppt27311861-Cuencas-sedimentarias-en-Colombia.ppt
27311861-Cuencas-sedimentarias-en-Colombia.ppt
 
Video sustentación GA2- 240201528-AA3-EV01.pptx
Video sustentación GA2- 240201528-AA3-EV01.pptxVideo sustentación GA2- 240201528-AA3-EV01.pptx
Video sustentación GA2- 240201528-AA3-EV01.pptx
 
5. MATERIALES petreos para concreto.pdf.
5. MATERIALES petreos para concreto.pdf.5. MATERIALES petreos para concreto.pdf.
5. MATERIALES petreos para concreto.pdf.
 

Pb operaciones modelorelacional_gris

  • 1. 1 Operaciones enOperaciones en el Modeloel Modelo RelacionalRelacional Bases de DatosBases de Datos IngenierIngenieríía Ta Téécnica en Informcnica en Informáática de Sistemastica de Sistemas ÁÁlgebra Relacionallgebra Relacional IntroducciIntroduccióónn 22 El interés de los usuarios de las bases de datos se suele centrar en realizar consultas (contestar a interrogantes sobre la instancia actual de la base de datos) El modelo relacional posee un conjunto concreto de operaciones “estándar” sobre los datos (a diferencia del modelo E/R que no ofrece una forma específica de manipular la información) Estas operaciones estándar pueden expresarse en un álgebra que se conoce como “álgebra relacional” Álgebra Rama de las Matemáticas que tiene por objeto de estudio la generalización de las relaciones aritméticas de los números Álgebra Relacional Álgebra Relacional Extendida Modificaciones de la Base de Datos Valores Nulos ÍÍndicendice IntroducciIntroduccióónn 33 ÁÁlgebralgebra RelacionalRelacional Operaciones en el Modelo RelacionalOperaciones en el Modelo Relacional Bases de DatosBases de Datos IngenierIngenieríía Ta Téécnica en Informcnica en Informáática de Sistemastica de Sistemas Lenguajes de ConsultaLenguajes de Consulta ÁÁlgebra Relacionallgebra Relacional 55 Un lenguaje de consulta es un lenguaje en el que un usuario solicita información de la base de datos Los lenguajes de consulta de bases de datos suelen ser de un nivel conceptual superior a los lenguajes de programación habituales Procedimentales: el usuario instruye al sistema para que lleve a cabo una serie de operaciones para calcular el resultado No procedimentales: el usuario describe la información deseada, sin dar un procedimiento para obtenerla Álgebra Relacional Es una forma de lenguaje de consulta en el modelo relacional Sus operadores principales son: unión, intersección, diferencia, selección, proyección, producto Cartesiano, reunión natural, reunión theta y cambio de nombre (renombramiento) ÁÁlgebra Relacionallgebra Relacional ÁÁlgebra Relacionallgebra Relacional 66 El álgebra relacional es un lenguaje de consulta procedimental que consta de un conjunto de operaciones que toman como entrada una o dos relaciones y producen como resultado una nueva relación (construye nuevas relaciones a partir de relacionas existentes) Expresiones u Operaciones: comienzan con las relaciones como operandos y generan como resultado una relación (se puede construir expresiones complejas al utilizar como operandos resultados de expresiones del Álgebra Relacional) Consulta: expresión del Álgebra Relacional
  • 2. 2 OperacionesOperaciones ÁÁlgebra Relacionallgebra Relacional ÁÁlgebra Relacionallgebra Relacional 77 Las operaciones del Álgebra Relacional se pueden clasificar en cuatro clases: 1.- Operaciones habituales de los conjuntos (unión, intersección y diferencia) 2.- Operaciones que suprimen partes de una relación (la selección elimina algunas tuplas y la proyección algunas columnas) Operaciones fundamentales: selección, proyección, unión, diferencia de conjuntos, producto cartesiano y renombramiento Unarias / Binarias OperacionesOperaciones ÁÁlgebra Relacionallgebra Relacional ÁÁlgebra Relacionallgebra Relacional 88 Operaciones fundamentales: selección, proyección, unión, diferencia de conjuntos, producto cartesiano y renombramiento Unarias / Binarias Las operaciones del Álgebra Relacional se pueden clasificar en cuatro clases: 3.- Operaciones que combinan las tuplas de dos relaciones (el producto cartesiano combina pares de tuplas de dos relaciones y varias clases de reuniones que forman parejas, de forma selectiva, a partir de dos relaciones) 4.- Operación renombramiento que modifica el esquema de una relación (nombres de atributos y/o nombre de la relación Ejemplo 1: BancoEjemplo 1: Banco 99 Cliente ciudad_ cliente calle_ cliente nombre_ cliente Sucursal activosciudad_ sucursal nombre_ sucursal Cuenta saldonombre_ sucursal numero_ cuenta Impositor numero_ cuenta nombre_ cliente Préstamo importenombre_ sucursal numero_ prestamo Prestatario numero_ prestamo nombre_ cliente ÁÁlgebra Relacionallgebra Relacional Ejemplo 1: BancoEjemplo 1: Banco 1010 12000A CoruñaRiazor 8000SantiagoVite 5000SantiagoPlaza Roja 2500LugoMurallas 10000LugoFingoi 75000SantiagoPrincipal Sucursal activosciudad_ sucursal nombre_ sucursal 150RiazorC-317 100ViteC-316 1000PrincipalC-315 1200FingoiC-225 450Plaza RojaC-201 900MurallasC-103 700FingoiC-102 500PrincipalC-101 Cuenta saldonombre_ sucursal numero_ cuenta ÁÁlgebra Relacionallgebra Relacional Ejemplo 1: BancoEjemplo 1: Banco 1111 OleirosFidelRodríguez AmesMagdalenaSantos A CoruñaOrzánLópez AmesAgroGómez NegreiraConstituciónGonzález SantiagoCameliasPérez LugoPimentelFernández RábadeJazmínBarreiro SantiagoLa RosaAmo LugoDiputaciónAbril Cliente ciudad_ cliente calle_ cliente nombre_ cliente 15100ViteP-18 8700FingoiP-23 10000FingoiP-13 Préstamo importenombre_ sucursal numero_ prestamo ÁÁlgebra Relacionallgebra Relacional Ejemplo 1: BancoEjemplo 1: Banco 1212 C-317Rodríguez C-316Gómez C-315Pérez C-103Fernández C-225Barreiro C-102Fernández C-201Santos C-102López C-201López C-315González C-102Abril C-101Amo Impositor numero_ cuenta nombre_ cliente P-18Rodríguez P-13Barreiro P-23Fernández P-18Pérez P-13Abril P-13Fernández Prestatario numero_ prestamo nombre_ cliente ÁÁlgebra Relacionallgebra Relacional
  • 3. 3 SelecciSeleccióónn ÁÁlgebra Relacionallgebra Relacional 1313 La operación selección selecciona tuplas que satisfacen un predicado dado y produce una nueva relación con un subconjunto de tuplas de la relación original Para denotar la selección se utiliza la letra griega sigma minúscula (σ) El predicado aparece como subíndice de σ La relación sobre la que se aplica aparece entre paréntesis σ predicado (relación) Ejemplo 1: BancoEjemplo 1: Banco 1414ÁÁlgebra Relacionallgebra Relacional Seleccionar las tuplas de la relación préstamo en las cuales la sucursal es Fingoi σnombre_sucursal=“Fingoi” (Préstamo) 8700FingoiP-23 10000FingoiP-13 importenombre_ sucursal numero_ prestamo Ejemplo 1: BancoEjemplo 1: Banco 1515ÁÁlgebra Relacionallgebra Relacional Seleccionar las tuplas en las cuales el importe prestado sea mayor que 9000 € σimporte>9000 (Préstamo) 15100ViteP-18 10000FingoiP-13 importenombre_ sucursal numero_ prestamo SelecciSeleccióónn ÁÁlgebra Relacionallgebra Relacional 1616 Se permiten las comparaciones que utilizan =, ≠, <, ≤, >, ó ≥ en el predicado Se pueden combinar varios predicados con las conectivas y(٨) y o(٧) σnombre_sucursal=“Fingoi” ٨ importe>9000 (Préstamo) El predicado puede incluir comparaciones entre dos atributos σnombre_cliente=nombre_banquero (ReponsablePréstamo) ProyecciProyeccióónn ÁÁlgebra Relacionallgebra Relacional 1717 La operación proyección selecciona argumentos de una relación (elimina filas duplicadas) y produce una nueva relación que contiene algunas de las columnas de la original Para denotar la proyección se utiliza la letra griega pi mayúscula (Π) Los argumentos aparecen como subíndice de Π La relación sobre la que se aplica aparece entre paréntesis Π argumentos (relación) Ejemplo 1: BancoEjemplo 1: Banco 1818ÁÁlgebra Relacionallgebra Relacional Crear una lista de todos los números de préstamo y del importe de los mismos Πnumero_prestamo, importe (Préstamo) 15100P-18 8700P-23 10000P-13 importenumero_ prestamo
  • 4. 4 ComposiciComposicióón de Operacionesn de Operaciones ÁÁlgebra Relacionallgebra Relacional 1919 Es muy importante el hecho de que el resultado de una operación relacional es también una relación Las operaciones del álgebra relacional pueden componerse para formar una expresión compleja del álgebra relacional Ejemplo 1: BancoEjemplo 1: Banco 2020ÁÁlgebra Relacionallgebra Relacional Encontrar los clientes que viven en Santiago Πnombre_cliente (σciudad_cliente=“Santiago” (Cliente)) SantiagoCameliasPérez SantiagoLa RosaAmo ciudad_ cliente calle_ cliente nombre_ cliente Pérez Amo nombre_ cliente UniUnióónn ÁÁlgebra Relacionallgebra Relacional 2121 La operación unión une tuplas de dos relaciones (que tengan el mismo número de atributos y dominios iguales Compatibles) eliminando las tuplas repetidas Para denotar la unión se utiliza la notación de conjuntos (U) Las relaciones sobre las que se aplica aparecen a los lados del operador Define una relación lógica OR relación1 U relación2 Ejemplo 1: BancoEjemplo 1: Banco 2222ÁÁlgebra Relacionallgebra Relacional Averiguar el nombre de todos los clientes del banco que tienen una cuenta, un préstamo o ambas cosas Πnombre_cliente (Impositor) U Πnombre_cliente (Prestatario) Rodríguez Gómez Pérez Barreiro Fernández Santos López González Abril Amo nombre_ cliente Rodríguez Barreiro Pérez Abril Fernández nombre_ cliente Rodríguez Gómez Pérez Barreiro Fernández Santos López González Abril Amo nombre_ cliente Diferencia de ConjuntosDiferencia de Conjuntos ÁÁlgebra Relacionallgebra Relacional 2323 La operación diferencia de conjuntos selecciona tuplas de dos relaciones que estén en una pero que no estén en la otra (que tengan el mismo número de atributos y dominios iguales Compatibles) Para denotar la diferencia de conjuntos se utiliza la notación de matemáticas (-) Las relaciones sobre las que se aplica aparecen a los lados del operador relación1 - relación2 Ejemplo 1: BancoEjemplo 1: Banco 2424ÁÁlgebra Relacionallgebra Relacional Buscar todos los clientes del banco que tienen abierta una cuenta pero no tienen concedido ningún préstamo Πnombre_cliente (Impositor) - Πnombre_cliente (Prestatario) Rodríguez Gómez Pérez Barreiro Fernández Santos López González Abril Amo nombre_ cliente Rodríguez Barreiro Pérez Abril Fernández nombre_ cliente Gómez Santos López González Amo nombre_ cliente
  • 5. 5 Producto CartesianoProducto Cartesiano ÁÁlgebra Relacionallgebra Relacional 2525 La operación producto cartesiano, o producto, combina tuplas de dos relaciones formando nuevas tuplas que tienen como primera parte una tupla de una relación y como segunda parte una tupla de la otra relación Para denotar el producto cartesiano se utiliza la notación de matemáticas (X) Las relaciones sobre las que se aplica aparecen a los lados del operador Define una relación lógica AND relación1 x relación2 Nombres de AtributosNombres de Atributos ÁÁlgebra Relacionallgebra Relacional 2626 Al combinar dos relaciones puede ocurrir que atributos pertenecientes a ambas relaciones tengan el mismo nombre Esquema_prestatario= (nombre_cliente, numero_prestamo) Esquema_prestamo= (numero_prestamo, nombre_sucursal, importe) Esquema_r [=prestatarioxprestamo] = (prestatario.nombre_cliente, prestatario.número_prestamo, prestamo.numero_prestamo, prestamo.nombre_sucursal, prestamo.importe) TuplasTuplas deldel ProdProd.. CartCart.. ÁÁlgebra Relacionallgebra Relacional 2727 Se crea una tupla en el Producto Cartesiano a partir de cada posible par de tuplas de las relaciones que participan La relación procedente del Producto Cartesiano suele ser de gran tamaño r = a x b, n1 tuplas en a y n2 tuplas en b n1 * n2 tuplas en r Ejemplo 1: BancoEjemplo 1: Banco 2828ÁÁlgebra Relacionallgebra Relacional Averiguar los nombres de todos los clientes que tienen concedido un préstamo en la Sucursal de Fingoi 15100ViteP-18 8700FingoiP-23 10000FingoiP-13 Préstamo importenombre_ sucursal numero_ prestamo P-18Rodríguez P-13Barreiro P-23Fernández P-18Pérez P-13Abril P-13Fernández Prestatario numero_ prestamo nombre_ cliente Ejemplo 1: BancoEjemplo 1: Banco 2929ÁÁlgebra Relacionallgebra Relacional prestatario x prestamo P-18 P-23 P-13 P-18 P-23 P-13 P-18 P-23 P-13 prestamo. numero_ prestamo Vite Fingoi Fingoi Vite Fingoi Fingoi Vite Fingoi Fingoi nombre_ sucursal P-18 P-18 P-18 P-13 P-13 P-13 P-13 P-13 P-13 prestatario. numero_ prestamo 8700Pérez 8700Abril 15100Abril 10000Pérez 15100Pérez 8700Fernández 15100Fernández 10000Abril 10000Fernández importenombre_ cliente Ejemplo 1: BancoEjemplo 1: Banco 3030ÁÁlgebra Relacionallgebra Relacional prestatario x prestamo P-18 P-18 P-18 P-13 P-13 P-13 P-23 P-23 P-23 prestatario. numero_ prestamo P-18 P-23 P-13 P-18 P-23 P-13 P-18 P-23 P-13 prestamo. numero_ prestamo Vite Fingoi Fingoi Vite Fingoi Fingoi Vite Fingoi Fingoi nombre_ sucursal 8700Rodríguez 8700Barreiro 15100Barreiro 10000Rodríguez 15100Rodríguez 8700Fernández 15100Fernández 10000Barreiro 10000Fernández importenombre_ cliente
  • 6. 6 Ejemplo 1: BancoEjemplo 1: Banco 3131ÁÁlgebra Relacionallgebra Relacional Seleccionamos en el resultado del producto cartesiano las tuplas cuyo valor en nombre_sucursal sea el que se busca σnombre_sucursal=“Fingoi” (prestatario x prestamo) Ejemplo 1: BancoEjemplo 1: Banco 3232ÁÁlgebra Relacionallgebra Relacional 10000FingoiP-13P-23Fernández 8700FingoiP-23P-23Fernández 10000FingoiP-13P-13Barreiro 8700FingoiP-23P-13Barreiro 10000FingoiP-13P-18Rodríguez 8700FingoiP-23P-18Rodríguez 8700FingoiP-23P-18Pérez P-13 P-23 P-13 P-23 P-13 prestamo. numero_ prestamo Fingoi Fingoi Fingoi Fingoi Fingoi nombre_ sucursal P-18 P-13 P-13 P-13 P-13 prestatario. numero_ prestamo 8700Abril 10000Pérez 8700Fernández 10000Abril 10000Fernández importenombre_ cliente Ejemplo 1: BancoEjemplo 1: Banco 3333ÁÁlgebra Relacionallgebra Relacional Filtramos el resultado a través del número de préstamo σprestatario.numero_prestamo=prestamo.numero_prestamo (σnombre_sucursal=“Fingoi” (prestatario x prestamo)) 8700FingoiP-23P-23Fernández 10000FingoiP-13P-13Barreiro P-13 P-13 prestamo. numero_ prestamo Fingoi Fingoi nombre_ sucursal P-13 P-13 prestatario. numero_ prestamo 10000Abril 10000Fernández importenombre_ cliente Ejemplo 1: BancoEjemplo 1: Banco 3434ÁÁlgebra Relacionallgebra Relacional Y proyectamos el resultado buscado Πnombre_cliente (σprestatario.numero_prestamo=prestamo.numero_prestamo (σnombre_sucursal=“Fingoi” (prestatario x prestamo))) Barreiro Abril Fernández nombre_ cliente RenombramientoRenombramiento ÁÁlgebra Relacionallgebra Relacional 3535 La operación renombramiento permite poner nombre a una relación (obtenida a través de una expresión) que no lo tenga Para denotar la proyección se utiliza la letra griega rho minúscula (ρ) (también la partícula as en una lista de argumentos) El nombre a dar a la relación aparece como subíndice de ρ y el nombre a dar a los atributos como argumentos La expresión sobre la que se aplica aparece entre paréntesis ρ nombre(argumentos) (expresión) Otras OperacionesOtras Operaciones ÁÁlgebra Relacionallgebra Relacional 3636 Las operaciones fundamentales del álgebra relacional son suficientes para expresar cualquier consulta del álgebra relacional Operaciones que no añaden potencial al álgebra pero que simplifican la expresión de las consultas Tienen una expresión equivalente usando sólo las operaciones fundamentales
  • 7. 7 IntersecciInterseccióónn ÁÁlgebra Relacionallgebra Relacional 3737 Obtener relaciones del tipo y relación1 relación2 U =relación1- (relación1-relación2) ReuniReunióón Naturaln Natural ÁÁlgebra Relacionallgebra Relacional 3838 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) ReuniReunióón Thetan Theta ÁÁlgebra Relacionallgebra Relacional 3939 La reunión theta permite reflejar una condición arbitraria de reunión al producto cartesiano relación1 Condición relación2 =σcondición (relación1 x relación2) AsignaciAsignacióónn ÁÁlgebra Relacionallgebra Relacional 4040 La operación asignación actúa de forma similar a la asignación en los lenguajes de programación relación1 Expresión El resultado de la expresión de la derecha de se asigna a la variable relación situada a la izquierda de ÁÁlgebralgebra RelacionalRelacional ExtendidaExtendida Operaciones en el Modelo RelacionalOperaciones en el Modelo Relacional Bases de DatosBases de Datos IngenierIngenieríía Ta Téécnica en Informcnica en Informáática de Sistemastica de Sistemas ProyecciProyeccióón Generalizadan Generalizada ÁÁlgebra Relacional Extendidalgebra Relacional Extendida 4242 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)
  • 8. 8 Ejemplo 1: BancoEjemplo 1: Banco 4343ÁÁlgebra Relacional Extendidalgebra Relacional Extendida 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) 9900P-18 16300P-23 15000P-13 disponiblenumero_ prestamo Funciones de AgregaciFunciones de Agregacióónn ÁÁlgebra Relacional Extendidalgebra Relacional Extendida 4444 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) Ejemplo 1: BancoEjemplo 1: Banco 4545ÁÁlgebra Relacional Extendidalgebra Relacional Extendida Averiguar la suma total de los sueldos de los empleados del banco 1800FingoiRibera 1450Plaza RojaFernández 2900MurallasJiménez 3900FingoiDíaz 2700PrincipalGonzález EmpleadosTP sueldonombre_ sucursal nombre_ empleado 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)(EmpleadosTP) Ejemplo 1: BancoEjemplo 1: Banco 4646ÁÁlgebra Relacional Extendidalgebra Relacional Extendida Hallar la suma total de sueldos de los empleados a tiempo parcial por sucursal 1800FingoiRibera 1450Plaza RojaFernández 2900MurallasJiménez 3900FingoiDíaz 2700PrincipalGonzález EmpleadosTP sueldonombre_ sucursal nombre_ empleado nombre_sucursal G sum(sueldo) (EmpleadosTP) 1450Plaza Roja 2900Murallas 5700Fingoi 2700Principal suma de sueldo nombre_ sucursal ReuniReunióón Externan Externa ÁÁlgebra Relacional Extendidalgebra Relacional Extendida 4747 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, …) ¡ Genera valores nulos ! Ejemplo 1: BancoEjemplo 1: Banco ÁÁlgebra Relacional Extendidalgebra Relacional Extendida 4848 Generar una única relación que contenga toda la información de los empleados (calle, ciudad, sucursal y sueldo) LugoPimentelValdivieso RábadeJazmínGómez SantiagoLa RosaDomínguez LugoDiputaciónSegura Empleado ciudadcallenombre 5300FingoiValdivieso 8000PrincipalBarea 12000PrincipalDomínguez 3000FingoiSegura EmpleadoTC sueldosucursalnombre
  • 9. 9 ReuniReunióón Naturaln Natural ÁÁlgebra Relacional Extendidalgebra Relacional Extendida 4949 Generar una única relación que contenga toda la información de los empleados (calle, ciudad, sucursal y sueldo) Empleado EmpleadoTC Lugo Santiago Lugo ciudad Fingoi Principal Fingoi sucursal 5300PimentelValdivieso 12000La RosaDomínguez 3000DiputaciónSegura sueldocallenombre ReuniReunióón Externa Izquierdan Externa Izquierda ÁÁlgebra Relacional Extendidalgebra Relacional Extendida 5050 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 Empleado EmpleadoTC nulonuloRábadeJazmínGómez Lugo Santiago Lugo ciudad Fingoi Principal Fingoi sucursal 5300PimentelValdivieso 12000La RosaDomínguez 3000DiputaciónSegura sueldocallenombre ReuniReunióón Externa Derechan Externa Derecha ÁÁlgebra Relacional Extendidalgebra Relacional Extendida 5151 La reunión externa por la derecha toma todas las tuplas de la relación de la derecha que no coincidan con ninguna tupla de la relación de la izquierda, las rellana con valores nulos en los demás atributos de la relación de la izquierda y las añade al resultado de la reunión natural Empleado EmpleadoTC 8000PrincipalnulonuloBarea Lugo Santiago Lugo ciudad Fingoi Principal Fingoi sucursal 5300PimentelValdivieso 12000La RosaDomínguez 3000DiputaciónSegura sueldocallenombre ReuniReunióón Externa Completan Externa Completa ÁÁlgebra Relacional Extendidalgebra Relacional Extendida 5252 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 nulonuloRábadeJazmínGómez 8000PrincipalnulonuloBarea Lugo Santiago Lugo ciudad Fingoi Principal Fingoi sucursal 5300PimentelValdivieso 12000La RosaDomínguez 3000DiputaciónSegura sueldocallenombre ModificacionesModificaciones de la Base dede la Base de DatosDatos Operaciones en el Modelo RelacionalOperaciones en el Modelo Relacional Bases de DatosBases de Datos IngenierIngenieríía Ta Téécnica en Informcnica en Informáática de Sistemastica de Sistemas Modificar la Base de DatosModificar la Base de Datos Modificaciones de la Base de DatosModificaciones de la Base de Datos 5454 Las modificaciones de la Base de Datos se expresan utilizando la operación de asignación Las principales operaciones de modificación de una Base de Datos son el Borrado, la Inserción y la Actualización Las Relaciones como Bolsas en los Sistemas Comerciales En los sistemas comerciales de bases de datos, las relaciones son en realidad bolsas y en ellas se permite que una misma tupla aparezca varias veces Las operaciones del álgebra relacional con conjuntos pueden aplicarse a las bolsas, pero hay algunas leyes algebraicas que no se cumplen Además de emplear el modelo de bolsas para las relaciones, estos sistemas ofrecen operaciones que no existen en el álgebra relacional Entre ellas figuran: inserción, eliminación y actualización de las tuplas en relaciones, agregaciones en las relaciones y valores nulos en las tuplas
  • 10. 10 BorradoBorrado Modificaciones de la Base de DatosModificaciones de la Base de Datos 5555 Las solicitudes de borrado es expresan, básicamente, igual que las consultas en lugar de mostrar las tuplas resultantes se eliminan de la Base de Datos Sólo se pueden borrar tuplas enteras r r – E, E consulta del Álgebra Relacional Ejemplo 1: BancoEjemplo 1: Banco ÁÁlgebra Relacional Extendidalgebra Relacional Extendida 5656 Borrar todas las cuentas de Gómez impositor impositor – σnombre_cliente=“Gómez” (impositor) InsercciInserccióónn Modificaciones de la Base de DatosModificaciones de la Base de Datos 5757 Para insertar datos hay que especificar la tupla que se va insertar o escribir una consulta cuyo resultado sea el conjunto de tuplas a insertar r r U E, E expresión del Álgebra Relacional ó una relación constante Ejemplo 1: BancoEjemplo 1: Banco ÁÁlgebra Relacional Extendidalgebra Relacional Extendida 5858 Insertar el hecho de que Gómez abre una cuenta (C- 973) en la sucursal de la Plaza Roja de Santiago con 1200 € cuenta cuenta U {(C-973, “Plaza Roja”, 1200)} impositor impositor U {(“Gómez”, C-973)} ActualizaciActualizacióónn Modificaciones de la Base de DatosModificaciones de la Base de Datos 5959 Puede que, en algunas situaciones, se desee modificar sólo algunos valores en una tupla r ΠF1, F2, …, Fn (σp (r)) U (r-σp (r)) r ΠF1, F2, …, Fn (r) Ejemplo 1: BancoEjemplo 1: Banco ÁÁlgebra Relacional Extendidalgebra Relacional Extendida 6060 Realizar un pago de intereses del 2% a todas las cuentas activas cuenta Πnumero_cuenta, nombre_sucursal, saldo*1.02 (cuenta)
  • 11. 11 Valores NulosValores Nulos Operaciones en el Modelo RelacionalOperaciones en el Modelo Relacional Bases de DatosBases de Datos IngenierIngenieríía Ta Téécnica en Informcnica en Informáática de Sistemastica de Sistemas Tratamiento Valores NulosTratamiento Valores Nulos Valores NulosValores Nulos 6262 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 Operaciones AritmOperaciones Aritmééticasticas Valores NulosValores Nulos 6363 Dado que el valor especial nulo indica “valor desconocido o no existente”, cualquier operación aritmética (como +, -, * y /) que incluya valores nulos debe devolver un valor nulo ComparacionesComparaciones Valores NulosValores Nulos 6464 Cualquier comparación (como <, <=, >, >=, = y ≠) que incluya un valor nulo se evalúa al valor especial desconocido Como no se puede decir si el resultado de la comparación es cierto o falso, se dice que el resultado es un nuevo valor lógico denominado desconocido Operaciones LOperaciones Lóógicasgicas Valores NulosValores Nulos 6565 desconocido=desconocidonoNOT desconocido=desconocidoodesconocido desconocido=desconocidoofalso cierto=desconocidoocierto OR desconocido=desconocidoydesconocido falso=desconocidoyfalso desconocido=desconocidoycierto AND SelecciSeleccióónn Valores NulosValores Nulos 6666 La operación selección evalúa el predicado P en σP(E) sobre cada tupla de E Si el predicado devuelve el valor cierto, se añade la tupla al resultado Si el predicado devuelve desconocido o falso, la tupla no se añade al resultado
  • 12. 12 ProyecciProyeccióónn Valores NulosValores Nulos 6767 La operación proyección trata los nulos como cualquier otro valor al eliminar duplicados La decisión es un tanto arbitraria porque sin saber cuál es el valor real no se sabe si los dos valores nulos son duplicados o no UniUnióón,n, IntersecIntersec., Diferencia., Diferencia Valores NulosValores Nulos 6868 La unión, intersección y diferencia tratan los valores nulos de la misma forma que la operación proyección El comportamiento es un tanto arbitrario, especialmente en el caso de la intersección y la diferencia, dado que no se sabe si los valores reales (si existen) representados por los nulos son los mismos ReuniReunióónn Valores NulosValores Nulos 6969 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 ProyecciProyeccióón Generalizadan Generalizada Valores NulosValores Nulos 7070 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 Funciones de AgregaciFunciones de Agregacióónn Valores NulosValores Nulos 7171 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 ReuniReunióón Externan Externa Valores NulosValores Nulos 7272 Las operaciones de reunión externa se comportan como las operaciones de reunión, excepto sobre las tuplas que no aparecen en el resultado
  • 13. 13 TemasTemas de Discuside Discusióónn y Ejerciciosy Ejercicios Operaciones en el Modelo RelacionalOperaciones en el Modelo Relacional Bases de DatosBases de Datos IngenierIngenieríía Ta Téécnica en Informcnica en Informáática de Sistemastica de Sistemas Temas de DiscusiTemas de Discusióónn Temas de DiscusiTemas de Discusióón y Ejerciciosn y Ejercicios 7474 La reunión natural y la reunión theta cuando la condición de esta última abarca exactamente los atributos comunes, ¿existen diferencias? EjerciciosEjercicios Temas de DiscusiTemas de Discusióón y Ejerciciosn y Ejercicios 7575 Dada la base de datos, en modelo relacional, compuesta por las siguientes cuatro reuniones Producto (fabricante, modelo, tipo) PC (modelo, velocidad, ram, disco, cd, precio) Portatil (modelo, velocidad, ram, disco, pantalla, precio) Impresora (modelo, color, tipo, precio) ¿Qué modelos de PC tienen una velocidad de al menos 150? ¿Qué fabricantes producen portátiles con disco duro de por la menos 1 gigabyte? EjerciciosEjercicios Temas de DiscusiTemas de Discusióón y Ejerciciosn y Ejercicios 7676 Encontrar los números de modelo y el precio de todos los productos elaborados por el fabricante B Encontrar los números de modelo de todas las impresoras láser color Encontrar los tamaños de disco duro que ocurren en dos o más computadoras personales Encontrar los fabricantes de al menos dos computadoras distintas (PC o portátiles) con una velocidad de al menos 133 Encontrar los fabricantes que venden exactamente tres modelos de PC