Вы находитесь на странице: 1из 24

ALGEBRA RELACIONAL

I. INTRODUCCION

II. INTRODUCCION AL MODELO RELACIONAL Y ALGEBRA RELACION

III. ESTRUCTURA DE DATOS

IV. EL ALGEBRA RELACIONAL

4.1. OPERACIONES CONJUNTISTAS


4.2. UNION
4.3. INTERSECCION
4.4. DIFERENCIA
4.5. PRODUCTO CARTESIANO

V. FUNCION DE AGREGACION

VI. ALGEBRA RELACIONAL Y SQL BASE DE DATOS

6.1. SELECCIN
6.2. PROYECCION
6.3. JOIN NATURAL
6.4. THETA JOIN
6.5. COMBINACION

VII. ESQUEMA DE BASE DE DATOS

7.1. LENGUAJE PARA DEFINIR RESTRICCIONES


7.1.1. RESTRICCIONES DE INTEGRIDAD REFERENCIAL
7.1.2. RESTRICCION DE LLAVE
7.1.3. RESTRICCIONES DE DOMINIO

VIII. BIBLIOGRAFIA
INTRODUCCION

Dentro del mbito de bases de datos relacionales, encontramos que la manera de ver
los datos, es como si fueran relaciones matemticas en donde es vlida la aplicacin de
ciertos operadores sobre esas relaciones, y en donde el resultado de aplicar los
operadores son nuevamente relaciones

Esta unidad est dedicada al estudio de modelos de datos relacional y algebra relacional.

El estudio del modelo relacional sirve para los contenidos de SQL. Este lenguaje permite definir
y manipular base de datos relacionales.

Las operaciones del algebra relacional sirven para hacer consultas a una base de datos. Es
preciso conocer estas operaciones por que nos permite saber qu servicios de consulta debe
proporcionar un lenguaje relacional.

El lgebra relacional facilita la comprensin de algunas construcciones del lenguaje SQL.


Adems, constituye la base para el estudio del tratamiento de consultas que efectan los SGBD
internamente (respecto a la optimizacin de consultas) que servir para estudios ms
avanzados sobre base de datos.
INTRODUCCION AL MODELO RELACIONAL Y ALGEBRA RELACIONAL

El modelo relacional es un modelo de datos y, como tal, tiene en cuenta los tres aspectos
siguientes de los datos:

1) La Estructura, que debe permitir representar la informacin que nos interesa del mundo
real.

2) La Manipulacin, a la que da apoyo mediante las operaciones de actualizacin y consulta de


los datos.

3) La Integridad, que es facilitada mediante el establecimiento de reglas de integridad; es


decir, condiciones que los datos deben cumplir.

Un sistema de gestin de bases de datos relacional (SGBDR) da apoyo a la definicin de datos


mediante la estructura de los datos del modelo relacional, as como a la manipulacin de estos
datos con las operaciones del modelo; adems, asegura que se satisfacen las reglas de
integridad que el modelo relacional establece.

El principal objetivo del modelo de datos relacional es facilitar que la base de datos sea
percibida o vista por el usuario como una estructura lgica que consiste en un conjunto de
relaciones y no como una estructura fsica de implementacin. Esto ayuda a conseguir un alto
grado de independencia de los datos.

Hay que precisar que un SGBD relacional, en el nivel fsico, puede emplear cualquier estructura
de datos para implementar la estructura lgica formada por las relaciones. En particular, a
nivel fsico, el sistema puede utilizar apuntadores, ndices, etc. Sin embargo, esta
implementacin fsica queda oculta al usuario.

Desde el inicio de las bases de datos surgieron dos lenguajes para interrogar las bases de
datos: el Algebra Relacional basada en la aplicacin de operadores sobre las relaciones que
hemos retenido para representar nuestro mundo real o bien el Clculo de Relaciones que no
es otra cosa que la aplicacin del Clculo de proposiciones de la Lgica Matemtica.

