Professional Documents
Culture Documents
I. INTRODUCCION
V. FUNCION DE AGREGACION
6.1. SELECCIN
6.2. PROYECCION
6.3. JOIN NATURAL
6.4. THETA JOIN
6.5. COMBINACION
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 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.
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.
Una relacin es una parte del producto cartesiano de una lista de atributos, en donde cada
atributo representa un valor de un dominio.
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
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.
Los atributos de esta relacin son: compuesto, componente y cantidad. Los atributos
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
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:
Realizan operaciones sobre las relaciones por medio de operadores en donde los Operandos
son las relaciones.
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.
Se puede obtener una buena idea intuitiva de lo que es una relacin si la visualizamos como
una tabla o un fichero.
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.
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.
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:
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.
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.
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.
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.
EDIFICIOS_EMP
edificio Supmedladesp
Marina 16
Diagonal 10
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
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.
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.
EJEMPLOS DE RELACIONES:
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.
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.
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:
Marina 230 20
Ej. 1
Ej. 2
Salarios
CodSuc NomSuc CodEmpleado Empleado Salario
01-002 Casa Matriz S002-0125 Juan Perez 10000
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:
Nombre Apellido
Juan Garca
Marta Roca
Ej. 1
Notacin R (X) S
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
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
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:
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:
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):
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
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.
R = EDIFICIOS_EMP*DESPACHOS
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)
nombreSucursal="SolDeOro"(Prestamo)
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)
- Sea R una expresin en algebra relacional (AR), entonces R= es una restriccin que
dice no hay tuplas en el resultado de R".
- R S es equivalente a R S =
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:
- 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