Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Bases Datos RElacionales
Bases Datos RElacionales
3.1
Relacin Cliente
nombre-cliente
direccin-cliente
3.3
ciudad-cliente
Atributos
Cada atributo de una relacin tiene un nombre
El conjunto de todos los valores posibles para un determinado
3.4
subconjunto de D1 x D2 x x Dn
Esto es, una relacin es un subconjunto de n-tuples (a1, a2, , an)
donde cada ai Di
Ejemplo: si
3.5
nombre-cliente
customer-name Direccion-cliente
customer-street
Jones
Smith
Curry
Lindsay
Main
North
North
Park
cliente
3.7
Ciudad-cliente
customer-city
Harrison
Rye
Rye
Pittsfield
atributos
(o columnas)
tupla
(o filas)
Numero-cuenta
Sucursal-cuenta
3.8
Saldo-cuenta
lgebra Relacional
apuntar operadores
Lenguaje no procedural
Seis operaciones bsicas
seleccionar
proyectar
unir
diferencia (de conjuntos)
Producto cartesiano
renombrar
Los operadores toman una o ms relaciones como entrada y
3.12
12
23 10
23 10
3.13
Operador Seleccin
Notacin:
p(r)
<atributo> o <constante>
op
nombre-sucursal=Perryridge(cuenta)
3.14
A,C (r)
10
20
30
40
3.15
Operador Proyeccin
Notacin:
columnas no enumeradas
3.16
r s:
3
3.17
Operador Unin
Notacin: r s
Definido como:
r s = {t | t r or t s}
Para que r s este definido.
cuenta.
nombre-cliente (cliente-cuenta) nombre-cliente (clienteprestamo)
3.18
r s:
3.19
r s = {t | t r and t s}
El operador necesita que las relaciones s y r sean compatibles
3.20
10
10
20
10
a
a
b
b
r x s:
A
1
1
1
1
2
2
2
2
10
10
20
10
10
10
20
10
a
a
b
b
a
a
b
b
3.21
r x s = {t q | t r and q s}
3.22
Composicin de Operadores
Se pueden construir expresiones concatenando operadores
Por ejemplo: A=C(r x s)
rxs
A=C(r x s)
1
1
1
1
2
2
2
2
10
10
20
10
10
10
20
10
a
a
b
b
a
a
b
b
1
2
2
10
20
20
a
a
b
3.23
Operador Renombramiento
Permite nombrar (y referirse con este nuevo nombre) al
Ejemplo:
x (E)
Devuelve la expresin E bajo el nombre X
3.24
Ejemplo Banco
copiar
3.26
Ejemplos de Preguntas
Encontrar todos los prestamos de ms de 1200
3.28
Ms ejemplos
Cules son los nombres de los clientes que tiene un prstamo,
3.29
Ms ejemplos
Encontrar los nombres de todos los clientes que tienen un prstamo en
la sucursal Perryridge.
prestamo x prestamo)))
Ms Ejemplos
Nombre de todos los clientes que tienen un prstamo en la sucursal
Perryridge.
solucin 1
nombre-cliente(nombre-sucursal = Perryridge (
cliente-prestamo.numero-prestamo = prestamo.numero-prestamo
(cliente-prestamo x prestamo)))
solucin 2
cliente-nombre(prestamo.numero-prestamo =
c-prestamo.numero-prestamo (
(nombre-sucursal = Perryridge(prestamo)) x
cliente-prestamo))
3.31
todava ms
Encuentra el mayor saldo (para cualquier cuenta)
Renombra la relacin cuenta como d
entonces:
3.32
Operaciones adicionales
copy
3.33
1
2
1
2
3
r
rs
3.34
Interseccin de conjuntos
Notacin: r s
Definido como:
r s ={ t | t r and t s }
Se asume que los atributos de s y r son compatibles.
Nota: r s = r - (r - s)
3.35
1
2
4
1
2
a
a
b
a
b
1
3
1
2
3
a
a
a
b
b
s
A
1
1
1
1
2
a
a
a
a
b
3.36
Producto Natural
Notacin: r
Ejemplo:
R = (A, B, C, D)
S = (E, B, D)
s se define como:
r.A, r.B, r.C, r.D, s.E (r.B = s.B r.D = s.D (r x s))
3.37
Producto Natural
Se utiliza para simplificar consultas que requieren el producto
cartesiano.
seleccin.
3.38
Operacin Divisin
rs
Adecuada para preguntas que incluyan la fase para todos.
Sean las relaciones r y s con esquemas R y S respectivamente
donde
r s = { t | t R-S(r) u s ( tu r ) }
3.39
r s:
1
2
3
1
1
1
3
4
6
1
2
1
2
s
3.40
r s:
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
a
a
3.41
Operacin Asignacin
El operador asignacin () permite fragmentar las
consultas.
3.43
Ejemplos
Clientes que tienen una cuenta en (por lo menos) las sucursales
Downtown y Uptown.
Solucin 1
NC(NS=Downtown(cliente-cuenta
NC(NS=Uptown(cliente-cuenta
cuenta))
cuenta))
3.44
Ms Consultas
Clientes con cuentas en todas las sucursales de la ciudad de
Brooklyn.
cuenta)
3.45
3.46
Projeccin generalizada
Extiende la operacin proyeccin permitiendo el uso de
3.47
G1, G2, , Gn
3.48
g sum(c) (r)
10
sum-C
27
3.49
Perryridge
Perryridge
Brighton
Brighton
Redwood
Nombre-sucursal
sum(saldo)
Numero-cuenta
saldo
A-102
A-201
A-217
A-215
A-222
400
900
750
750
700
(cuenta)
Nombre-sucursal
XXXX
Perryridge
Brighton
Redwood
1300
1500
700
3.50
3.51
Valores Nulos
El valor de una tupla puede ser nulo para alguno de sus
NULL
3.56
Valores Nulos
La comparacin con NULL devuelve el valor UNKNOWN que
3.57
asignacin.
3.58
Eliminacin
Solo se pueden eliminar tuplas enteras (no los valores de
rrE
donde r es una relacin y E una consulta del lgebra relacional.
3.59
Ejemplos de eliminacin
Eliminar todas las cuentas de la sucursal Perryridge.
(varias relaciones)
sucursal)
cliente-cuenta)
cuenta cuenta r2
cuenta_cliente cuenta_cliente r3
3.60
Insercin
La insercin se expresa como:
r r E
donde r es una relacin y E es una expresin de lgebra
relacional.
La insercin de un nica tupla se consigue haciendo E igual a
3.61
Ejemplos de insercin
Inserte informacin en la base de datos especificando que Smith tiene
prestamo))
(nombre_cliente,numero_prestamo)
(r1)
r3 (nombre_cliente,numero_cuenta) (r2)
cliente-cuenta cliente-cuenta r3
r4
(numero_cuenta)
r3
r5 r4 x Perryridgex200
r6 (numero_cuenta,nombre_sucursal,saldo) r5
cuenta cuenta r6
3.63
prestamo)
Actualizacin
Um mecanismo para cambiar un/os valor/es de una tupla sin
3.64
Ejemplos de Actualizacin
Abono intereses incrementando el saldo de todas las cuentas en un
5 por ciento
cuenta NC, NS, SAL * 1.05 (cuenta)
3.65
Vistas
En algunos caso no es deseable que un usuario vea (o tenga
prestamo)
3.66
la sintaxis siguiente:
Definir la vista solo almacena una expresin que ser utilizada cada
vez que se hagan consultas usando la vista.
3.67
Ejemplos de vistas
Considerese la vista (que llamaremos todos-clientes)
cuenta)
3.68
Puesto que una vista puede ser usada donde usariamos una relacin se
podra escribir:
3.69
(todos-clientes def
3.70
END
3.71
Ejemplos
3.72