Está en la página 1de 37

UNIDAD 3.

MODELO RELACIONAL

Objetivo
Introducir los lenguajes conceptuales de
las bases de datos relacionales,
creados a partir de fundamentos
matemáticos.
1. LAS BASES DE DATOS
RELACIONALES
Una base de datos relacional muestra las
tablas en forma de filas y columnas
ciudad (nro_ciudad nom_ciudad)
a1 La Paz
a5 Santa Cruz
a6 Tarija
a9 Potosí
Dominio.- Es el conjunto de todos los
valores permitidos que una columna puede
tomar. Se tiene D1,D2,...,Dn, si tenemos n
columnas.
1. LAS BASES DE DATOS
RELACIONALES
Tupla.- Cada una de las filas de una tabla
se compone de n elementos (v1,v2,..,vn)
En matemáticas este conjunto ordenado de
elementos se llama tupla.
Producto cartesiano.- De lo anterior se
tiene v1 D1, v2 D2, ... , vn Dn, porque
cada elemento está en el dominio respectivo.
En matemáticas podemos decir que la tupla
es un elemento del producto cartesiano de
los dominios:
(v1,v2,....,vn) (D1xD2x.....xDn) =Xi=1,n(Di)
1. LAS BASES DE DATOS
RELACIONALES
Relación.- Por tanto, la tabla es un
subconjunto del producto cartesiano de
dominios, en otras palabra, por definición
matemática, es una relación.
Es por esto que en el álgebra relacional se
denomina relación a una tabla y tupla a un
fila de tabla.
2. EL ÁLGEBRA RELACIONAL

Se define el álgebra relacional como un


lenguaje para bases de datos relacionales de
tipo procedural. Operadores:
seleccionar  unario
proyectar  unario
producto cartesiano x binario
renombrar  unario
unión  binario
diferencia - binario
Estos son los 6 operadores fundamentales
del álgebra relacional para generar consultas
2. EL ÁLGEBRA RELACIONAL
SELECCIONAR, , UNARIO

 Permite recuperar un subconjunto de tuplas de una


relación.
2. EL ÁLGEBRA RELACIONAL
SELECCIONAR, , UNARIO

préstamo (nom_suc nro_pres importe)


CAÑOTO 144 1500
BOLIVAR 122 1200
JUNIN 125 1800
BOQUERON 188 1500
JUNIN 132 1600
BOLIVAR 177 1550

Ej.1.- “Los préstamos de la sucursal JUNIN” :


 nom_suc=„JUNIN‟ (préstamo)
JUNIN 125 1800
JUNIN 132 1600

Operadores relacionales: =, , >, <, <=, >=


Operadores lógicos: , 
2. EL ÁLGEBRA RELACIONAL
SELECCIONAR, , UNARIO

préstamo (nom_suc nro_pres importe)


CAÑOTO 144 1500
BOLIVAR 122 1200
JUNIN 125 1800
BOQUERON 188 1500
JUNIN 132 1600
BOLIVAR 177 1550

Ej.2.- “Los préstamos de la sucursal JUNIN,


con importe mayor a 1650” :
 nom_suc=„JUNIN‟  importe>1650 (préstamo)
JUNIN 125 1800
2. EL ÁLGEBRA RELACIONAL
SELECCIONAR, , UNARIO

resp_presta (nom_clien nom_emple nro_pres)


SUCHA RAMONA 134
MARCO JAIME 122
RUBÉN RUBÉN 178

Ej.3.- “Los clientes que tienen el mismo nombre que


su oficial de créditos” :
 nom_clien = nom_emple (resp_presta)

RUBÉN RUBÉN 178


2. EL ÁLGEBRA RELACIONAL
PROYECTAR, , UNARIO

 Permite recuperar un subconjunto de columnas de una


relación.
2. EL ÁLGEBRA RELACIONAL
PROYECTAR, , UNARIO

préstamo (nom_suc nro_pres importe)


CAÑOTO 144 1500
BOLIVAR 122 1200
JUNIN 125 1800
BOQUERON 188 1500
JUNIN 132 1600
BOLIVAR 177 1550

Ej.4.- “Seleccionar los clientes con préstamos mayores


a 1500, y la sucursal donde sacaron el préstamo” :
 nro_pres, importe ( importe>1500 (préstamo))
