Capitulo 2 Modelo relacional.ppt

Anuncio
Capitulo 2: Modelo relacional
Capitulo 2: Modelo relacional
 Estructuras de las bases de datos relacionales
 Operaciones fundamentales del algebra relacional
 Operaciones adicionales del algebra relacional
 Operaciones extendidas del algebra relacional
 Valores nulos
 Modificación de la base de datos
Ejemplo de una relación
Estructura básica
 Formalmente, dado los conjuntos D1, D2, …. Dn una
relación r es un subconjunto de
D1 x D2 x … x Dn
Así, una relación es un conjunto de n-tuplas (a1, a2, …,
an) donde cada ai  Di
Estructura básica
 Ejemplo: Si
nombre_cliente={ana, pedro, luis, jose, …} /*
Conjunto de todos los nombres */
 calle_cliente = {Álamos, San José, Retiro, …} /*
Conjunto de todos los nombres de calle*/
 ciudad_cliente = {Cusco, Lima, Puno, …} /*
Conjunto de todos los nombres de ciudades*/
Entonces r = { (ana, Álamos, Cusco),
(Pedro, San José, Lima),
(Luis, San José, Lima),
(José, Retiro, Puno) }
es una relación sobre:
nombre_cliente x calle_cliente x ciudad_cliente

Atributos
 Cada atributo de una relación tiene un nombre
 El conjunto de valores permitidos para cada atributo se
denomina dominio del atributo
 Los valores de los atributos normalmente son atómicos; es
decir, indivisibles

Ejm. El valor de un atributo puede ser un numero de cuenta,
pero no puede ser un conjunto de números de cuentas
 Se dice que un dominio es atómico si todos sus elementos son
atómicos o indivisibles
 El valor especial null es miembro de todos los dominios
 Los valores nulos pueden causar complicaciones en la definición
de muchas operaciones
Esquema de Relación
 A1, A2, …, An son atributos
 R = (A1, A2, …, An ) es un esquema de relación
Ejemplo:
Esquema_cliente = (nombre_cliente, calle_cliente,
ciudad_cliente)
 r(R) denota una relación r sobre el esquema de
relación R
Ejemplo:
cliente (Esquema_cliente)
Ejemplar de la relación
 Los valores actuales (ejemplar de la relación) de una relación son
especificados en una tabla
 Un elemento t de r es una tupla, representado por una fila en un
tabla
Atributos
(o columnas)
nombre_cliente
Jones
Smith
Curry
Lindsay
calle_cliente
Main
North
North
Park
cliente
ciudad_cliente
Harrison
Rye
Rye
Pittsfield
tuplas
(o filas)
Relaciones desordenadas
El ordén de las tuplas es irrelevante (las tuplas pueden ser almacenadas
en un orden arbitrario)
Ejemplo: La relación cuenta con tuplas desornadas
Esquema de la base de datos

Una base de datos comprende a múltiples relaciones

La información de una empresa es dividida en varias partes, la información de
cada parte se almacena en una relación
cuenta : almacena información referente a cuentas
impositor : almacena información de que clientes son propietarios de que
cuentas
cliente : Almacena información de clientes

Almacenar toda la información en una única relación tales como:
banco(numero_cuenta, saldo, nombre_cliente, ..)
el resultado es

Repetir varias veces la información


Necesidad de utilizar valores nulos


Ejm. , Si dos clientes son propietarios de una misma cuenta
Ejm., representar a clientes que no tengan una cuenta en el banco
Teoría de la normalización indica como diseñar los esquemas de relación
La relación cliente
La relación impositor o depositante
Claves
 Una superclave es un conjunto de uno o varios atributos que, considerados
conjuntamente, permiten identificar de manera univoca una tupla de la
relación.
 Sea K  R
 K es una superclave de R si los valores de K son suficientes para identificar
de manera única una tupla de cada posible relación r(R)

por “posible r ” entendemos una relación r que puede existir dentro de la
empresa que nosotros modelamos.

Ejemplo: {nombre_cliente, calle_cliente} y
{nombre_cliente}
ambos son superclaves de Cliente, si no es posible que dos clientes
tengan el mismo nombre

En la vida real no se da.
Claves (Cont.)
 A menudo resultan interesantes superclaves para las que ninguno de
