Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
El Modelo Relacional
Bases de Datos
Universidad Alfonso X El Sabio
Contenido
1. Introduccin al Modelo Relacional.
2. Parte esttica del Modelo Relacional.
3. Transformacin del Modelo E/R al Modelo
Relacional.
4. Parte dinmica del Modelo Relacional:
Algebra Relacional.
5. Ejemplos de diagramas relacionales.
Bases de Datos
Universidad Alfonso X El Sabio
1. Introduccin.
Bases de Datos
Universidad Alfonso X El Sabio
1. Introduccin.
El modelo relacional es el modelo lgico que adoptan gran cantidad de SGBD
(denominados en ingls RDBMS) y que consiste en la utilizacin del concepto
matemtico de relacin (relation) como elemento lgico para la
representacin de la informacin.
Estas relaciones toman la forma de tablas de manera que la informacin se
gestiona en trminos de filas y columnas
As pues, el modelo relacional permite realizar el diseo de una base de
datos desde el punto de vista del modelo lgico del SGBD que
posteriormente la implementar.
Aunque sera posible realizar el diseo relacional directamente a partir de las
condiciones del problema, se seguir la metodologa presentada en el
captulo anterior que establece su obtencin a partir del diagrama E/R.
Existe un conjunto tipificado de reglas para pasar del modelo E/R al modelo
relacional. Antes de estudiarlas veremos algunos conceptos tericos
relacionados con el modelo relacional.
Bases de Datos
Universidad Alfonso X El Sabio
1. Introduccin.
El modelo relacional fue propuesto por E. F. Codd a finales de los
aos 60 en un artculo denominado A Relational Model for Large
Shared Data Banks y se basa en la teora matemtica de las
relaciones.
Persigue los siguientes objetivos:
Independencia fsica: El modo en que se almacenan los
datos no influye en su manipulacin lgica.
Independencia lgica: Las modificaciones en los
elementos de la BD no deben repercutir en los programas
y/o usuarios que acceden a las vistas.
Flexibilidad: Ofrecer a cada usuario lo que le interesa.
Uniformidad: En las estructuras de datos (todas son
relaciones) lo que facilita su utilizacin.
Sencillez: Facilidad de comprensin y utilizacin.
Bases de Datos
Universidad Alfonso X El Sabio
1. Introduccin.
Bases de Datos
Universidad Alfonso X El Sabio
NombreRelacin
Atributo1
Atributo2
...
Atributo N
Valor 11
Valor 12
...
Valor 1N
...
...
...
...
Valor N1
Valor N2
...
Valor NN
Tupla 1
Tupla N
Bases de Datos
Universidad Alfonso X El Sabio
Bases de Datos
Universidad Alfonso X El Sabio
10
Claves.
Clave candidata: Conjunto no vaco de atributos que identifican de forma
unvoca cada tupla de la relacin. Esto significa que:
No puede haber dos ms tuplas con el mismo de valor de una
clave candidata.
El valor de la clave candidata tiene que ser distinto en todas las
tuplas.
El conjunto de atributos de una clave candidata deber ser tal que si se
suprime cualquiera de ellos, la clave deje de serlo. Es decir, no se
consideran claves candidatas los superconjuntos de claves candidatas.
Clave primaria: Es aquella clave candidata que se elige para
identificar a las tuplas.
Clave alternativa: Cualquiera del resto de claves candidatas.
Bases de Datos
Universidad Alfonso X El Sabio
11
Claves.
Clave externa o ajena: de una relacin R2 con respecto a una relacin R1
es un conjunto no vaco de atributos de R2 cuyos valores deben ser nulos o
coincidir con los de una de las claves candidatas de R1 para una
determinada tupla.
Los dominios de la clave externa y de la candidata deben ser iguales.
Las claves externas permiten referenciar unvocamente una tupla de R1
desde otra de R2.
Bases de Datos
Universidad Alfonso X El Sabio
12
Restricciones inherentes.
Se derivan de la definicin matemtica de relacin.
No pueden existir tuplas duplicadas (implica la existencia de
una clave primaria).
El orden de las tuplas no es relevante.
El orden de los atributos no es significativo.
Regla de integridad de entidad: Ningn atributo de la
clave primaria de una relacin puede tener valor
desconocido o inexistente, es decir, no puede ser nulo
(NULL).
Cada atributo de una tupla slo puede tomar UN valor de su
dominio. No se permiten grupos repetitivos (Primera forma
normal 1FN).
Bases de Datos
Universidad Alfonso X El Sabio
13
NumEmpleado
Apellidos
Nombre
Idiomas
1234
Snchez Prez
Juan
Ingls, Francs
4567
Alba Cantos
Ana
Alemn, Chino
NumEmpleado
Apellidos
Nombre
Idioma1
Idioma2
1234
Snchez Prez
Juan
Ingls
Francs
4567
Alba Cantos
Ana
Alemn
Chino
Restriccin
semntica (max. 4
Idiomas)
Gran nmero de
valores NULL
Idioma3
Idioma4
Apellidos
Nombre
Notas
1234
Snchez Prez
Juan
7,5 8,0
4567
Alba Cantos
Ana
6,5 4,5
Bases de Datos
Universidad Alfonso X El Sabio
14
Bases de Datos
Universidad Alfonso X El Sabio
15
Bases de Datos
Universidad Alfonso X El Sabio
16
17
Bases de Datos
Universidad Alfonso X El Sabio
18
19
20
21
Bases de Datos
Universidad Alfonso X El Sabio
22
Bases de Datos
Universidad Alfonso X El Sabio
23
Bases de Datos
Universidad Alfonso X El Sabio
24
Bases de Datos
Universidad Alfonso X El Sabio
25
26
Bases de Datos
Universidad Alfonso X El Sabio
27
Bases de Datos
Universidad Alfonso X El Sabio
28
Promocin
(0,n)
(0,n)
Alquila
SOCIO
PELCULA
M:N
IdSocio Apellidos Nombre
IdPelicula
Ttulo Director
29
Bases de Datos
Universidad Alfonso X El Sabio
30
(1,1)
edita
LIBRO
EDITORIAL
N:1
ISBN
Titulo
IdEditorial
Autor
Nombre Director
Bases de Datos
Universidad Alfonso X El Sabio
31
(1,n)
(1,1)
edita
LIBRO
NumEjemplares
EDITORIAL
N:1
ISBN
Titulo
IdEditorial
Autor
Nombre Director
32
(1,1)
edita
LIBRO
EDITORIAL
N:1
ISBN
Titulo
IdEditorial
Autor
Nombre Director
33
(0,1)
edita
LIBRO
EDITORIAL
N:1
ISBN
Titulo
IdEditorial
Autor
Nombre Director
34
LIBRO
EDITORIAL
N:1
ISBN
Titulo
IdEditorial
Autor
Nombre Director
35
Bases de Datos
Universidad Alfonso X El Sabio
36
(0,1)
Matrimonio
Hombre
Mujer
1:1
IDHombre
Nombre
Apellidos
IDMujer
Nombre
Apellidos
37
Nombre
IDDepartamento
Apellidos
Nombre
38
Nombre
IDDepartamento
Apellidos
Nombre
39
compaero
1:1
IDAlumno
Nombre
Apellidos
Bases de Datos
Universidad Alfonso X El Sabio
40
(1,n)
Alumno
compaeros
(1,n)
M:N
IDAlumno
Nombre
Apellidos
41
(1,n)
Medico
(1,n)
Receta
Medicamento
M:N:P
IDMedico
Nombre
Paciente
(1,n)
Apellidos
IDMedicamento
Nombre
42
(0,n)
Factura
Tiene
Cliente
1:N
IDCliente
Nombre
Apellidos
IDFactura
Importe
43
(0,n)
Factura
Tiene
Cliente
1:N
IDCliente
Nombre
Apellidos
IDFactura
Importe
44
Bases de Datos
Universidad Alfonso X El Sabio
45
Bases de Datos
Universidad Alfonso X El Sabio
46
4. Algebra Relacional.
Introduccin.
Lenguajes de acceso a datos en BDR:
Algebra Relacional: De tipo procedimental, se especifican los
datos a obtener y como hacerlo.
Clculo Relacional: Lenguaje de tipo declarativo (no
procedimental). Se especifican los datos a obtener pero no
como hacerlo. Puede estar orientado a tuplas o a dominios.
Los lenguajes de usuario ms utilizados son:
SQL (Structured Query Language) basado en lgebra
Relacional
QBE (Query by Example) basado en el Clculo Relacional.
Bases de Datos
Universidad Alfonso X El Sabio
47
4. Algebra Relacional.
Introduccin.
El Algebra Relacional se define como un conjunto de operaciones que se
aplican sobre las relaciones definidas en el Modelo Relacional y que
producen como resultados otras relaciones:
Operaciones bsicas: Permiten expresar cualquier consulta a una
BD Relacional.
Seleccin
Proyeccin
Unin
Diferencia
Producto Cartesiano
Operaciones derivadas: Se forman a partir de las bsicas.
Interseccin
Join
Divisin
Asociacin.
Bases de Datos
Universidad Alfonso X El Sabio
48
4. Algebra Relacional.
Seleccin.
Se expresa como predicado(R) y define una relacin con los mismos
atributos que R y que contiene slo aquellas tuplas de R que
satisfacen la condicin expresada en el predicado.
Empleado
IDEmpleado
Apellidos
Nombre
Salario
NumHijos
101
Snchez Cas
Juan
25000
102
Prez Prez
Pedro
35000
103
Garca Sol
Luis
40000
Salario>30000(Empleado)
IDEmpleado
Apellidos
Nombre
Salario
NumHijos
102
Prez Prez
Pedro
35000
103
Garca Sol
Luis
40000
Bases de Datos
Universidad Alfonso X El Sabio
NumHijos>1(Empleado)
IDEmpleado
Apellidos
Nombre
Salario
NumHijos
101
Snchez Cas
Juan
25000
103
Garca Sol
Luis
40000
49
4. Algebra Relacional.
Proyeccin.
Se expresa como atrib1,,atribn(R) y define una relacin subconjunto
de R que slo posee los atributos especificados y que no posee
tuplas duplicadas.
Empleado
IDEmpleado
Apellidos
Nombre
Salario
NumHijos
101
Snchez Cas
Juan
25000
102
Prez Prez
Pedro
35000
103
Garca Sol
Luis
40000
IDEmpleado, Salario(Empleado)
IDEmpleado, NumHijos(Empleado)
IDEmpleado
Salario
IDEmpleado
NumHijos
101
25000
101
102
35000
102
103
40000
103
Bases de Datos
Universidad Alfonso X El Sabio
50
4. Algebra Relacional.
Unin.
Se expresa como R U S y define una nueva relacin con las tuplas
que se encuentran en R, en S o en ambas sin que se incluyan
tuplas duplicadas.
R y S deben ser compatibles para su unin, es decir, deben poseer
el mismo conjunto de atributos.
Clientes
Empleados
ID
Apellidos
Nombre
ID
Apellidos
Nombre
50001
Castro Cal
Ana
101
Snchez Cas
Juan
50002
Galo Mier
Carlos
102
Prez Prez
Pedro
102
Prez Prez
Pedro
103
Garca Sol
Luis
Bases de Datos
Universidad Alfonso X El Sabio
Empleados U Clientes
ID
Apellidos
Nombre
101
Snchez Cas
Juan
102
Prez Prez
Pedro
103
Garca Sol
Luis
50001
Castro Cal
Ana
50002
Galo Mier
Carlos
51
4. Algebra Relacional.
Diferencia.
Se expresa como R - S y define una nueva relacin con las tuplas
que se encuentran en R pero no en S.
R y S deben ser compatibles para su diferencia, es decir, deben
poseer el mismo conjunto de atributos.
Empleados
Clientes
ID
Apellidos
Nombre
ID
Apellidos
Nombre
101
Snchez Cas
Juan
50001
Castro Cal
Ana
102
Prez Prez
Pedro
50002
Galo Mier
Carlos
103
Garca Sol
Luis
102
Prez Prez
Pedro
Empleados - Clientes
Bases de Datos
Universidad Alfonso X El Sabio
ID
Apellidos
Nombre
102
Prez Prez
Pedro
103
Garca Sol
Luis
52
4. Algebra Relacional.
Interseccin.
Se expresa como R S y define una nueva relacin con aquellas
tuplas que estn tanto en R como en S.
R y S deben ser compatibles para su interseccin, es decir, deben
poseer el mismo conjunto de atributos.
Puede obtenerse con operadores bsicos: R S = R (R S)
Empleados
Clientes
ID
Apellidos
Nombre
ID
Apellidos
Nombre
101
Snchez Cas
Juan
50001
Castro Cal
Ana
102
Prez Prez
Pedro
50002
Galo Mier
Carlos
103
Garca Sol
Luis
102
Prez Prez
Pedro
Empleados Clientes
Bases de Datos
Universidad Alfonso X El Sabio
ID
Apellidos
Nombre
102
Prez Prez
Pedro
53
4. Algebra Relacional.
Divisin.
Asignacin
IDEmp
IDProy
101
AB12
101
AC12
102
AC12
102
AB12
103
AB12
X= X1 X2
IDProyProyectos
IDProy
AB12
AC12
Asignacin IDProyProyectos
IDEmp
101
102
Bases de Datos
Universidad Alfonso X El Sabio
54
4. Algebra Relacional.
Producto Cartesiano.
Se expresa como R x S y define una nueva relacin con el resultado
de concatenar a cada tupla de R todas las de S.
Empleados
Proyectos
IDEmp
Apellidos
Nombre
IDProy
Descripcin
Responsable
101
Snchez Cas
Juan
AB12
TFT
101
102
Prez Prez
Pedro
AC12
LWA
101
103
Garca Sol
Luis
Empleados x Proyectos
ID
Apellidos
Nombre
IDProy
Descripcin
Responsable
101
Snchez Cas
Juan
AB12
TFT
101
101
Snchez Cas
Juan
AC12
LWA
101
102
Prez Prez
Pedro
AB12
TFT
101
102
Prez Prez
Pedro
AC12
LWA
101
103
Garca Sol
Luis
AB12
TFT
101
103
Garca Sol
Luis
AC12
LWA
101
Bases de Datos
Universidad Alfonso X El Sabio
55
4. Algebra Relacional.
Cross join.
Representa la generacin de un conjunto de
correspondiente al producto cartesiano de dos tablas.
Empleados
resultado
Proyectos
IDEmp
Apellidos
Nombre
IDProy
Descripcin
Responsable
101
Snchez Cas
Juan
AB12
TFT
101
102
Prez Prez
Pedro
AC12
LWA
101
103
Garca Sol
Luis
Apellidos
Nombre
IDProy
Descripcin
Responsable
101
Snchez Cas
Juan
AB12
TFT
101
101
Snchez Cas
Juan
AC12
LWA
101
102
Prez Prez
Pedro
AB12
TFT
101
102
Prez Prez
Pedro
AC12
LWA
101
103
Garca Sol
Luis
AB12
TFT
101
103
Garca Sol
Luis
AC12
LWA
101
Bases de Datos
Universidad Alfonso X El Sabio
56
4. Algebra Relacional.
Inner Join o join por defecto
R S o R * S: Se puede definir como el resultado de aplicar un predicado
de seleccin al producto cartesiano de dos tablas de manera que se asocien
aquellas tuplas con el mismo valor para el atributo o atributos incluidos en
el predicado.
Normalmente se realiza entre atributos comunes de dos tablas que
corresponden, uno, a la clave primaria de una tabla y el otro a una clave
ajena en la otra tabla.
Empleados
Proyectos
IDEmp
Apellidos
Nombre
IDProy
Descripcin
Responsable
101
Snchez Cas
Juan
AB12
TFT
101
102
Prez Prez
Pedro
AC12
LWA
101
103
Garca Sol
Luis
Apellidos
Nombre
IDProy
Descripcin
Responsable
101
Snchez Cas
Juan
AB12
TFT
101
101
Snchez Cas
Juan
AC12
LWA
101
Un valor NULL no coincide con ningn otro aunque tambin sea NULL
Bases de Datos
Universidad Alfonso X El Sabio
57
4. Algebra Relacional.
Equi-join
Se dice de las operaciones de join que SOLO utilizan comparaciones de
igualdad en el predicado. Notse que sera posible utilizar otros
comparadores como <, <=,
Empleados
Proyectos
IDEmp
Apellidos
Nombre
IDProy
Descripcin
Responsable
101
Snchez Cas
Juan
AB12
TFT
101
102
Prez Prez
Pedro
AC12
LWA
101
103
Garca Sol
Luis
Bases de Datos
Universidad Alfonso X El Sabio
IDEmp
Apellidos
Nombre
IDProy
Descripcin
Responsable
101
Snchez Cas
Juan
AB12
TFT
101
101
Snchez Cas
Juan
AC12
LWA
101
58
4. Algebra Relacional.
Unin natural. (Natural Join)
Realiza, de forma automtica, la operacin de join en base a las columnas
de las tablas que tengan el mismo nombre. El conjunto resultado contendr
slo una columna de las utilizadas como parte del predicado.
Empleados
Proyectos
IDEmp
Apellidos
Nombre
IDProy
Descripcin
IDEmp
101
Snchez Cas
Juan
AB12
TFT
101
102
Prez Prez
Pedro
AC12
LWA
101
103
Garca Sol
Luis
Bases de Datos
Universidad Alfonso X El Sabio
IDEmp
Apellidos
Nombre
IDProy
Descripcin
101
Snchez Cas
Juan
AB12
TFT
101
Snchez Cas
Juan
AC12
LWA
59
4. Algebra Relacional.
Outer Join (I)
R S o R * S: Se intenta mantener toda la informacin de los operandos
incluso de los que no participan en el join. Se rellenan con nulos las tuplas
que no tienen correspondencia en el join. Existen tres variantes: Left,
Right y Full.
Empleados
Proyectos
IDEmp
Apellidos
Nombre
IDProy
Descripcin
Responsable
101
Snchez Cas
Juan
AB12
TFT
101
102
Prez Prez
Pedro
AC12
LWA
101
103
Garca Sol
Luis
AD12
SST
5000
Apellidos
Nombre
IDProy
Descripcin
101
Snchez Cas
Juan
AB12
TFT
101
Snchez Cas
Juan
AC12
LWA
102
Prez Prez
Pedro
NULL
NULL
103
Garca Sol
Luis
NULL
NULL
Bases de Datos
Universidad Alfonso X El Sabio
60
4. Algebra Relacional.
Outer Join (II)
R S o R * S: Se intenta mantener toda la informacin de los operandos
incluso de los que no participan en el join. Se rellenan con nulos las tuplas
que no tienen correspondencia en el join. Existen tres variantes: Left,
Right y Full.
Empleados
Proyectos
IDEmp
Apellidos
Nombre
IDProy
Descripcin
Responsable
101
Snchez Cas
Juan
AB12
TFT
101
102
Prez Prez
Pedro
AC12
LWA
101
103
Garca Sol
Luis
AD12
SST
5000
Apellidos
Nombre
IDProy
Descripcin
101
Snchez Cas
Juan
AB12
TFT
101
Snchez Cas
Juan
AC12
LWA
5000
NULL
NULL
AD12
SST
Bases de Datos
Universidad Alfonso X El Sabio
61
4. Algebra Relacional.
Outer Join (III)
R S o R * S: Se intenta mantener toda la informacin de los operandos
incluso de los que no participan en el join. Se rellenan con nulos las tuplas
que no tienen correspondencia en el join. Existen tres variantes: Left,
Right y Full.
Empleados
Proyectos
IDEmp
Apellidos
Nombre
IDProy
Descripcin
Responsable
101
Snchez Cas
Juan
AB12
TFT
101
102
Prez Prez
Pedro
AC12
LWA
101
103
Garca Sol
Luis
AD12
SST
5000
Apellidos
Nombre
IDProy
Descripcin
101
Snchez Cas
Juan
AB12
TFT
101
Snchez Cas
Juan
AC12
LWA
102
Prez Prez
Pedro
NULL
NULL
103
Garca Sol
Luis
NULL
NULL
5000
NULL
NULL
SST
5000
Bases de Datos
Universidad Alfonso X El Sabio
62
4. Algebra Relacional.
Outer Join (III)
R S o R * S: Se intenta mantener toda la informacin de los operandos
incluso de los que no participan en el join. Se rellenan con nulos las tuplas
que no tienen correspondencia en el join. Existen tres variantes: Left,
Right y Full.
Empleados
Proyectos
IDEmp
Apellidos
Nombre
IDProy
Descripcin
Responsable
101
Snchez Cas
Juan
AB12
TFT
101
102
Prez Prez
Pedro
AC12
LWA
101
103
Garca Sol
Luis
AD12
SST
5000
Apellidos
Nombre
IDProy
Descripcin
101
Snchez Cas
Juan
AB12
TFT
101
Snchez Cas
Juan
AC12
LWA
102
Prez Prez
Pedro
NULL
NULL
103
Garca Sol
Luis
NULL
NULL
5000
NULL
NULL
SST
5000
Bases de Datos
Universidad Alfonso X El Sabio
63
4. Algebra Relacional.
Ejemplos
Empleados
IDEmp
Apellidos
Nombre
NumHijos
Destino
101
Snchez Cas
Juan
MAD
102
Prez Prez
Pedro
BCN
103
Garca Sol
Luis
MAD
104
Pas Pas
Carmen
SEV
Asignacion
Proyectos
IDEmp
IDProy
101
AB12
IDProy
Descripcin
Responsable
Presup
101
AB12
AB12
TFT
101
60000
102
AC12
AC12
LWA
101
120000
102
AD12
AD12
SST
5000
50000
103
AD12
104
AD12
Bases de Datos
Universidad Alfonso X El Sabio
64
4. Algebra Relacional.
Ejemplos
1. Obtener el nombre de los empleados con dos o ms hijos.
Nombre (NumHijos>1(Empleado))
2. Obtener el nombre de los empleados que trabajan en Madrid.
Nombre (Destino=MAD(Empleado))
3. Obtener el IDEmp de los empleados asignados al proyecto SST
Bases de Datos
Universidad Alfonso X El Sabio
65