algebra-relacional

28
´ ALGEBRA Y C ´ ALCULO RELACIONAL Bases de Datos Universidad de Talca, II Semestre 2005 Jorge P´ erez R. 1

Transcript of algebra-relacional

Page 1: algebra-relacional

ALGEBRA Y CALCULO RELACIONAL

Bases de Datos

Universidad de Talca, II Semestre 2005

Jorge Perez R.

1

Page 2: algebra-relacional

Algebra Relacional

Un algebra es un sistema matematico constituido por

• Operandos: objetos (valores o variables) desde los cualesnuevos objetos pueden ser construidos.

• Operadores: sımbolos que denotan procedimientos paraconstruir nuevos objetos desde objetos dados.

El algebra relacional es un algebra en la cual

• Sus operandos son relaciones (instancias) o variables querepresentan relaciones.

• Sus operadores estan disenados para hacer la tareas mascomunes que se necesitan para manipular relaciones en unabase de datos.

El resultado es que el algebra relacional se puede utilizarcomo un lenguaje de consulta.

En la practica el algebra relacional debe ser extendida paraabarcar la mayor parte de las tareas reales que se hacen conlos datos.

Estudiaremos en detalle los operadores clasicos.

2

Page 3: algebra-relacional

Tablas

Estas seran las tablas que usaremos en la mayorıa de ejemplos

Empleado

nombre sueldo cod dept fecha ing

Torres $ 1.200.000 A1 01/01/2004Soto $ 500.000 A2 01/01/2003Perez $ 300.000 A2 01/10/2003

Figueroa $ 600.000 A1 01/03/2002Salas $ 1.500.000 A1 01/01/2002Rıos $ 2.000.000 A3 01/06/2002

Campos $ 800.000 A2 01/11/2003Venegas $ 600.000 A1 01/06/2002Carcamo $ 500.000 A2 01/04/2003Gonzalez $ 2.000.000 A3 01/10/2002

Departamento

nombre cod dept fecha creac

Informatica A1 01/03/2002Marketing A2 01/01/2002Ventas A3 01/01/2001

Recursos Humanos A4 01/01/2003

Page 4: algebra-relacional

Seleccion

Operador de seleccion σ, selecciona un subconjunto de lastuplas de una relacion.

Tuplas seleccionadas son las que satisfacen cierto predicadologico P . El predicado puede depender de los atributos de larelacion y de valores constantes.

El operador σ toma una relacion como argumento y el re-sultado es una nueva relacion.

Sintaxis:

σP(r)

Seleccionar los datos del empleado Soto:

σnombre=Soto(empleado)

nombre sueldo cod dept fecha ing

Soto $ 500.000 A2 01/01/2003

Los datos de los empleados con sueldo ≥ $500.000 que in-gresaron durante el 2003:

σsueldo≥500000 ∧ fech ing≥1/1/2004(empleado)

nombre sueldo cod dept fecha ing

Soto $ 500.000 A2 01/01/2003Campos $ 800.000 A2 01/11/2003Carcamo $ 500.000 A2 01/04/2003

3

Page 5: algebra-relacional

Proyeccion

Operador de proyeccion π, proyecta una relacion sobre unsubconjunto de sus atributos.

El operador π toma una relacion como argumento y el re-sultado es una nueva relacion.

Sintaxis: πA(r)donde A representa el conjunto de atributos sobre los que

la relacion r se proyectara.

Ejemplo: obtener los nombres de los distintos departamentos

πnombre(departamento)

nombre

InformaticaMarketingVentas

Recursos Humanos

Obtener los montos de sueldo de los empleados:

πsueldo(empleado)

sueldo

$ 1.200.000$ 500.000$ 300.000$ 600.000

$ 1.500.000$ 2.000.000$ 800.000

se eliminan los repetidos! una relacion es un conjunto.

4

Page 6: algebra-relacional

Composicion de Operaciones

El resultado de cada operacion es una nueva relacion ⇒ sepueden aplicar operadores a los resultados de aplicacionesprevias.

Por ejemplo:

πA(σP(r))σP(πA(r))

σP1(σP2

(r))

Obtener los nombres de los empleados que ganan mas de$1.000.000.

πnombre(σsueldo>1000000(empleado))

nombre

TorresSalasRıos

Gonzalez

Obtener el sueldo y la fecha de ingreso de Soto:

πsueldo,fech ing(σnombre=Soto(empleado))

sueldo fecha ing