sus subconjuntos constituye una superclave. Esas superclaves
mínimas se denominan claves candidatas
Ejemplo: {nombre_cliente} es una clave candidata para Cliente,
también es una superclave donde ninguno de sus subconjuntos
constituye una superclave.
 Clave primaria: es una clave candidata que ha elegido el diseñador
de la base de datos como medio principal para la identificación de
tuplas de una relación.

Una clave primaria debe escogerse de manera que los
valores de sus atributos no se modifique nunca.

Ejemplo la dirección de correo es única, pero puede cambiar
Foreign Keys - Claves externas
 Un esquema de relación puede tener un atributo que hace referencia a la
clave primaria de otra relación. El atributo es llamado foreign key o
clave extraña.
 Ejm. nombre_cliente y numero_cuenta atributos de depositor son
foreign keys a cliente y cuenta respectivamente.
 relación referenciada (Cliente y Cuenta)

relación referenciante. (Impositor)
 Diagrama de esquema
Lenguaje de consulta
 Es un lenguaje en el que los usuarios solicitan información de la base
de datos.
 Categorías de los lenguajes:

Procedimental

No-procedimental, o declarativo
 Lenguajes de consulta puros:

Algebra relacional

Calculo relacional de tuplas

Calculo relacional de dominios
 Estos lenguajes de consultas puros son rígidos y formales, y carecen
del “Azúcar sintáctico” de los lenguajes comerciales, pero ilustran las
técnicas fundamentales para la extracción de datos de la base de
datos.
Algebra Relacional
 Lenguaje procedimental
 Seis operaciones básicas

select: 

project: 

union: 

set difference: –

Cartesian product: x

rename: 
 Las operaciones toman uno o dos relaciones como
entrada y producen una nueva relación resultante.
Operación Select – Ejemplo
 Relación r
 A=B ^ D > 5 (r)
A
B
C
D


1
7


5
7


12
3


23 10
A
B
C
D


1
7


23 10
Select Operation
 Notación:  p(r)
 p se conoce como el predicado de selección
 Definido como:
p(r) = {t | t  r and p(t)}
Donde p es una formula de términos que son
proposiciones condicionales conectados por:  (and), 
(or),  (not)
Cada termino tiene el formato siguiente:
<atributo> op <atributo>o <constante>
donde op es un signo: =, , >, . <. 
 Ejemplo de selección:
 nombre_sucursal=“Perryridge”(cuenta)
Ejemplo de Operación Project
 Relación r:
A,C (r)
A
B
C

10
1

20
1

30
1

40
2
A
C
A
C

1

1

1

1

1

2

2
=
Operación Project
 Notación:

A1 , A2 ,, Ak
(r )
donde A1, A2 son nombres de atributos y r es
un nombre de relación.
 El resultado esta definido como una relación
de k columnas obtenidas por eliminar las
columnas que no están en lista
 Las filas duplicadas son removidas del
resultado, porque la relación es un conjunto
Ejemplo de la operación Union
 Relaciones r, s:
A
B
A
B

1

2

2

3

1
s
r
 r  s:
A
B

1

2

1

3
Operación Union
 Notación: r  s
 Definido como:
r  s = {t | t  r o t  s}
 Para r  s debe ser valido.
1. r, s deben tener la misma aridad (mismo numero de
atributos)
2. Los dominios de atributo deben ser compatibles (ejemplo:
2nd columna de r deben ser del mismo tipo que la 2nd columna de
s)
 Ejemplo: Determinar el nombre de todos los clientes del banco
que tienen una cuenta, un prestamo o ambas cosas.
nombre_cliente (prestatario)  nombre_cliente (impositor)
Ejemplo de la operación Set Difference
 Relaciones r, s:
A
B
A
B

1

2

2

3

1
s
r
 r – s:
A
B

1

1
Operación Set Difference
 Notación r – s
 Definido como:
r – s = {t | t  r and t  s}
 La diferencia de conjuntos debe ser
efectuada entre relaciones compatibles.

r y s deben tener la misma aridad

Los dominios de atributos de r y s deben
ser compatibles
Ejemplo de producto cartesiano
 Relaciones r, s:
A
B
C
D
E

1

2




10
10
20
10
a
a
b
b
r
s
 r x s:
A
B
C
D
E








1
1
1
1
2
2
2
2








10
10
20
10
10
10
20
10
a
a
b
b
a
a
b
b
Operación producto cartesiano
 Notación r x s
 Definido como:
r x s = {t q | t  r and q  s}
 Asume que los atributos de r(R) y s(S) son disjuntos.
