Está en la página 1de 96

1

Tema 2. Modelo relacional de datos


2. Modelo relacional de datos
Objetivos
Comprender los principios estructurales del modelo de
datos relacional formal
Entender los conceptos integridad de entidad e
integridad referencial, y apreciar su importancia
Entender los significados e implicaciones del concepto
nulo en el modelo relacional
Comprender el concepto vista relacional, y la
problemtica asociada a la modificacin de datos a
travs de vistas
Conocer los lenguajes formales lgebra relacional y
clculo relacional de tuplas, as como el lenguaje
relacional estndar SQL-92
2
Tema 2. Modelo relacional de datos
2. Modelo relacional de datos
Contenidos
2.1 Presentacin y orgenes del modelo relacional
2.2 Estructura de datos relacional
2.3 Caractersticas generales de integridad de datos
2.4 Manipulacin de datos: lenguajes relacionales
2.4.1 lgebra relacional
2.4.2 Clculo relacional de tuplas
2.4.3 SQL-92
3
Tema 2. Modelo relacional de datos
2. Modelo relacional de datos
Bibliografa

[EN 2002] Elmasri, R.; Navathe, S.B.: Fundamentos de Sistemas de
Bases de Datos. 3 Edicin. Addison-Wesley. (Cap. 7, 8 y 9)
[EN 1997] Elmasri, R.; Navathe, S.B.: Sistemas de bases de datos.
Conceptos fundamentales. 2 Edicin. Addison-Wesley
Iberoamericana. (Cap. 6 y 7)
[D 2001] Date, C.J.: Introduccin a los sistemas de bases de datos. 7 Edicin.
Prentice-Hall. (Cap. 3 al 9)
[SKS 1998] Korth, H; Silberschatz, A., Sudarshan, S.: Fundamentos de bases de
datos. 3 Edicin. McGraw-Hill. (Cap. 3 y 4)
...
4
Tema 2. Modelo relacional de datos
Introducido por Codd, 1970
Es un Modelo de Datos Lgico - de Representacin -
(basado en registros)
El modelo ms usado en las aplicaciones comerciales de
procesamiento de datos convencional
Dividido en 3 partes:
1. Estructura de Datos
2. Integridad de Datos (caractersticas generales)
3. Manipulacin de Datos
2.1 Presentacin y orgenes del MR
5
Tema 2. Modelo relacional de datos
Base de Datos = Conjunto de Relaciones
Relacin
Estructura de datos fundamental del modelo
Tiene un nombre y representa una entidad genrica
Conjunto de tuplas
Cada tupla representa una entidad concreta
Compuesta de atributos con nombre (y dominio)
Cada atributo representa un atributo de la entidad
Representada mediante una tabla con filas y columnas
Modelo basado en Teora matemtica
Analoga entre Relacin (concepto matemtico) y Tabla
Teora de Conjuntos y Lgica de Predicados de 1
er
orden
Slida Base Formal
2.2 Estructura de datos relacional
6
Tema 2. Modelo relacional de datos
2.2 Estructura de datos relacional
ttulo director gnero rodaje nacionalidad duracin
Amores Perros A. Gonzlez Drama 2000 Mxico 145
The Matrix A. Wachowsky Ciencia-ficcin 1999 EEUU 138
Torrente S. Segura Comedia 1997 Espaa 110
Nos miran N. Lpez Policiaco 2001 Espaa 118
Amelie J. P. Jeunet Comedia 2001 Francia 122
Los lunes al sol F. Len Drama 2002 Espaa 117
tuplas
c
a
r
d
i
n
a
l
i
d
a
d

grado
atributos
La relacin PELICULA
--- ---
--- ---
Ciencia-ficcin,
Drama,Thriller,
Comedia...
--- ---
--- ---
2002, 1997,
1999, 2001,
1994, 1972...
Italia,Argentina,
Espaa, EEUU,
Francia,Japn..
--- ---
--- ---
d
o
m
i
n
i
o
s

Ttulos Nombres
Gneros
Aos
Pases
Tiempo
7
Tema 2. Modelo relacional de datos
Trminos bsicos
2.2 Estructura de datos relacional
Modelo Relacional
Procesamiento
de Ficheros
Formal SQL-92
Relacin Tabla Fichero
Tupla
Si la tupla t est en la relacin
R, entonces teR
Fila Registro concreto
Atributo
Debe tener un nombre nico
dentro de cada relacin
cabecera de
Columna
Nombre de
Campo de registro
Cardinalidad n de tuplas en una relacin =
Grado n atributos en una relacin =
Dominio
coleccin de valores permitidos
para ciertos atributos
=
8
Tema 2. Modelo relacional de datos
Conjunto de valores atmicos del mismo tipo, donde
toman su valor los atributos

La definicin de dominios forma parte de la definicin de la BD
Cada atributo definido sobre un NICO dominio OBLIGATORIO
Si A, B representan un mismo concepto, A y B con mismo dominio
Dominio D puede contener valores no tomados por ningn atributo
{valores de A} _ Dominio(A)

Comparaciones Restringidas a Dominio
La comparacin de dos atributos slo tiene sentido si ambos toman
valores del mismo dominio
Si el SGBD soporta dominios, podr detectar este tipo de errores
Definiciones formales: DOMINIO
2.2 Estructura de datos relacional
9
Tema 2. Modelo relacional de datos
Una relacin R, sobre conjunto de dominios D
1
, D
2
... D
n

se compone de dos partes:

Esquema o Cabecera
Conjunto de pares Atributo:Dominio
{ (A
1
:D
1
), (A
2
:D
2
) ... (A
n
:D
n
) }
Cada A
j
tiene asociado slo un D
j
Los D
i
no tienen por qu ser distintos entre s

Estado, Cuerpo o Instancia
Conjunto de tuplas que contiene en un instante concreto
tupla = conjunto de pares Atributo:Valor
{ { (A
1
:v
i1
), (A
2
:v
i2
) ... (A
n
:v
in
) } }, donde i=1..m
Definiciones formales: RELACIN (1)
2.2 Estructura de datos relacional
10
Tema 2. Modelo relacional de datos
Un esquema de relacin:
PELICULA (titulo:Titulos, duracion:Tiempo, director:Nombres, estreno:Fechas)

Un estado de la relacin:
{ { (titulo:Torrente), (duracion:110), (director:S.Segura), (estreno:1997) }
{ (titulo:The Matrix), (duracion:138), (director:A.Wachowski), (estreno:1999) }
... }

El estado de una relacin es variable en el tiempo
nuevas tuplas, modificacin o borrado de existentes

El esquema no suele variar
= costoso:
reescritura de miles de tuplas
valores de nuevos atributos para tuplas ya existentes?
Suele incluir un conjunto de Reglas de Integridad (se ver)
Definiciones formales: RELACIN (2)
2.2 Estructura de datos relacional
11
Tema 2. Modelo relacional de datos
Propiedades de una Relacin
1. No existen tuplas repetidas
2. Las tuplas no estn ordenadas
3. Los atributos no estn ordenados
esquema = conjunto de pares Atributo:Dominio
4. Los valores de atributos son Atmicos
dominio = conjunto de valores atmicos
Interseccin fila/columna = un solo valor (no lista de valores)
Si R cumple esta propiedad, R est en 1FN
estado = conjunto
matemtico de tuplas
Definiciones formales: RELACIN (3)
2.2 Estructura de datos relacional
12
Tema 2. Modelo relacional de datos
FORMAS NORMALES
R est en <determinada> FN si
cumple <cierto> conjunto de condiciones o restricciones
necesarias para estar bien diseada
de acuerdo con el modelo relacional de datos.

Toda relacin ha de estar en 1FN (estructura de datos simple)

Definiciones formales: RELACIN (4)
2.2 Estructura de datos relacional
13
Tema 2. Modelo relacional de datos
Relacin vs. Tabla
Relacin: Representacin abstracta de un elemento de datos
Tabla: Representacin concreta de tal elemento abstracto

