Pb operaciones modelorelacional_gris
Click here to load reader
-
Upload
gotham-trix -
Category
Engineering
-
view
20 -
download
0
Transcript of Pb operaciones modelorelacional_gris
1
Operaciones en Operaciones en el Modelo el Modelo RelacionalRelacional
Bases de DatosBases de DatosIngenierIngenieríí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”
ÁlgebraRama 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
ÁÁlgebra lgebra RelacionalRelacional
Operaciones en el Modelo RelacionalOperaciones en el Modelo RelacionalBases 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 superiora 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 RelacionalEs una forma de lenguaje de consulta en el modelo relacionalSus 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
ÁlgebraRelacional
2
Operaciones Operaciones ÁÁ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
Operaciones Operaciones ÁÁ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
1212C-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 pimayú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 tuplasde 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 del del 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 rhominú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 reducirforzando que los argumentos con contenidos igualestengan 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
ÁÁlgebra lgebra Relacional Relacional ExtendidaExtendidaOperaciones en el Modelo RelacionalOperaciones en el Modelo Relacional
Bases de DatosBases de DatosIngenierIngenieríí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 tuplasde 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 tuplasde 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
Modificaciones Modificaciones de la Base de de la Base de
DatosDatosOperaciones en el Modelo RelacionalOperaciones en el Modelo Relacional
Bases de DatosBases de DatosIngenierIngenieríí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 ComercialesEn los sistemas comerciales de bases de datos, las relaciones son en realidad bolsas y en ellas se permite que una misma tupla aparezca varias vecesLas operaciones del álgebra relacional con conjuntos pueden aplicarse a las bolsas, pero hay algunas leyes algebraicas que no se cumplenAdemás de emplear el modelo de bolsas para las relaciones, estos sistemas ofrecen operaciones que no existen en el álgebra relacionalEntre 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 tuplaque 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 RelacionalBases 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 tuplano 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
TemasTemasde Discuside Discusióónny Ejerciciosy Ejercicios
Operaciones en el Modelo RelacionalOperaciones en el Modelo RelacionalBases 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