125 1800
132 1600
177 1550
2. EL ÁLGEBRA RELACIONAL
PROYECTAR, , UNARIO

resp_presta (nom_clien nom_emple nro_pres)


SUCHA RAMONA 134
MARCO JAIME 122
RUBÉN RUBÉN 178

Ej.5.- “Los clientes que tienen el mismo nombre que


su oficial de créditos, sin repetir el nombre” :
 nom_clien ( nom_clien = nom_emple (resp_presta))

RUBÉN
2. EL ÁLGEBRA RELACIONAL PRODUCTO
CARTESIANO, X, BINARIO

 Opera sobre dos relaciones r,s. Permite combinar cada


un de las tuplas de r con cada una de las tuplas de s.
 Si r tiene n columnas y s tiene m columnas r x s tiene
n+m columnas.
2. EL ÁLGEBRA RELACIONAL
PRODUCTO CARTESIANO, X, BINARIO
cliente resp_presta
(nom_clien calle ciudad) (nom_clien nom_emple nro_pres)
MARCO calle5 La Paz SUCHA RAMONA 134
RUBÉN calle12 Potosí MARCO JAIME 122
RUBÉN RUBÉN 178

Ej.6.- “Los clientes que tienen oficial y la ciudad


donde radican”. cliente x resp_presta:
cliente. resp_presta.
nom_clien calle ciudad nom_clien nom_emple
MARCO calle5 La Paz SUCHA RAMONA 134
MARCO calle5 La Paz MARCO JAIME 122
MARCO calle5 La Paz RUBÉN RUBÉN 178
RUBÉN calle12 Potosí SUCHA RAMONA 134
RUBÉN calle12 Potosí MARCO JAIME 122
RUBÉN calle12 Potosí RUBÉN RUBÉN 178
2. EL ÁLGEBRA RELACIONAL
PRODUCTO CARTESIANO, X, BINARIO

cliente x resp_presta :
cliente. resp_presta.
nom_clien calle ciudad nom_clien nom_emple nro_pres
MARCO calle5 La Paz SUCHA RAMONA 134
MARCO calle5 La Paz MARCO JAIME 122
MARCO calle5 La Paz RUBÉN RUBÉN 178
RUBÉN calle12 Potosí SUCHA RAMONA 134
RUBÉN calle12 Potosí MARCO JAIME 122
RUBÉN calle12 Potosí RUBÉN RUBÉN 178

 resp_presta.nom_clien=cliente.nom_clien ( cliente x resp_presta)


cliente. atiende.
nom_clien calle ciudad nom_clien nom_emple nro_pres
MARCO calle5 La Paz MARCO JAIME 122
RUBÉN calle12 Potosí RUBÉN RUBÉN 178
2. EL ÁLGEBRA RELACIONAL
PRODUCTO CARTESIANO, X, BINARIO

 resp_presta.nom_clien=cliente.nom_clien ( cliente x resp_presta)

cliente. resp_préstamo.
nom_clien calle ciudad nom_clien nom_emple nro_pres
MARCO calle5 La Paz MARCO JAIME 122
RUBÉN calle12 Potosí RUBÉN RUBÉN 178

 cliente.nom_clien, ciudad, nom_emple (


 resp_presta.nom_clien=cliente.nom_clien ( cliente x resp_presta))
cliente.
nom_clien ciudad nom_emple
MARCO La Paz JAIME
RUBÉN Potosí RUBÉN
2. EL ÁLGEBRA RELACIONAL
RENOMBRAR, , UNARIO

 Permite cambiar el nombre de una una relación. Se usa


normalmente cuando se usa dos veces una relación en
una consulta, permite diferenciar los nombres de las
columnas, que de otra forma serían idénticos.
2. EL ÁLGEBRA RELACIONAL
RENOMBRAR, , UNARIO

 Permite cambiar el nombre de la relación,


para diferenciar atributos del mismo
nombre.
cliente resp_presta
(nom_clien calle ciudad) (nom_clien nom_emple nro_pres)
SUCHA calle5 Sta. Cruz SUCHA RAMONA 134
RUBÉN calle12 Potosí MARCO JAIME 122
RAMONA calle8 Tarija RUBÉN RUBÉN 178
RENATO calle1 Potosí

 cl.nom_clien=re.nom_clien (cl (cliente) x re(resp_presta))


