Está en la página 1de 20

BREVE HISTORIA DEL MODELO RELACIONAL

Fue propuesto por E.F. Codd en el paper (1970). Este paper es


hoy aceptado como directriz en los sistemas de bases de datos.
Los objetivos principales de este modelo son los siguientes:
•Permitir un alto grado de independencia de los datos
•Proveer bases substanciales para tratar con datos semánticos,
consistencia y problemas de redundancia.
•Permitir la expansión a lenguajes de manipulación orientados a
los datos.
Los sistemas comerciales basados en el modelo relacional
comenzaron a finales de los 70.

1
TERMINOLOGIA
El MR se basa principalmente en el concepto matemático
de una relación, la cual es representado físicamente como
una tabla.
•Estructura del modelo relacional
Relación es una tabla con filas y columnas
Atributos: es una columna de una relación.
Una relación se representa como una tabla bidimensional
en la cual las filas de la tabla corresponden a registros y las
columnas de la tabla corresponden a atributos.
Dominio : es el conjunto de valores permitidos para uno o
mas atributos.
Tupla : Una tupla es una fila de la relación 2
Grado : Es el número de atributos que contiene.
Designación : binaria, ternaria, n-aria
Cardinalidad : Es el numero de tuplas que contiene
Base de Datos Relacional : Una colección de relaciones
normalizadas

Terminología alternativa
•Relación : archivo (file)
•Tuplas : registros (records)
•Atributos: campos (fields)

3
CLAVES
Superclave : Un atributo o conjunto de atributos que
identifican unívocamente una tupla en una relación
Clave Candidata : Una superclave cuyos subconjuntos
propios no son superclave. La clave candidata tiene 2
propiedades:
•Unicidad
•Irreductibilidad
Clave primaria : Una Clave candidata que es
seleccionada.
Clave Foránea: Un atributo o un conjunto de atributos
dentro de una relación que corresponden a la clave primaria
dentro de otra relación.
4
Integridad Relacional
Nulos : Representa un valor para un atributo que
actualmente se desconoce o no es aplicable para esta tupla
Integridad de entidad : En una relación , los atributos de
una clave primaria no pueden ser nulos.
Integridad Referencial
Se aplica a las claves foráneas
Si una relación tiene una clave foránea, esta debe
corresponder al valor de la clave primaria de alguna tupla
en su relación “home”.
Reglas de Negocios
Son reglas adicionales especificado por los usuarios o
administradores de una base datos. 5
ALGEBRA RELACIONAL
Es un lenguaje teórico con operaciones que trabajan con
una o dos relaciones para definir otra relación, sin
cambiar las relaciones originales.
Operaciones Fundamentales :
• Selección
• Proyección
• Producto cartesiano
• Unión
• Diferencia de conjuntos
Además está el Join, Intersección y División que pueden
ser expresadas en términos de las otras 5 operaciones
básicas.
6
Producto Cartesiano
Selección Proyección
R S Rx S

a 1 a 1
b 2 = a 2
3 a 3
b 1
b 2
Diferencia de b 3
Unión Intersección conjuntos

7
OPERACIÓN DE SELECCION
 predicado (R )

Trabaja sobre una relación R y define una relación que


contiene solamente aquellas tuplas de R que satisfacen
la condición especificada (predicado).
Se permiten =, , >, , <, ,  (Y) y  (O).
Ejemplo : Encontrar las tuplas cuya sucursal sea
Vitacura y el préstamo sea mayor o igual a 500.000

no sucursal "Vitacura "  monto  500.000 (Pr estamo)


m

8
OPERACIÓN DE PROYECCIÓN col1,....,co ln ( R)
Trabaja sobre una relación y define una relación que
contiene un subconjunto vertical de R, obteniendo los valores
de los atributos especificados y eliminando duplicados.
Ejemplo: mostrar una lista de todos los empleados, mostrando
nom-sucursal, Nombre y Sueldo.

nomsuc,nombre,sueldo(empleado)
Composición de Relaciones
Las operaciones del álgebra relacional pueden componerse para
formar una expresión del álgebra relacional. Se vera más adelante
operaciones que son composición de otras.
Ejemplos : obtener el nombre de los clientes que viven en la ciudad de 9

Santiago??
UNIÓN R  S
La unión de las relaciones R y S, con tuplas I y J
respectivamente, se obtiene concatenándolos en una relación
con un máximo de (I+J) tuplas, eliminando las tuplas
duplicadas. R y S deben ser compatible para la unión.

Para que una operación de unión sea válida se deben cumplir dos
condiciones :
•Las relaciones R y S deben tener el mismo número de atributos
•Los dominios de los atributos i-ésimos de R y S, deben ser los
mismos para todo i.
Ejemplo : obtener el nombre de los clientes que tienen una cuenta o
un préstamo (suponer existen las relaciones Cuentas y prestamos)

?
10
DIFERENCIA DE CONJUNTOS R-S
Es una relación que consta de las tuplas que están en la relación R, pero
no están en S. S y R deben ser compatibles para la unión
Ejemplo : Seleccionar todos los clientes que tengan cuenta en el banco,
pero que no hayan pedido préstamos.
 nom  cliente
( Cuentas )   nom  cliente (Pr estamos )