$ 500.000 01/01/2003

5

Page 7: algebra-relacional

Union

Dado que las relaciones son conjuntos de tuplas, se puedenrealizar las operaciones usuales de conjuntos como la union.

Sintaxis: usamos notacion infija

r1 ∪ r2

Se deben hacer ciertas restricciones para realizar la union:

• Ambas relaciones deben tener el mismo numero de atribu-tos.

• El dominio del atributo i-esimo de cada relacion debe coin-cidir.

Obtener los nombres de los empleados que ganan mas de$1.500.000 o que trabajan en el departamento con codigoA1.

πnombre(σsueldo>1500000(empleado)∪ σcod dept=A1(empleado))

nombre

TorresFigueroa

SalasRıos

VenegasGonzalez

6

Page 8: algebra-relacional

Diferencia

Tambien se puede usar la diferencia de conjuntos, las tuplasque estan en una relacion pero no en la otra.

Sintaxis: usamos notacion infija

r1 − r2

Para poder realizar la diferencia se deben cumplir las mismasrestricciones que para la union

Ejemplo:

πnombre(alumno) −πnombre(σcarrera=Bioinformatica(alumno))

Resulta en una relacion que contiene a todos los nombres delos alumnos excepto de los alumnos de la carrera de Bioin-formatica.

7

Page 9: algebra-relacional

Producto Cartesiano

Representa al producto cartesiano usual de conjuntos.

Combina tuplas de cualquieras dos (o mas) relaciones, hacela combinacion de todos con todos.

Si las relaciones a operar tienen N y M tuplas de n y mcomponentes respectivamente, la relacion resultante del elproducto cartesiano tiene N ×M tuplas de n+m componen-tes.

Sintaxis: usamos notacion infija

r1 × r2

No hay restricciones a los dominios de las relaciones similaresa las anteriores operaciones.

Nos permite reunir datos de dos relaciones distintas.

Cuidado con los nombres repetidos! se deben renombrar cier-tos atributos para no tener porblemas.

departamento× departamentonombre cd fec creac nombre cd fec creac

Informatica A1 01/03/2002 Informatica A1 01/03/2002Informatica A1 01/03/2002 Marketing A2 01/01/2002Informatica A1 01/03/2002 Ventas A3 01/01/2001Informatica A1 01/03/2002 Rec. Hum. A4 01/01/2003Marketing A2 01/01/2002 Informatica A1 01/03/2002Marketing A2 01/01/2002 Marketing A2 01/01/2002Marketing A2 01/01/2002 Ventas A3 01/01/2001Marketing A2 01/01/2002 Rec. Hum. A4 01/01/2003Ventas A3 01/01/2001 Informatica A1 01/03/2002Ventas A3 01/01/2001 Marketing A2 01/01/2002Ventas A3 01/01/2001 Ventas A3 01/01/2001Ventas A3 01/01/2001 Rec. Hum. A4 01/01/2003

Rec. Hum. A4 01/01/2003 Informatica A1 01/03/2002Rec. Hum. A4 01/01/2003 Marketing A2 01/01/2002Rec. Hum. A4 01/01/2003 Ventas A3 01/01/2001Rec. Hum. A4 01/01/2003 Rec. Hum. A4 01/01/2003

8

Page 10: algebra-relacional

Producto Cartesiano: Ejemplos

Obtener el nombre del departamento en el que Soto trabaja:Primero hacemos la union cartesiana igualando un atributo

σdepto.cod depto=emp.cod depto(empleado× departamento)

Ahora podemos hacer la seleccion y proyeccion

πdepto.nombre(σemp.nombre=Soto

(σdepto.cod depto=emp.cod depto(empleado× departamento)))

departamento.nombre

Marketing

9

Page 11: algebra-relacional

Renombre

A veces necesitamos obtener informacion uniendo datos dela misma tabla.

Por ejemplo, obtener los nombres de todos los empleadosque ingresaron despues que Soto a la empresa.

Primer intento:

empleado× (σnombre=Soto(empleado))

¿Como nos referimos a una u otra instancia de la tablaempleado?

El operador de renombre ρ soluciona el problema.

El operador ρ toma una relacion y entrega la misma rela-cion pero con otro nombre, podemos referirnos a distintasinstancias de la misma relacion.

Sintaxis:ρx(r)

Volviendo al ejemplo, obtener los nombres de todos los em-pleados que ingresaron despues que Soto a la empresa, se-gundo intento:

