1Operaciones en Operaciones en el Modelo el Modelo RelacionalRelacional
Bases de DatosBases de DatosIngenierIngeniera Ta Tcnica en Informcnica en Informtica de Sistemastica de Sistemas
lgebra Relacionallgebra Relacional
IntroducciIntroduccinn 22
El inters 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 estndar sobre los datos (a diferencia del modelo E/R que no ofrece una forma especfica de manipular la informacin)
Estas operaciones estndar pueden expresarse en un lgebra que se conoce como lgebra relacional
lgebraRama de las Matemticas que tiene por objeto de estudio la generalizacin de las relaciones aritmticas de los nmeros
lgebra Relacional lgebra Relacional Extendida Modificaciones de la Base de Datos Valores Nulos
ndicendice
IntroducciIntroduccinn 33
lgebra lgebra RelacionalRelacional
Operaciones en el Modelo RelacionalOperaciones en el Modelo RelacionalBases de DatosBases de Datos
IngenierIngeniera Ta Tcnica en Informcnica en Informtica 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 informacin de la base de datos
Los lenguajes de consulta de bases de datos suelen ser de un nivel conceptual superiora los lenguajes de programacin 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 informacin deseada, sin dar un procedimiento para obtenerla
lgebra RelacionalEs una forma de lenguaje de consulta en el modelo relacionalSus operadores principales son: unin, interseccin, diferencia, seleccin, proyeccin, producto Cartesiano, reunin natural, reunin 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 relacin (construye nuevas relaciones a partir de relacionas existentes)Expresiones u Operaciones: comienzan con las relaciones como operandos y generan como resultado una relacin (se puede construir expresiones complejas al utilizar como operandos resultados de expresiones del lgebra Relacional)
Consulta: expresin del
lgebraRelacional
2Operaciones 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 (unin, interseccin y diferencia)
2.- Operaciones que suprimen partes de una relacin (la seleccin elimina algunas tuplas y la proyeccin algunas columnas)
Operaciones fundamentales: seleccin, proyeccin, unin, diferencia de conjuntos, producto cartesiano y renombramiento
Unarias / Binarias
Operaciones Operaciones lgebra Relacionallgebra Relacional
lgebra Relacionallgebra Relacional 88
Operaciones fundamentales: seleccin, proyeccin, unin, 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.- Operacin renombramiento que modifica el esquema de una relacin (nombres de atributos y/o nombre de la relacin
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
Prstamo
importenombre_sucursal
numero_prestamo
Prestatario
numero_prestamo
nombre_cliente
lgebra Relacionallgebra Relacional
Ejemplo 1: BancoEjemplo 1: Banco
1010
12000A CoruaRiazor
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
OleirosFidelRodrguez
AmesMagdalenaSantos
A CoruaOrznLpez
AmesAgroGmez
NegreiraConstitucinGonzlez
SantiagoCameliasPrez
LugoPimentelFernndez
RbadeJazmnBarreiro
SantiagoLa RosaAmo
LugoDiputacinAbril
Cliente
ciudad_cliente
calle_cliente
nombre_cliente
15100ViteP-18
8700FingoiP-23
10000FingoiP-13
Prstamo
importenombre_sucursal
numero_prestamo
lgebra Relacionallgebra Relacional
Ejemplo 1: BancoEjemplo 1: Banco
1212C-317Rodrguez
C-316Gmez
C-315Prez
C-103Fernndez
C-225Barreiro
C-102Fernndez
C-201Santos
C-102Lpez
C-201Lpez
C-315Gonzlez
C-102Abril
C-101Amo
Impositor
numero_cuenta
nombre_cliente
P-18Rodrguez
P-13Barreiro
P-23Fernndez
P-18Prez
P-13Abril
P-13Fernndez
Prestatario
numero_prestamo
nombre_cliente
lgebra Relacionallgebra Relacional
3SelecciSeleccinn
lgebra Relacionallgebra Relacional 1313
La operacin seleccin selecciona tuplas que satisfacen un predicado dado y produce una nueva relacin con un subconjunto de tuplas de la relacin original
Para denotar la seleccin se utiliza la letra griega sigma minscula ()
El predicado aparece como subndice de
La relacin sobre la que se aplica aparece entre parntesis
predicado (relacin)
Ejemplo 1: BancoEjemplo 1: Banco
1414lgebra Relacionallgebra Relacional
Seleccionar las tuplas de la relacin prstamo en las cuales la sucursal es Fingoi
nombre_sucursal=Fingoi (Prstamo)
8700FingoiP-23
10000FingoiP-13
importenombre_sucursal
numero_prestamo
Ejemplo 1: BancoEjemplo 1: Banco
1515lgebra Relacionallgebra Relacional
Seleccionar las tuplas en las cuales el importe prestado sea mayor que 9000
importe>9000 (Prstamo)
15100ViteP-18
10000FingoiP-13
importenombre_sucursal
numero_prestamo
SelecciSeleccinn
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 (Prstamo)
El predicado puede incluir comparaciones entre dos atributos
nombre_cliente=nombre_banquero (ReponsablePrstamo)
ProyecciProyeccinn
lgebra Relacionallgebra Relacional 1717
La operacin proyeccin selecciona argumentos de una relacin (elimina filas duplicadas) y produce una nueva relacin que contiene algunas de las columnas de la original
Para denotar la proyeccin se utiliza la letra griega pimayscula ()
Los argumentos aparecen como subndice de
La relacin sobre la que se aplica aparece entre parntesis
argumentos (relacin)
Ejemplo 1: BancoEjemplo 1: Banco
1818lgebra Relacionallgebra Relacional
Crear una lista de todos los nmeros de prstamo y del importe de los mismos
numero_prestamo, importe (Prstamo)
15100P-18
8700P-23
10000P-13
importenumero_prestamo
4ComposiciComposicin de Operacionesn de Operaciones
lgebra Relacionallgebra Relacional 1919
Es muy importante el hecho de que el resultado de una operacin relacional es tambin una relacin
Las operaciones del lgebra relacional pueden componerse para formar una expresin compleja del lgebra relacional
Ejemplo 1: BancoEjemplo 1: Banco
2020lgebra Relacionallgebra Relacional
Encontrar los clientes que viven en Santiago
nombre_cliente (ciudad_cliente=Santiago (Cliente))
SantiagoCameliasPrez
SantiagoLa RosaAmo
ciudad_cliente
calle_cliente
nombre_cliente
Prez
Amo
nombre_cliente
UniUninn
lgebra Relacionallgebra Relacional 2121
La operacin unin une tuplas de dos relaciones (que tengan el mismo nmero de atributos y dominios iguales Compatibles) eliminando las tuplas repetidas
Para denotar la unin se utiliza la notacin de conjuntos (U)
Las relaciones sobre las que se aplica aparecen a los lados del operador
Define una relacin lgica OR
relacin1 U relacin2
Ejemplo 1: BancoEjemplo 1: Banco
2222lgebra Relacionallgebra Relacional
Averiguar el nombre de todos los clientes del banco que tienen una cuenta, un prstamo o
ambas cosas
nombre_cliente (Impositor) U nombre_cliente (Prestatario)
Rodrguez
Gmez
Prez
Barreiro
Fernndez
Santos
Lpez
Gonzlez
Abril
Amo
nombre_cliente
Rodrguez
Barreiro
Prez
Abril
Fernndez
nombre_cliente
Rodrguez
Gmez
Prez
Barreiro
Fernndez
Santos
Lpez
Gonzlez
Abril
Amo
nombre_cliente
Diferencia de ConjuntosDiferencia de Conjuntos
lgebra Relacionallgebra Relacional 2323
La operacin diferencia de conjuntos selecciona tuplasde dos relaciones que estn en una pero que no estn en la otra (que tengan el mismo nmero de atributos y dominios iguales Compatibles)Para denotar la diferencia de conjuntos se utiliza la notacin de matemticas (-)
Las relaciones sobre las que se aplica aparecen a los lados del operador
relacin1 - relacin2
Ejemplo 1: BancoEjemplo 1: Banco
2424lgebra Relacionallgebra Relacional
Buscar todos los clientes del banco que tienen abierta una cuenta pero no tienen concedido
ningn prstamo
nombre_cliente (Impositor) -nombre_cliente (Prestatario)
Rodrguez
Gmez
Prez
Barreiro
Fernndez
Santos
Lpez
Gonzlez
Abril
Amo
nombre_cliente
Rodrguez
Barreiro
Prez
Abril
Fernndez
nombre_cliente
Gmez
Santos
Lpez
Gonzlez
Amo
nombre_cliente
5Producto CartesianoProducto Cartesiano
lgebra Relacionallgebra Relacional 2525
La operacin producto cartesiano, o producto, combina tuplas de dos relaciones formando nuevas tuplas que tienen como primera parte una tupla de una relacin y como segunda parte una tupla de la otra relacin
Para denotar el producto cartesiano se utiliza la notacin de matemticas (X)
Las relaciones sobre las que se aplica aparecen a los lados del operador
Define una relacin lgica AND
relacin1 x relacin2
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.nmero_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 relacin procedente del Producto Cartesiano suele ser de gran tamao
r = a x b, n1 tuplas en a y n2 tuplas en b
n1 * n2 tuplas en r
Ejemplo 1: BancoEjemplo 1: Banco
2828lgebra Relacionallgebra Relacional
Averiguar los nombres de todos los clientes que tienen concedido un prstamo en la Sucursal de Fingoi
15100ViteP-18
8700FingoiP-23
10000FingoiP-13
Prstamo
importenombre_sucursal
numero_prestamo
P-18Rodrguez
P-13Barreiro
P-23Fernndez
P-18Prez
P-13Abril
P-13Fernndez
Prestatario
numero_prestamo
nombre_cliente
Ejemplo 1: BancoEjemplo 1: Banco
2929lgebra 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
8700Prez
8700Abril
15100Abril
10000Prez
15100Prez
8700Fernndez
15100Fernndez
10000Abril
10000Fernndez
importenombre_cliente
Ejemplo 1: BancoEjemplo 1: Banco
3030lgebra 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
8700Rodrguez
8700Barreiro
15100Barreiro
10000Rodrguez
15100Rodrguez
8700Fernndez
15100Fernndez
10000Barreiro
10000Fernndez
importenombre_cliente
6Ejemplo 1: BancoEjemplo 1: Banco
3131lgebra 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
3232lgebra Relacionallgebra Relacional
10000FingoiP-13P-23Fernndez
8700FingoiP-23P-23Fernndez
10000FingoiP-13P-13Barreiro
8700FingoiP-23P-13Barreiro
10000FingoiP-13P-18Rodrguez
8700FingoiP-23P-18Rodrguez
8700FingoiP-23P-18Prez
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
10000Prez
8700Fernndez
10000Abril
10000Fernndez
importenombre_cliente
Ejemplo 1: BancoEjemplo 1: Banco
3333lgebra Relacionallgebra Relacional
Filtramos el resultado a travs del nmero de prstamo
prestatario.numero_prestamo=prestamo.numero_prestamo(nombre_sucursal=Fingoi (prestatario x prestamo))
8700FingoiP-23P-23Fernndez
10000FingoiP-13P-13Barreiro
P-13
P-13
prestamo. numero_prestamo
Fingoi
Fingoi
nombre_sucursal
P-13
P-13
prestatario.numero_prestamo
10000Abril
10000Fernndez
importenombre_cliente
Ejemplo 1: BancoEjemplo 1: Banco
3434lgebra Relacionallgebra Relacional
Y proyectamos el resultado buscado
nombre_cliente (prestatario.numero_prestamo=prestamo.numero_prestamo(nombre_sucursal=Fingoi (prestatario x prestamo)))
Barreiro
Abril
Fernndez
nombre_cliente
RenombramientoRenombramiento
lgebra Relacionallgebra Relacional 3535
La operacin renombramiento permite poner nombre a una relacin (obtenida a travs de una expresin) que no lo tenga
Para denotar la proyeccin se utiliza la letra griega rhominscula () (tambin la partcula as en una lista de argumentos)
El nombre a dar a la relacin aparece como subndice de y el nombre a dar a los atributos como argumentos
La expresin sobre la que se aplica aparece entre parntesis
nombre(argumentos) (expresin)
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 aaden potencial al lgebra pero que simplifican la expresin de las consultas
Tienen una expresin equivalente usando slo las operaciones fundamentales
7IntersecciInterseccinn
lgebra Relacionallgebra Relacional 3737
Obtener relaciones del tipo y
relacin1 relacin2
U
=relacin1-(relacin1-relacin2)
ReuniReunin Naturaln Natural
lgebra Relacionallgebra Relacional 3838
Cuando se utiliza el producto cartesiano, se suele reducirforzando que los argumentos con contenidos igualestengan valores iguales
relacin1 relacin2
=relacin1.argumento=relacin2.argumento(relacin1 x relacin2)
ReuniReunin Thetan Theta
lgebra Relacionallgebra Relacional 3939
La reunin theta permite reflejar una condicin arbitraria de reunin al producto cartesiano
relacin1 Condicin relacin2
=condicin (relacin1 x relacin2)
AsignaciAsignacinn
lgebra Relacionallgebra Relacional 4040
La operacin asignacin acta de forma similar a la asignacin en los lenguajes de programacin
relacin1 Expresin
El resultado de la expresin de la derecha de se asigna a la variable relacin situada a la izquierda de
lgebra lgebra Relacional Relacional ExtendidaExtendidaOperaciones en el Modelo RelacionalOperaciones en el Modelo Relacional
Bases de DatosBases de DatosIngenierIngeniera Ta Tcnica en Informcnica en Informtica de Sistemastica de Sistemas
ProyecciProyeccin Generalizadan Generalizada
lgebra Relacional Extendidalgebra Relacional Extendida 4242
La operacin proyeccin generalizada ampla la operacin proyeccin permitiendo que se utilicen funciones aritmticas en la lista de argumentos
funciones (relacin)
8Ejemplo 1: BancoEjemplo 1: Banco
4343lgebra Relacional Extendidalgebra Relacional Extendida
Averiguar el importe de crdito disponible para cada lnea de crdito activa (lmite de crdito: 25000)
numero_prestamo, 25000-importe (Prstamo)
numero_prestamo, (25000-importe) as disponible (Prstamo)
9900P-18
16300P-23
15000P-13
disponiblenumero_prestamo
Funciones de AgregaciFunciones de Agregacinn
lgebra Relacional Extendidalgebra Relacional Extendida 4444
Las funciones de agregacin toman como entrada una coleccin de valores y devuelven como resultado un valor resumen
Se representa por la G caligrfica: G
sum: suma de los valores
avg: media de los valores
count: nmero de valores
min: valor mnimo de los valores
max: valor mximo de los valores
Para no repetir valores funcin-distinct
argumento G funcin(argumento)(relacin)
Ejemplo 1: BancoEjemplo 1: Banco
4545lgebra Relacional Extendidalgebra Relacional Extendida
Averiguar la suma total de los sueldos de los empleados del banco
1800FingoiRibera
1450Plaza RojaFernndez
2900MurallasJimnez
3900FingoiDaz
2700PrincipalGonzlez
EmpleadosTP
sueldonombre_sucursal
nombre_empleado
G sum(sueldo)(EmpleadosTP)
Averiguar nmero de sucursales en los que hay al menos un empleado a tiempo parcial
G count-distinct(nombre_sucursal)(EmpleadosTP)
Ejemplo 1: BancoEjemplo 1: Banco
4646lgebra Relacional Extendidalgebra Relacional Extendida
Hallar la suma total de sueldos de los empleados a tiempo parcial por sucursal
1800FingoiRibera
1450Plaza RojaFernndez
2900MurallasJimnez
3900FingoiDaz
2700PrincipalGonzlez
EmpleadosTP
sueldonombre_sucursal
nombre_empleado
nombre_sucursal G sum(sueldo) (EmpleadosTP)
1450Plaza Roja
2900Murallas
5700Fingoi
2700Principal
suma de sueldo
nombre_sucursal
ReuniReunin Externan Externa
lgebra Relacional Extendidalgebra Relacional Extendida 4747
La operacin reunin externa es una ampliacin de la operacin reunin para trabajar con informacin ausente (desconocida, no relevante, )
Genera valores nulos !
Ejemplo 1: BancoEjemplo 1: Banco
lgebra Relacional Extendidalgebra Relacional Extendida 4848
Generar una nica relacin que contenga toda la informacin de los empleados (calle, ciudad, sucursal y sueldo)
LugoPimentelValdivieso
RbadeJazmnGmez
SantiagoLa RosaDomnguez
LugoDiputacinSegura
Empleado
ciudadcallenombre
5300FingoiValdivieso
8000PrincipalBarea
12000PrincipalDomnguez
3000FingoiSegura
EmpleadoTC
sueldosucursalnombre
9ReuniReunin Naturaln Natural
lgebra Relacional Extendidalgebra Relacional Extendida 4949
Generar una nica relacin que contenga toda la informacin de los empleados (calle, ciudad, sucursal y sueldo)
Empleado EmpleadoTC
Lugo
Santiago
Lugo
ciudad
Fingoi
Principal
Fingoi
sucursal
5300PimentelValdivieso
12000La RosaDomnguez
3000DiputacinSegura
sueldocallenombre
ReuniReunin Externa Izquierdan Externa Izquierda
lgebra Relacional Extendidalgebra Relacional Extendida 5050
La reunin externa por la izquierda toma todas las tuplasde la relacin de la izquierda que no coincidan con ninguna tupla de la relacin de la derecha, las rellana con valores nulos en los dems atributos de la relacin de la derecha y las aade al resultado de la reunin natural
Empleado EmpleadoTC
nulonuloRbadeJazmnGmez
Lugo
Santiago
Lugo
ciudad
Fingoi
Principal
Fingoi
sucursal
5300PimentelValdivieso
12000La RosaDomnguez
3000DiputacinSegura
sueldocallenombre
ReuniReunin Externa Derechan Externa Derecha
lgebra Relacional Extendidalgebra Relacional Extendida 5151
La reunin externa por la derecha toma todas las tuplasde la relacin de la derecha que no coincidan con ninguna tupla de la relacin de la izquierda, las rellana con valores nulos en los dems atributos de la relacin de la izquierda y las aade al resultado de la reunin natural
Empleado EmpleadoTC
8000PrincipalnulonuloBarea
Lugo
Santiago
Lugo
ciudad
Fingoi
Principal
Fingoi
sucursal
5300PimentelValdivieso
12000La RosaDomnguez
3000DiputacinSegura
sueldocallenombre
ReuniReunin Externa Completan Externa Completa
lgebra Relacional Extendidalgebra Relacional Extendida 5252
La reunin externa completa realiza las operaciones de la reunin externa por la izquierda y de la reunin externa por la derecha
Empleado EmpleadoTC
nulonuloRbadeJazmnGmez
8000PrincipalnulonuloBarea
Lugo
Santiago
Lugo
ciudad
Fingoi
Principal
Fingoi
sucursal
5300PimentelValdivieso
12000La RosaDomnguez
3000DiputacinSegura
sueldocallenombre
Modificaciones Modificaciones de la Base de de la Base de
DatosDatosOperaciones en el Modelo RelacionalOperaciones en el Modelo Relacional
Bases de DatosBases de DatosIngenierIngeniera Ta Tcnica en Informcnica en Informtica 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 operacin de asignacin
Las principales operaciones de modificacin de una Base de Datos son el Borrado, la Insercin y la Actualizacin
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 cumplenAdems de emplear el modelo de bolsas para las relaciones, estos sistemas ofrecen operaciones que no existen en el lgebra relacionalEntre ellas figuran: insercin, eliminacin y actualizacin 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, bsicamente, igual que las consultas en lugar de mostrar las tuplas resultantes se eliminan de la Base de Datos
Slo 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 Gmez
impositor impositor nombre_cliente=Gmez (impositor)
InsercciInserccinn
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 expresin del lgebra Relacional una relacin constante
Ejemplo 1: BancoEjemplo 1: Banco
lgebra Relacional Extendidalgebra Relacional Extendida 5858
Insertar el hecho de que Gmez 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 {(Gmez, C-973)}
ActualizaciActualizacinn
Modificaciones de la Base de DatosModificaciones de la Base de Datos 5959
Puede que, en algunas situaciones, se desee modificar slo 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
IngenierIngeniera Ta Tcnica en Informcnica en Informtica 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 deberan evitar siempre que sea posible
Valor nulo: Valor desconocido o no existente
Operaciones AritmOperaciones Aritmticasticas
Valores NulosValores Nulos 6363
Dado que el valor especial nulo indica valor desconocido o no existente, cualquier operacin aritmtica (como +, -, * y /) que incluya valores nulos debe devolver un valor nulo
ComparacionesComparaciones
Valores NulosValores Nulos 6464
Cualquier comparacin (como =, = y ) que incluya un valor nulo se evala al valor especial desconocido
Como no se puede decir si el resultado de la comparacin es cierto o falso, se dice que el resultado es un nuevo valor lgico denominado desconocido
Operaciones LOperaciones Lgicasgicas
Valores NulosValores Nulos 6565
desconocido=desconocidonoNOT
desconocido=desconocidoodesconocido
desconocido=desconocidoofalso
cierto=desconocidoocierto
OR
desconocido=desconocidoydesconocido
falso=desconocidoyfalso
desconocido=desconocidoycierto
AND
SelecciSeleccinn
Valores NulosValores Nulos 6666
La operacin seleccin evala el predicado P en P(E) sobre cada tupla de E
Si el predicado devuelve el valor cierto, se aade la tupla al resultado
Si el predicado devuelve desconocido o falso, la tuplano se aade al resultado
12
ProyecciProyeccinn
Valores NulosValores Nulos 6767
La operacin proyeccin trata los nulos como cualquier otro valor al eliminar duplicados
La decisin es un tanto arbitraria porque sin saber cul es el valor real no se sabe si los dos valores nulos son duplicados o no
UniUnin, n, IntersecIntersec., Diferencia., Diferencia
Valores NulosValores Nulos 6868
La unin, interseccin y diferencia tratan los valores nulos de la misma forma que la operacin proyeccin
El comportamiento es un tanto arbitrario, especialmente en el caso de la interseccin y la diferencia, dado que no se sabe si los valores reales (si existen) representados por los nulos son los mismos
ReuniReuninn
Valores NulosValores Nulos 6969
Las reuniones se pueden expresar como un producto cartesiano seguido de una seleccin
La definicin de la forma en la cual la seleccin trata los nulos tambin define la forma en que la operacin reunin trata los nulos
En una reunin natural, si dos tuplas tienen valor nulo en el atributo comn, las tuplas no casan
ProyecciProyeccin Generalizadan Generalizada
Valores NulosValores Nulos 7070
Los nulos en las expresiones de los atributos en la proyeccin generalizada se tratan como en cualquier expresin
Las tuplas duplicadas que contienen valores nulos se tratan como en la operacin proyeccin
Funciones de AgregaciFunciones de Agregacinn
Valores NulosValores Nulos 7171
Cuando hay nulos en atributos agregados, la operacin borra los valores nulos del resultado antes de aplicar la agregacin
El tratamiento de los valores nulos aqu es diferente al realizado en las operaciones aritmticas aplicarlo como en las operaciones aritmticas significara que un nico valor desconocido en un gran grupo podra hacer que el resultado agregado sobre el grupo fuese nulo, y se perdera una gran cantidad de informacin til
ReuniReunin Externan Externa
Valores NulosValores Nulos 7272
Las operaciones de reunin externa se comportan como las operaciones de reunin, excepto sobre las tuplas que no aparecen en el resultado
13
TemasTemasde Discuside Discusinny Ejerciciosy Ejercicios
Operaciones en el Modelo RelacionalOperaciones en el Modelo RelacionalBases de DatosBases de Datos
IngenierIngeniera Ta Tcnica en Informcnica en Informtica de Sistemastica de Sistemas
Temas de DiscusiTemas de Discusinn
Temas de DiscusiTemas de Discusin y Ejerciciosn y Ejercicios 7474
La reunin natural y la reunin theta cuando la condicin de esta ltima abarca exactamente los atributos comunes, existen diferencias?
EjerciciosEjercicios
Temas de DiscusiTemas de Discusin 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 porttiles con disco duro de por la
menos 1 gigabyte?
EjerciciosEjercicios
Temas de DiscusiTemas de Discusin y Ejerciciosn y Ejercicios 7676
Encontrar los nmeros de modelo y el precio de todos los productos elaborados por el fabricante B
Encontrar los nmeros de modelo de todas las impresoras lser color
Encontrar los tamaos de disco duro que ocurren en dos o ms computadoras personales
Encontrar los fabricantes de al menos dos computadoras distintas (PC o porttiles) con una velocidad de al menos 133
Encontrar los fabricantes que venden exactamente tres modelos de PC