Ventajas
Representacin muy sencilla (tabla) del elemento abstracto
bsico (relacin) del Modelo Relacional
Fcil de utilizar, entender, razonar...
Inconveniente
Aparente orden entre filas y entre columnas de la tabla
Definiciones formales: RELACIN (5)
2.2 Estructura de datos relacional
14
Tema 2. Modelo relacional de datos
Percibida por usuarios como una coleccin de relaciones
de diversos grados (n de atributos)
que varan con el tiempo (n de tuplas, estado)
Las relaciones (tablas) son la estructura lgica de la BD
Niveles externo y conceptual ANSI/X3/SPARC
Toda BDR cumple el Principio de Informacin:
Todo contenido de informacin de la BD est representado
de una y slo una forma: como valores explcitos
dentro de posiciones de columnas dentro de filas dentro de tablas
Conexin lgica entre Relaciones (vnculo o interrelacin)
Representada mediante valores
No existen punteros (visibles al usuario)
Definiciones formales: BD RELACIONAL (1)
2.2 Estructura de datos relacional
15
Tema 2. Modelo relacional de datos
En una BDR distinguimos...
Esquema de base de datos
Descripcin de la base de datos
Conjunto de esquemas de relacin

PELICULA ( titulo:Ttulos, director:Nombres, gnero:Gneros,
rodaje:Aos, nacionalidad:Pases, duracin:Tiempo )
ACTOR ( nombre:Nombres, nombreArtistico: Nombres,
agente:Nombres, cache:Dinero )
DIRECTOR ( nombre:Nombres, nacionalidad:Pases, operaPrima:Ttulos )
...
Estado o instancia de base de datos
Visin del contenido de la base de datos en cierto instante
Conjunto de estados de relacin
Definiciones formales: BD RELACIONAL (2)
2.2 Estructura de datos relacional
16
Tema 2. Modelo relacional de datos
Todo estado de BD refleja la realidad
es un modelo de una porcin del mundo real (minimundo)
Algunas configuraciones de valores NO tienen SENTIDO
pues no representan ningn estado posible del minimundo
2 personas distintas con el mismo DNI
Un empleado sin NSS
Un alumno con -29 aos
Una pelcula sin director

= Definicin de la BD (esquema) necesita incluir
REGLAS DE INTEGRIDAD
2.3 Caractersticas generales de
integridad de datos
17
Tema 2. Modelo relacional de datos
Claves Candidatas y Primarias
Claves Ajenas (o forneas o externas)

Informan al SGBD de restricciones del mundo real
As, el SGBD evita configuraciones de datos imposibles
Aumentan la capacidad expresiva del modelo relacional
Cumplen que:
Forman parte de la base de datos
Se cumplen para cualquier estado de la BD
No varan con el tiempo
Son especficas de cada BD particular, pero el
Modelo Relacional incluye...
caractersticas generales de integridad
importantes y necesarias en toda BD
2.3 Caractersticas generales de
integridad de datos
Reglas de integridad
18
Tema 2. Modelo relacional de datos
Sea R una relacin R(A
1
:D
1
, A
2
:D
2
,... A
n
:D
n
)
Una superclave de R es un subconjunto SK de atributos
tal que cumple la restriccin de Unicidad:
No existen dos tuplas distintas con la misma
combinacin de valores para SK
Una clave de R es una superclave tal que cumple la
restriccin de Irreductibilidad:
Ningn subconjunto de CK cumple la r. Unicidad

Clave Simple (1 atributo) o Compuesta (varios atributos)
Cada clave es una restriccin de integridad
2.3 Caractersticas generales de
integridad de datos
Superclave y Clave de una relacin
19
Tema 2. Modelo relacional de datos
Claves como restriccin de integridad
CLIENTE (codCliente, nombre, ciudad, telefono,...)
Qu implicaciones tiene establecer como clave...
a) CK = {codCliente, ciudad}
b) CK = {codCliente} ?

Varias claves en una relacin
Relacin para registrar las visitas de pacientes a sus mdicos de familia. Un mismo
paciente puede visitar a su mdico varias veces en un mismo da
VISITAMEDICA (nssPaciente, historial, fecha, hora, numVisita, medico, observ)
Claves (VISITAMEDICA)={ {nssPaciente, numVisita}, {nssPaciente, fecha, hora},
{historial, numVisita}, {historial, fecha, hora} }
2.3 Caractersticas generales de
integridad de datos
Superclave y Clave: Ejemplos
20
Tema 2. Modelo relacional de datos
Si R tiene varias claves = Claves Candidatas
Claves (ACTOR) = { {nombre}, {nombreArtistico} }
Claves (EMPLEADO) = { {dni}, {nombre, fechaNac}, {nss} }

La Clave Primaria (Primary Key, PK ) es la clave candidata
elegida para identificar las tuplas de R
Clave Primaria (ACTOR) = {nombreArtistico}
Clave Primaria (EMPLEADO) = {nss}
Las Claves Alternativas (Alternative Keys, AK) son el resto
de claves candidatas
Claves Alternativas (ACTOR) = {nombre}
Claves Alternativas (EMPLEADO) = { {dni}, {nombre, fechaNac} }
2.3 Caractersticas generales de
integridad de datos
Clave Candidata, Primaria y Alternativa
21
Tema 2. Modelo relacional de datos
Conjunto de atributos FK de una relacin R2, tal que:
1. Existe otra relacin R1 con clave primaria PK , y
2. Cada valor de FK en R2 es idntico al de PK en alguna tupla de R1
Conjunto de atributos de una relacin que hace referencia a
la clave primaria de otra relacin (o la misma)

PELICULA (ttulo, gnero, duracin, director, ...)
DIRECTOR (nombre, nacionalidad, ...)

EMPLEADO (codEmp, nombre, jefe, nss, ...)

LIBRO (ttulo, isbn, autor, editorial, edicin, ao, ...)
ESCRITOR (dni, nombre, ...)
ARTICULO (ttulo, tema, autor, revista, pgina, ...)
2.3 Caractersticas generales de
integridad de datos
Clave Ajena (Externa o Fornea)
22
Tema 2. Modelo relacional de datos
Cada componente de una FK debe estar definido
sobre el mismo dominio que el correspondiente
atributo de la PK a la que referencia
PACIENTE (nss, nombre, direccin, ...)
HISTORIAL (nss, especialidad, fechaApert, ...)
VISITA (nss, especialidad, numVisita, fecha, ...)

Clave Ajena Simple o Compuesta
El uso de Claves Ajenas facilita...
Eliminacin de la Redundancia: Integridad entre ficheros
Mecanismo del Modelo Relacional de datos para establecer
VNCULOS ENTRE RELACIONES

2.3 Caractersticas generales de
integridad de datos
Clave Ajena (Externa o Fornea) (2)
23
Tema 2. Modelo relacional de datos
CLIENTE
CUENTA
2.3 Caractersticas generales de
integridad de datos
Clave Ajena (Externa o Fornea) (3)
nombre direccin ciudad cuenta
Garca, A Gran Va, 6 Murcia 200
Lpez, B Ronda Norte, 3 Murcia 821
Azorn, C Paseo Nuevo, 9 Valencia 505
Prez, C Plaza Mayor, 2 Valencia 505
...
nmero saldo ...
200 35000
505 40000
821 50000
...
Cada cliente slo puede tener
una cuenta a su nombre.
Una cuenta puede tener ms de
un cliente como titular.
Vnculo Cliente-
Cuenta
24
Tema 2. Modelo relacional de datos
Restriccin de Integridad Referencial
Todo valor de una FK debe coincidir
con un valor en la correspondiente PK
La BD no debe contener claves ajenas sin correspondencia:
Si una tupla en una relacin hace referencia a otra relacin, debe
referirse a una tupla existente en esa relacin

Puede existir algn valor de PK al que NO haga referencia
ningn valor de la FK
ESCRITOR que no haya escrito artculos: ninguna tupla de ARTICULO
har referencia a la tupla correspondiente a dicho escritor
2.3 Caractersticas generales de
integridad de datos
Clave Ajena (Externa o Fornea) (4)
ESCRITOR ARTICULO
FK
25
Tema 2. Modelo relacional de datos
Diagrama Referencial
Expresin de la existencia de Claves Ajenas
Camino Referencial
2.3 Caractersticas generales de
integridad de datos
Clave Ajena (Externa o Fornea) (y 5)
ESCRITOR dni nombre ... editorial
LIBRO ttulo isbn autor editorial ...
ARTICULO ttulo tema autor revista pg ...
EDITORIAL nombre direccin ...
Ciclo Referencial
Camino que empieza y acaba en la misma relacin
Caso especial: Autorreferencia
EMPLEADO codEmp ... jefe
EMPL codEmp ... dep DEPTO codDep ... dire
26
Tema 2. Modelo relacional de datos
Las operaciones que no satisfacen violan la Integridad
Referencial, dejan la BD en un estado incorrecto
Ejemplo de un Hotel:
Qu pasara si se eliminara la tupla (501, D, ...) en HABITACIN?
Y si se eliminara la tupla (100, D, ...)?
Y si se anotara la ocupacin de la habitacin 900?
2.3 Caractersticas generales de
integridad de datos
Mantenimiento de la Integridad Referencial
OCUPACIN codClie habit ...
CLI04 100
CLI02 420
CLI05 115
CLI10 100
HABITACIN numHabit tipo ...
115 I
420 I
100 D
304 D
405 I
501 D
27
Tema 2. Modelo relacional de datos
Cmo evita el SGBD esos estados incorrectos?
El SGBD puede...
O Rechazar toda operacin que pueda provocar un estado ilegal,
o
O Aceptar (y ejecutar) tales operaciones, pero
realizar acciones que restauren la integridad de los datos