En la actualidad los lenguajes comerciales son lenguajes hbridos cuyas sentencias de


interrogacin, utilizan una parte del Algebra Relacional, y para expresar la condicin que
quieren que se cumpla, el Clculo de Proposiciones

Nosotros, queremos hacer un repaso de los principales operadores relacionales que


actualmente se utilizan o se podran utilizar, y para definir la condicin que se desea que
cumplan utilizaremos el Lenguaje de Proposiciones.
Terminologa:

Tomaremos la terminologa entidad-atributo-valor para designar un elemento independiente


de nuestra base de datos con un conjunto de atributos que le pertenecen slo a esa entidad
con sus valores propios. P. ej. La entidad ESTUDIANTE puede tener atributos (NOMBRE, EDAD,
CARRERA) y una realizacin de esta entidad en el mundo real podra ser la tupla (Juan, 22,
Ingeniero_en_Computacin).

El conjunto de tuplas es la relacin que va a heredar las propiedades de las relaciones


matemticas.

Una relacin es una parte del producto cartesiano de una lista de atributos, en donde cada
atributo representa un valor de un dominio.

Un dominio en la teora de relaciones es un conjunto de valores posibles que puede tomar un


atributo en nuestra base de datos, por ejemplo, la edad de nuestro estudiante podra estar
comprendida estrictamente en el intervalo (19, 26).

Los dominios de una relacin no son necesariamente distintos.

Si se designa por D1, D2,, Dn. una secuencia ordenada de n dominios, la relacin ser una
parte del, producto cartesiano

D1 x D2 x x Dn, los elementos de la relacin de grado n son tuplas D1 , D2, , Dn as con notacin

(d1 , d2, , dn) en donde cada di

Un predicado es una regla precisa que a toda asignacin <X:=a> da por respuesta verdadero
o falso.

Entonces, una relacin ser el conjunto de asignaciones <X:=a> para los cuales la evaluacin de
un predicado es cierto