(si, R  S = ).
 Si los atributos de r(R) y s(S) no son disjuntos,
entonces debemos usar la operación de
renombramiento.
Composición de operaciones
 Pueden construirse expresiones utilizando múltiples operaciones
 Ejemplo: A=C(r x s)
 rxs
A
B
C
D
E








1
1
1
1
2
2
2
2








10
10
20
10
10
10
20
10
a
a
b
b
a
a
b
b
A
B
C
D
E



1
2
2
 10
 10
 20
a
a
b
 A=C(r x s)
Operación Rename
 A diferencia de las relaciones de base de datos, los resultados
de las expresiones del algebra relacional no tienen un nombre
que se puede usar para referirse a ellas.
 La operación de renombramiento, permite ponerle mas de un
nombre a una relación o expresión de algebra relacional.
 Ejemplo:
 x (E)
devuelve la expresión E con el nombre X
 Suponga que una expresión de algebra relacional E tiene aridad
n, entonces
 x ( A ,A
1
2 ,...,An
)
(E )
devuelve el resultado de la expresión E con el nombre X, y con
los atributos con el nombre cambiado a A1 , A2 , …., An .
Ejemplos del Banco
sucursal (nombre_sucursal, ciudad_sucursal, activos)
cliente (nombre_cliente, calle_cliente, ciudad_cliente)
cuenta (numero_cuenta, nombre_sucursal, saldo)
préstamo (numero_prestamo, nombre_sucursal, importe)
impositor (nombre_cliente, numero_cuenta)
prestatario(nombre_cliente, numero_prestamo)
Ejemplos de consultas
 Encontrar todos los prestamos superiores a $1200
importe > 1200 (préstamo)
 Encontrar el numero de prestamo para cada prestamo de una cantidad
superior a $1200
numero_prestamo (importe > 1200 (prestamo))
 Encontrar los nombres de todos los clientes quienes tienen un
prestamo, o una cuenta, o ambos, en el banco
nombre_cliente (prestatario)  nombre_cliente (impositor)
Ejemplo de consultas
 Encontrar el nombre de todos los clientes quienes tienen un préstamo en
la sucursal Perryridge.
nombre_cliente (nombre_sucursal=“Perryridge”
(prestatario.numero_prestamo =

prestamo.numero_prestamo(prestatario x prestamo)))
Encontrar los nombres de todos los cliente quienes tienen un préstamo
en la sucursal Perryridge pero que no tengan una cuenta en ninguna
sucursal del banco.
nombre_cliente (nombre_sucursal = “Perryridge”
(prestatario.numero_prestamo = prestamo.numero_prestamo(prestatario x prestamo))) –
nombre_cliente(impositor)
Ejemplo de consultas
 Encontrar el nombre de todos los clientes quienes tienen un prestamo en
la sucursal Perryridge.
Query 1
nombre_cliente (nombre_sucursal=“Perryridge”
(prestatario.numero_prestamo =
prestamo.numero_prestamo(prestatario x prestamo)))
Query 2
 nombre_cliente (prestamo.numero_prestamo =
prestatario.numero_prestamo (
( nombre_sucursal=“Perryridge”(prestamo)) x prestatario))
Ejemplo de consultas

Buscar el saldo máximo de las cuentas del banco

Estrategia:

Encontrar los saldos que no son máximos
– Renombrar la relación cuenta como d así podemos comparar
cada saldo de cuenta con los otros


Utilizar la operación set difference para encontrar los saldos de cuenta
que no se encuentran en el paso anterior.
La consulta es:
saldo(cuenta) - cuenta.saldo
(cuenta.saldo < d.saldo (cuenta x d (cuenta)))
Definición formal del algebra relacional
 Las expresiones fundamentales del algebra relacional se componen de
alguno de los siguientes elementos:

Una relación de la base de datos

Una relación constante
 Sea E1 and E2 expresiones del algebra relacional. Todas las
expresiones siguientes son también expresiones de algebra relacional:

E1  E2

E1 – E2

E1 x E2

p (E1), P es un predicado de atributos de E1

s(E1), S es una lista que se compone de algunos de los atributos
de E1

 x (E1), x es el nuevo nombre del resultado de E1
Operaciones adicionales
Se definen otras operaciones que no añaden
potencia al algebra, pero simplifican las
consultas habituales.
 Intersección de conjuntos (Set intersection)
 Unión natural (Natural join)
 División (Division)
 Asignación (Assignment)
