Sei sulla pagina 1di 55

Modelo Relacional de

Datos

Semana 4

lunes, 25 de febrero de 2013 Base de Datos Ing. Ponte Roca Miguel Angel 1
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 2
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 3


2.1 Presentacin y orgenes del RDBMS

Introducido por Codd, 1970

Es un Modelo de Datos Fsico (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 o Tablas
Relacin
Estructura de datos fundamental del modelo
Tiene un nombre y representa una entidad genrica
Conjunto de tuplas
Cada tupla representa una instancia de una entidad concreta
Compuesta de columnas con nombre (y dominio)
Cada atributo representa una columna 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 PELICULA
Gneros Aos Pases
Ttulos Nombres Tiempo
dominios

Ciencia-ficcin, 2002, 1997, Italia,Argentina,


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

ttulo director gnero rodaje nacionalidad duracin

Amores Perros A. Gonzlez Drama 2000 Mxico 145


The Matrix A. Wachowsky Ciencia-ficcin 1999 EEUU 138
cardinalidad

Torrente S. Segura Comedia 1997 Espaa 110


tuplas
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

atributos
grado
Tema 2. Modelo relacional de datos 6
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 relacin
Tupla Fila Registro concreto
R, entonces tR
Debe tener un nombre nico cabecera de Nombre de
Atributo dentro de cada relacin Columna Campo de registro

Cardinalidad n de tuplas en una relacin =

Grado n columnas en una relacin =

coleccin de valores permitidos


Dominio 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


La comparacin de dos atributos slo tiene sentido si ambos toman
valores del mismo dominio
Si el DBMS soporta dominios, podr detectar este tipo de errores

Tema 2. Modelo relacional de datos 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
tupla = conjunto de pares Atributo:Valor
{ { (A1:vi1), (A2:vi2) ... (An:vin) } }, donde i=1..m

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 o instancia 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
Tema 2. Modelo relacional de datos 10
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 ordenadas matemtico de tuplas

3. Las columnas no estn ordenadas


esquema = conjunto de pares (Atributo:Dominio)

4. Los valores de columnas 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 (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 12


2.2 Estructura de datos relacional
Definiciones formales: BD RELACIONAL (1)

Percibida por usuarios como una coleccin de relaciones


de diversos grados (n de columnas)
que varan con el tiempo (n de tuplas, estado)

Las relaciones (Tablas) son la estructura Fsica 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)
Tema 2. Modelo relacional de datos 13
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, Honorario:Dinero )
DIRECTOR ( Nombre:Nombres, Nacionalidad:Pases, Trayectoria: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 14


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 de jardn con 29 aos
Una pelcula sin director

Definicin de la BD (esquema) necesita incluir


REGLAS DE INTEGRIDAD

Tema 2. Modelo relacional de datos 15


2.3 Caractersticas generales de
integridad de datos
Reglas de integridad
Informan al DBMS de restricciones del mundo real
As, el DBMS 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 Claves Candidatas y Primarias
Claves Ajenas (o forneas o externas)
Tema 2. Modelo relacional de datos 16
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 17


2.3 Caractersticas generales de
integridad de datos
Clave Candidata, Primaria y Alterna
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 Alternas (Alternative Keys, AK) son el resto de
claves candidatas
Claves Alternas (ACTOR) = {Nombre}
Claves Alternas (EMPLEADO) = { {DNI}, {Nombre, FechaNac} }

Tema 2. Modelo relacional de datos 18


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


ESCRITOR (DNI, Nombre, ...)
ARTICULO (Ttulo, Tema, Autor, Revista, Pgina, ...)

Tema 2. Modelo relacional de datos 19


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 20


2.3 Caractersticas generales de
integridad de datos
Clave Ajena (Externa o Fornea) (3)

CUENTA Numcta Saldo ...


Cada cliente slo puede tener
200 35000
una cuenta a su nombre.
505 40000
Una cuenta puede tener ms de
821 50000
un cliente como titular.
...

CLIENTE Nombre Direccin Ciudad Numcta


Vnculo
Garca, A Gran Va, 6 Murcia 200 Cuenta-Cliente
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 21
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 existente en esa relacin
FK
ARTICULO ESCRITOR

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

EMPL CodEmp ... Dep DEPTO CodDep ... Dire


Ciclo Referencial
Camino que empieza y acaba en la misma relacin
Caso especial: Autorreferencia EMPLEADO CodEmp ... Jefe
Tema 2. Modelo relacional de datos 23
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, ...)?
Y si se registrara la ocupacin de la habitacin 900?
OCUPACION CodClie NumHabit ... HABITACION NumHabit Tipo ...

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 24
2.3 Caractersticas generales de
integridad de datos
Mantenimiento de la Integridad Referencial (2)

Cmo evita el DBMS esos estados incorrectos?


El DBMS 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

El diseador de la BD puede especificar al DBMS


Acciones de Mantenimiento de la Integridad Referencial
para que la BD SIEMPRE alcance un estado final legal.

Tema 2. Modelo relacional de datos 25


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

Tema 2. Modelo relacional de datos 26


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 27