Puede entonces usarse la notacin ||R ( <X:=a) || para denotar la relacin R en donde X va
tomando los valores a= ((d1, d2,, dn). di Di.

Ejemplo.

Consideremos la siguiente relacin:

R (compuesto, componente, cantidad)

Los atributos de esta relacin son: compuesto, componente y cantidad. Los atributos

Compuesto y componente toman valor en el dominio D1 y cantidad toma valores en el dominio


D2, en donde

D1 = {x|x la parte de un coche}

D2 = {enteros positivos}
Los valores que toma la relacin R en este ejemplo se representan en la siguiente tabla:

cuadro 1
R
compuesto componente cantidad
coche chasis 1
coche motor 1
coche rueda 5
motor pistn 4
rueda neumtico 1
rueda llanta 1

La evaluacin del predicado sera:

||R ({componente:=motor>, <compuesto:=pistn>, <cantidad:=pistn}) ||

Las operaciones esenciales de una base de datos son siempre la insercin, la supresin y/o la
bsqueda de registros.

Hemos dicho que los lenguajes de interrogacin o bsqueda juegan un papel importante
dentro de las bases de datos y analizaremos los principales operadores.

Lenguajes de interrogacin.

Fundamentalmente, han existido dos enfoques tericos de estos lenguajes, que se les clasifica
en dos grandes grupos:

1. Lenguajes algebraicos o Algebra relacional

Realizan operaciones sobre las relaciones por medio de operadores en donde los Operandos
son las relaciones.

2. Lenguajes predicativos o Clculo relacional.

Su principio es determinar si el predicado esto es, una afirmacin que se hace sobre un
hecho que ocurre en la base de datos es verdadera o es falsa.
ESTRUCTURA DE LOS DATOS

El modelo relacional proporciona una estructura de los datos que consiste en un conjunto de
relaciones con objeto de representar la informacin que nos interesa del mundo real.

La estructura de los datos del modelo relacional se basa en el concepto de relacin.

3.1. VISION INFORMAL DE UNA RELACION

Se puede obtener una buena idea intuitiva de lo que es una relacin si la visualizamos como
una tabla o un fichero.

numerosDNI nombres apellidos sueldos


Empleados
DNI nombre Apellidos sueldo
40444255 Juan Garca 2000
33567711 Marta Roca 25000
55898425 Carlos Buenda 1500

Cada fila de la tabla contiene una coleccin de valores de datos relacionados entre s; en
nuestro ejemplo, son los datos correspondientes a un mismo empleado. La tabla tiene un
nombre (EMPLEADOS) y tambin tiene un nombre cada una de sus columnas (DNI, nombre,
apellido y sueldo). El nombre de la tabla y los de las columnas ayudan a entender el significado
de los valores que contiene la tabla.

3.2. VISION FORMAL DE UNA RELACION

Un dominio D es un conjunto de valores atmicos. Por lo que respecta al modelo relacional,


atmico significa indivisible; es decir, que por muy complejo o largo que sea un valor atmico,
no tiene una estructuracin interna para un SGBD relacional.

Una relacin se compone del esquema(o intensin de la relacin) y de la extensin.

Empleados
DNI nombre Apellidos sueldo Esquema
40444255 Juan Garca 2000
33567711 Marta Roca 25000 Extensin
55898425 Carlos Buenda 1500
3.3. CLAVES FORANEAS DE LAS RELACIONES

Una base de datos relacional normalmente contiene ms de una relacin, para poder
representar distintos tipos de hechos que suceden en el mundo real. Por ejemplo, podramos
tener una pequea base de datos que contuviese dos relaciones: una denominada
EMPLEADOS, que almacenara datos de los empleados de una empresa, y otra con el nombre
DESPACHOS, que almacenara los datos de los despachos que tiene la empresa. Las claves
forneas tienen por objetivo establecer una conexin con la clave primaria que referencian.
Por lo tanto, los valores de una clave fornea deben estar presentes en la clave primaria
correspondiente, o bien deben ser valores nulos. En caso contrario, la clave fornea
representara una referencia o conexin incorrecta.

DESPACHOS (edificio, nmero, superficie)

EMPLEADOS (DNI, nombre, apellido, telfono, DNIjefe, edificiodesp, numerodesp)

Empleados
DNI nombre apellido DNIjefe edificiodesp numerodesp
40444255 Juan Garca NULO Marina 120
33567711 Marta Roca 40444255 Marina 120
55898425 Carlos Buenda 40444255 Diagonal 120
77232144 Elena Pla 40444255 NULO NULO

DESPACHOS
edificio numero Superficie
Marina 120 10
Marina 122 15
Marina 230 20
Diagonal 120 10
ALGEBRA RELACIONAL
El lgebra relacional se inspira en la teora de conjuntos para especificar consultas en una base
de datos relacional. Para especificar una consulta en lgebra relacional, es preciso definir uno
o ms pasos que sirven para ir construyendo, mediante operaciones de lgebra relacional, una
nueva relacin que contenga los datos que responden a la consulta a partir de las relaciones
almacenadas. Los lenguajes basados en el lgebra relacional son procedimentales, dado que
los pasos que forman la consulta describen un procedimiento.

Las operaciones del lgebra relacional han sido clasificadas segn distintos criterios; de todos
ellos indicamos los tres siguientes:

1) Segn se pueden expresar o no en trminos de otras operaciones.

a) Operaciones primitivas

Son aquellas operaciones a partir de las cuales podemos definir el resto. Estas operaciones son
la unin, la diferencia, el producto cartesiano, la seleccin y la proyeccin.

b) Operaciones no primitivas

