You are on page 1of 55

Modelo Relacional de

Datos

Semana 5

martes, 30 de julio de 2013

Base de Datos Ing. Ponte Roca Miguel Angel

Modelo relacional de datos


Objetivos

Comprender los principios estructurales del modelo de


datos relacional.

Entender los conceptos de integridad de entidad e


integridad referencial, y apreciar su importancia.

Entender los significados e implicaciones del concepto


nulo y no 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.
Tema 2. Modelo relacional de datos

Modelo relacional de datos


Contenidos
Presentacin y orgenes del modelo relacional
Estructura de datos relacional
Caractersticas generales de integridad de datos
Manipulacin de datos: lenguajes relacionales
lgebra relacional
Clculo relacional de tuplas
SQL
Tema 2. Modelo relacional de datos

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

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

Estructura de datos relacional

cardinalidad

dominios

La relacin PELICULA
Ttulos
--- ----- ---

Nombres
--- ----- ---

Gneros

Aos

Ciencia-ficcin,
Drama,Thriller,
Comedia...

2002, 1997,
1999, 2001,
1994, 1972...

Pases
Italia,Argentina,
Espaa, EEUU,
Francia,Japn..

ttulo

director

gnero

rodaje nacionalidad duracin

Amores Perros

A. Gonzlez

Drama

2000

Mxico

145

A. Wachowsky Ciencia-ficcin 1999

EEUU

138

The Matrix
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

atributos
Tema 2. Modelo relacional de datos

Tiempo
--- ----- ---

tuplas

grado
6

Estructura de datos relacional


Trminos bsicos
Procesamiento
de Ficheros

Modelo Relacional
Formal

SQL

Relacin

Tabla

Fichero

Fila

Registro concreto

cabecera de

Nombre de

Tupla

Si la tupla t est en la relacin


R, entonces tR

Atributo

Debe tener un nombre nico


dentro de cada relacin

Cardinalidad

n de tuplas en una relacin

Grado

n columnas en una relacin

Dominio

coleccin de valores permitidos


para ciertos atributos

Tema 2. Modelo relacional de datos

Columna

Campo de registro

Estructura de datos relacional


Definiciones formales: DOMINIO
Conjunto de valores atmicos del mismo tipo, de
donde toman su valor los atributos.
La definicin de dominio forma parte de la definicin de la BD
Cada atributo est definido sobre un NICO dominio
OBLIGATORIO
Si A, B representan un mismo concepto, A y B son del mismo
dominio.

{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

Estructura de datos relacional


Definiciones formales: RELACIN (1)
Una relacin R, sobre un 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 Dj 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


Tema 2. Modelo relacional de datos

i=1..m
9

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

Estructura de datos relacional


Definiciones formales: RELACIN (3)
Propiedades de una Relacin
1. No existen tuplas repetidas
2. Las tuplas no estn ordenadas

estado = conjunto
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

Estructura de datos relacional


Definiciones formales: RELACIN (4)
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

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 y 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

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

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

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

Caractersticas generales de
integridad de datos
Superclave y Clave: Ejemplos
Claves como restriccin de integridad
CLIENTE (CodCliente, Nombre, Ciudad, Telefono,...)
Qu implicaciones tiene establecer claves candidatas (CK)?
a) CK = {CodCliente, DNICliente,}
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

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

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

(1)

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, IdDirector, ...)
DIRECTOR (IdDirector, Nombre, Nacionalidad, ...)
EMPLEADO (CodEmp, Nombre, IdDpto, NSS, ...)
DEPARTAMENTO (IdDpto, NomDpto, TelDpto, )
LIBRO (Ttulo, Isbn, DNIAutor, Editorial, Edicin, Ao, ...)
AUTOR (DNIAutor, Nombre, ...)
Tema 2. Modelo relacional de datos

19

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 hace referencia.
PACIENTE (NSS, Nombre, Direccin, ...)
HISTORIAL (NSS, Especialidad, FechaApert, ...)

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

Caractersticas generales de
integridad de datos
Clave Ajena (Externa o Fornea)
Cada cliente slo puede tener
una cuenta a su nombre.
Una cuenta puede tener ms de
un cliente como titular.
CLIENTE Nombre

(3)

CUENTA Numcta Saldo ...