Operación Set-Intersection
 Notación: r  s
 Definido como:
 r  s = { t | t  r and t  s }
 Asume:
 r,
s tienen la misma aridad
 Atributos
de r y s son compatibles
 Nota: r  s = r – (r – s)
Ejemplo de la operación Set-Intersection
 Relaciones r, s:
A
B



1
2
1
r
 rs
A
B

2
A
B


2
3
s
Operación Natural-Join
 Notación: r
s
 Sea r y s relaciones del los esquemas R y S respectivamente.
Entonces , r s es una relación en el esquema R  S determinado de la
siguiente manera:

Considera cada par de tuplas tr de r y ts de s.

Si tr y ts tienen el mismo valor en cada uno de los atributos de R  S,
adicionar una tupla t al resultado, donde

t tiene el mismo valor que tr en r

t tiene el mismo valor que ts en s
 Ejemplo:
R = (A, B, C, D)
S = (E, B, D)

Esquema resultante = (A, B, C, D, E)

r
s es definido como:
r.A, r.B, r.C, r.D, s.E (r.B = s.B  r.D = s.D (r x s))
Ejemplo de la operación Natural Join
 Relaciones r, s:
A
B
C
D
B
D
E





1
2
4
1
2





a
a
b
a
b
1
3
1
2
3
a
a
a
b
b





r
 r
s
s
A
B
C
D
E





1
1
1
1
2





a
a
a
a
b





Reunión Zeta
 Es una extensión de la operación
reunión natural que permite combinar
una selección y un producto cartesiano
en una sola operación.
 Considere las relaciones r(R) y s(S), y
sea Ѳ un predicado de los atributos del
esquema R U S. La operación reunión zeta
r Ѳ s =  Ѳ(r x s)
Operación Division
 Notación:
rs
 Resulta adecuada para las consultas que incluyen la
expresión “Para todos”.
 Sea r y s relaciones sobre los esquemas R y S
respectivamente donde:

R = (A1, …, Am , B1, …, Bn )

S = (B1, …, Bn)
El resultado de r  s es una relación sobre el esquema
R – S = (A1, …, Am)
r  s = { t | t   R-S (r)   u  s ( tu  r ) }
Donde tu significa la concatenación de tuplas t y u para
producir una simple tupla
Ejemplo de la operación Division
 Relaciones r, s:
 r  s:
A


A
B
B











1
2
3
1
1
1
3
4
6
1
2
1
2
s
r
R – S = (A1, …, Am)
r  s = { t | t   R-S (r)   u  s ( tu  r ) }
Otro ejemplo de la operación Division
 Relaciones r, s:
A
B
C
D
E
D
E








a
a
a
a
a
a
a
a








a
a
b
a
b
a
b
b
1
1
1
1
3
1
1
1
a
b
1
1
r
 r  s:
A
B
C


a
a


s
Operación Division (Cont.)

Propiedad

Sea q = r  s

Entonces q es la máxima relación que satisface q x s  r

Definición en términos de operaciones básicas del algebra relacional

Sea r(R) and s(S) son relaciones, y sea S  R
r  s = R-S (r ) – R-S ( ( R-S (r ) x s ) – R-S,S(r ))
a ver porque

R-S,S (r) simplemente atributos de r

R-S (R-S (r ) x s ) – R-S,S(r) ) dadas estas tuplas t en
R-S (r ) tales que para algunas tuplas u  s, tu  r.
Operación de asignación (Assignment)

La operación de asignación () provee una conveniente manera de
expresar consultas complejas.

Con la operación de asignación se pueden escribir las consultas como
programas secuenciales que constan de una serie de asignaciones
seguida de una expresión cuyo valor se muestra como resultado de la
consulta

La asignación siempre debe hacerse a una variable de relación temporal

Ejemplo: Escribir r  s como
temp1  R-S (r )
temp2  R-S ((temp1 x s ) – R-S,S (r ))
result = temp1 – temp2

El resultado de la derecha de  es asignado a la variable relación en
la izquierda .

Puede utilizar variables en las sub siguientes expresiones.
Ejemplos de consulta de banco
 Encontrar los nombres de todos los clientes quienes tienen un
préstamo y una cuenta en el banco.
nombre_cliente (prestatario)  nombre_cliente (impositor)
 Encontrar el nombre de todos los cliente que tienen un préstamo en el