El resto de las operaciones del lgebra relacional que no son estrictamente necesarias, porque
se pueden expresar en trminos de las primitivas; sin embargo, las operaciones no primitivas
permiten formular algunas consultas de forma ms cmoda. Existen distintas versiones del
lgebra relacional, segn las operaciones no primitivas que se incluyen. Nosotros estudiaremos
las operaciones no primitivas que se utilizan con mayor frecuencia: la interseccin y la
combinacin.

2) Segn el nmero de relaciones que tienen como operandos

a) Operaciones binarias

Son las que tienen dos relaciones como operandos. Son binarias todas las operaciones,
excepto la seleccin y la proyeccin.

b) Operaciones unarias

Son las que tienen una sola relacin como operando. La seleccin y la proyeccin son unarias.

3) Segn se parecen o no a las operaciones de la teora de conjuntos

a) Operaciones conjuntistas

Son las que se parecen a las de la teora de conjuntos. Se trata de la unin, la interseccin, la
diferencia y el producto cartesiano.

b) Operaciones especficamente relacionales

Son el resto de las operaciones; es decir, la seleccin, la proyeccin y la combinacin.


Las operaciones del lgebra relacional obtienen como resultado una nueva relacin. Es decir
que si hacemos una operacin del lgebra como por ejemplo EMPLEADOS_ADM
EMPLEADOS_PROD para obtener la unin de las relaciones EMPLEADOS_ADM y
EMPLEADOS_PROD, el resultado de la operacin es una nueva relacin que tiene la unin de
las tuplas de las relaciones de partida.

Se tiene una base de datos relacional con las cuatro relaciones siguientes:

1) La relacin EDIFICIOS_EMP, que contiene datos de distintos edificios de los que una
empresa dispone para desarrollar sus actividades.

2) La relacin DESPACHOS, que contiene datos de cada uno de los despachos que hay en los
edificios anteriores.

3) La relacin EMPLEADOS_ADM, que contiene los datos de los empleados de la empresa que
llevan a cabo tareas administrativas.

4) La relacin EMPLEADOS_PROD, que almacena los datos de los empleados de la empresa que
se ocupan de tareas de produccin.

- Esquema y extensin de EDIFICIOS_EMP

EDIFICIOS_EMP
edificio Supmedladesp
Marina 16
Diagonal 10

- Esquema y extensin de DESPACHOS

DESPACHOS
edificio numero Superficie
Marina 120 10
Marina 230 20
Diagonal 120 10
Diagonal 440 10
- Esquema y extensin de EMPLEADOS_ADM

EMPLEADOS_ADM
DNI nombre apellido edificiodesp Numerodesp
40444255 Juan Garcia Marina 120
33567711 Marta Roca Marina 120

- Esquema y extensin EMPLEADOS_PROD

EMPLEADOS_PROD
DNI nombreemp apellidoemp edificiodesp Numerodesp
40444255 Marta Roca Marina 120
33567711 Carlos Buenda Diagonal 120
77232144 Elena Pa Marina 230
21335245 Jorge Soler NULO NULO
88999210 Pedro Gonzales NULO NULO

Se considera que los valores nulos de los atributos edificiodesp y nmerodesp de las relaciones
EMPLEADOS_PROD y EMPLEADOS_ADM indican que el empleado correspondiente no tiene
despacho.

4.1. OPERACIONES CONJUNTISTAS

Las operaciones conjuntistas del algebra relacional son la unin, interseccin, la diferencia y el
producto.

4.1.1. UNION

La unin es una operacin que, a partir de dos relaciones, obtiene una nueva relacin formada
por todas las tuplas que estn en alguna de las relaciones de partida. La unin es una
operacin binaria, y la unin de dos relaciones T y S se indica T S.

La unin de las relaciones EMPLEADOS_ADM y EMPLEADOS_PROD proporciona una nueva


relacin que contiene tanto a los empleados de administracin como los empleados de
produccin; se indicara as: EMPLEADOS_ADM EMPLEADOS_PROD
Para poder aplicar la unin a dos relaciones, es preciso que las dos relaciones sean compatibles
si tienen el mismo grado.

