Está en la página 1de 22

BASES DE DATOS

TEMA 3. MODELO RELACIONAL


Contenidos generales
* Conceptos del modelo relacional
* Notacin del modelo relacional
* Lenguajes de consulta
- Algebra relacional
- Clculo relacional

Motivacin
Esquema conceptual de una BD en modelo implementable
El modelo relacional es un modelo ampliamente extendido
Definicin de un esquema para una BDR
Lenguajes formales de consulta para BDR

Bases de datos. Tema 3.

3.1. Orgenes del modelo relacional


Introducido por Codd en 1970
Su base es el concepto matemtico de relacin
Modelo sencillo y bastante extendido
Existen otros modelos ms expresivos (p.e. OO)
Sin embargo, no se encuentran tan extendidos
Un modelo prometedor es el objeto-relacional
(Incorpora caractersticas de ambos modelos)

Bases de datos. Tema 3.

3.2. La estructura del modelo relacional


Base de datos como una coleccin de relaciones
Relaciones: Tablas formadas por filas y columnas
Fila: Conjunto de datos relativos a un hecho
Columna: Propiedad
Atributo
DNI Nombre
Tupla

Bases de datos. Tema 3.

Johnson

Smith

Relacin

3.2. La estructura del modelo relacional


Dominios, Tuplas, Atributos, Relaciones
Dominio: Conjunto de valores
Tupla: Lista de n valores ordenados con un dominio dado
Relacin: Conjunto de tuplas
Atributo: Papel de un dominio en una relacin
Dominio de un atributo: Valores permitidos para un atributo
n o m b reC li d n iC li
Johnson
S m ith

1
2

D o m icilio
La R eina n7
F ragata azul n8

Relaciones como subconjuntos del producto cartesiano de


los dominios de sus atributos
Caractersticas de las relaciones: Tuplas sin orden,
Atributos ordenados, Valores en las tuplas, Interpretacin
Bases de datos. Tema 3.

3.2. La estructura del modelo relacional


Notacin del modelo relacional
Esquema de relacin: R(A1, A2, ..., An)
Tupla de grado n: t=<v1,v2, ..., vn>
Valor de t para el atributo Ai: t[Ai]
Subtupla de t: t[A1, A2, ..., Az]
Ejemplo:
Esquema de relacin: Clientes(nombreCli, dniCli, domicilio)
Tupla: t=<Johnson, 1, La Reina n7>
Valor de tupla: t[nombreCli]
Subtupla: t[nombreCli, domicilio]

Bases de datos. Tema 3.

3.3. Restricciones relacionales y esquemas de BDR


Restricciones de dominio: Valores atmicos, tipos
estndar, intervalos, tipos enumerados, ...
Restricciones de clave y de nulos
Base de datos relacional
Compuestas por esquema relacional + restricciones
Esquema: Diseo lgico de la base de datos
Instancia: Datos de la BD en un instante determinado

Sucursales = (nombreSuc, ciudadSuc, activo)


Empleados = (nombreEmp, dniEmp, telefono, nombreSuc)
Cuentas = (numeroCta, saldo, nombreSuc)
Clientes = (nombreCli, dniCli, domicilio)
CtaCli = (numeroCta, dniCli)
Transacciones = (numeroCta, numeroTrans, fecha, importe)
Bases de datos. Tema 3.

3.3. Restricciones relacionales y esquemas de BDR


Esquema formado por varias relaciones
Una nica relacin contendra informacin redundante
Posible fuente de anomalas
Todo = (nombreCli, dniCli, domicilio, numeroCta, saldo)
nombreCli
Johnson
Johnson

dniCli
1
1

Domicilio
La Reina n7
La Reina n7

NumeroCta
1
2

saldo
10000
20000

Turner
Williams

4
5

...
Gibraltar espaol n17
Diamante S/N

5
5

50000
50000

Bases de datos. Tema 3.

3.3. Restricciones relacionales y esquemas de BDR


Diagrama E-R (conceptual) asociado
fecha