2.3 Caractersticas generales de
integridad de datos
Mantenimiento de la Integridad Referencial (5)

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

Tema 2. Modelo relacional de datos 28


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 29


2.3 Caractersticas generales de
integridad de datos
Mantenimiento de la Integridad Referencial (y 7)

Encadenamiento de eliminaciones (anlogo para Modificacin)


R2 R1, Accin de Eliminacin en Cascada R3 R2 R1
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-problema! 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 TITULACION UNIVERSIDAD

Tema 2. Modelo relacional de datos 30


2.3 Caractersticas generales de
integridad de datos
Nulos
En el mundo real existe...
informacin perdida FechaEdicion desconocida
ausencia de informacin tiene o no Telfono?
valores no aplicables a ciertos atributos FechJubilac a empleado
activo
Para representar estas situaciones en los sistemas de BD
se utiliza el valor NULO (Null)
Si una tupla tiene una columna 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

Tema 2. Modelo relacional de datos 31


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 (siempre y cuando no se active la IR)
Depto = null empleados no asignados a ningn departamento
Jefe = null empleados sin jefe

Tema 2. Modelo relacional de datos 32


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
de clave ajena sin correspondencia

Tema 2. Modelo relacional de datos 33


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 la tupla t
Tema 2. Modelo relacional de datos 34
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 35


2.3 Caractersticas generales de
integridad de datos
Resumiendo, el DBMS se encarga de...
Comprobar las claves candidatas (primaria y alternas):
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

Tema 2. Modelo relacional de datos 36


Esquema PRODUCTORA

PELICULA (CodP:CODPEL, Titulo:TITULOS, Ao:AO, Genero:GENEROS, Guion:CODGUI,


Director:CODDIR, DirectorFotog:DIRFOT, Distrib:CODDIS, Nacio:PAISES,
Estreno:FECHA, NumOscar:enteros(2), Taquilla:DINERO)
DIRECTOR (CodDir:CODDIR, Nombre:NOMBRES, Apellidos:APELLIDOS, Nacio:PAISES,
FechaNacim:FECHA, Trayectoria:CODTITULO)
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, Honorario: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 37


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
proyeccin
reunin ( join )
divisin
Tema 2. Modelo relacional de datos 38
2.4 Manip. de datos: lgebra Relacional
Operacin 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 39


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 40


2.4 Manip. de datos: lgebra Relacional
Compatibilidad de tipos (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 tipo
en sus operandos
Tema 2. Modelo relacional de datos 41
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)
Ejemplo: DIRECTOR DIR_FOTOG

Interseccin 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

Tema 2. Modelo relacional de datos 42


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 aritmtica
Ejemplo: DIRECTOR DIR_FOTOG

Secuencias de operaciones
La propiedad de clausura relacional permite aplicar una
operacin tras otra
Sean R, S, T relaciones de tipos compatibles,
nica expresin: expresiones anidadas R(ST)
Varias expresiones: relaciones intermedias con nombre
AST
BRA
Tema 2. Modelo relacional de datos 43
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 44


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 (JOIN)

Tema 2. Modelo relacional de datos 45


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>
Clusulas conectadas por operadores booleanos AND, OR, NOT
Tema 2. Modelo relacional de datos 46
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 Honorario rebasa los 30.000

Honorario>30000 (ACTOR)

* Actores representados por la agencia nmero 2, cuyo Honorario no llega a


los 22.000, o bien por la agencia 4 y con Honorario superior a 32.000

(agencia=2 AND Honorario<22000) OR (agencia=4 AND Honorario>32000) (ACTOR)

Tema 2. Modelo relacional de datos 47


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 Honorario de todos los actores


codA, nombre, Honorario(ACTOR)
Tema 2. Modelo relacional de datos 48
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 49


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 50
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 R S, tiene el esquema T2 ( a, b, c, d ) T2 a b c d
10 1 100 -5
20 3 100 -4

Tema 2. Modelo relacional de datos 51


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)
AB 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 valores
de t deben aparecer en A en combinacin con todas las
tuplas de B
Tema 2. Modelo relacional de datos 52
2.4 Manip. de datos: lgebra Relacional
Divisin entre relaciones (y 2)

A a b B b
y1 x1 x1
y1 x2 x2
x3 R a
y1 x3
y1
y1 x4
y4
y2 x1
y2 x3
y1, y4 aparecen en A en combinacin con
y3 x2 las 3 tuplas de B, por eso estn en el
y3 x3 resultado R=AB
y3 x4 El resto de valores de y en A, no aparecen
y4 x1 con todas las tuplas de B y no son
y4 x2 seleccionadas: y2 no aparece con x2,
y4 x3 e y3 no aparece con x1

Tema 2. Modelo relacional de datos 53


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 promedio del Honorario 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 54


2.4 Manip. de datos: lgebra Relacional
Funciones de agregados
Funciones aplicadas a un conjunto de tuplas

SUMA (Sum)
PROMEDIO (Avg)
MXIMO (Max)
MNIMO (Min)
CUENTA:nmero de tuplas en una relacin (Count)

Tema 2. Modelo relacional de datos 55

Potrebbero piacerti anche