Diseador de la BD puede especificar al SGBD
Acciones de Mantenimiento
de la Integridad Referencial
para que la BD SIEMPRE alcance un estado final legal
2.3 Caractersticas generales de
integridad de datos
Mantenimiento de la Integridad Referencial (2)
28
Tema 2. Modelo relacional de datos
R2 R1
Operacin: Eliminar una tupla t de R1 que es referenciada
por otras de R2
Ejemplo: Eliminar la tupla (100, D, ...) de HABITACIN
Acciones posibles:
1. Rechazar la operacin (accin por defecto)
Slo permite borrar t si ninguna otra tupla hace referencia a t
2. Cascada. Propagar la eliminacin
1 Borrar todas las tuplas de R2 que referencian a t
2 Eliminar t
3. Establecer nulos (* se ver despus *)
2.3 Caractersticas generales de
integridad de datos
Mantenimiento de la Integridad Referencial (3)
29
Tema 2. Modelo relacional de datos
R2 R1
Operacin: Modificar el valor de una FK a un valor no
existente en la PK de R1
Ejemplo: Modificar (CLI02, 420,...) a (CLI02, 900,...) en OCUPACIN
Accin:
1. Rechazar la operacin (SIEMPRE)

Intento de violacin de la restriccin de Integridad
Referencial
2.3 Caractersticas generales de
integridad de datos
Mantenimiento de la Integridad Referencial (4)
30
Tema 2. Modelo relacional de datos
Operacin: Modificar el valor de la PK de una tupla t de R1
que es referenciada por otras tuplas de R2
Ejemplo: Modificar la tupla (100, D,...) a (130, D,...) en HABITACIN
Acciones posibles:
1. Rechazar la operacin (accin por defecto)
Slo permite modificar la PK de t si ninguna tupla referencia a t
2. Cascada. Propagar la modificacin
- Toda tupla de R2 que referencia a t seguir haciendolo:
modificar su valor de FK al nuevo valor de la PK de t
- Modificar el valor de la clave primaria de t
3. Establecer nulos (* se ver despus *)
2.3 Caractersticas generales de
integridad de datos
Mantenimiento de la Integridad Referencial (5)
31
Tema 2. Modelo relacional de datos
R2 R1
Operacin: Insercin de una tupla t en R2 cuyo valor de FK
no se corresponde con ningn valor de la PK en
ninguna tupla de R1
Ejemplo: Insertar una tupla (CLI03, 555, ...) en OCUPACIN
Acciones posibles:
- Rechazar la operacin (SIEMPRE)

Intento de violacin de la restriccin de Integridad
Referencial

2.3 Caractersticas generales de
integridad de datos
Mantenimiento de la Integridad Referencial (6)
32
Tema 2. Modelo relacional de datos
Encadenamiento de eliminaciones (anlogo para Modificacin)
R2 R1, Accin de Eliminacin en Cascada
R3 R2, Accin de Eliminacin X
- Eliminar una tupla de R1 = eliminar tuplas de R2 que la referencian
- Pero existen tuplas en R3 que referencian esas tuplas de R2...
cmo afecta la Accin de Eliminacin X en esta operacin?
Si X = en CASCADA, no-problemo! = eliminar esas tuplas de R3
Si X = RECHAZAR = La operacin completa fallar
Las operaciones de actualizacin en una BD son siempre
atmicas: se realiza TODO o NADA
PROFESOR REA DEPARTAMENTO
ASIGNATURA TITULACIN UNIVERSIDAD
2.3 Caractersticas generales de
integridad de datos
Mantenimiento de la Integridad Referencial (y 7)
R3 R2 R1
33
Tema 2. Modelo relacional de datos
En el mundo real existe...
informacin perdida fechaNacimiento desconocida
ausencia de informacin tiene telfono?
valores no aplicables a ciertos atributos fechJubilac a empleado activo
Para representar estas situaciones en los sistemas de BD
se utiliza el NULO (null)
Si una tupla tiene un atributo que contiene un nulo,
significa que el valor real de tal atributo es desconocido
Es posible especificar si un atributo puede o no contener nulo
e nulo no es un valor en s mismo,
sino un indicador de ausencia de informacin
> No hay dos nulos iguales (num_telefono NULL = edad NULL)
2.3 Caractersticas generales de
integridad de datos
Nulos
34
Tema 2. Modelo relacional de datos
Nulo y Claves Primarias
Restriccin de Integridad de Entidad:
Ningn atributo componente de una
clave primaria puede contener nulo
EMPLEADO (codEmp, nss, nombre, telefono, depto, jefe...)
Qu pasara si codEmp pudiera contener NULO?

Nulo y Claves Ajenas
El Modelo Relacional permite nulo
como valor de clave ajena
depto = null = empleados no asignados a ningn departamento
jefe = null = empleados sin jefe
2.3 Caractersticas generales de
integridad de datos
Implicaciones de los nulos en la integridad
35
Tema 2. Modelo relacional de datos
Hemos de extender la definicin de clave ajena
Sea R2 una relacin. FK es una clave ajena en R2 si es un
subconjunto de sus atributos tal que:
1. Existe otra relacin R1 con clave primaria PK y
2. En todo momento, cada valor de FK en R2
a) es NULO, o
b) es idntico a un valor de PK en alguna tupla de R1

Restriccin de Integridad Referencial
La Base de Datos no debe contener valores no nulos
de clave ajena sin correspondencia
2.3 Caractersticas generales de
integridad de datos
Implicaciones de los nulos en la integridad (2)
36
Tema 2. Modelo relacional de datos
Hay que extender algunas acciones de mantenimiento de
la Integridad Referencial:
R2 R1
Operacin: Eliminar una tupla t de R1 que es referenciada
por otras de R2
Acciones posibles:
1. Rechazar la operacin (accin por defecto)
2. Cascada. Propagar la eliminacin
3. Establecer nulos
Slo si la FK de R2 permite NULO
- Toda tupla de R2 que referencia a t pasa a contener NULL en FK
- Eliminar la tupla t
2.3 Caractersticas generales de
integridad de datos
Implicaciones de los nulos en la integridad (3)
37
Tema 2. Modelo relacional de datos
R2 R1
Operacin: Modificar el valor de la PK de una tupla t de R1
que es referenciada por otras tuplas de R2
Acciones posibles:
1. Rechazar la operacin (accin por defecto)
2. Cascada. Propagar la modificacin
3. Establecer nulos
Slo si la FK de R2 permite NULO
- Toda tupla de R2 que referencia a t pasa a contener NULL en FK
- Modificar el valor de la PK de t
2.3 Caractersticas generales de
integridad de datos
Implicaciones de los nulos en la integridad (y 4)
38
Tema 2. Modelo relacional de datos
Comprobar las claves candidatas (primaria y alternativas):
No existen dos tuplas distintas con igual valor para una clave
Definicin de BD : indicar los Atributos Componentes de las Claves Candidatas
Comprobar la restriccin de Integridad de entidad
Ningn atributo componente de una clave primaria contiene nulo
Definicin de BD : indicar los Atributos Componentes de la Clave Primaria
Comprobar la restriccin de Integridad Referencial...
El valor de la clave ajena en cualquier tupla, o es nulo, o coincide con
un valor de clave primaria de alguna tupla en la relacin referenciada
Definicin de BD : indicar los Atributos Componentes de las Claves Ajenas
... y mantenerla frente operaciones que puedan violar la integridad
Definicin de BD : indicar Acciones de Mantenimiento de la Integridad Referencial
2.3 Caractersticas generales de
integridad de datos
Resumiendo, el SGBD se encarga de...
39
Tema 2. Modelo relacional de datos
Dominio Definicin del Dominio
CODPEL enteros(3)
CODGUI enteros(3)
CODDIR enteros(3)
CODDIS enteros(2)
CODACT enteros(4)
CODAGE enteros(2)
SEXOS { M, F }
TEXTO cadena caracteres variable (500)
PORCENT enteros (2)
DINERO enteros(9)
NIF cadena caracteres fija (12)
TITULOS cadena caracteres variable (120)
GENEROS {comedia,drama,terror,suspense,accion,romantica,gore,pulp,roadmovie}
PAISES {espaa,francia,gran_bretaa,eeuu,australia,alemania,la_india,argentina}
AOS AO
FECHAS FECHA
NOMBRES cadena caracteres variable (35)
APELLIDOS cadena caracteres variable (80)
DOMICILIOS cadena caracteres variable (50)
TELEFONOS cadena caracteres variable (15)
TIPO_PAPEL {protagonista, secundario, reparto, figuracion}
40
Tema 2. Modelo relacional de datos
Esquema PRODUCTORA