ciudadSuc
nombreSuc

activo

numeroCta

Tiene

SUCURSALES

Operacion

CUENTAS

Trabaja

importe

numeroTrans

saldo

TRANSACCIONES

CtaCli
nombreEmp

EMPLEADOS

nombreCli

CLIENTES

dniEmp

dniCli

telefono

domicilio

Bases de datos. Tema 3.

3.3. Restricciones relacionales y esquemas de BDR


Instancia para los ejemplos
nombreSuc
Castellana
Ganivet
Paseo
Zapillo
Ronda
Aduana
Los Pinos
Sol

ciudadSuc
Madrid
Granada
Almera
Almera
Almera
Roquetas
Huercal
Madrid

Activo
90000
21000
17000
4000
80000
3000
37000
71000

Sucursales
nombreCli
Aranda
Garca
Hayes
Turner
Vilches
Lara
Guerrero

dniCli
1
2
3
4
5
6
7

Clientes
Bases de datos. Tema 3.

Domicilio
La Reina n7
Fragata azul n8
Gibraltar espaol n14
Gibraltar espaol n17
Diamante S/N
Gato negro n13
Perro n1

nombreEmp
Garca
Torres
Lpez
Villegas
Fernndez
Urrutia

dniEmp
10
11
12
13
14
15

numeroCta
1
2
3
4
5
6

saldo
100
200
300
400
500
600

telefono
101010
111111
121212
131313
141414
151515

NombreSuc
Castellana
Castellana
Paseo
Paseo
Zapillo
Sol

nombreSuc
Castellana
Castellana
Paseo
Paseo
Zapillo
Sol

Empleados

Cuentas

numeroCta numeroTrans fecha importe


1
1
10-10
+100
2
1
10-10
+300
2
2
11-10
-200
3
1
12-10
+300
4
1
12-10
+400
5
1
13-10
+500
6
1
13-10
+600

dniCli numeroCta
1
1
1
2
2
3
3
4
4
5
5
5
6
5
7
6

CtaCli
Transacciones
10

3.3. Restricciones relacionales y esquemas de BDR