cliente. atiende.
nom_clien calle ciudad nom_clien nom_emple nro_pres
MARCO calle5 La Paz MARCO JAIME 122
RUBÉN calle12 Potosí RUBÉN RUBÉN 178
2. EL ÁLGEBRA RELACIONAL UNION, ,
BINARIO

 Permite recuperar los atributos de la primera relación r


más los atributos de la segunda relación s. La unión solo
es posible cuando r y s cumplen las siguientes dos
condiciones:
1 r y s tienen la misma cantidad de atributos.
2 Los atributos que se corresponden en r y s tienen los
mismos dominios.
2. EL ÁLGEBRA RELACIONAL
UNION, , BINARIO

prestatario (nro_pres nom_clien)


144 MARCO
125 SUCHA

impositor (nro_cuen nom_clien)


174 MARCO
182 RUBEN

Ej.7.- “Los clientes que tienen préstamo o depósito”


 nom_clien (prestatario)   nom_clien (impositor)

nom_suc
MARCO
SUCHA
RUBEN
2. EL ÁLGEBRA RELACIONAL DIFERENCIA,
-, BINARIO

 Permite recuperar los atributos de la primera relación r


que no están en la segunda relación s. La diferencia solo
es posible cuando r y s cumplen las siguientes dos
condiciones:
1 r y s tienen la misma cantidad de atributos.
2 Los atributos que se corresponden en r y s tienen los
mismos dominios.
2. EL ÁLGEBRA RELACIONAL
DIFERENCIA, -, BINARIO

prestatario (nro_pres nom_clien)


144 MARCO
125 SUCHA

impositor (nro_cuen nom_clien)


174 MARCO
182 RUBEN

Ej.7.- “Los clientes que tienen préstamo pero no


tienen depósito”
 nom_clien (prestatario) -  nom_clien (impositor)

nom_suc
SUCHA
2. EL ÁLGEBRA RELACIONAL
COMPLETITUD
Es posible demostrar matemáticamente
que se puede obtener cualquier consulta con
los 6 operadores fundamentales que vimos:
seleccionar  unario
proyectar  unario
producto cartesiano x binario
renombrar  unario
unión  binario
diferencia - binario
Cualquier otro lenguaje es “completo” si
puede ejecutar estas 6 operaciones.
2. EL ÁLGEBRA RELACIONAL
OPERADORES ADICIONALES
En el álgebra relacional se definen los
operadores adicionales:
intersección  binario
producto natural  binario
división  binario
todos estos operadores pueden ser
expresados mediante los 6 fundamentales.
Son necesarios solo para simplificar la
escritura de algunas consultas.
2. EL ÁLGEBRA RELACIONAL
INTERSECCIÓN, , BINARIO
Permite recuperar los atributos de la primera relación r que
también están en la segunda relación s. La intersección solo
es posible cuando r y s cumplen las siguientes mismas dos
condiciones.
Equivalencia.-
rs=r-(r-s)
2. EL ÁLGEBRA RELACIONAL
INTERSECCIÓN, , BINARIO
prestatario (nro_pres nom_clien)
144 MARCO
125 SUCHA

impositor (nro_cuen nom_clien)


174 MARCO
182 RUBEN

Ej.7.- “Los clientes que tienen préstamo y depósito”


 nom_clien (prestatario)   nom_clien (impositor)

nom_suc
MARCO
2. EL ÁLGEBRA RELACIONAL
Producto natural, , BINARIO
El producto natural es un producto cartesiano mas la
condición de que los valores de los atributos comunes deben
ser los mismos.
Equivalencia.-
Sea r,s relaciones y R,S sus esquemas o listas de atributos:
r  s =  R  S ( r.A1=s.A1 ....  r.An=s.An(r x s))
donde: R  S = {A1, A2, ....,An}
2. EL ÁLGEBRA RELACIONAL
Producto natural, , BINARIO
cliente resp_presta
(nom_clien calle ciudad) (nom_clien nom_emple nro_pres)
MARCO calle5 La Paz SUCHA RAMONA 134
RUBÉN calle12 Potosí MARCO JAIME 122
RUBÉN RUBÉN 178

Ej.6.- “Los clientes que tienen oficial y la ciudad