EJEMPLOS DE RELACIONES:

Las relaciones EMPLEADOS_ADM y EMPLEADOS_PROD tienen grado 5. Podemos establecer la


siguiente biyeccin entre sus atributos:
A DNI de EMPLEADOS_ADM le corresponde DNIemp de EMPLEADOS_PROD.
A nombre de EMPLEADOS_ADM le corresponde nombreemp de EMPLEADOS_PROD.
A apellido de EMPLEADOS_ADM le corresponde apellidoemp de EMPLEADOS_PROD.
A edificiodesp de EMPLEADOS_ADM le corresponde edificiodesp de EMPLEADOS_PROD.
A nmerodesp de EMPLEADOS_ADM le corresponde edificiodesp de EMPLEADOS_PROD.

R = EMPLEADOS_ADM EMPLEADOS_PRO

Empleados
DNI nombre Apellidos edificiodesp Numerodesp
40444255 Juan Garca Marina 120
33567711 Marta Roca Marina 120
55898425 Carlos Buenda Diagonal 120

EJEMPLOS DE UNION

Ej.1

R1 R2
parte proveedor parte proveedor
tornillo Pedro tornillo Pedro
tornillo Pablo tuerca Alicia
tuerca Alicia tuerca Pedro

R1 U R2
parte proveedor
tornillo Pedro
tornillo Pablo
tuerca Alicia
tuerca Pedro
4.1.2. INTERSECCION

La interseccin es una operacin que, a partir de dos relaciones, obtiene una nueva relacin
formada por las tuplas que pertenecen a las dos relaciones de partida. La interseccin es una
operacin binaria; la interseccin de dos relaciones T y S se indica T S.

EJEMPLOS DE INTERSECCION

R1 R2
parte proveedor parte proveedor
tornillo Pedro tornillo Pedro
tornillo Pablo tuerca Alicia
tuerca Alicia tuerca Pedro

R1 R2
parte proveedor
tornillo Pedro
tuerca Alicia

4.1.3. DIFERENCIA

La diferencia es una operacin que, a partir de dos relaciones, obtiene una nueva relacin
formada por todas las tuplas que estn en la primera relacin y, en cambio, no estn en la
segunda. La diferencia es una operacin binaria, y la diferencia entre las relaciones T y S se
indica como T S.

EJEMPLO DE DIFERENCIA

Ej. 1
R1 R2
parte proveedor parte proveedor
tornillo Pedro tornillo Pedro
tornillo Pablo
tuerca Alicia

R1 - R2
parte proveedor
tornillo Pablo
tuerca Alicia
4.1.4. PRODUCTO CARTESIANO

El producto cartesiano es una operacin que, a partir de dos relaciones, obtiene una nueva
relacin formada por todas las tuplas que resultan de concatenar tuplas de la primera relacin
con tuplas de la segunda. El producto cartesiano es una operacin binaria. Siendo T y S dos
relaciones que cumplen que sus esquemas no tienen ningn nombre de atributo comn, el
producto cartesiano de T y S se indica como T S.

EJEMPLOS DE PRODUCTO CARTESIANO

Ej. 1

T S
proveedor parte
Pedro martillo
Pablo tuerca

TxS
proveedor parte
Pedro martillo
Pedro tuerca
Pablo martillo
Pablo tuerca
FUNCION DE AGREGACION
Permiten combinar tuplas de una relacin para producir un valor agregado". Las ms
comunes son: sum, avg, count, min, max.

Ejemplo:

SUMatributo(R) crea una relacin con un nico atributo que es la suma de los valores de
atributo en la relacin R.

ALGEBRA RELACIONAL Y SQL BASE DE DATOS


Las operaciones especficamente relacionales son la seleccin, la proyeccin y la combinacin.
Los operadores relacionales se utilizan para filtrar, cortar o combinar tablas.

6.1. SELECCIN (SELEC)

