Anda di halaman 1dari 96

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
Tema 2. Modelo relacional de datos 1
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

Tema 2. Modelo relacional de datos 2


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)
...

Tema 2. Modelo relacional de datos 3


2.1 Presentacin y orgenes del MR

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

Tema 2. Modelo relacional de datos 4


2.2 Estructura de datos relacional
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 1er orden
Slida Base Formal

Tema 2. Modelo relacional de datos 5


2.2 Estructura de datos
relacional
La relacin
Gneros Aos Pases
PELICULA
dominios

Ttulos Nombres Ciencia-ficcin, 2002, 1997, Italia,Argentina, Tiempo


--- --- --- --- Drama,Thriller, 1999, 2001, Espaa, EEUU, --- ---
--- --- --- --- Comedia... 1994, 1972... Francia,Japn.. --- ---

nacionalida
ttulo director gnero rodaje duracin
d
Amores Perros A. Gonzlez Drama 2000 Mxico 145
The Matrix A. Wachowsky Ciencia-ficcin 1999 EEUU 138
cardinalid

Torrente S. Segura Comedia 1997 Espaa 110


ad

tupla
Nos miran N. Lpez Policiaco 2001 Espaa 118 s
Amelie J. P. Jeunet Comedia 2001 Francia 122
Los lunes al sol F. Len Drama 2002 Espaa 117

atributos
grad
o 6
Tema 2. Modelo relacional de datos
2.2 Estructura de datos relacional
Trminos bsicos
Procesamiento
Modelo Relacional de Ficheros
Formal SQL-92
Relacin Tabla Fichero
Si la tupla t est en la Registro
Tupla relacin R, entonces tR
Fila
concreto
Debe tener un nombre Nombre de
cabecera de
Atributo nico dentro de cada Campo de
relacin Columna
registro
Cardinalida n de tuplas en una
=
d relacin
n atributos en una
Grado relacin
=

coleccin de valores
Dominio permitidos para ciertos =
atributos
Tema 2. Modelo relacional de datos 7
2.2 Estructura de datos
relacional
Definiciones formales: DOMINIO
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


Tema 2. La comparacin
Modelo relacional de datosde dos atributos slo tiene sentido si 8
2.2 Estructura de datos
relacional
Definiciones formales: RELACIN (1)
Una relacin R, sobre conjunto de dominios D1, D2 ...
Dn
se compone de dos partes:

Esquema o Cabecera
Conjunto de pares Atributo:Dominio
{ (A1:D1), (A2:D2) ... (An:Dn) }
Cada Aj tiene asociado slo un Dj
Los Di no tienen por qu ser distintos entre s

Estado, Cuerpo o Instancia


Conjunto de tuplas que contiene en un instante
concreto
Tema 2. Modelo relacional de datos 9
2.2 Estructura de datos
relacional
Definiciones formales: RELACIN (2)
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
Tema 2. Modelo relacional de datos 10
ver)
2.2 Estructura de datos
relacional
Definiciones formales: RELACIN (3)
Propiedades de una Relacin

1. No existen tuplas repetidas


estado = conjunto
2. Las tuplas no estn ordenadasmatemtico de
tuplas
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

Tema 2. Modelo relacional de datos 11


2.2 Estructura de datos
relacional
Definiciones formales: RELACIN (4)
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)

Tema 2. Modelo relacional de datos 12


2.2 Estructura de datos
relacional
Definiciones formales: RELACIN (5)
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

Tema 2. Modelo relacional de datos 13


2.2 Estructura de datos
relacional
Definiciones formales: BD
RELACIONAL (1)
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
Tema 2. )
Modelo relacional de datos 14
2.2 Estructura de datos
relacional
Definiciones formales: BD
RELACIONAL (2)
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
Tema 2. Modelo relacional de datos 15
2.3 Caractersticas generales de
integridad 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 16
Tema 2. Modelo relacional de datos
2.3 Caractersticas generales de
integridad de datos
Reglas de integridad
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 Claves Candidatas y Primarias
de integridad
importantes
Tema 2. Modelo relacional de datos y Claves Ajenas
necesarias en (o forneas
toda BD o externas)
17
2.3 Caractersticas generales de
integridad de datos
Superclave y Clave de una relacin
Sea R una relacin R(A1:D1 , A2:D2 ,... An:Dn )
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
Tema 2. Modelo relacional de datos 18
2.3 Caractersticas generales de
integridad de datos
Superclave y Clave: Ejemplos
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} }

Tema 2. Modelo relacional de datos 19