PELICULA (codP:CODPEL, titulo:TITULOS, ao:AO, genero:GENEROS, guion:CODGUI,
director:CODDIR, directorFotog:CODDIR, distrib:CODDIS, nacio:PAISES,
estreno:FECHA, numOscar:enteros(2), taquilla:DINERO)

DIRECTOR (codDir:CODDIR, nombre:NOMBRES, apellidos:APELLIDOS, nacio:PAISES,
fechaNacim:FECHA, operaPrima:CODPEL)

DIREC_FOTOG (codDF:CODDIR, nombre:NOMBRES, apellidos:APELLIDOS, nacionalidad:PAISES,
fechaNacim:FECHA, ultTrabajo:CODPEL)

GUION (codG:CODGUI, titulo: TITULOS, resumen: TEXTO,
nomAutorPpal:NOMBRES, fechaFin:FECHA, fechaEntrega:FECHA)

DISTRIBUIDORA (codDis:CODDIS, nombre:NOMBRES, cif:NIF, direccion:DOMICILIO,
telefono:TELEFONOS, porcentaje:PORCENT)

ACTOR (codA:CODACT, nombre:NOMBRES, nomReal:NOMBRES, nacionalidad:PAISES,
fechaNacim:FECHA, sexo:SEXOS, agencia:CODAGE, cache:DINERO)

AGENCIA (codAg:CODAGE, nombre:NOMBRES, direccion:DOMICILIO, telefono:TELEFONOS)

ACTUA_EN (actor:CODACT, film:CODPEL, papel:TIPO_PAPEL, paga:DINERO)
41
Tema 2. Modelo relacional de datos
Definida por Codd, 1972
Coleccin de operadores que toman relaciones como
operandos y devuelven relaciones como resultado

Operadores tradicionales sobre conjuntos
unin
interseccin
diferencia
producto cartesiano
Los operandos son relaciones, y NO conjuntos arbitrarios
= operaciones adaptadas a relaciones (tipo especial de conjuntos)

Operadores relacionales especiales
restriccin
proyeccin
reunin ( join )
divisin
2.4 Manipulacin de datos
2.4.1. lgebra Relacional
42
Tema 2. Modelo relacional de datos
El resultado de cualquier operacin del lgebra
relacional es otra relacin

la salida de una operacin puede ser entrada
(operando) de otra

= Expresiones Anidadas
Sus operandos son otras expresiones del lgebra
(en lugar de nombres de relacin)
2.4 Manip. de datos: lgebra Relacional
Clausura relacional
43
Tema 2. Modelo relacional de datos
En matemticas, AB = { e / eeA y-o eeB }
Relacin = conjunto de tuplas
= es posible hacer la unin de dos relaciones R y S
RS = { t / teR y-o teS }
Conjunto de todas las tuplas que estn en R y/o en S
Sin embargo...
PELICULA DIRECTOR es un conjunto, pero no es una relacin

= Las relaciones deben ser homogneas: no pueden
contener mezcla de tuplas de distintos tipos
Ha de mantenerse la Propiedad de Clausura:
el resultado de la operacin DEBE ser una relacin
Las relaciones de entrada deben ser de tipos compatibles
2.4 Manip. de datos: lgebra Relacional
Compatibilidad de tipos (o con la unin)
44
Tema 2. Modelo relacional de datos
Sean R ( r
1
, r
2
,..., r
n
), S ( s
1
, s
2
, ..., s
n
)
Relaciones R y S compatibles en tipo si tienen el
mismo esquema, es decir:
1. Igual nmero de atributos:
grado(R) = grado(S) = n
2. Atributos correspondientes definidos sobre el mismo dominio:
dom(r
i
) = dom(s
i
) ,, i = 1, 2, ..., n

Ejemplo: DIRECTOR y DIR_FOTOG son de tipos compatibles

UNIN, INTERSECCIN, DIFERENCIA necesitan operandos
compatibles en tipo
PRODUCTO CARTESIANO no necesita compatibilidad de tipo
en sus operandos
2.4 Manip. de datos: lgebra Relacional
Compatibilidad de tipos (y 2)
45
Tema 2. Modelo relacional de datos
RS, con R y S compatibles en tipo, es una relacin tal que:
Esquema: el de R (o S)
Estado: conjunto de tuplas que estn en R, en S o en ambas
Las tuplas repetidas se eliminan (por definicin)
Ejemplo: DIRECTOR DIR_FOTOG
2.4 Manip. de datos: lgebra Relacional
Unin de relaciones
RS, con R y S compatibles en tipo, es una relacin tal que:
Esquema: el de R (o S)
Estado: conjunto de tuplas que estn a la vez en R y en S

Ejemplo: DIRECTOR DIR_FOTOG

Interseccin de relaciones
46
Tema 2. Modelo relacional de datos
RS, con R y S compatibles en tipo, es una relacin tal que:
Esquema: el de R (o S)
Estado: conjunto de tuplas que estn en R, pero NO en S
operacin con cierta direccionalidad, como la resta aritmtica
Ejemplo: DIRECTOR DIR_FOTOG
2.4 Manip. de datos: lgebra Relacional
Diferencia entre relaciones
La propiedad de clausura relacional permite aplicar una
operacin tras otra
Sean R, S, T relaciones de tipos compatibles,
nica expresin: expresiones anidadas R ( S T )
Varias expresiones: relaciones intermedias con nombre
A S T
B R A
Secuencias de operaciones
47
Tema 2. Modelo relacional de datos
2.4 Manip. de datos: lgebra Relacional
Por defecto, los atributos de la relacin resultado de una
operacin heredan los nombres de los del operando ms
a la izquierda
DIR DIRECTOR DIR_FOTOG
Los atributos de DIR tienen los mismos nombres que los de DIRECTOR
Se puede indicar una lista con nuevos nombres para los
atributos de la relacin resultado:
DIR(codDir,nomDir,apeDir,nacDir,fechaNac,pelic) DIRECTOR DIR_FOTOG
Renombramiento de atributos
48
Tema 2. Modelo relacional de datos
En matemticas, A X B = { (a,b) / aeA y beB }
Relacin = conjunto de tuplas,
= es posible el producto cartesiano entre relaciones R y S

R X S = { (t
R
,t
S
) / t
R
eR y t
S
eS }
Conjunto de pares ordenados de tuplas de R y S
Pero ha de conservarse la Propiedad de Clausura:
El resultado debe ser un conjunto de tuplas (no de pares de)

= Producto Cartesiano Ampliado, pues cada par
ordenado es sustituido por la tupla resultante
de la combinacin de las dos tuplas origen
2.4 Manip. de datos: lgebra Relacional
Producto Cartesiano entre relaciones
49
Tema 2. Modelo relacional de datos
R X S, con R y S cualesquiera, es una relacin tal que:
Esquema: combinacin (unin) de los esquemas de R y S
Estado: conjunto de todas las tuplas formadas por las posibles
combinaciones de cada tupla de R con cada tupla de S

Ejemplo: PELICULA X DIRECTOR
Obtiene un conjunto de tuplas tales que cada una es la combinacin de una tupla de
PELICULA y otra de DIRECTOR