banco y el importe del prestamo
nombre_cliente, numero_prestamo, importe (prestatario
prestamo)
Ejemplos de consulta de banco
 Encontrar a todos los clientes quienes tienen una cuenta en las
sucursales “Downtown” y “Uptown”.
 Query 1
nombre_cliente (nombre_sucursal = “Downtown” (impositor
nombre_cliente (nombre_sucrusal = “Uptown” (impositor

cuenta)) 
cuenta))
Query 2
nombre_cliente, nombre_sucursal (impositor
cuenta)
 temp(nombre_sucursal) ({(“Downtown” ), (“Uptown” )})
Nota que esta consulta utiliza una relación constante
Ejemplo de consultas del banco
 Encontrar todos los clientes quienes tienen una cuenta en todas las
sucursales localizadas en la ciudad de Brooklyn.
nombre_cliente, nombre_sucursal (impositor cuenta)
 nombre_sucursal (ciudad_sucursal = “Brooklyn” (Sucursal))
Operaciones del algebra relacional extendidas
 Proyección generalizada
 Funciones de agregación
 Reunión externa
Proyección generalizada
 Extiende la proyección permitiendo que se utilicen funciones aritméticas
en la lista de proyecciones.
 F1 ,F2 ,..., Fn (E )
 E es cualquier expresión del algebra relacional
 y F1, F2, …, Fn son expresiones aritméticas que incluyen constantes y
atributos del esquema de E.
 Suponga que se dispone de una relación información_crédito que
proporciona el límite de crédito y el importe consumido actualmente
(saldo_credito). Si se desea determinar el importe disponible por cada
persona, se puede escribir la expresión siguiente:
nombre_cliente, limite_credito – saldo_credito (información_crédito)
Operaciones y funciones de agregación
 Funciones de agregación toman un conjunto de valores y devuelven
como resultado un único valor.
avg: valor promedio
min: valor mínimo
max: valor máximo
sum: suma de valores
count: numero de valores
 Operación de agregación en algebra relacional