PRODUCTO CARTESIANO R X S
Define una relación que es la concatenación de cada tupla de la relación R
con cada tupla de la relación S.
Obtiene todos los posibles pares de tuplas de dos relaciones. Así, si una
relación tiene I tuplas y N atributos y la otra relación tiene J tuplas y M
atributos, entonces la relación obtenida tendrá (I*J) tuplas con (N + M)
atributos.
Si dos relaciones tienen atributos con el mismo nombre, se coloca como
prefijo el nombre de la relación, para mantener la unicidad. 11
Listar todos los nombres y comentarios de los
arrendatarios que visitaron una propiedad
cod arr,nombre( Arrendatario) X cod arr,cod prop, comentario( Visita)
Obtendríamos la siguiente relación
Cod-arr Nombre Cod-arr Cod- Comentario
prop
CR56 XXX CR56 PA14 Demasiado pequeña
CR56 XXX CR62 PG4 Lejana
CR56 XXX CR76 PG4
CR62 YYY CR56 PA14 Sin cocina separada
CR62 YYY CR62 PG36
CR62 YYY CR76 PG4 Demasiado lejos
CR62 YYY CR62 PA14

¿ Cuál es el problema en esta relación ? 12


Hay más información de la requerida. Luego, necesitamos
sólo obtener aquellas tuplas donde
Arrendatario.cod-arr = Visita.cod-arr
Así la operación completa queda:
 Arrendatario.cod  arr Visita .cod  arr
( cod  arr , nombre ( Arr )) X ( cod  arr , cod  prop , comentario (Visita )))

Cod-arr Nombre Cod-arr Cod- Comentario


prop
CR56 XXX CR56 PA14 Demasiado pequeña
CR62 YYY CR62 PG36
CR62 YYY CR62 PA14

13
OTRAS OPERACIONES
Las operaciones fundamentales son suficientes para expresar
cualquier consulta del álgebra relacional. Sin embargo
algunas consultas pueden resultar expresiones muy
complejas.
Por tanto, se definen otra operaciones que no añaden
potencia al álgebra, pero que simplifican las operaciones
habituales.
INTERSECCION R S
Consta de el conjunto de tuplas que están en R y en S.
R y S deben ser compatibles para la unión.
Podemos expresarla en términos de diferencia de conjuntos:
R S = R - (R–S)
Ejemplo : Encontrar el nombre de los clientes que tienen 14

cuenta, y que tienen un préstamo en el banco


OPERACIONES DE REUNIÓN (JOIN)
Es equivalente a ejecutar una selección, usando el
predicado del join como la fórmula de selección, sobre el
producto cartesiano de dos relaciones.
Es uno de las operaciones mas difíciles de implementar en
un DBMS relacional.
Hay varias formas de operación de reunión, algunas de las
mas importantes:

•Reunión natural
•Outer-reunión

15
Reunion Natural
Es una equi-reunion sobre dos relaciones R y S, con
atributos comunes x. Cada ocurrencia de atributos comunes
es eliminada.
Ejemplo :listar todos los nombres y comentarios de los
arrendatarios que han visitado una propiedad.

(cod  arr ,nombre ( Arrendatar io)  (cod  arr ,cod  prop ,comentario (Visita ))

Cod-arr Nombre Cod- Comentario


prop
CR56 XXX PA14 Demasiado pequeña
CR62 YYY PG36
CR62 YYY PA14
16
Outer-join - Reunión Externa R S

El (left) outer-join es una reunión en el cual las tuplas de R no


tienen valores calzantes en las columnas comunes de S también se
incluyen en la relación resultante.
Los valores faltantes en la segunda relación se establecen a nulos.
La ventaja del outer-join es que preserva la información de
aquellas tuplas que tienen valores perdidos.
Ejemplo: producir un informe de las visitas a las propiedades
(incluyendo las no visitadas).

 cod  prop , calle, ciudad (Pr op  Re nta ) Visita

17
La relación resultante queda :
Cod- Calle Ciudad Cod- Fecha Comentario
prop arr
PA14 Xxx Santiago CR56 24-03-00 Muy pequeña
PA14 Xxx Santiago CR56 14-03-00 Sin cocina separada
PL94 YYY Pto. Montt null null null
PG4 Zzz Arica Cr76 20-03-00 Demasiado lejos
PG4 Zzz Arica Cr56 28-07-00

Este es un Left outer join que contiene cada tupla del lado
izquierdo de la relación. También hay right outer join y
full outer join.

18
Operación de División
Se asume que la relación R está definida sobre el conjunto de
atributos A y la relación S es definida sobre el conjunto de
atributos B, talque B  A. Sea C=A-B.
R : S La operación división define una relación sobre los
atributos C, que consiste del conjunto de tuplas de R que
coinciden con cada tupla en S
Puede ser expresada en términos de las operaciones básicas:
T1 = ∏c(R )
T2 = ∏c(( S x T1) – R)
T = T1 – T2
19
Ejemplo : Encontrar todos los clientes(arrendatarios) que
han visitado todas las propiedades con 3 habitaciones

(∏nro_arr,nro_prop(Visita)) : (∏nro_prop( (
nro_hab=3(Propiedad) ))

Nro_a Nro_prop Nro_Prop Nro_arr


rr PG4 CR56
CR56 PA14 PG36
CR76 PG4
CR56 PG4
CR62 PA14
CR56 PG36

20

También podría gustarte