Operacin sin demasiada importancia prctica
No se tiene ms informacin a la salida que a la entrada
pero es necesaria para definir la operacin REUNIN (JOIN)
2.4 Manip. de datos: lgebra Relacional
Producto Cartesiano entre relaciones (2)
50
Tema 2. Modelo relacional de datos
El esquema de la relacin resultante de R X S
debe estar bien formado (nombres de atributos nicos)
Si R y S tienen atributos con igual nombre, R X S tendra
dos atributos nombrados igual! ko!
ACTOR X AGENCIA = colisin de nombres en atributo nombre
Soluciones posibles:
1. Renombrar atributos de una relacin, antes del producto
AGENCIA_2(codAge, nomAge, direccion, telefono) AGENCIA
RESULTADO ACTOR X AGENCIA_2

2. Prefijar atributos con el nombre de su tabla, en la tabla resultado
RESULTADO(codA, ACTOR.nombre, nomreal,..., codAg, AGENCIA.nombre, ...)
ACTOR X AGENCIA
2.4 Manip. de datos: lgebra Relacional
Producto Cartesiano entre relaciones (y 3)
51
Tema 2. Modelo relacional de datos
R, S, T relaciones de tipos compatibles
Asociativa
( R S ) T R ( S T ) R S T
( R S ) T R ( S T ) R S T
( R X S ) X T R X ( S X T) R X S X T
Conmutativa
R S S R
R S S R
R X S S X R
La diferencia no cumple ninguna de estas propiedades

El producto cartesiano normal no las cumple, pero s el ampliado
2.4 Manip. de datos: lgebra Relacional
Propiedades de los operadores relacionales
52
Tema 2. Modelo relacional de datos
Obtener un subconjunto de las tuplas de una relacin
para las cuales se satisface una condicin de seleccin
o
<
condicin
>
(<relacin>)

Resultado: Relacin (conjunto de tuplas) con atributos de <relacin>
<condicin> es una expresin booleana
Especificada en trminos de atributos de <relacin>
Compuesta por una o ms clusulas, del tipo:
<nomAtrib> <opComp> <cte> o bien <nomAtrib> <opComp> <nomAtrib>
<opComp> operador de comparacin e {=, <, s, >, >, =}
<cte> valor constante e dominio del atributo <nomAtrib>
Clusulas conectadas por operadores booleanos AND, OR, NOT
2.4 Manip. de datos: lgebra Relacional
Restriccin de una relacin o
53
Tema 2. Modelo relacional de datos
Ejemplos:
* Tuplas de actores representados por la agencia nmero 2
o
agencia=2
(ACTOR)

* Actores cuyo cach rebasa los 30.000
o
cache>30000
(ACTOR)

* Actores representados por la agencia nmero 2, cuyo cache no llega
a los 22.000, o bien por la agencia 4 y con cach superior a 32.000
o
(agencia=2 AND cache<25000) OR (agencia=4 AND cache>35000)
(ACTOR)
2.4 Manip. de datos: lgebra Relacional
Restriccin de una relacin (2)
54
Tema 2. Modelo relacional de datos
Mecanismo de seleccin del sistema
Aplica <condicin> a cada tupla individual de <relacin>, sustituyendo
cada atributo por su valor en la tupla
Si <condicin> es TRUE, la tupla se selecciona para el resultado
Operador Restriccin: Unario
Slo se aplica a UNA relacin
Nunca puede seleccionar tuplas de ms de una relacin
Se aplica a UNA sola tupla a la vez
<condicin> nunca se refiere a ms de una tupla
Grado(Relacin Resultado) = Grado(Relacin Origen)
Tienen los mismos atributos
N Tuplas(Relacin Resultado) s N Tuplas(Relacin Origen)
2.4 Manip. de datos: lgebra Relacional
Restriccin de una relacin (3)
55
Tema 2. Modelo relacional de datos
La operacin restriccin es conmutativa

o
cond1
(o
cond2
(R) )

o
cond2
(o
cond1
(R) )



Esto permite
Secuencia de restricciones (selecciones) en cualquier orden
Combinacin de una secuencia de restricciones en una
nica restriccin con una condicin conjuntiva:

o
cond1
(o
cond2
(...(o
condn
(R))...))