G1,G2 ,,Gn
F ( A ),F ( A ,,F ( A ) (E )
1
1
2
2
n
n
E es cualquier expresión del algebra relacional

G1, G2 …, Gn es una lista de atributos sobre los cuales se agrupa
(puede estar vacio)

Cada Fi es una función de agregación

Cada Ai es un nombre de atributo
Ejemplo de la operación de agregación
 Relación r:
 g sum(c) (r)
A
B
C








7
sum(c )
27
7
3
10
Ejemplo de la función de agregación A
 Relación cuenta agrupado por nombre_sucursal:
Nombre_sucursal Numero_cuenta
Perryridge
Perryridge
Brighton
Brighton
Redwood
saldo
A-102
A-201
A-217
A-215
A-222
400
900
750
750
700
nombre_sucursalg sum(saldo) (cuenta)
Nombre_sucursal
Perryridge
Brighton
Redwood
sum(saldo)
1300
1500
700
Funciones de agregación (Cont.)
 El resultado de la agregación no tiene nombre

Podemos utilizar la operación de renombrar para darle un nombre

Como conveniencia notacional, los atributos de las operaciones de
agregación se pueden renombrar como se indica:
Nombre_sucursal g sum(saldo) as saldo_suma (cuenta)
Reunión externa
 Es una ampliación de la operación reunión para trabajar con
información ausente.
 Calcula la reunión y al resultado se añade tuplas de una relación que no
coincide con las tuplas de otra relación.
 Uso de valores nulos:

null significa que el valor no es conocido o no existe

Todas las comparaciones que involucran null son (mas o menos)
falsas por definición.
Ejemplo de reunión externa
 Relación prestamo
numero_prestamo nombre_sucursal
Downtown
Redwood
Perryridge
L-170
L-230
L-260
importe
3000
4000
1700
 Relación prestatario
nombre_cliente
Jones
Smith
Hayes
numero_prestamo
L-170
L-230
L-155
Ejemplo de reunión externa
 Reunión
préstamo
numero_prestamo
L-170
L-230
prestatario
nombre_sucursal
Downtown
Redwood
importe
3000
4000
nombre_cliente
Jones
Smith
 Reunión externa por la Izquierda
préstamo
numero_prestamo
L-170
L-230
L-260
prestatario
nombre_sucursal
Downtown
Redwood
Perryridge
importe
3000
4000
1700
nombre_cliente
Jones
Smith
null
Ejemplo de reunión externa
 Reunión externa por derecha
prestamo
numero_prestamo
L-170
L-230
L-155
prestatario
nombre_sucursal
Downtown
Redwood
null
importe
3000
4000
null
nombre_cliente
Jones
Smith
Hayes
 Reunión externa completa
prestamo
numero_prestamo
L-170
L-230
L-260
L-155
Prestatario
nombre_sucursal
Downtown
Redwood
Perryridge
null
importe
3000
4000
1700
null
nombre_cliente
Jones
Smith
null
Hayes
Valores nulos
 Es posible que las tuplas tengan valores nulos, representado por null,
para algunos de sus atributos
 null significa un valor desconocido o un valor que no existe.
 Cualquier operación aritmética que incluya valores nulos debe
devolver un valor nulo.
 Las funciones de agregación simplemente ignoran los valores nulos
(también en SQL)
Valores nulos
 Las operaciones y las comparaciones con valores nulos se deben
evitar siempre que sea posible.
 Un valor nulo indica “Valor desconocido o no existente”
 Cualquier operación aritmética que incluya valores nulos debe devolver
un valor nulo.
 Cualquier comparación (<, >, >=, <= y ≠) que incluya un valor nulo tiene
como resultado el valor especial desconocido.
 Tres valores lógicos utilizando el valor lógico desconocido:

OR: (desconocido or true)
= true,
(desconocido or false)
= desconocido
(desconocido or desconocido) = desconocido

AND: (true and desconocido)
= desconocido,
(false and desconocido)
= false,
(desconocido and desconocido) = desconocido

NOT: (not desconocido) = desconocido
Modificación de la base de datos
 El contenido de la base de datos puede ser modificada utilizando
las siguientes operaciones:

Eliminar

Insertar

Actualizar
 Las modificaciones de la base de datos se expresan mediante la
operación de asignación.
Eliminar
 Las solicitudes de borrado se expresan básicamente igual que
las consultas. Sin embargo, en lugar de mostrar las tuplas al
usuario, se eliminan de la base de datos las tuplas
seleccionadas.
 Solo se pueden eliminar tuplas enteras; no se pueden borrar
valores de atributos concretos.
 En el algebra relacional los borrados se expresan mediante:
rr–E
donde r es una relación y E es una consulta del algebra
relacional.
Ejemplo de eliminación
 Eliminar todas las cuentas de la sucursal Perryridge.
cuenta cuenta – nombre_sucursal = “Perryridge” (cuenta )
 Eliminar todos los prestamos con importe entre rango de 0 a 50
prestamo  prestamo –  importe 0 and importe  50 (prestamo)
 Eliminar todas las cuentas de las sucursales localizadas en Needham.
r1   ciudad_sucursal = “Needham” (cuenta
sucursal )
r2   numero_cuenta, nombre_sucursal, saldo (r1)
r3   nombre_cliente, numero_cuenta (r2
cuenta  cuenta – r2
impositor  impositor – r3
impositor)
Inserción
 Para insertar datos en una relación hay que especificar la tupla que se
va a insertar o escribir una consulta cuyo resultado sea el conjunto de
tuplas que se va a insertar
 El algebra relacional expresa la inserción mediante:
r r  E
donde r es una relación y E es una expresión del algebra relacional.
 La inserción de una única tupla se expresa haciendo que E sea una
relación constante que contiene una tupla.
Ejemplos de Inserción
 Insertar información en la base de datos especificando que Smith
tiene $1200 en la cuenta A-973 de la sucursal de Perryridge.
cuenta  cuenta  {(“A-973”, “Perryridge”, 1200)}
impositor  impositor  {(“Smith”, “A-973”)}
Actualización
 Cambiar los valores de una tupla
 Podemos utilizar la siguiente expresión
r   F1,F2 ,,Fl , (r )
 Cada Fi es cualquier

Es el i-ésimo atributo de r, en el caso de que este atributo no se
vaya a actualizar o; en caso contrario, una expresión sólo con
constantes y atributos de r que proporcionen el nuevo valor el
atributo
Ejemplos de actualización
 Hacer los pagos de intereses mediante el aumento de todos los saldos en
un 5 por ciento.
cuenta   numero_cuenta, nombre_sucursal, saldo * 1.05 (cuenta)
Fin del capitulo 2
Descargar