donde radican”. cliente  resp_presta:
nom_clien calle ciudad nom_emple nro_pres
MARCO calle5 La Paz JAIME 122
RUBÉN calle12 Potosí RUBÉN 178

 nom_clien, ciudad (cliente  resp_presta)


MARCO La Paz
RUBÉN Potosí
2. EL ÁLGEBRA RELACIONAL
División, , BINARIO
La división entre r y s, de esquemas R y S, requiere que SR.
La división da algunas tuplas de r proyectadas sobre R-S,
aquellas que en su proyección sobre S tienen todas las tuplas
de la relación s.
Equivalencia.-
r  s =  R-S ( r ) -  R-S (( R-S ( r ) x s) - r)
2. EL ÁLGEBRA RELACIONAL
División, , BINARIO
Definición formal.- Dadas r,s relaciones y R,S sus esquemas.
Una tupla t está en la división si:
t está en  R-S ( r )
para cada tupla ts de s hay una tupla tr de r que cumple las
condiciones:
a) tr[S] = ts[S]
b) t = tr[R-S]
2. EL ÁLGEBRA RELACIONAL
División, , BINARIO

r s rs
(A B C D) (C D) (A B)
a b c d c d a b
a b e f e f e d
b c e f
e d c d
e d e f
a b d e
2. EL ÁLGEBRA RELACIONAL
División, , BINARIO, presprespréstamoprestatario
prespres sucursal
(nom_suc nro_pr nom_clien importe) (nom_suc ciudad)
CAÑOTO 144 MARCO 1500 CAÑOTO LPZ
BOLIVAR 122 RUBEN 1200 BOLIVAR SCZ
JUNIN 125 RUBEN 1800 BOQUERON LPZ
BOQUERON 188 RUBEN 1500 JUNIN SCZ
JUNIN 132 PLATINI 1600 BOLIVAR CBBA
BOLIVAR 177 PLATINI 1550

Los clientes que tienen préstamo en todas las sucursales de SCZ


 nom_clien, nom_suc ( préstamo ) 
 nom_suc ( ciudad=„SCZ‟ ( sucursal)) RUBEN
PLATINI
5. OPERACIONES DEL ALGEBRA
RELACIONAL EXTENDIDA

 Reunión externa.- Cuando hacemos producto


natural, las tuplas de una tabla que no se
combinan con tuplas de la otra tabla no
aparecen en la relación resultante.
1 r  s, en el producto natural mantiene las
tuplas de r que no se combinan.
2 r  s, en el producto natural mantiene las
tuplas de s que no se combinan.
3 r  s, en el producto natural mantiene las
tuplas de r y s que no se combinan.
5. OPERACIONES DEL ALGEBRA
RELACIONAL EXTENDIDA

 Funciones de agregación.- se puede usar las


funciones agregadas: sum, avg, max, min,
count, count_distinct, etc. Se usan así:
sum importe (préstamo)
suma todos los importes de la relación
préstamo.
 Agrupación.- Saca los resultados agrupando
por los atributos indicados. La forma es:
nom_suc Gsum importe (préstamo)
suma los préstamos de cada sucursal.
6. MODIFICACIÓN DE LA BASE DE
DATOS

 Hasta ahora todos los programas se han


centrado en extraer información. Es
necesario además, insertar, borrar y
modificar información en la base de datos.
 Borrado.- Permite eliminar tuplas de la base
de datos. Se expresa así:
rr-E
donde r es una relación y E es una consulta
del álgebra relacional, que obtiene las tuplas
que se eliminarán de r.
6. MODIFICACIÓN DE LA BASE DE
DATOS

 Inserción.- Permite aumentar una o varias


tuplas en la base de datos. Se usa:
rrE
donde r es una relación y E es un consulta
del álgebra relacional o una tupla a insertar.
 Actualización.- Permite modificar uno o
varios valores de la base de datos. Se puede
usar la proyección extendida:
r   F1,F2,....,Fn (r) . Por ejemplo, aumentar 5%
a todas las cuentas de depósito=r:
r   nom_suc, nro_cue, saldosaldo*1.05 (r)
7. VISTAS

 create view v como E; donde E es una


consulta del álgebra relacional, y v es el
nombre de la vista.

También podría gustarte