+ All Categories
Home > Engineering > Pb operaciones modelorelacional_gris

Pb operaciones modelorelacional_gris

Date post: 16-Aug-2015
Category:
Upload: gotham-trix
View: 20 times
Download: 0 times
Share this document with a friend
13

Click here to load reader

Transcript
Page 1: 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

Page 2: Pb operaciones modelorelacional_gris

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

Page 3: Pb operaciones modelorelacional_gris

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

Page 4: Pb operaciones modelorelacional_gris

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

Page 5: Pb operaciones modelorelacional_gris

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

Page 6: Pb operaciones modelorelacional_gris

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

Page 7: Pb operaciones modelorelacional_gris

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)

Page 8: Pb operaciones modelorelacional_gris

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

Page 9: Pb operaciones modelorelacional_gris

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

Page 10: Pb operaciones modelorelacional_gris

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)

Page 11: Pb operaciones modelorelacional_gris

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

Page 12: Pb operaciones modelorelacional_gris

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

Page 13: Pb operaciones modelorelacional_gris

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


Recommended