2.3 Caractersticas generales de
integridad de datos
Clave Candidata, Primaria y
Alternativa
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} }

Tema 2. Modelo relacional de datos 20


2.3 Caractersticas generales de
integridad de datos
Clave Ajena (Externa o Fornea)
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, ...)


Tema 2. Modelo relacional de datos 21
2.3 Caractersticas generales de
integridad de datos
Clave Ajena (Externa o Fornea) (2)

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
Tema 2. Modelo relacional de datos 22
2.3 Caractersticas generales de
integridad de datos
Clave Ajena (Externa o Fornea) (3)

CUENTA nmero saldo ..


Cada cliente slo puede tener una .
cuenta a su nombre. 200 35000
Una cuenta puede tener ms de 505 40000
un cliente como titular.
821 50000
...
CLIENTE nombre direccin ciudad cuenta
Vnculo
Garca, A Gran Va, 6 Murcia 200 Cliente-Cuenta
Lpez, B Ronda Norte, 3 Murcia 821
Azorn, C Paseo Nuevo, 9 Valencia 505
Prez, C Plaza Mayor, 2 Valencia 505
...
Tema 2. Modelo relacional de datos 23
2.3 Caractersticas generales de
integridad de datos
Clave Ajena (Externa o Fornea) (4)

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
FK existente en esa relacin
ARTICULO ESCRITOR

Puede existir algn valor de PK al que NO haga


referencia
ningn valor de la FK
ESCRITOR
Tema 2. Modelo quedeno
relacional haya
datos escrito artculos: ninguna tupla de 24
2.3 Caractersticas generales de
integridad de datos
Clave Ajena (Externa o Fornea) (y 5)

Diagrama Referencial
Expresin de la existencia de Claves Ajenas
Camino Referencial
LIBRO ttulo isbn autor editorial ... EDITORIAL nombre direccin ...

ESCRITOR dni nombre ... editorial

ARTICULO ttulo tema autor revista pg ...

EMPL codEmp ... dep DEPTO codDep ... dire


Ciclo Referencial
Camino que empieza y acaba en la misma relacin
Caso especial: AutorreferenciaEMPLEADO codEmp ... jefe
Tema 2. Modelo relacional de datos 25
2.3 Caractersticas generales de
integridad de datos
Mantenimiento de la Integridad
Referencial
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, ...)?
OCUPACIN codClie habit ... HABITACIN numHabit tipo ...
Y si se anotara la ocupacin de la habitacin 900?
CLI04 100 115 I
CLI02 420 420 I
CLI05 115 100 D
CLI10 100 304 D
405 I
501 D
Tema 2. Modelo relacional de datos 26
2.3 Caractersticas generales de
integridad de datos
Mantenimiento de la Integridad
Referencial (2)
Cmo evita el SGBD esos estados incorrectos?
El SGBD puede...
Rechazar toda operacin que pueda provocar un estado
ilegal, 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
Tema 2. Modelo relacional de datos 27
2.3 Caractersticas generales de
integridad de datos
Mantenimiento de la Integridad
Referencial (3) 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
at
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 *)
Tema 2. Modelo relacional de datos 28
2.3 Caractersticas generales de
integridad de datos
Mantenimiento de la Integridad
Referencial (4) 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

Tema 2. Modelo relacional de datos 29


2.3 Caractersticas generales de
integridad de datos
Mantenimiento de la Integridad
Referencial
Operacin: (5)
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
Tema 2. 3. Establecer
Modelo nulos
relacional de datos (* se ver despus *) 30
2.3 Caractersticas generales de
integridad de datos
Mantenimiento de la Integridad
Referencial (6) 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

Tema 2. Modelo relacional de datos 31


2.3 Caractersticas generales de
integridad de datos
Mantenimiento de la Integridad
Referencial (y 7)
Encadenamiento de eliminaciones (anlogo para
Modificacin) R3 R2 R1
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
Tema 2. Modelo relacional de datos 32
2.3 Caractersticas generales de
integridad de datos
Nulos
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

nulo no es un valor en s mismo,


sino un indicador de ausencia de informacin
Norelacional
Tema 2. Modelo hay dos nulos
de datos iguales (num_telefono NULL edad NULL) 33
2.3 Caractersticas generales de
integridad de datos
Implicaciones de los nulos en la
integridad
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

Tema 2. Modelo relacional de datos 34


