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