200

35000

505

40000

821

50000

...

Direccin

Ciudad

Numcta

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

505

Valencia

Vnculo
Cuenta-Cliente

...
Tema 2. Modelo relacional de datos

21

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

FK

AUTOR

Puede existir algn valor de PK al que NO haga referencia


ningn valor de la FK
AUTOR que no haya escrito artculos: ninguna tupla de ARTICULO har
referencia a la tupla correspondiente a dicho Autor.
Tema 2. Modelo relacional de datos

22

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

AUTOR
ARTICULO

Isbn

Autor Editorial ...

DNI

Nombre
Ttulo

EMPLEADO

Ciclo Referencial

...

Editorial

Tema

CodEmp

EDITORIAL Nombre Direccin .

...

Autor
Dep

Revista

DEPTO

Pag

CodDep ... Dire

Camino que empieza y acaba en la misma relacin


Caso especial: Autorreferencia
EMPLEADO CodEmp
Tema 2. Modelo relacional de datos

...

... Jefe
23

Caractersticas generales de
integridad de datos
Mantenimiento de la Integridad Referencial

(1)

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

NumHabit

Tipo

100

115

CLI02

420

420

CLI05

115

100

CLI10

100

304

405

501

CodClie

NumHabit

CLI04

Tema 2. Modelo relacional de datos

...

HABITACION

...

24

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

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
Recomendaciones posibles:
1. Rechazar la operacin (accin por defecto)
Slo permite borrar t si ninguna otra tupla hace referencia a t
2. Eliminar en cascada. Propagar la eliminacin
1 Borrar todas las tuplas de R2 que referencian a t
2 Eliminar t

3. Establecer nulos (* caso especial *)


Tema 2. Modelo relacional de datos

26

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
Recomendacin:
1. Rechazar la operacin (SIEMPRE)

Intento de violacin de la restriccin de Integridad


Referencial

Tema 2. Modelo relacional de datos

27

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
Recomendaciones posibles:
1. Rechazar la operacin (accin por defecto)
Slo permite modificar la PK de t si ninguna tupla referencia a t
2. Modificacin en 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 (* caso especial *)


Tema 2. Modelo relacional de datos

28

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
Recomendaciones posibles:
- Rechazar la operacin (SIEMPRE)

Intento de violacin de la restriccin de Integridad


Referencial
Tema 2. Modelo relacional de datos

29

Caractersticas generales de
integridad de datos
Mantenimiento de la Integridad Referencial

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

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

Caractersticas generales de
integridad de datos
Implicaciones de los nulos en la integridad

(1)

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

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

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

Caractersticas generales de
integridad de datos
Implicaciones de los nulos en la integridad

(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

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

Manipulacin de datos
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 (Constraint)
proyeccin
unin (join)
divisin

Tema 2. Modelo relacional de datos

38

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

Manip. de datos: lgebra Relacional


Compatibilidad de tipos (o con la unin) (1)
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

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

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

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

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

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

Tema 2. Modelo relacional de datos

45

Manip. de datos: lgebra Relacional


Restriccin de una relacin (1)

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

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

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

Manip. de datos: lgebra Relacional


Unin 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 UNIN a las dos relaciones

R1 PELICULA

Tema 2. Modelo relacional de datos

director=codDir DIRECTOR

49

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 UNIN a las dos relaciones

Y proyectando el resultado sobre los atributos requeridos

R2titulo,nombre,apellido (PELICULA
R2

Titulo

Nombre

director=codDir DIRECTOR
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

Manip. de datos: lgebra Relacional


Reunin natural entre relaciones (2)
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
T1

R.b=S.b S, tiene

R.b

S.b

10

100

-5

20

100

-4

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

T2 R S, tiene el esquema T2 ( a, b, c, d )

Tema 2. Modelo relacional de datos

T2

10

100

-5

20

100

-4
51

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

Manip. de datos: lgebra Relacional


Divisin entre relaciones
A

a
y1
y1
y1
y1
y2
y2
y3
y3
y3
y4
y4
y4

b
x1
x2
x3
x4
x1
x3
x2
x3
x4
x1
x2
x3

Tema 2. Modelo relacional de datos

b
x1
x2
x3

(y 2)

a
y1
y4

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
53

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

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

You might also like