2.3 Caractersticas generales de
integridad de datos
Implicaciones de los nulos en la
integridad (2)
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
Tema 2. de clave
Modelo ajena
relacional de datossin correspondencia 35
2.3 Caractersticas generales de
integridad de datos
Implicaciones de los nulos en la
integridad (3)
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
Tema 2. Modelo relacionalla
de tupla
datos t 36
2.3 Caractersticas generales de
integridad de datos
Implicaciones de los nulos en la
integridad (y 4) 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
Tema 2. Modelo relacional de datos 37
2.3 Caractersticas generales de
integridad de datos
Resumiendo, el SGBD se encarga de...
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
Tema integridad
2. Modelo relacional de datos 38
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}
Tema 2. Modelo relacional de datos 39
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)

Tema 2. Modelo relacional de datos 40


2.4 Manipulacin de datos
2.4.1. lgebra Relacional
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
Tema 2. Modelo 41
relacional
proyeccinde datos
2.4 Manip. de datos: lgebra
Relacional
Clausura relacional
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)

Tema 2. Modelo relacional de datos 42


2.4 Manip. de datos: lgebra
Relacional
Compatibilidad de tipos (o con la unin)
En matemticas, AB = { e / eA y-o eB }
Relacin = conjunto de tuplas
es posible hacer la unin de dos relaciones R y S
RS = { t / tR y-o tS }
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
Tema 2. Modelo relacional de datos 43
2.4 Manip. de datos: lgebra
Relacional
Compatibilidad de tipos (y 2)
Sean R ( r1, r2,..., rn ), S ( s1, s2, ..., sn )
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(ri) = dom(si) ,, 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
tiporelacional
Tema 2. Modelo en susdeoperandos
datos 44
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 en R, en S o en
ambas
Las tuplas repetidas se eliminan (por definicin)
Interseccin de
Ejemplo: DIRECTOR relaciones
DIR_FOTOG
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:
Tema 2. Modelo DIRECTOR
relacional
de datos DIR_FOTOG 45
2.4 Manip. de datos: lgebra
Relacional
Diferencia entre 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 en R, pero NO en
S
operacin con cierta direccionalidad, como la resta
Secuencias
aritmtica de operaciones
La
Ejemplo: DIRECTORde
propiedad DIR_FOTOG
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
AS T
B
Tema 2. Modelo relacional de R A
datos 46
2.4 Manip. de datos: lgebra
Relacional
Renombramiento de atributos
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

Tema 2. Modelo relacional de datos 47


2.4 Manip. de datos: lgebra
Relacional
Producto Cartesiano entre relaciones
En matemticas, A B = { (a,b) / aA y bB }
Relacin = conjunto de tuplas,
es posible el producto cartesiano entre
relaciones R y S

R S = { (tR,tS) / tRR y tSS }


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
Tema 2. Modelo relacional de datos 48
2.4 Manip. de datos: lgebra
Relacional
Producto Cartesiano entre relaciones (2)
R 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 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
49
(JOIN
Tema 2. Modelo relacional
) de datos
2.4 Manip. de datos: lgebra
Relacional
Producto Cartesiano entre relaciones (y 3)
El esquema de la relacin resultante de R S
debe estar bien formado (nombres de atributos nicos)
Si R y S tienen atributos con igual nombre, R S
tendra dos atributos nombrados igual! ko!
ACTOR 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 AGENCIA_2

2. Prefijar atributos con el nombre de su tabla, en la tabla


resultado
RESULTADO(codA, ACTOR.nombre, nomreal,..., codAg, AGENCIA.nombre, ...)
Tema 2. Modelo ACTORdedatos
relacional AGENCIA 50
2.4 Manip. de datos: lgebra
Relacional
Propiedades de los operadores
relacionales
R, S, T relaciones de tipos compatibles
Asociativa
(RS)TR(ST)RST
(RS)TR(ST)RST
( R S ) T R ( S T) R S T
Conmutativa
RS SR
RS SR
RS SR
La diferencia no cumple ninguna de estas
propiedades

El producto cartesiano normal no las cumple, pero s el 51


Tema 2. Modelo relacional de datos
2.4 Manip. de datos: lgebra
Relacional
Restriccin de una relacin

Obtener un subconjunto de las tuplas de una relacin
para las cuales se satisface una condicin de
seleccin
<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 {=, <, , >, ,
}
<cte> valor constante dominio del atributo <nomAtrib> 52
Tema 2. Modelo relacional de datos
2.4 Manip. de datos: lgebra
Relacional
Restriccin de una relacin (2)
Ejemplos:


* Tuplas de actores representados por la agencia nmero 2
agencia=2 (ACTOR)