La seleccin es una operacin que, a partir de una relacin, obtiene una nueva relacin
formada por todas las tuplas de la relacin de partida que cumplen una condicin de seleccin
especificada. La seleccin es una operacin unaria. Siendo C una condicin de seleccin, la
seleccin de T con la condicin C se indica como T(C).

Para obtener una relacin que tenga todos los despachos del edificio Marina que tienen ms
de 12 metros cuadrados, podemos aplicar una seleccin a la relacin DESPACHOS con una
condicin de seleccin que sea edificio = Marina y superficie > 12; se indicara
DESPACHOS(edificio= Marina y superficie > 12).

EJEMPLO DE SELECCIN

Si queremos obtener una relacin R con los despachos de la base de datos del ejemplo que
estn en el edificio Marina y que tienen una superficie de ms de 12 metros cuadrados,
haremos la siguiente seleccin:

R = DESPACHOS (edificio = Marina y superficie > 12).

edificio numero Superficie

Marina 230 20
Ej. 1

cuenta.saldo < d.saldo (Cuenta x d(Cuenta))

Cuenta Cuenta Cuenta


d. sucursal d. cuenta d. saldo
Sucursal cuenta Saldo
Miraflores C101 100000 La Aurora C215 140000
Lima
C102 80000 Miraflores C101 100000
Cercado
Lima
C102 80000 La Aurora C215 140000
Cercado

Ej. 2

Nom Suc = <<Esteli>> (Salarios)

Salarios
CodSuc NomSuc CodEmpleado Empleado Salario
01-002 Casa Matriz S002-0125 Juan Perez 10000

01-004 Esteli S0004-0113 Domingo Lanuza 8500

01-004 Esteli S0004-0056 Laura Flores 7000


01-009 Ocotal S009-0001 Eliza Fuentes 8500
01-010 Jinotega S009-0125 Ana Figueroa 4000
01-002 Casa Matriz S002-0059 Lester Jiron 2500

Para seleccionar los salarios de la sucursal Esteli, tendramos:

CodSuc NomSuc CodEmpleado Empleado Salario


01-004 Esteli S004-0113 Domingo Lanuza 8500
01-005 Esteli S004-0056 Laura Flores 7000
6.2. PROYECCION (PROJECT)

La proyeccin es una operacin que, a partir de una relacin, obtiene una nueva relacin
formada por todas las (sub)tuplas de la relacin de partida que resultan de eliminar unos
atributos especificados. La proyeccin es una operacin unaria. Siendo {Ai, Aj,..., Ak} un
subconjunto de los atributos del esquema de la relacin T, la proyeccin de T sobre {Ai, Aj,...,
Ak} se indica como T [Ai, Aj,..., Ak].

Para obtener una relacin que tenga slo los atributos nombre y apellido de los empleados de
administracin, podemos hacer una proyeccin en la relacin EMPLEADOS_ADM sobre estos
dos atributos. Se indicara de la forma siguiente: EMPLEADOS_ADM [nombre, apellido].

EJEMPLO DE PROYECCION

Si queremos obtener una relacin R con el nombre y el apellido de todos los empleados de
administracin de la base de datos del ejemplo, haremos la siguiente proyeccin:

R= EMPLEADOS_ADM [nombre, apellido].

Nombre Apellido

Juan Garca

Marta Roca

Ej. 1

Encontrar los clientes que viven en Peguerinos

nombre-cliente ( ciudad-cliente = <<Peguerinos>> (Cliente))

nombre-cliente calle-cliente ciudad-cliente


Abril Preciados Valsein
Amo Embajadores Arganzuela
Pedro Delicias Valsatin
Pamela Jazmin Leon nombre-cliente
Rocio Carretas Cerceda Lopez
Julieta Arenal La Granja Santos
Lopez Mayor Peguerinos
Roman Personu Cerceda
Valdivia Jorgenal Cadiz
Tapia Remicas Leon
Santos Mayor Peguerinos
Valdivieso Goya Vigo
6.3. JOIN NATURAL