empleado× (σnombre=Soto(ρempleado2(empleado))

Ahora podemos hacer:

πempleado.nombre(σempleado.fecha ing>empleado2.fecha ing

(empleado× (σnombre=Soto(ρempleado2(empleado))))

10

Page 12: algebra-relacional

Formalizacion y Notacion de Arbol

El algebra relacional es un lenguaje de expresiones. Todaexpresion se puede generar a partir de las siguientes reglas:

• Toda relacion de la base de datos es una expresion.

• Si E1 y E2 son expresiones entonces las siguientes tambienson expresiones:

◦ E1 ∪ E2

◦ E1 − E2

◦ E1 × E2

◦ σP(E1) donde P es un predicado con atributos de E1

◦ πA(E1) donde A es una lista de atributos de E1

◦ ρx(E1) donde x es el nuevo nombre de la relacion E1.

Cada expresion generada por las reglas anteriores tiene comoresultado una relacion.

Toda relacion resultado de una expresion en el algebra rela-cional se puede ver como un arbol donde cada nodo internoesta etiquetado por una operacion:

• Las hojas son relaciones efectivas de la base de datos.

• La relacion representada por un arbol es la relacion queresulta de aplicar la operacion etiquetada en su raız a lasrelacion representadas por cada uno de los subarboles hijos.

Por ejemplo la relacion resultante de

πdepto.nombre(σemp.nombre=Soto

(σdepto.cod depto=emp.cod depto(empleado× departamento)))

Esta representada por el siguiente arbol (en la pizarra...)

A veces es mas comodo representar expresiones extensasusando arboles.

11

Page 13: algebra-relacional

————————————————-

Page 14: algebra-relacional

Operaciones Adicionales, Interseccion

Las operaciones anteriores son suficientes para definir todael algebra relacional.

Algunas consultas habituales son complejas de realizar concombinaciones de operaciones simples, usamos algunos ope-radores adicionales.

Interseccion

La interseccion usual de conjuntos.

Sintaxis: usamos notacion infija

r1 ∩ r2

Se deben cumplir las mismas restricciones que en la union ydiferencia, los atributos de la relaciones involucradas debentener los mismos dominios.

La interseccion se puede crear a partir de la diferencia:

r1 ∩ r2 = r1 − (r1 − r2)

Ejemplo:

πnombre(alumno preg) ∩πnombre(alumno posg)

resulta en una relacion que contiene los nombres de todoslos alumnos que son simultaneamente de pre y posgrado.

12

Page 15: algebra-relacional

Reunion Natural(Join)

Hace un producto cartesiano de sus dos argumentos y realizauna seleccion forzando la igualdad de atributos que aparecenen ambas relaciones.

Elimina repetidos (como toda operacion de conjuntos).

Sintaxis: r1 ⋊⋉ r2

Ejemplo: listar todos los empleados y el nombre del departa-mento en el que trabajan

πemp.nombre,dept.nombre(empleado ⋊⋉ departamento)

empleado.nombre departamento.nombre

Torres InformaticaSoto MarketingPerez Marketing

Figueroa InformaticaSalas InformaticaRıos Ventas

Campos MarketingVenegas InformaticaCarcamo MarketingGonzalez Ventas

13

Page 16: algebra-relacional

Join en General

Un forma mas general de hacer Join es especificando unapropiedad de reunion.

Se hace entonces un producto cartesiano de las dos relacio-nes y se realiza una seleccion forzando una propiedad masgeneral que la igualdad de atributos que aparecen en ambasrelaciones.

Sintaxis: r1 ⋊⋉P r2donde P es la propiedad de reunion.

Ejemplo: listar todos los pares de nombres de empleados ydepartamentos tales que el empleado ingreso a la empresaen una fecha anterior a la de creacion del departamento

πemp.nombre,depto.nombre(empleado ⋊⋉(fecha ing<fecha creac) departamento)

14

Page 17: algebra-relacional

Relaciones Temporales

A veces las consultas se hacen muy extensas.

Una forma de simplificarlas es usando relaciones temporalesy asignandoles expresiones para usar despues:

r ← E asigna la expresion de algebra relaciones E a la nuevarelacion r.

Ejemplo:

temp← σsueldo>500000(empleado ⋊⋉ departamento)

πempleado.nombre,departamento.nombre(temp)

El ultimo resultado son los nombres de empleados y el depar-tamento en el que trabajan tales que el sueldo del empleadoes mayor a $500.000.

15

Page 18: algebra-relacional

Calculo Relacional de Tuplas

El calculo relacional de tuplas es un lenguaje no procedural.

Con el algebra relacional damos un procedimiento para unaexpresion.

πA1,B1(σA1=v(rA ⋊⋉ rB))

En el calculo relacional de tuplas especificamos la informaciondeseada sin dar un procedimiento para obtenerla.

{t|P (t)}

Este ultimo conjunto representa a la relacion de todas lastuplas t que cumplen la propiedad logica P .

Supongamos que necesitamos solo los nombres de los em-pleados que tienen sueldo mayor a $500.000.

En algebra relacional usamos el operador π para obtenersolo los nombres. En el calculo relacional de tuplas debemosusar la construccion existe “∃”:

∃ t ∈ r(Q(t))

que significa: “existe una tupla t en la relacion r que cumpleel predicado Q(t)”.

Ejemplo: obtener los nombres de los empleados que tienensueldo mayor a $500.000.

{t | ∃s ∈ empleado (t[nombre] = s[nombre]∧ s[sueldo] > 500000}

Se lee: “el conjunto de todas las tuplas tales que existe unatupla s en la relacion empleado para la cual los valores de ty s son iguales en el atributo nombre y el valor de s en elatributo sueldo es mayor que 500000”.

La variable de tupla t se define solo en el atributo nombre, esel unico atributo cuantificado. El resultado es una relacioncon solo un atributo.

16

Page 19: algebra-relacional

Calculo Relacional de Tuplas: Ejemplos

Supongamos que necesitamos los datos de todos los emplea-dos del departamento de Marketing y no sabemos el codigodel departamento.

En algebra relacional usamos el operador ⋊⋉ para obtener losdatos de ambas tablas.

En el calculo relacional de tuplas debemos usar tambien laconstruccion existe:

{t | t ∈ empleado ∧ ∃s ∈ departamento (s[cod depto] =t[cod depto] ∧ s[nombre] = marketing}

Se lee: “el conjunto de todas las tuplas t de la relacionempleado tales que existe una tupla s en la relacion departamentopara la cual los valores de t y s son iguales en el atributocod depto y el valor de s en el atributo nombre es marketing”.

¿Como expresamos consultas del tipo “los nombres de todoslos alumnos que no son de bioinformatica, suponiendo quecontamos con las relaciones alumno y alumno bioinformatica?

Necesitamos el operador logico de negacion “¬”.

{t | ∃s ∈ alumno (s[nombre] = t[nombre])∧ ¬∃u ∈ alumno bioinformatica (u[nombre] = t[nombre])}

Se lee: “el conjunto de todas las tuplas t tales que exis-te una tupla s en la relacion alumno que comparte el atri-buto nombre con t y NO existe una tupla u en la relacionalumno bioinformatica que comparta el atributo nombre cont”.

17

Page 20: algebra-relacional

Calculo Relacional de Tuplas: Ejemplos (cont.)

En general podemos usar “casi” cualquier expresion logicapara seleccionar tuplas.

Podemos usar las construcciones para todo “∀”, implica que

“⇒”, etc.

{t | ∃s ∈ depatamento (s[nombre] = t[nombre] ∧∀u ∈ empleado (u[cod depto] = s[cod depto]⇒ u[sueldo] >

500000))}

Se lee: “el conjunto de todas las tuplas t tales que, existeuna tupla s en la relacion departamento con la que comparteel atributo nombre y que para toda tupla u en la relacionempleado, si u comparte el atributo cod depto con s entoncesel valor del atributo sueldo de u es mayor que 500000.

En este conjunto estan los nombres de los departamentoscuyos empleados tienen todos un sueldo mayor a $500.000.¿Como hacemos esta consulta en algebra relacional?

¿Por que “casi” todas las expresiones logicas? ¿Que resultade la siguiente consulta?

{t | ¬(t ∈ empleado)}

¡Resulta una relacion con un numero infinito de tuplas!¡Tuplas que ni siquiera se encuentran en nuestra base dedatos!

No aceptamos entonces este tipo de consultas, aceptamossolo consultas seguras.

Una consulta {t | P (t)} es segura si el resultado son valoresque pertenecen a dom(P ), donde dom(P ) es la union de losdominios de todas las relaciones que aparecen en P .

{t | ¬(t ∈ empleado)} no es segura{t | t ∈ alumno ∧ ¬(t ∈ alumno bioinformatica)} si es segura.

18

Page 21: algebra-relacional

Calculo Relacional de Dominios

Es un lenguaje de consulta sobre el modelo relacional noprocedural.

A diferencia del calculo relacional de tuplas, consulta acercavalores del dominio de los atributos de las relaciones, no delas tuplas de estas.

Una consulta en calculo relacional de dominios es de la si-guiente forma:

{< x1, x2, . . . , xn > | P (x1, x2, . . . , xn)}

donde x1, x2, . . . , xn se llaman variables de dominio y P es unaformula proposicional sobre las variables del dominio.

Ejemplo: Obtener el nombre, el codigo y la fecha de creacionde los departamentos creados despues del 2003

{< a, b, c > | < a, b, c >∈ departamento ∧ c > 1/1/2003}

Ejemplo: Obtener el nombre de los empleados que ganan$800.000

{< n > | ∃a, b, c (< n, a, b, c >∈ empleado ∧ c = 800000)}

Ejemplo: Obtener los nombres de los empleados y de losdepartamentos en los que trabajan

{< e, d > | ∃a, b, c, f (< e, a, b, c >∈ empleado ∧

< d, a, f >∈ departamento}

A veces es mas simple representar consultas para atributosespecıficos en el calculo de dominios que en el calculo detuplas.

Tambien existe una nocion muy similar de consultas seguras

en el calculo de tuplas. Las consultas que se salen del dominiono son seguras.

19

Page 22: algebra-relacional

Algebra vs Calculo Relacional

El calculo relacional nos entrega dos lenguajes de consultaen una base de datos bajo el modelo relacional.

A veces se hace mucho mas “natural” expresar consultas enun lenguaje de calculo relacional que con el algebra relacional.

Ventaja: se expresa “lo que se quiere” sin necesitar explicarcomo obtenerlo (sin especificar un procedimiento).

Resultado muy importante:

El algebra relacional, el calculo relacional de tuplas y el

calculo relacional de dominios tienen el mismo poder

expresivo ⇒ pueden responder el mismo tipo

de consultas en una base de datos relacional.

20

Page 23: algebra-relacional

Modificacion de la Base de Datos

Hasta ahora hemos visto como obtener informacion desde laBase de Datos.

Es necesario entregar herramientas para poder alterar el es-tado de la Base de Datos.

Eliminacion, Insercion, Actualizacion son algunas de las ta-reas necesarias, usaremos el algebra relacional.

Eliminacion

Usamos el operador de diferencia (−) y asignacion (←)

r ← r − E

donde r es una relacion y E una expresion del algebra rela-cional.

Eliminar los datos de Soto

empleado← empleado−σnombre=Soto(empleado)

Eliminar todos los empleados del departamento de Marketing

r1 ←σdep.nombre=Marketing(empleado ⋊⋉ departamento)r2 ←πemp.nombre,sueldo,emp.cod depto,fech ing(r1)empleado← empleado− r2

nombre sueldo cod dept fecha ing

Torres $ 1.200.000 A1 01/01/2004Figueroa $ 600.000 A1 01/03/2002

Salas $ 1.500.000 A1 01/01/2002Rıos $ 2.000.000 A3 01/06/2002

Venegas $ 600.000 A1 01/06/2002Gonzalez $ 2.000.000 A3 01/10/2002

21

Page 24: algebra-relacional

Modificacion de la Base de Datos (cont.)

Insercion

Usamos el operador de union

r ← r ∪ E

donde r es una relacion y E una expresion del algebra rela-cional.

Agregar el departamento de Finanzas con codigo A5 y fechade creacion 5/8/2004

departamento← departamento ∪ {(Finanzas,A5,5/8/2004)}

nombre cod dept fecha creac

Informatica A1 01/03/2002Marketing A2 01/01/2002Ventas A3 01/01/2001

Recursos Humanos A4 01/01/2003Finanzas A5 05/08/2004

Actualizacion

A veces queremos cambiar el valor de algun atributo de unatupla sin cambiarla entera. Podrıa hacerse una eliminacion einsercion, pero resulta engorrosos muchas veces.

Usamos un nuevo operador δ (no reasignamos!):

δA←E(r)

que representa el hecho de cambiar el atributo A por la ex-presion matematica E en la relacion r.

Subir el sueldo de todos los empleados en %10 si su sueldoactual es mayor que $1.000.000 y en %20 si es menor

δsueldo←sueldo∗1,1(σsueldo≥1000000(empleado))δsueldo←sueldo∗1,2(σsueldo<1000000(empleado))

22

Page 25: algebra-relacional

Cuidado con el orden!!!

nombre sueldo cod dept fecha ing

Torres $ 1.320.000 A1 01/01/2004Soto $ 600.000 A2 01/01/2003Perez $ 360.000 A2 01/10/2003

Figueroa $ 720.000 A1 01/03/2002Salas $ 1.650.000 A1 01/01/2002Rıos $ 2.200.000 A3 01/06/2002

Campos $ 960.000 A2 01/11/2003Venegas $ 720.000 A1 01/06/2002Carcamo $ 600.000 A2 01/04/2003Gonzalez $ 2.200.000 A3 01/10/2002

Page 26: algebra-relacional

Vistas

Hasta ahora hemos operado al nivel conceptual, directamentecon las tablas de la base de datos. Muchas veces es mejorque ciertos usuarios tenga acceso a ciertos datos o vistas delos datos.

Por ejemplo en una aplicacion para fijar reuniones, los em-pleados deben poder ver los nombres de los empleados y losdepartamentos a los que pertenecen pero no sus sueldos.

πemp.nombre,emp.cod dept,dept.nombre(empleado ⋊⋉ departamento)

Para crear una vista usaremos conceptualmente la sentenciacreate view de la siguiente forma:

create view v as E

donde v es el nombre de la vista a crear y E es una expresionde consulta.

Una vista puede usarse como cualquier relacion efectiva dela base de datos, pero cuidado una vista NO es una nuevarelacion, es simplemente una forma abreviada de referirse auna consulta. La vista se instancia cada vez que nos referimosa ella.

Ejemplo:

create view importantes asπnombre,cod dept(σsueldo≥1000000(empleado))

importantes

nombre cod dept

Torres A1Salas A1Rıos A3

Gonzalez A3

23

Page 27: algebra-relacional

Actualizacion de Vistas y Valores Nulos

Las vistas son utiles para consultar datos, pero presentanproblemas para actualizaciones.

Por ejemplo, si escribimos

importantes← importantes ∪ {(Gomez,A4)}

implica una actualizacion de la relacion empleado pero sinespecificar ni sueldo ni fecha de ingreso. Existen entoncesdos posibilidades:

• Rechazar la insercion y gatillar un error.

• Insertar la tupla (Gomez,null,A4,null) en la relacion empleado

El valor ‘null’ representa un valor nulo, desconocido o que noexiste. Todas las comparaciones que implican ‘null’ son pordefinicion falsas (esto ultimo tendra implicancias practicasimportantes).

Un problema importante de la anterior actualizacion es que,a pesar de que la relacion empleado tiene una nueva tupla

nombre sueldo cod dept fecha ing

Torres $ 1.200.000 A1 01/01/2004Soto $ 500.000 A2 01/01/2003Perez $ 300.000 A2 01/10/2003

Figueroa $ 600.000 A1 01/03/2002Salas $ 1.500.000 A1 01/01/2002Rıos $ 2.000.000 A3 01/06/2002

Campos $ 800.000 A2 01/11/2003Venegas $ 600.000 A1 01/06/2002Carcamo $ 500.000 A2 01/04/2003Gonzalez $ 2.000.000 A3 01/10/2002Gomez null A4 null

La vista importantes no cambia

24

Page 28: algebra-relacional

Actualizacion de Vistas (cont.)

El siguiente es el reultado de la vista importantes antes ydespues de la insercion si se ingresan valores nulos para losatributos no especificados.

importantes

nombre cod dept

Torres A1Salas A1Rıos A3

Gonzalez A3

importantes← importantes ∪ {(Gomez,A4)}

importantes

nombre cod dept

Torres A1Salas A1Rıos A3

Gonzalez A3

El tema de actualizacion sobre vistas es muy interesante des-de el punto de vista teorico y aun hay investigacion en el areaprincipalmente por el crecimiento de necesidades de integra-cion de informacion.

Una posible solucion al problema serıa haber insertado datos(mınimos) adicionales al ingresar la nueva tupla en la vista demanera de obtener el resultado deseado, o sea, haber inser-tado la tupla con atributo (Gomez, 1000000, A4, null) pero¿como podemos tomar esta decision automaticamente?... uninteresante tema para estudiar...

25