* Actores cuyo cach rebasa los 30.000
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
(agencia=2 AND cache<25000) OR (agencia=4 AND cache>35000) (ACTOR)

Tema 2. Modelo relacional de datos 53


2.4 Manip. de datos: lgebra
Relacional
Restriccin de una relacin (3)
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) N Tuplas(Relacin Origen) 54
Tema 2. Modelo relacional de datos
2.4 Manip. de datos: lgebra
Relacional
Restriccin de una relacin (y 4)
La operacin restriccin es conmutativa

( cond1 cond2 (R) ) ( cond2 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:

( (...(
cond1 cond2 condn (R))...)) cond1 AND cond2 AND...AND condn(R)

Tema 2. Modelo relacional de datos 55


2.4 Manip. de datos: lgebra
Relacional
Proyeccin de una relacin

Slo interesan algunos atributos de una relacin
Se proyecta la relacin sobre esos atributos
Restriccin vs. Proyeccin :

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


Tema 2. Modelo relacional de datos 56
2.4 Manip. de datos: lgebra
Relacional
Proyeccin de una relacin (2)
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) N Tuplas(Relacin Origen)


y es igual (=) si <listAtrib> contiene una clave candidata
Tema 2. Modelo relacional de datos 57
2.4 Manip. de datos: lgebra
Relacional
Proyeccin de una relacin (y 3)
La operacin proyeccin no es conmutativa

lista1 ( lista2 (R) ) lista2 (lista1 (R) )

Adems, siempre que lista1 lista2, entonces...

lista1 ( lista2 (R) ) = lista1 (R)

Tema 2. Modelo relacional de datos 58


2.4 Manip. de datos: lgebra
Relacional
Reunin o Join entre dos relaciones
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


Tema 2. Modelo relacional de datos 59
2.4 Manip. de datos: lgebra
Relacional
Reunin o Join entre dos relaciones (2)
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

R2titulo,nombre,apellido (PELICULA director=codDir DIRECTOR )


R2 titulo nombre apellido
La caja 507 Enrique Urbizu
Mensaka Salvador G Ruiz
El viaje de Carol Imanol Uribe
Airbag Juanma Bajo Ulloa
Tema 2. Modelo relacional de datos 60
2.4 Manip. de datos: lgebra
Relacional
Reunin o Join entre dos relaciones (3)
Forma General para relaciones A(a1, a2, ... an) y B(b1, b2, ...
bm):

A B
<condicin de reunin>

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


Tema 2.Modelo
En elrelacional
Producto Cartesiano aparecen todas las
de datos 61
2.4 Manip. de datos: lgebra
Relacional
Reunin o Join entre dos relaciones (4)
<condicin de reunin>
Expresin booleana especificada en trminos de atributos de
AyB
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 bj (condicin de reunin general), y
ai es un atributo de A; bj es un atributo de B,
Dominio(ai) = Dominio(bj),
(theta) cumple que {=, <, , >, , }
Tema 2. Modelo relacional de datos 62
2.4 Manip. de datos: lgebra
Relacional
Reunin o Join entre dos relaciones (5)
La reunin ms comn es la que implica
comparacin de igualdad ( = ) 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


Tema 2. Modelo R ACTOR.nombre,AGENCIA.nombre
relacional de datos (ACTOR agencia=codAg AGENCIA)
63
2.4 Manip. de datos: lgebra
Relacional
Reunin o Join entre dos relaciones (6)
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

Tema 2. Modelo relacional de datos 64


2.4 Manip. de datos: lgebra
Relacional
Reunin o Join entre dos relaciones (y 7)
En general, sea A con nA tuplas y B con nB tuplas,
entonces
R A <condicin de reunin> B cumple que 0 nR nA *nB

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
(REUNIN PROD. CARTESIANO REUNIN CRUZADA)

Tema 2. Modelo relacional de datos 65


2.4 Manip. de datos: lgebra
Relacional
Reunin natural entre relaciones
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 66
Tema 2. Modelo relacional de datos
2.4 Manip. de datos: lgebra
Relacional
Reunin natural entre relaciones (2)
R(a, b, c) R a b c S b d
S(b, d) 10 1 100 3 -4
20 3 100 1 -5
30 5 300

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


T1 a R.b c S.b d
10 1 100 1 -5
20 3 100 3 -4

T2 a b c d
T2 R S, tiene el esquema T2 ( a, b, c, d )
10 1 100 -5
20 3 100 -4

Tema 2. Modelo relacional de datos 67