Notacin R (X) S

R (X1, X2,, Y1, Y2,, Yn)

S (Y1, Y2,, Z1, Z2, , Zp)

Relacin con atributos X, Y, Z y poblado por el conjunto de tuplas que tienen igual valor de Y en
R y en S.

RuS(R.Y1=S.Y1R.Y2=S.Y2R.Yn=S.Yn(RxS))

R S R (X) S
A B A B D A B C D
1 2 2 5 6 1 2 5 6
3 4 4 7 8 3 4 7 8
9 10 11

Si las relaciones R y S no tienen nombre de atributos en comn entonces A (x) B = A x B

EJEMPLOS DE JOIN NATURAL

ID NAME ID Adress
1 ABHI 1 DELHI
2 ADAM 2 MUMBAI
3 ALEX 3 CHENNAI
4 ANU

ID NAME Adress
1 ABHI DELHI
2 ADAM MUMBAI
3 ALEX CHENNAI
Ejemplo en SQL

NATURAL JOIN SQL


6.4. THETA JOIN

Ej. SQL
6.5. COMBINACION

La combinacin es una operacin que, a partir de dos relaciones, obtiene una nueva relacin
formada por todas las tuplas que resultan de concadenar tuplas de la primera relacin con
tuplas de la segunda, y que cumplen una condicin de combinacin especificada. La
combinacin es una operacin binaria. Siendo T y S dos relaciones cuyos esquemas no tienen
ningn nombre de atributo comn, y siendo B una condicin de combinacin, la combinacin
de T y S segn la condicin B se indica T [B] S.

Para conseguir una relacin que tenga los datos de cada uno de los empleados de
administracin junto con los datos de los despachos donde trabajan, podemos hacer una
combinacin de las relaciones EMPLEADOS_ADM y DESPACHOS, donde la condicin de
combinacin indique lo siguiente:

edificiodesp = edificio y nmerodesp = nmero.

La condicin de combinacin hace que el resultado slo combine los datos de un empleado
con los datos de un despacho si el edificiodesp y el nmerodesp del empleado son iguales que
el edificio y el nmero del despacho, respectivamente. Es decir, la condicin hace que los datos
de un empleado se combinen con los datos del despacho donde trabaja, pero no con datos de
otros despachos. La combinacin del ejemplo anterior se indicara de la forma siguiente:

EMPLEADOS_ADM [edificiodesp= edificio, nmerodesp = nmero] DESPACHOS.

EJEMPLO DE COMBINACION

Supongamos que se desea encontrar los datos de los despachos que tienen una superficie
mayor o igual que la superficie media de los despachos del edificio donde estn situados. La
siguiente combinacin nos proporcionar los datos de estos despachos junto con los datos de
su edificio (observad que es preciso redenominar previamente los atributos):

EDIFICIOS (nombreedificio, supmediadesp) = EDIFICIOS_EMP (edificio, supmediadesp)

R = EDIFICIOS [nombreedificio = edificio, supmediadesp superficie] DESPACHOS.

R
nombreedificio supmediadesp edificio numero superficie
Marina 15 Marina 230 20
Diagonal 10 Diagonal 120 10
Diagonal 10 Diagonal 440 10

Supongamos ahora que para obtener los datos de cada uno de los empleados de
administracin, junto con los datos del despacho donde trabajan, utilizamos la siguiente
combinacin:

R = EMPLEADOS_ADM [edificiodesp = edificio, nmerodesp = nmero] DESPACHOS.

R
DNI nombre apellido edificiodesp numerodesp edificio numero Superficie
40444255 Juan Garcia Marina 120 Marina 120 10
33567711 Marta Roca Marina 120 Marina 120 10
En ocasiones, la combinacin recibe el nombre de -combinacin, y cuando todas las
comparaciones de la condicin de la combinacin tienen el operador =, se denomina
equicombinacin.