Integridad de entidades
Los valores de la clave primaria no pueden ser nulos
Integridad referencial
Tuplas que hagan referencia a tuplas existentes
Clave ajena o clave externa (Uso de lneas en los esquemas)
CE es clave externa en R1 si
* Los atributos de CE forman clave primaria en otra
relacin (p.e. R2).
(Un valor de CE en t1R1 => ese valor es CP en
t2R2 o es nulo en R1
* Dominio de CE en R1 = dominio de CP en R2
Otras restricciones (semnticas, de transicin, ...)
Bases de datos. Tema 3.

11

3.4. Operaciones de actualizacin. Tratam. de restricciones


Operaciones en el modelo relacional
Recuperacin
Actualizacin (Insercin, Eliminacin, Modificacin)
Insercin
Inserta lista de valores de tupla o mediante una consulta
que contiene los valores a insertar
Rechazo si se violan las restricciones (dominio, clave,
IR...

Bases de datos. Tema 3.

12

3.4. Operaciones de actualizacin. Tratam. de restricciones


Operaciones en el modelo relacional (y 2)
Eliminacin
Elimina tuplas de una relacin
Si se viola IR
- Rechazar
- Eliminar en cascada
- Modificar si es posible los valores, sin violar IR
Actualizar
Modifica valores de atributos de 1 o varias tuplas de
acuerdo con una condicin
Mantener restricciones de dominio
Especial cuidado al actualizar claves primarias y ajenas
Bases de datos. Tema 3.

13

3.5. Lenguajes de consulta


Lenguaje de consulta
Lenguaje para solicitar informacin a la BD
Tipos
Procedimientales
No procedimentales
Lenguajes de consulta formales para BDR
Algebra relacional (Procedimental)
Clculo relacional (No procedimental)

Bases de datos. Tema 3.

14

3.6. Algebra relacional (1)


Lenguaje de consulta procedimental
Operaciones de manipulacin (consulta, insercin, elimin.)
Opera sobre relaciones y devuelve una relacin
Operaciones fundamentales
Seleccin (Selecciona tuplas)
Proyeccin (Selecciona columnas)
Producto cartesiano (Combina relaciones)
Renombrar (Cambia el nombre a una relacin)
Unin (Realiza la unin de relaciones)
Interseccin (Realiza la interseccin de relaciones)

Bases de datos. Tema 3.

15

3.6 Algebra relacional (2)


3.6.1. Operaciones fundamentales (1)
Seleccin
Selecciona las tuplas que satisfacen un predicado
Denotada por
Sintaxis: predicado(relacin)
Ejemplo: Sucursales de la ciudad de Madrid
nombreSuc
Castellana
Ganivet
Paseo
Zapillo
Ronda
Aduana
Los Pinos
Sol

ciudadSuc
Madrid
Granada
Almera
Almera
Almera
Roquetas
Huercal
Madrid

Activo
90000
21000
17000
4000
80000
3000
37000
71000

nombreSuc
Castellana
Sol

ciudadSuc
Madrid
Madrid

Activo
90000
71000

ciudadSuc=Madrid(sucursales)

sucursales
Bases de datos. Tema 3.

16

3.6. Algebra relacional (3)


3.6.1. Operaciones fundamentales (2)
Seleccin (2)
Ej. Sucursales de Madrid con activo mayor de 800000
nombreSuc
Castellana
Ganivet
Paseo
Zapillo
Ronda
Aduana
Los Pinos
Sol

ciudadSuc
Madrid
Granada
Almera
Almera
Almera
Roquetas
Huercal
Madrid

Activo
90000
21000
17000
4000
80000
3000
37000
71000

n o m b reS uc
C astellana

ciu da dS uc
M adrid

A ctivo
9000 0

ciudadSuc=Madrid

activo>800000(sucursales)

sucursales

Bases de datos. Tema 3.

17

3.6. Algebra relacional (4)


3.6.1. Operaciones fundamentales (3)
Proyeccin
Devuelve una relacin con ciertas columnas omitidas
No elimina duplicados
Denotada por
Sintaxis: columnas(relacin)
Ejemplo: Nombre y telfono de los empleados
nombreEmp
Garca
Torres
Lpez
Villegas
Fernndez
Urrutia

dniEmp
10
11
12
13
14
15

telefono
101010
111111
121212
131313
141414
151515

NombreSuc
Castellana
Castellana
Paseo
Paseo
Zapillo
Sol

empleados
Bases de datos. Tema 3.

nombreEmp telefono
Garca
101010
Torres
111111
Lpez
121212
Villegas
131313
Fernndez
141414
Urrutia
151515

nombreEmp,telefono (empleados)
18

3.6. Algebra relacional (5)


3.6.1. Operaciones fundamentales (4)
Secuencias de operaciones
Aplicar operaciones sobre resultados de otras operaciones
Se debe a que el resultado de una operacin es una relacin
Util para seleccin-proyeccin
Ejemplo: Nombre y telfono de empleados que trabajan
en la sucursal Castellana
nombreEmp
Garca
Torres
Lpez
Villegas
Fernndez
Urrutia

dniEmp
10
11
12
13
14
15

telefono
101010
111111
121212
131313
141414
151515

NombreSuc
Castellana
Castellana
Paseo
Paseo
Zapillo
Sol

empleados

nombreEmp
Garca
Torres

telefono
101010
111111

nombreEmp,telefono (
nombreSuc=Madrid(empleados))

Bases de datos. Tema 3.

19

3.6. Algebra relacional (6)


3.6.1. Operaciones fundamentales (5)
La operacin unin (1)
Una nueva relacin con todas y cada una de las tuplas de
las relaciones que participan en la unin
R S incluye las tuplas que estn en R o en S
Las tuplas repetidas son eliminadas
Las relaciones a unir han de ser compatibles

Igual nmero de atributos


Dominios iguales dos a dos

Bases de datos. Tema 3.

20

10

3.6. Algebra relacional (7)


3.6.1. Operaciones fundamentales (6)
La operacin unin (2)
Ejemplo: Nombres que aparecen el banco
nombreEmp
Garca
Torres
Lpez
Villegas
Fernndez
Urrutia

nombreEmp,(empleados)
nombreCli
Aranda
Garca
Hayes
Turner
Vilches
Lara
Guerrero

nombreCli (clientes)

nombreEmp
Garca
Torres
Lpez
Villegas
Fernndez
Urrutia
Aranda
Hayes
Turner
Vilches
Lara
Guerrero

nombreEmp,(empleados)
nombreCli (clientes)

Bases de datos. Tema 3.

21

3.6. Algebra relacional (8)


3.6.1. Operaciones fundamentales (7)
La operacin diferencia de conjuntos
Incluye tuplas que estn en una relacin pero no en la otra
R S incluye las tuplas que estn en R y no estn en S
Ejemplo: Clientes que no son empleados

nombreEmp
Garca
Torres
Lpez
Villegas
Fernndez
Urrutia

nombreCli
Aranda
Garca
Hayes
Turner
Vilches
Lara
Guerrero

nombreCli
Aranda
Hayes
Turner
Vilches
Lara
Guerrero

nombreCli (clientes) nombreCli (clientes) nombreEmp,(empleados)


nombreEmp,(empleados)
Bases de datos. Tema 3.

22

11

3.8. Algebra relacional (9)


3.6.1. Operaciones fundamentales (8)
La operacin producto cartesiano (1)
Operacin para combinar relaciones
R x S contiene todas las tuplas de R combinadas con todas
las tuplas de S
Nmero de columnas de R x S = Cols. de R + Cols. de S
Nmero de tuplas de R x S = Tuplas de R * Tuplas de S
Para evitar ambigedades: Usar sintaxis tabla.columna

Bases de datos. Tema 3.

23

3.6. Algebra relacional (10)


3.6.1. Operaciones fundamentales (9)
La operacin producto cartesiano (2)
Empleados. Empleados. Empleados. Empleados. Sucusales.n Sucursales. Sucursales.
nombreEmp dniEmp
telefono nombreSuc ombreSuc ciudadSuc
activo
Garca
10
101010
Castellana Castellana
Madrid
90000
Torres
11
111111
Castellana Castellana
Madrid
90000
Lpez
12
121212
Paseo
Castellana
Madrid
90000
Villegas
13
131313
Paseo
Castellana
Madrid
90000
Fernndez
14
141414
Zapillo
Castellana
Madrid
90000
Urrutia
15
151515
Sol
Castellana
Madrid
90000
Garca
10
101010
Castellana
Ganivet
Granada
21000
Torres
Lpez
Villegas
Fernndez

11
12
13
14

111111
121212
131313
141414

Castellana
Paseo
Paseo
Zapillo

Zapillo
Zapillo
Zapillo
Zapillo

Almera
Almera
Almera
Almera

4000
4000
4000
4000

Villegas
Fernndez
Urrutia

13
14
15

131313
141414
151515

Paseo
Zapillo
Sol

Sol
Sol
Sol

Madrid
Madrid
Madrid

71000
71000
71000

Bases de datos. Tema 3.

24

12

3.6. Algebra relacional (11)


3.6.1. Operaciones fundamentales (10)
La operacin producto cartesiano (3)
Seleccin de las tuplas relacionadas

empleados.nombreSuc
sucursales.nombreSuc

(sucursales x
empleados)

Empleados. Empleados. Empleados. Empleados. Sucusales.n Sucursales. Sucursales.


nombreEmp dniEmp
telefono nombreSuc ombreSuc ciudadSuc
activo
Garca
10
101010
Castellana Castellana
Madrid
90000
Torres
11
111111
Castellana Castellana
Madrid
90000
Lpez
12
121212
Paseo
Castellana
Madrid
90000
= Villegas
13
131313
Paseo
Castellana
Madrid
90000
Fernndez
14
141414
Zapillo
Castellana
Madrid
90000
Urrutia
15
151515
Sol
Castellana
Madrid
90000
Garca
10
101010
Castellana
Ganivet
Granada
21000
Torres
Lpez
Villegas
Fernndez

11
12
13
14

111111
121212
131313
141414

Castellana
Paseo
Paseo
Zapillo

Zapillo
Zapillo
Zapillo
Zapillo

Almera
Almera
Almera
Almera

4000
4000
4000
4000

Villegas
Fernndez
Urrutia

13
14
15

131313
141414
151515

Paseo
Zapillo
Sol

Sol
Sol
Sol

Madrid
Madrid
Madrid

71000
71000
71000

Bases de datos. Tema 3.

25

3.6. Algebra relacional (12)


3.6.1. Operaciones fundamentales (11)
La operacin producto cartesiano (4)
Ejemplo:Nombres de empleados que trabajan en la
ciudad de Madrid
nombreSuc
Castellana
Ganivet
Paseo
Zapillo
Ronda
Aduana
Los Pinos
Sol

ciudadSuc
Madrid
Granada
Almera
Almera
Almera
Roquetas
Huercal
Madrid

sucursales

Activo
90000
21000
17000
4000
80000
3000
37000
71000

nombreEmp
Garca
Torres
Lpez
Villegas
Fernndez
Urrutia

dniEmp
10
11
12
13
14
15

telefono
101010
111111
121212
131313
141414
151515

NombreSuc
Castellana
Castellana
Paseo
Paseo
Zapillo
Sol

empleados
Empleados.nombreEmp
Garca
Torres
Urrutia

empleados.nombreEmp (sucursales.nombreSuc = empleados.nombreSuc


(sucursales.ciudadSuc = Madrid" (sucursales x empleados)))
Bases de datos. Tema 3.

26

13

3.6. Algebra relacional (13)


3.6.1. Operaciones bsicas (12)
La operacin renombrar (1)
Cambia el nombre de una relacin
Util para evitar ambigedades cuando una relacin aparece
ms de una vez en una consulta
X(R) renombra la relacin R como X
As, podemos usar R o X para hacer ref. a la misma relacin

Bases de datos. Tema 3.

27

3.6. Algebra relacional (14)


3.6.1. Operaciones fundamentales (13)
La operacin renombrar (2)
Ejemplo: Empleados que trabajan en la misma sucursal
que Garca
empleados.nombreEmp(empleados2.nombreSuc = empleados.nombreSuc
(empleados x
empleados2(nombreSuc (nombreEmp = Garca"(empleados)))))
nombreEmp
Garca
Torres
Lpez
Villegas
Fernndez
Urrutia

dniEmp
10
11
12
13
14
15

telefono
101010
111111
121212
131313
141414
151515

empleados
Bases de datos. Tema 3.

NombreSuc
Castellana
Castellana
Paseo
Paseo
Zapillo
Sol

NombreSuc
Castellana

empleados2
n o m b re E m p
G a rca
T o rre s

resultado
28

14

3.6. Algebra relacional (15)


3.6.2. Otras operaciones (1)
La operacin interseccin de conjuntos
Incluye tuplas que estn en todas las relaciones
R S incluye las tuplas que estn en R y en S
Ejemplo: Clientes que tambin son empleados

nombreEmp
Garca
Torres
Lpez
Villegas
Fernndez
Urrutia

nombreCli
Aranda
Garca
Hayes
Turner
Vilches
Lara
Guerrero

nombreCli
Garca

nombreCli (clientes) nombreCli (clientes)


nombreEmp,(empleados)
nombreEmp,(empleados)
Bases de datos. Tema 3.

29

3.6. Algebra relacional (16)


3.6.2. Otras operaciones (2)
La operacin producto theta
Producto que permite especificar cualquier operacin de
combinacin de relaciones
La condicin es un subndice de X (=, <, <=, >, >=, <>)
Ejemplo: Transacciones con importe superior a saldos
(numeroTrans (cuentas xcuentas.saldo < transacciones.importe transacciones)

Bases de datos. Tema 3.

30

15

3.6. Algebra relacional (17)


3.6.2. Otras operaciones (3)
La operacin producto natural (1)
Simplifica consultas que combinan varias relaciones
Es una reunin theta con el operador de igualdad para
combinar los atributos comunes de las relaciones
No especifica explcitamente el predicado de combinacin
Se representa como |X| y la seleccin se hace en base a los
campos comunes
Ejemplo:Nombres de clientes que tienen cuenta en
Castellana
Como producto natural
nombreCli (cuentas.nombreSuc = Castellana" (clientes |x| ctacli |x|
cuentas)))
Bases de datos. Tema 3.

31

3.6. Algebra relacional (18)


3.6.2. Otras operaciones (3)
La operacin producto natural (2)
Como producto cartesiano
nombreCli (cuentas.nombreSuc = Castellana ^
cuentas.numeroCta = ctaCli.numeroCta ^ ctaCli.dniCli = clientes.dniCli

(clientes x ctacli x cuentas)))


nombreCli
Aranda
Garca
Hayes
Turner
Vilches
Lara
Guerrero

dniCli
1
2
3
4
5
6
7

Domicilio
La Reina n7
Fragata azul n8
Gibraltar espaol n14
Gibraltar espaol n17
Diamante S/N
Gato negro n13
Perro n1

Clientes

dniCli numeroCta
1
1
1
2
2
3
3
4
4
5
5
5
6
5
7
6

CtaCli

numeroCta
1
2
3
4
5
6

saldo
100
200
300
400
500
600

nombreSuc
Castellana
Castellana
Paseo
Paseo
Zapillo
Sol

Cuentas

nombreCli
Aranda

Resultado
Bases de datos. Tema 3.

32

16

3.6. Algebra relacional (19)


3.6.2. Otras operaciones (4)
Divisin
Util en algunas consultas que deben realizar comparaciones
con todas las tuplas que cumplen una condicin
Ejemplo: Clientes que tengan cuenta en todas las
sucursales de Madrid
1. Clientes con alguna cuenta en Madrid
dniCLI, ctaCli.numrCta (ciudadSuc = Madrid (sucursales x clientes x
ctacli ))
2. Todas las sucursales de Madrid

nombreSuc(ciudadSuc = Madrid (sucursales))


3. El resultado es 1 2. En este caso no hay nadie.
Bases de datos. Tema 3.

33

3.6. Algebra relacional (20)


3.6.2. Otras operaciones (5)
La operacin asignacin
Crea una nueva relacin a partir de otra
Se denota por el smbolo
Lo que se asigna puede ser una relacin existente o el
resultado de una operacin

Bases de datos. Tema 3.

34

17

3.6. Algebra relacional (21)


3.6.2. Otras operaciones (6)
Extensiones del producto natural (1)
En R |x| S slo hay tuplas que tienen valores coincidentes
en R y S
Existen operaciones binarias que devuelven todas las tuplas
de una relacin aunque no tengan valores coincidentes en
la otra relacin (Uniones externas)
* Unin externa izquierda (derecha)
* Unin externa

Bases de datos. Tema 3.

35

3.6. Algebra relacional (22)


3.6.2. Otras operaciones (7)
Extensiones del producto natural (2)
Unin externa izquierda. Left Join (1)
Operacin que relaja el producto natural
En R =|x| S estn todas las tuplas de R. Si en S hay tuplas
con valores coincidentes, dichas tuplas tambin formarn
parte de R =|x| S. En caso contrario, sern completadas con
valores nulos

Bases de datos. Tema 3.

36

18

3.6. Algebra relacional (23)


3.6.2. Otras operaciones (8)
Extensiones del producto natural (3)
Unin externa izquierda Left Join (2)
Ejemplo: Nombre de las sucursales de Almera junto
con los datos de los empleados. Los datos de las
sucursales son necesarios aunque no haya empleados
sucursales.nombreSuc,empleados.nombreEmp(
ciudadSuc=Almera"(sucursales)=x
sucursales.nombreSuc=empleados.nombreSuc empleados)
S u c u rs ale s.n o m b re S u c
P a se o
P a se o
Z a p illo
Ronda

Bases de datos. Tema 3.

E m p le a d o s.n o m b re E m p
L pe z
V ille ga s
F e rn nd e z
n u lo

37

3.6. Algebra relacional (24)


3.6.2. Otras operaciones (9)
Extensiones del producto natural (4)
Unin externa derecha
Igual que Unin externa izquierda, salvo para la relacin de
la derecha
Denotada como R |x|= S

Bases de datos. Tema 3.

38

19

3.6. Algebra relacional (25)


3.6.2. Otras operaciones (10)
Extensiones del producto natural (4)
Unin externa
Realiza la unin de dos relaciones no compatibles
Los atributos que no proceden se completan con valores
nulos
Ejemplo: Nombre, DNI, Telfono y Domicilio de todas
las personas del sistema bancario
nombreEmp dniEmp telefono
Garca
10
101010
Torres
11
111111

domicilio
nulo
nulo

Urrutia
Guerrero

15
7

151515
777777

nulo
Perro n1

Vilches
Lara

5
6

nulo
nulo

Diamante S/N
Gato negro n13

Bases de datos. Tema 3.

39

3.7. Clculo relacional de tuplas (1)


Lenguaje de consulta formal no procedimental
Permite construir expresiones equivalentes al A.R.
3.7.1. Variables de tupla y relaciones de rango
Expresiones en CR: Especifican variables de tupla
Cada variable se suele asociar a una relacin (tabla)
tomando como valor cualquier tupla de la relacin
Consulta: {t / P(t)}
Devuelve las tuplas que satisfacen un predicado
t.A hace referencia al atributo A de la tupla t
Ejemplo: Sucursales de la ciudad de Madrid
{s / s sucursal s.ciudadSuc = Madrid}
Ejemplo: Nombres de sucursal de la ciudad de Madrid
{s.nombreSuc / s sucursal s.ciudadSuc = Madrid}
Bases de datos. Tema 3.

40

20

3.7. Clculo relacional de tuplas (2)


3.7.2. Expresiones y frmulas del CRT
Expresin general CRT: {t1.A1, ..., tn.An / P(t1, ..., tm)}
t1, ..., tm: Variables de tupla
A1, ..., An: Atributos de las relaciones ti
P: Predicado del CRT
Frmulas CRT constan de tomos
ti R, con ti variable de tupla y R relacin
ti.A op tj.B, donde op es {=, <, <=, >, >=, <>}
ti.A op c, donde op es {=, <, <=, >, >=, <>}
Los tomos pueden conectarse con and, or y not

Bases de datos. Tema 3.

41

3.7. Clculo relacional de tuplas (3)


3.7.3. Uso de cuantificadores
Universal (): (t)(F) es verdadera si se cumple para todas
las tuplas t
Existencial (): (t)(F) es verdadera si hay al menos una
tupla t para la que es cierta
Uso en combinacin de relaciones
Implica trabajar con tuplas de relaciones diferentes
Ejemplo: Nombre de emplados que trabajan en Madrid
{e.nombreEmp / e empleados e.ciudadSuc=Madrid
s sucursales (s.nombreSuc. = e.nombreSuc)}

Bases de datos. Tema 3.

42

21

3.7. Clculo relacional de tuplas (4)


Operaciones de conjuntos
Unin
Disyuncin de predicados
{p.nombre / p clientes p empleados}
Interseccin
Conjuncin de predicados
{p.nombre / p clientes p empleados}
Diferencia
Conjuncin de predicados con negacin
{c.nombreCli / c clientes
e empleados (e.nombreEmp = c.nombreCli)}
Bases de datos. Tema 3.

43

22

También podría gustarte