2.4 Manip. de datos: lgebra
Relacional
Reunin natural entre relaciones (y 3)
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?
Tema 2. Modelo relacional de datos 68
2.4 Manip. de datos: lgebra
Relacional
Divisin entre relaciones

Sean las relaciones A(a1, a2, ... an, b1, b2, ... bm) y B(b1, b2, ...bm)
A B es una relacin tal que:
Esquema: Relacin con los atributos no comunes R( a1,
a2, ... an )
Estado: Conjunto de tuplas { (ai1, ai2, ... ain) } tal que existe
en A una tupla (ai1, ai2, ... ain, bj1, bj2, ... bjm) para
TODAS las tuplas (bj1, bj2, ... bjm ) 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
Tema 2. Modelo relacional de datos 69
2.4 Manip. de datos: lgebra
Relacional
Divisin entre relaciones (y 2)

y1, y4 aparecen en A en combinacin


con las 3 tuplas de B, por eso
estn en el resultado R=AB
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
Tema 2. Modelo relacional de datos 70
2.4 Manip. de datos: lgebra
Relacional
Otras operaciones del lgebra Relacional
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
Tema 2. Modelo relacional de datos 71
2.4 Manip. de datos: lgebra
Relacional
Funciones de agregados
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
Tema 2. Modelo relacional de datos R(agencia, 72
2.4 Manip. de datos: lgebra
Relacional
Funciones de agregados (2)
R PROMEDIO_cache
ACTOR
AG1 AG8 Media del cache de a1... a10
a9
a1 a4 a2
a5 a6
a7 AG2 a3
AG3
a10 a8

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

Tema 2. Modelo relacional de datos 73


2.4 Manip. de datos: lgebra
Relacional
Funciones de agregados (3)

<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> {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
Tema 2. Modelo relacional de datos 74
2.4 Manip. de datos: lgebra
Relacional
Funciones de agregados (4)
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)
Tema 2. 2. R(agencia,
Modelo CUENTA_codA,
relacional de datos PROMEDIO_cache) 75
2.4 Manip. de datos: lgebra
Relacional
Funciones de agregados (y 5)
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
R MAXIMO_taquilla
* Recaudacin mxima obtenida
232.850
F MXIMO taquilla(PELICULA)
Tema 2. Modelo relacional de datos 76
2.4 Manip. de datos: lgebra
Relacional
Operaciones de cierre recursivo
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
e

e11 e12 ... e1n _________________Nivel 1

e21... e2 m ... ... ... e2p _________________Nivel 2

e31... e3q ... e3r ... ... ... e3t_________________Nivel 3


... etc.

Tema 2. Modelo relacional de datos 77


2.4 Manip. de datos: lgebra
Relacional
Operaciones de cierre recursivo (y 2)
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 ( 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


Tema 2. Modelo relacional de datos 78
2.4 Manip. de datos: lgebra
Relacional
Reunin externa (Outer-join) entre
relaciones
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)

Tema 2. Modelo relacional de datos 79


2.4 Manip. de datos: lgebra
Relacional
Reunin externa entre relaciones (2)
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

Tema 2. Modelo relacional de datos 80


2.4 Manip. de datos: lgebra
Relacional
Reunin externa entre relaciones (3)
ACTOR nomAc ... agencia ... AGENCIA codAg nomAg ...
Carmelo Gmez A23 A10 AgeRep
Mara Pujalte A03 A30 ReprActors
Pere Ponce A10 A03 ActorsMngr
Javier Bardem NULL A23 ARA

* Nombres de agencias y de los actores a los que representan, incluyendo...


1.- las agencias que no representan a ningn actor

R1= nomAc, nomAg (ACTOR agencia=codAg AGENCIA)

2.- los actores que no tienen agencia de representacin



R2 = nomAc, nomAg ( ACTOR agencia=codAg AGENCIA

3.- tanto las agencias que no representan a ningn actor, como los actores que no
tienen agencia

R3 = nomAc, nomAg ( ACTOR agencia=codAg AGENCIA

Tema 2. Modelo relacional de datos 81


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
ACTOR AGENCIA
NULL ReprActors nomAc nomAg
ACTOR AGENCIA nomAc nomAg Carmelo Gmez ARA
Carmelo Gmez ARA Mara Pujalte ActorsMngr
Mara Pujalte ActorsMngr Pere Ponce AgeRep
Pere Ponce AgeRep Javier Bardem NULL
Javier Bardem NULL NULL ReprActors

Tema 2. Modelo relacional de datos 82


2.4 Manipulacin de datos
2.4.2. Clculo Relacional
Lenguaje formal para BD Relacionales
Basado en Clculo de Predicados de Primer Orden
(rama de Lgica Matemtica)

Clculo Relacional vs. lgebra Relacional


- Expresiones Declarativas
- Secuencias de Operaciones
(lenguaje no procedimental)
Aunque se anidan para
No se indica CMO evaluar la
formar una sola expresin,
consulta, sino QU se desea
siempre se indica
obtener
explcitamente cierto orden
Describe la informacin
de las operaciones
deseada sin dar un
Estrategia parcial de
procedimiento especfico
evaluacin de la consulta
para obtenerla
( lenguaje procedimental de
alto nivel )
Tema 2. Modelo relacional de datos 83
2.4 Manip. de datos: Clculo
Relacional
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 1er


Orden
para crear un Lenguaje de Consultas para BDR:
84
Modelo relacional de datos
Tema 2.
2.4 Manip. de datos: Clculo
Relacional
Expresiones de consulta
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


Tema 2. Modelo relacional de datos 85
2.4 Manip. de datos: Clculo
Relacional
Expresiones de consulta (y 2)
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 }

Tema 2. Modelo relacional de datos 86


2.4 Manip. de datos: Clculo
Relacional
Expresin del CRT: punto de vista
informal
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
Tema 2. Modelo relacional de datos 87
2.4 Manip. de datos: Clculo
Relacional
Expresin del CRT: punto de vista formal
Expresin General
{ t1.a1, t2.a2, ... , tn.ap | COND(t1, t2, ..., tn, tn+1,tn+2,...tn+m) }

donde:
t1, t2, ..., tn, tn+1, tn+2, ... tn+m son variables de tupla

ai es un atributo de la relacin que tj recorre


COND(..): frmula (bien formada) del Clculo Relacional de
Tuplas
constituida por tomos del Clculo de Predicados

Tema 2. Modelo relacional de datos 88


2.4 Manip. de datos: Clculo
Relacional
Expresin del CRT: punto de vista formal
(2)
tomos
R(ti) el intervalo de la variable de tupla ti es la relacin R
ti.a op tj.b ,, op { =, , , , , }
ti y tj variables de tupla
a atributo de la relacin que ti abarca
b atributo de la relacin que tj abarca
ti.a op c ,, c op tj.b ,, op { =, , , , , }
ti y tj variables de tupla
a atributo de la relacin que ti abarca
b atributo de la relacin que tj abarca
c valor constante
Los tomos estn ligados mediante operadores and, or, not y
89
Tema 2. Modelo relacional de datos
2.4 Manip. de datos: Clculo
Relacional
Expresin del CRT: punto de vista formal
(3)
Valor lgico de un tomo
Evaluacin del tomo para una combinacin especfica de
tuplas
valor TRUE o FALSE
R(ti)
TRUE si se asigna una tupla de R a ti
Si no, es FALSE

ti.a op tj.b ,, ti.a op c ,, c op tj.b


TRUE si ti y tj se asignan a tuplas tales que los atributos
especificados (a y b) satisfacen la condicin
Si no es as, ser FALSE

Tema 2. Modelo relacional de datos 90


2.4 Manip. de datos: Clculo
Relacional
Expresin del CRT: punto de vista formal
(4)
Frmula bien formada (fbf)
Definicin recursiva

D1. Todo tomo es una frmula bien formada


R(ti) ,, ti.a op tj.b ,, ti.a op c ,, c op tj.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...

Tema 2. Modelo relacional de datos 91


2.4 Manip. de datos: Clculo
Relacional
Expresin del CRT: punto de vista formal
(5)
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

Tema 2. Modelo relacional de datos 92


2.4 Manip. de datos: Clculo
Relacional
Expresin del CRT: punto de vista formal
(6)
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 93
Tema 2. Modelo relacional de datos
2.4 Manip. de datos: Clculo
Relacional
Expresin del CRT: punto de vista formal
(7)
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
Tema 2. Modelo relacional de datos 94
2.4 Manip. de datos: Clculo
Relacional
Expresin del CRT: punto de vista formal
(8)
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

Tema 2. Modelo relacional de datos 95


2.4 Manip. de datos: Clculo
Relacional
Expresin del CRT: punto de vista formal
(y 9)
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


dominio de la expresin
TemaE2.es 96
insegura,
Modelo ya que
relacional deel resultado incluye tuplas (y, por tanto, valores) que no estn en
datos

Anda mungkin juga menyukai