La combinacin natural de dos relaciones T y S se denota como T*S y consiste bsicamente en


una equicombinacin seguida de la eliminacin de los atributos superfluos; adems, se
considera por defecto que la condicin de combinacin iguala todas las parejas de atributos
que tienen el mismo nombre en T y en S. Se observa que, a diferencia de la equicombinacin,
la combinacin natural se aplica a relaciones que tienen nombres de atributos comunes.

EJEMPLO DE COMBINACION NATURAL

R = EDIFICIOS_EMP*DESPACHOS

Se considera que la condicin es edificio = edificio porque edificio es el nico nombre de


atributo que figura tanto en el esquema de EDIFICIOS_EMP como en el esquema de
DESPACHOS. El resultado de esta combinacin natural es:

edificio supmediadesp numero Superficie

Marina 15 120 10

Marina 15 230 20

Diagonal 10 120 10

Diagonal 10 440 10
ESQUEMA DE BASE DE DATOS
- Cuenta (nombreSucursal, numCta, saldo)
- Sucursal (nombreSucursal, ciudad, activos)
- Cliente (nombreCliente, calle, ciudad)
- CtaCliente (nombreCliente, numCta)
- Prestamo (nombreSucursal, numPrestamo, importe)
- Prestatario (nombreCliente, numPrestamo)

Ahora se mostrara ejemplos de consultas de base de datos:

1. Encontrar la informacin de todos los prstamos realizados en la sucursal llamada Sol


De Oro".

nombreSucursal="SolDeOro"(Prestamo)

2. Determinar el nombre de los clientes que viven en Guanajuato.

nombreCliente(ciudad="Arequipa"(Cliente))

Nombre de los clientes del banco que tienen una cuenta, un prstamo o ambas cosas.
a) nombreCliente(Prestatario)
b) nombreCliente(CtaCliente)

La respuesta es: nombreCliente(ctaCliente) U nombreCliente(Prestatario)

7.1 LENGUAJE PARA DEFINIR RESTRICCIONES

El tercer aspecto importante de un MD es la habilidad de restringir los datos almacenados en


la BD. Formas en algebra relacional para expresar restricciones.

- Sea R una expresin en algebra relacional (AR), entonces R= es una restriccin que
dice no hay tuplas en el resultado de R".

- Si R y S son expresiones en AR, entonces R S.

Ambas expresiones son equivalentes:

- R S es equivalente a R S =

- R = puede escribirse como R S

7.1.1. RESTRICCIONES DE INTEGRIDAD REFERENCIAL

Aseguran que un valor que aparece en un contexto tambin aparece en otro contexto
relacionado. En general, si un valor V para un atributo A de alguna tupla en una relacin R,
entonces se espera que V tambin aparezca en un atributo B de alguna tupla de otra relacin S.

EJEMPLOS:

Departamento (nombre, numDepto, CURPJefe, fechaIngresoJefe)


Proyecto (nombre, claveProy, ubicacionP, claveDepto)
Es vlido suponer que la clave de departamento en el proyecto sea la de uno existente.
7.1.2. RESTRICCION DE LLAVE

Departamento (nombre, numDepto, CURPJefe, fechaIngresoJefe)


Significa que no hay dos departamentos con el mismo nmero.

7.1.3. RESTRICCIONES DE DOMINIO

Se desea restringir el valor sexo para los empleados:


BIBLIOGRAFIA

- http://csrg.inf.utfsm.cl/~jfuentes/_build/html/lectures/week1/lecture3.html
- http://ocw.uoc.edu/computer-science-technology-and-multimedia/bases-de-
datos/bases-de-datos/P06_M2109_02148.pdf
- http://hp.fciencias.unam.mx/~alg/bd/alg.pdf
- http://es.slideshare.net/jherry/algebra-relacional-7730867
- http://es.tldp.org/Postgresql-es/web/navegable/tutorial/x574.html