o
cond1 AND cond2 AND...AND condn
(R)
2.4 Manip. de datos: lgebra Relacional
Restriccin de una relacin (y 4)
56
Tema 2. Modelo relacional de datos
Slo interesan algunos atributos de una relacin
Se proyecta la relacin sobre esos atributos
Restriccin vs. Proyeccin :
o selecciona algunas tuplas de la relacin y desecha otras
[ selecciona ciertos atributos y desecha los dems

[
<listAtrib>
(<relacin>)
Resultado: Relacin (conjunto de tuplas) cuyos atributos son
slo los de <listAtrib> y en ese orden
<listAtrib> lista de nombres de atributos de <relacin>

* Obtener el cdigo, nombre y el cach de todos los actores
[
codA, nombre, cache
(ACTOR)
2.4 Manip. de datos: lgebra Relacional
Proyeccin de una relacin [
57
Tema 2. Modelo relacional de datos
Si <listAtrib> no contiene atributos clave = tuplas repetidas!

* Obtener la agencia y la nacionalidad de todos los actores
[
agencia, nacionalidad
(ACTOR)
Eliminacin implcita de duplicados
Resultado relacin vlida

Grado(Relacin Resultado) = N atributos(<listAtrib>)
N Tuplas(Relacin Resultado) s N Tuplas(Relacin Origen)
y es igual (=) si <listAtrib> contiene una clave candidata
2.4 Manip. de datos: lgebra Relacional
Proyeccin de una relacin (2)
58
Tema 2. Modelo relacional de datos
La operacin proyeccin no es conmutativa
[
lista1
([
lista2
(R) )

= [
lista2
([
lista1
(R) )



Adems, siempre que lista1 _ lista2, entonces...
[
lista1
([
lista2
(R) )

= [
lista1
(R)


2.4 Manip. de datos: lgebra Relacional
Proyeccin de una relacin (y 3)
59
Tema 2. Modelo relacional de datos
Combina las tuplas relacionadas de dos relaciones
en una sola tupla
Permite procesar vnculos entre relaciones

* Datos de pelculas junto con los de su director correspondiente
Es necesario combinar cada tupla de PELCULA, p, con la tupla
DIRECTOR, d, tal que el valor de codDir en d coincida con el de
director en p
Se consigue aplicando la operacin REUNIN a las dos relaciones

R1 PELICULA
director=codDir
DIRECTOR
2.4 Manip. de datos: lgebra Relacional
Reunin o Join entre dos relaciones
60
Tema 2. Modelo relacional de datos
PELICULA ( codP, ttulo, ao, genero, guin, director, directorFotog, distrib,
nacio, estreno, numOscar, taquilla )
DIRECTOR ( codDir, nombre, apellido, nacio, fechaNacim, peraPrima )

* Ttulos de pelculas junto con nombre y apellido de su director
Se consigue aplicando la operacin REUNIN a las dos relaciones
Y proyectando el resultado sobre los atributos requeridos
R2[
titulo,nombre,apellido
(PELICULA
director=codDir
DIRECTOR)
2.4 Manip. de datos: lgebra Relacional
Reunin o Join entre dos relaciones (2)
R2 titulo nombre apellido
La caja 507 Enrique Urbizu
Mensaka Salvador G Ruiz
El viaje de Carol Imanol Uribe
Airbag Juanma Bajo Ulloa
61
Tema 2. Modelo relacional de datos
Forma General para relaciones A(a1, a2, ... an) y B(b1, b2, ... bm):
A
<condicin de reunin>
B

Resultado: Relacin con n+m atributos (a1, a2, ... an, b1, b2, ... bm)
Esquema: unin de las cabeceras de A y B
Estado: conjunto de tuplas, una por cada combinacin de tuplas
(una de A y otra de B) que satisface <condicin de reunin>

Reunin vs. Producto Cartesiano
En el Producto Cartesiano aparecen todas las combinaciones
posibles de tuplas de A y de B
2.4 Manip. de datos: lgebra Relacional
Reunin o Join entre dos relaciones (3)
62
Tema 2. Modelo relacional de datos
<condicin de reunin>
Expresin booleana especificada en trminos de atributos de A y B
Evaluada para cada combinacin (par) de tuplas:
Si la cumplen, forman una nueva tupla de la relacin resultado
Es de la forma:
<condicin> AND <condicin> AND... AND <condicin>
donde:
<condicin> tiene la forma ai u bj (condicin de reunin general), y
ai es un atributo de A; bj es un atributo de B,
Dominio(ai) = Dominio(bj),
u (theta) cumple que u e {=, <, s, >, >, =}

Reunin con condicin de reunin general REUNIN THETA
2.4 Manip. de datos: lgebra Relacional
Reunin o Join entre dos relaciones (4)
63
Tema 2. Modelo relacional de datos
La reunin ms comn es la que implica comparacin
de igualdad ( u = ) = EQUI-REUNIN (o REUNIN, a secas)
* Actores y agencias que los representan
ACTOR
agencia=codAg
AGENCIA
Problema: colisin de nombres de atributos
Existen atributos nombrados igual en ACTOR y AGENCIA
Resultado con varios atributos de igual nombre ko!
Dos soluciones alternativas posibles:
1. Previo renombramiento de atributos de una relacin
AGENC(codAg, nomAg, dirAg, tel) AGENCIA
R [
nombre, nomAg
(ACTOR
agencia=codAg
AGENC)
2. Prefijar atributos con el nombre de su tabla
R [
ACTOR.nombre,AGENCIA.nombre
(ACTOR
agencia=codAg
AGENCIA)
2.4 Manip. de datos: lgebra Relacional
Reunin o Join entre dos relaciones (5)
64
Tema 2. Modelo relacional de datos
Las tuplas cuyos atributos de reunin son nulos,
NO aparecen en la relacin resultado
Los actores que se auto-representan tienen NULL en atributo agencia
Sus tuplas no aparecen en ACTOR
agencia=codAg
AGENC

Las tuplas de una relacin que no encuentran
correspondencia en la otra, tampoco aparecen en la
relacin resultado
Los actores que no han actuado en ninguna pelcula, no aparecen
en ninguna tupla de la tabla ACTUA_EN
Sus tuplas no aparecen en ACTOR
codA=actor
ACTUA_EN

2.4 Manip. de datos: lgebra Relacional
Reunin o Join entre dos relaciones (6)
65
Tema 2. Modelo relacional de datos
En general, sea A con n
A
tuplas y B con n
B
tuplas, entonces
R A
<condicin de reunin>
B cumple que 0 s n
R
s n
A
*n
B

Si ninguna combinacin de tuplas de A y B cumple la
<condicin de reunin>, entonces
Relacin Resultado = Relacin vaca (cero tuplas)

Si NO se especifica <condicin de reunin>, entonces
la <condicin de reunin> es TRUE para todas las tuplas, y
X (REUNIN PROD. CARTESIANO REUNIN CRUZADA)
2.4 Manip. de datos: lgebra Relacional
Reunin o Join entre dos relaciones (y 7)
66
Tema 2. Modelo relacional de datos
AB
Caso particular de reunin, quiz el ms importante
No necesita especificar condicin de reunin, pues...
... iguala todos los pares de atributos con igual
nombre en A y B
Es una EQUI-REUNIN + eliminacin de atributos superfluos
= Slo conserva un atributo de reunin
La definicin estndar de reunin natural exige que los
atributos de reunin deben tener nombre idntico en ambas
relaciones operando
Si no es as, aplicar antes un renombramiento de atributos
deben tener el mismo dominio
2.4 Manip. de datos: lgebra Relacional
Reunin natural entre relaciones
67
Tema 2. Modelo relacional de datos
R(a, b, c)
S(b, d)



T1 R
R.b=S.b
S, tiene el esquema T1 ( a, R.b, c, S.b, d )




T2 R S, tiene el esquema T2 ( a, b, c, d )
2.4 Manip. de datos: lgebra Relacional
Reunin natural entre relaciones (2)
S b d
3 -4
1 -5
T1 a R.b c S.b d
10 1 100 1 -5
20 3 100 3 -4
R a b c
10 1 100
20 3 100
30 5 300
T2 a b c d
10 1 100 -5
20 3 100 -4
68
Tema 2. Modelo relacional de datos
Ejemplos:
1. Ttulo de todas las pelculas junto con el ttulo y resumen de su guin
GUIO(guion, titGuion, resumen, nomAutorPpal, fechaFin, fechaEntrega) GUION
RESUMEN [
titulo, titGuion, resumen

(PELICULA GUIO)

2. Ttulos de pelculas junto con el nombre y apellidos de su director
DIREC(director, nombre, apellidos, nacio, fechaNacim, operaPrima) DIRECTOR
PELI_DIRE [
titulo, nombre, apellidos

(PELICULA

DIREC)

3. Nombre de actores y de las agencias que los representan
AGENC(agencia, nomAg, direccion, telefono) AGENCIA
ACT_AGEN [
nombre, nomAg

(ACTOR

AGENC)

A qu se debe el renombramiento en cada caso?
2.4 Manip. de datos: lgebra Relacional
Reunin natural entre relaciones (y 3)
69
Tema 2. Modelo relacional de datos
Sean las relaciones A(a1, a2, ... an, b1, b2, ... bm) y B(b1, b2, ...bm)
AB es una relacin tal que:
Esquema: Relacin con los atributos no comunes R( a1, a2, ... an )
Estado: Conjunto de tuplas { (a
i
1, a
i
2, ... a
i
n) } tal que existe
en A una tupla (a
i
1, a
i
2, ... a
i
n, b
j
1, b
j
2, ... b
j
m) para
TODAS las tuplas (b
j
1, b
j
2, ... b
j
m ) de B

Poco comn. til para consultas especiales ocasionales
Nombres de los actores que trabajan en todas las pelculas dirigidas por los
hermanos Cohen
Para que una tupla t aparezca en el resultado, los valores
de t deben aparecer en A en combinacin con todas las
tuplas de B
2.4 Manip. de datos: lgebra Relacional
Divisin entre relaciones
70
Tema 2. Modelo relacional de datos
y1, y4 aparecen en A en combinacin con
las 3 tuplas de B, por eso estn en el
resultado R = A B
El resto de valores de y en A, no aparecen
con todas las tuplas de B y no son
seleccionadas: y2 no aparece con x2,
e y3 no aparece con x1
A a b
y1 x1
y1 x2
y1 x3
y1 x4
y2 x1
y2 x3
y3 x2
y3 x3
y3 x4
y4 x1
y4 x2
y4 x3

B b
x1
x2
x3

R a
y1
y4

2.4 Manip. de datos: lgebra Relacional
Divisin entre relaciones (y 2)
71
Tema 2. Modelo relacional de datos
Algunas consultas comunes no pueden expresarse con las
operaciones estndar del lgebra Relacional
Ampliacin de su poder expresivo con operaciones adicionales
Incluidas en la mayora de los lenguajes de consulta relacionales
comerciales

Funciones de agregados
Funciones matemticas de agregados sobre colecciones de valores de
la base de datos
Valor medio del cach de todos los actores
Nmero de pelculas (almacenadas en la BD)
Mximo porcentaje de comisin de las distribuidoras de pelculas
Mnima recaudacin en taquilla
Cantidad total pagada a los actores de cierta pelcula
2.4 Manip. de datos: lgebra Relacional
Otras operaciones del lgebra Relacional
72
Tema 2. Modelo relacional de datos
Funciones aplicadas a un conjunto de tuplas
SUMA
PROMEDIO
MXIMO
MNIMO
CUENTA (nmero de tuplas en una relacin)
Agrupacin de tuplas segn valor de ciertos atributos
Puede aplicarse una funcin agregada a cada grupo por separado
* Media del cach de los actores agrupados por agencias Solucin?
Agrupar actores segn su agencia representante (valor de atributo agencia)
Cada grupo incluye tuplas de actores representados por la misma agencia
Clculo del cach medio de cada grupo (funcin PROMEDIO)
El resultado es una relacin R(agencia, PROMEDIO_cach)
2.4 Manip. de datos: lgebra Relacional
Funciones de agregados
73
Tema 2. Modelo relacional de datos
2.4 Manip. de datos: lgebra Relacional
Funciones de agregados (2)
ACTOR
a1
a10
a2
a3
a4
a9
a5
a8
a7
a6
AG1
AG2
AG3
AG8
R agencia PROMEDIO_cache
AG8 Media del cache de a9 y a2
AG3 Media del cache de a5, a6 y a3
AG1 Media del cache de a7, a1 y a4
AG2 Media del cache de a8 y a10
R PROMEDIO_cache
Media del cache de a1... a10
74
Tema 2. Modelo relacional de datos
<atributos de agrupacin>
F
<lista funciones>
(<relacin>)

<atributos de agrupacin>
Lista de nombres de atributos de <relacin>
Indican atributos con los que construir los grupos
Puede estar vaca = la relacin es un (nico) grupo
<lista funciones>
Lista de pares <funcin> <atributo>
donde <funcin> e {SUMA, PROMEDIO, MXIMO, MNIMO, CUENTA}
y <atributo> es uno de los atributos de <relacin>
Resultado: una relacin R, tal que
Esquema: atributos de <atributos de agrupacin> +
un atributo por cada elemento de <lista funciones>
Cuerpo: conjunto de tuplas tal que existe una por cada grupo
2.4 Manip. de datos: lgebra Relacional
Funciones de agregados (3)
75
Tema 2. Modelo relacional de datos
Ejemplos:
1. Cdigos de Pelculas, nmero de actores en cada pelcula y su paga media
R(codpeli, numActores, pagaMedia)
film
F
CUENTA actor,PROMEDIO paga
(ACTUA_EN)
2. Cdigos de agencias, nmero de actores en cada agencia y cach medio
R(codAg, numActores, cacheMedio)
agencia
F
CUENTA codA,PROMEDIO cache
(ACTOR)
Si no se indican nombres para los atributos de la relacin
resultado R, dicha relacin incluir...
un atributo por cada atributo incluido en <atributos de agrupacin>,
con el mismo nombre, y
un atributo por cada funcin incluida en <lista funciones>,
denominado FUNCIN_atributo
Los esquemas de las relaciones resultado de los ejemplos anteriores seran:
1. R(film,CUENTA_actor, PROMEDIO_paga)
2. R(agencia, CUENTA_codA, PROMEDIO_cache)
2.4 Manip. de datos: lgebra Relacional
Funciones de agregados (4)
76
Tema 2. Modelo relacional de datos
Si no se especifican atributos de agrupacin
Toda la relacin es un nico grupo
Las funciones se aplican a todas las tuplas
La relacin resultado tendr una sola tupla
* Nmero de pelculas y recaudacin media
F
CUENTA codP,PROMEDIO taquilla
(PELICULA)

El resultado de aplicar una funcin agregada siempre es
una relacin, no un n escalar, aunque tenga un nico
valor
* Recaudacin mxima obtenida
F
MXIMO taquilla
(PELICULA)
2.4 Manip. de datos: lgebra Relacional
Funciones de agregados (y 5)
R MAXIMO_taquilla
232.850
77
Tema 2. Modelo relacional de datos
No pueden expresarse en el lgebra Relacional
Se aplican a una referencia recursiva entre tuplas del mismo
tipo (empleado y jefe en la relacin EMPLEADO)

* Cdigos de los empleados que tienen como superior a e, en todos los
niveles
_________________Nivel 1

_________________Nivel 2

_________________Nivel 3


etc.
e

e
1
1

e
1
2 ...

e
1
n

e
2
1...

e
2
m ... ... ... e
2
p

e
3
1... e
3
q ...

e
3
r

... ... ...

e
3
t

...
2.4 Manip. de datos: lgebra Relacional
Operaciones de cierre recursivo
78
Tema 2. Modelo relacional de datos
En lgebra Relacional es sencillo especificar empleados
cuyo jefe es e en cierto nivel conocido, pero no en todos
los niveles

Ejemplo para el nivel 2: cdigo de los empleados cuyo jefe directo es e o bien su jefe es
un empleado cuyo jefe es e
EMP_JEF(codE, codJ) [
codemp, codjefe

(EMPLEADO)
EMP_1(cod) [
codE
(o
codJ=e
(EMP_JEF)) Empleados de nivel 1
EMP_2(cod) [
codE

(EMP_JEF
codJ=cod
(EMP_1)) Empleados de nivel 2
RESULTADO EMP_1 EMP_2
2.4 Manip. de datos: lgebra Relacional
Operaciones de cierre recursivo (y 2)
79
Tema 2. Modelo relacional de datos
Extensin de la operacin REUNIN
Permiten conservar todas las tuplas en A o B o ambas,
aunque...
No tengan tuplas coincidentes
Contengan nulos en los atributos de reunin

* Nombres de actores y de sus agencias representantes, si tienen
AGEN(codAg, nomAg, direccion,telefono) AGENCIA
TEMP (ACTOR
agencia=codAg
AGEN)
RESULTADO [
nombre, nomAg
(TEMP)
2.4 Manip. de datos: lgebra Relacional
Reunin externa (Outer-join) entre relaciones
80
Tema 2. Modelo relacional de datos
REUNIN EXTERNA IZQUIERDA R = A B
Conserva en R todas las tuplas de A
Si no encuentra una tupla coincidente en B, cada atributo de R
(correspondiente a B) es NULO

REUNIN EXTERNA DERECHA R = A B
Conserva en R todas las tuplas de B
Si no encuentra una tupla coincidente en A, cada atributo de R
(correspondiente a A) es NULO

REUNIN EXTERNA COMPLETA R = A B
Conserva en R todas las tuplas de A y de B
Cuando no encuentra tuplas coincidentes, rellena con NULO
2.4 Manip. de datos: lgebra Relacional
Reunin externa entre relaciones (2)
81
Tema 2. Modelo relacional de datos
* Nombres de agencias y de los actores a los que representan, incluyendo...
1.- las agencias que no representan a ningn actor
R1= t
nomAc, nomAg
(ACTOR
agencia=codAg
AGENCIA)
2.- los actores que no tienen agencia de representacin
R2 = t
nomAc, nomAg
( ACTOR
agencia=codAg
AGENCIA
3.- tanto las agencias que no representan a ningn actor, como los actores que no
tienen agencia
R3 = t
nomAc, nomAg
( ACTOR
agencia=codAg
AGENCIA
2.4 Manip. de datos: lgebra Relacional
Reunin externa entre relaciones (3)
ACTOR nomAc ... agencia ...
Carmelo Gmez A23
Mara Pujalte A03
Pere Ponce A10
Javier Bardem NULL
AGENCIA codAg nomAg ...
A10 AgeRep
A30 ReprActors
A03 ActorsMngr
A23 ARA
82
Tema 2. Modelo relacional de datos
2.4 Manip. de datos: lgebra Relacional
Reunin externa entre relaciones (y 4)
ACTOR AGENCIA nomAc nomAg
Carmelo Gmez ARA
Mara Pujalte ActorsMngr
Pere Ponce AgeRep
NULL ReprActors
ACTOR AGENCIA nomAc nomAg
Carmelo Gmez ARA
Mara Pujalte ActorsMngr
Pere Ponce AgeRep
Javier Bardem NULL
ACTOR AGENCIA
nomAc nomAg
Carmelo Gmez ARA
Mara Pujalte ActorsMngr
Pere Ponce AgeRep
Javier Bardem NULL
NULL ReprActors
83
Tema 2. Modelo relacional de datos
Lenguaje formal para BD Relacionales
Basado en Clculo de Predicados de Primer Orden (rama
de Lgica Matemtica)
2.4 Manipulacin de datos
2.4.2. Clculo Relacional
Clculo Relacional vs. lgebra Relacional
- Expresiones Declarativas
(lenguaje no procedimental)
- Secuencias de Operaciones
No se indica CMO evaluar la
consulta, sino QU se desea
obtener
Describe la informacin deseada
sin dar un procedimiento
especfico para obtenerla

Aunque se anidan para formar
una sola expresin, siempre se
indica explcitamente cierto orden
de las operaciones
Estrategia parcial de
evaluacin de la consulta
(~ lenguaje procedimental de
alto nivel )
84
Tema 2. Modelo relacional de datos
Poder expresivo idntico de lgebra y clculo relacionales
Cualquier obtencin de datos especificada en el lgebra
Relacional puede expresarse en el Clculo Relacional (restringido a
expresiones seguras) y viceversa

Definicin: Lenguaje Relacionalmente Completo
Lenguaje en el que es posible expresar cualquier consulta
que pueda especificarse en el Clculo Relacional
Clculo Relacional como medida del poder selectivo de lenguajes
relacionales

Formas de adaptar el Clculo de Predicados de 1
er
Orden
para crear un Lenguaje de Consultas para BDR:
Clculo Relacional de Tuplas (CRT) Codd, 1972
Clculo Relacional de Dominios Lacroix y Pirotte, 1977
2.4 Manip. de datos: Clculo Relacional
85
Tema 2. Modelo relacional de datos
CRT basado en la especificacin de variables de tupla
Toda variable de tupla abarca o recorre una relacin
= puede tomar como valor cualquier tupla de esa relacin
{ t | COND(t) }
Resultado: conjunto de tuplas t que satisfacen la condicin COND(t)
COND(t): expresin condicional en la que interviene la var. de tupla t

* Actores cuyo cach rebasa los 2.000
{ t | ACTOR(t) and t.cache>2000 }
ACTOR(t) indica que ACTOR es la Relacin de Intervalo que t recorre
t.cache hace referencia al atributo cach de la variable de tupla t
2.4 Manip. de datos: Clculo Relacional
Expresiones de consulta
86
Tema 2. Modelo relacional de datos
Obtencin de algunos atributos de las tuplas seleccionadas
{ <lista atributos> | COND(t) }

Ejemplos:

* Nombre y nacionalidad de los actores cuyo cach rebasa los 2.000
{ t.nombre, t.nacionalidad | ACTOR(t) and t.cache>5000 }

* Fecha de nacimiento y nombre real del actor Javier Bardem
{ t.fechaNacim, t.nombreReal | ACTOR(t) and t.nombre = Javier Bardem }

2.4 Manip. de datos: Clculo Relacional
Expresiones de consulta (y 2)
87
Tema 2. Modelo relacional de datos
Una expresin del Clculo Relacional contiene:

Para cada variable de tupla t, su relacin de intervalo R:
R(t)

Condicin de seleccin de combinaciones de tuplas
-Conforme las variables de tupla recorren sus relaciones, la condicin
se evala para cada combinacin de tuplas
-Las combinaciones que dan TRUE se seleccionan para el resultado

Lista de atributos solicitados
-Se obtienen sus valores para cada combinacin seleccionada
2.4 Manip. de datos: Clculo Relacional
Expresin del CRT: punto de vista informal
88
Tema 2. Modelo relacional de datos
Expresin General
{ t
1
.a
1
, t
2
.a
2
, ... , t
n
.a
p
| COND(t
1
, t
2
, ..., t
n
, t
n+1
,t
n+2
,...t
n+m
) }

donde:
t
1
, t
2
, ..., t
n
, t
n+1
, t
n+2
, ... t
n+m
son variables de tupla
a
i
es un atributo de la relacin que t
j
recorre
COND(..): frmula (bien formada) del Clculo Relacional de Tuplas
constituida por tomos del Clculo de Predicados
2.4 Manip. de datos: Clculo Relacional
Expresin del CRT: punto de vista formal
89
Tema 2. Modelo relacional de datos
tomos
R(t
i
) el intervalo de la variable de tupla t
i
es la relacin R
t
i
.a op t
j
.b ,, op e { =, =, <, s, >, > }
t
i
y t
j
variables de tupla
a atributo de la relacin que t
i
abarca
b atributo de la relacin que t
j
abarca
t
i
.a op c ,, c op t
j
.b ,, op e { =, =, <, s, >, > }
t
i
y t
j
variables de tupla
a atributo de la relacin que t
i
abarca
b atributo de la relacin que t
j
abarca
c valor constante
- Los tomos estn ligados mediante operadores and, or, not y
2.4 Manip. de datos: Clculo Relacional
Expresin del CRT: punto de vista formal (2)
90
Tema 2. Modelo relacional de datos
Valor lgico de un tomo
Evaluacin del tomo para una combinacin especfica de tuplas
= valor TRUE o FALSE
R(t
i
)
TRUE si se asigna una tupla de R a t
i

Si no, es FALSE
t
i
.a op t
j
.b ,, t
i
.a op c ,, c op t
j
.b
TRUE si t
i
y t
j
se asignan a tuplas tales que los atributos
especificados (a y b) satisfacen la condicin
Si no es as, ser FALSE
2.4 Manip. de datos: Clculo Relacional
Expresin del CRT: punto de vista formal (3)
91
Tema 2. Modelo relacional de datos
Frmula bien formada (fbf)
Definicin recursiva

D1. Todo tomo es una frmula bien formada
R(t
i
) ,, t
i
.a op t
j
.b ,, t
i
.a op c ,, c op t
j
.b

D2. Si F1 y F2 son fbf, tambin lo son...
(F1 and F2), (F1 or F2), not(F1), not(F2) y (F1 F2)
y los valores lgicos de estas frmulas
se derivan de F1 y F2, segn la Lgica Booleana
Nota: (F1 F2) (not(F1) or F2)

continuar...

2.4 Manip. de datos: Clculo Relacional
Expresin del CRT: punto de vista formal (4)
92
Tema 2. Modelo relacional de datos
Cuantificadores
Universal (t) (BANCO(t) and not(t.ciudad = Londres))
Existencial - (-t) (BANCO(t) and t.ciudad = Amsterdam)

Variable de tupla libre y ligada en una fbf
informal

t est ligada si est cuantificada ( aparece en clusulas (t) o (-t) )
si no, est libre

2.4 Manip. de datos: Clculo Relacional
Expresin del CRT: punto de vista formal (5)
93
Tema 2. Modelo relacional de datos
Variable de tupla libre y ligada en una fbf
formal
Si F tomo, cualquier ocurrencia de una variable de tupla t,
est libre
En (F1 and F2), (F1 or F2), not(F1), not(F2) y (F1 F2),
una ocurrencia de t est libre o ligada segn lo est en F1 o F2
Toda ocurrencia libre de t en F est ligada en F, si
F=(-t)F o bien F=(t)F
y t estar ligada al cuantificador especificado en F

F1 : d.nombre = Carmelo Gmez
F2 : (-t) (d.agencia = t.codAg)
La variable de tupla d est libre en F1 y en F2
t est ligada al cuantificador - en F2
2.4 Manip. de datos: Clculo Relacional
Expresin del CRT: punto de vista formal (6)
94
Tema 2. Modelo relacional de datos
Frmula bien formada (continuacin)

D3. Si F es una fbf, tambin lo es (-t)F, donde t es una variable de
tupla
(-t)F es TRUE si F es TRUE para al menos una tupla asignada
a ocurrencias libres de t en F
de lo contrario es FALSE

D4. Si F es una fbf, tambin lo es (t)F, donde t es una variable de
tupla
(t)F es TRUE si F es TRUE para toda tupla (en el universo)
asignada a ocurrencias libres de t en F
de lo contrario es FALSE
2.4 Manip. de datos: Clculo Relacional
Expresin del CRT: punto de vista formal (7)
95
Tema 2. Modelo relacional de datos
Frmula bien formada (continuacin)

Si la frmula es cerrada (toda variable ligada a cuantificadores),
entonces representa una expresin que ser TRUE o FALSE
F3 : (-a) (ACTOR(a) and a.nombre = Javier Cmara)
F4 : (p) (PELICULA(p) (-d) (DIRECTOR(d) and d.coddir=p.director)

Si la frmula es abierta (tiene variables libres), entonces
representa una consulta cuya evaluacin devolver los valores
de sus variables libres que hacen TRUE la frmula
F5 : ACTOR(a) and a.fechaNacim > 31/12/1971
sirve para preguntar por los actores/actrices que nacieron en 1972 o despus
2.4 Manip. de datos: Clculo Relacional
Expresin del CRT: punto de vista formal (8)
96
Tema 2. Modelo relacional de datos
Expresin segura
Su resultado es un nmero finito de tuplas
Al usar cuantificadores (-,) o negacin (not), la expresin ha de tener
sentido: ser segura y no generar una relacin infinita
E= {t | not(ACTOR(t))} = tuplas del universo que NO son de ACTOR !!
Dominio de una expresin del CRT
Valores constantes en la expresin o que existen en cualquier
tupla de las relaciones a las que se referencia en la expresin
Dominio ( E={t | not(ACTOR(t))} )= todos los valores de atributos de tuplas ACTOR

= Una expresin es segura si todo valor del resultado e dominio
de la expresin
E es insegura, ya que el resultado incluye tuplas (y, por tanto, valores) que no estn en
la relacin ACTOR (es decir, que e su dominio)
2.4 Manip. de datos: Clculo Relacional
Expresin del CRT: punto de vista formal (y 9)