ElCálculo
relacional es un lenguaje de consulta que describe la
respuesta deseada sobre unaBase de datos sin
especificar como obtenerla, a diferencia delÁlgebra
relacionalque es de tipo procedural, el cálculo
relacional es detipo declarativo;
pero siempre ambos métodos logran los mismos resultados.
El cálculo relacional usa un enfoque completamente
diferente al álgebra relacional. No obstante, los dos lenguajes son lógicamente
equivalentes. Esto significa que cualquier consulta que pueda resolverse en un
lenguaje puede resolverse en el otro. La solución para toda consulta en este
tipo de cálculo se define por:
ØUna lista de resultados
ØUna sentencia de cualificación
La lista de resultados está clara, son aquellos registros
que cumplen las condiciones que deseamos. La sentencia de cualificación
contiene las condiciones que deseamos que cumplan los registros de la lista de
resultados. La diferencia entre el cálculo y el álgebra radica en que el
cálculo realiza la operación en un único paso, sin necesidad de tener que
obtener tablas intermedias, el álgebra realiza las operaciones paso a paso.
Normalmente el cálculo relacional se apoya en algún
lenguaje de interrogación de bases de datos como puede ser el SQL.
El cálculo relacional incluye un concepto nuevo
denominado cuantificador, los cuantificadores tratan de averiguar el número de
registros afectados por una determinada operación, incluso antes de realizarla.
Según su naturaleza los podemos dividir en dos grupos:
Cuantificadores
existenciales
Son aquellos que tratan de averiguar el número de
registros que devolvería un tipo de consulta. Por ejemplo: saber el número de
clientes de Madrid que han comprado el producto 2015. Si el número de registros
que satisfacen esta relación es mayor que cero, podemos generar la consulta
para lanzar posteriormente un informe, en caso contrario se puede enviar un
mensaje al usuario para que sepa que no hay ningún cliente con estas
características.
Cuantificadores
universales
Son aquellos que indican que una condición se aplica a
todas las filas de algún tipo. Se usa para brindar la misma capacidad que la
operación división del álgebra relacional.
VARIABLES
Una variable es
un nombre asociado a un elemento de datos que está situado en posiciones
contiguas de la memoria principal, y su valor puede cambiar durante la
ejecución de un programa.
Toda variable pertenece a
un tipo de dato concreto. En la declaración de una
variable se debe indicar el tipo al que pertenece. Así tendremos variables
enteras, reales, booleanas, etc. Por otro lado, distinguimos tres partes
fundamentales en la vida de una variable:
Declaración de variables Esta es la primera fase en la vida de cualquier
variable. La declaración se realiza en la sección que comienza con la palabra var.
Nota: Toda variable que vaya a ser utilizada en
Pascal tiene que ser previamente declarada.
Iniciación de variables Esto no es más que darle un valor inicial a una
variable. Así como lo primero que se hace con una variable es declararla, lo
siguiente tiene que ser iniciarla. Esto se hace para evitar posibles errores en
tiempo de ejecución, pues una variable tiene un valor indeterminado después de declararla. Principalmente, existen
dos maneras de otorgar valores iniciales a variables:
Mediante
una sentencia de asignación
Mediante
uno de los procedimientos de entrada de datos (read o readln)
Veamos un
ejemplo que reúne los dos casos:
begin
...
i:=1;
readln(n);
while i < n do begin
(* cuerpo del bucle *)
i := i + 1
end;
...
end.
Utilización de variables Una vez declarada e iniciada una variable, es el momento de utilizarla.
Esta es la parte que presenta un mayor abanico de posibilidades. A continuación
tienes unas cuantas:
Incrementar su valor:
i := i +
1
Controlar un bucle:
for i:=1
to 10 do ...
Chequear una condición:
if i<10
then ...
Participar en una expresión:
n
:= (Max - Min) div i
CONSTANTES
Una constante es
un dato cuyo valor no puede cambiar durante la ejecución del programa. Recibe
un valor en el momento de la compilación y este permanece inalterado durante
todo el programa.
Como ya se ha comentado en el tema sobre las partes de un programa, las constantes se
declaran en una sección que comienza con la palabra reservada const.
Después de declarar una constante ya puedes usarla en el cuerpo principal del programa. Tienen
varios usos: ser miembro en una expresion, en una comparación, asignar
su valor a una variable, etc.
En el siguiente ejemplo se contemplan varios casos:
const
Min = 0;
Max = 100;
Sep = 10;
var
i : integer;
begin
i := Min;
while i < Max do begin
writeln(i);
i := i + Sep
end
end.
En este ejemplo se declaran tres constantes (Min, Max y Sep).
En la primera línea del cuerpo del programa se asigna una constante a una
variable. En la siguiente, se usa una constante en una comparación. Y en la
cuarta, la constante Sep interviene en una expresión que se
asigna a una variable. El resultado de ejecutar este programa
sería una impresión en pantalla de los números: 0, 10, 20, 30, 40, 50,
60, 70, 80 y 90.
Se puede hacer una división de
las constantes en tres clases:
Constantes literales Son valores de cualquier tipo que se utilizan directamente, no se
declaran ya que no tienen nombre. En el siguiente ejemplo tienes un
par de constantes literales (el 3, el 4, y el 3.1416):
VolumenEsfera := 4/3 * 3.1416 * Radio * Radio * Radio;
Constantes declaradas También llamadas constantes con nombre, son las que se
declaran en la sección const asignándoles
un valor directamente. Por ejemplo:
const
Pi =
3.141592; (* valor real *)
Min = 0; (* entero *)
Max = 99; (* entero *)
Saludo = 'Hola'; (* cadena caract. *)
Constantes expresión También se declaran en la sección const,
pero a estas no se les asigna un valor directamente, sino que se les asigna una expresión. Esta expresión se evalúa en
tiempo de compilación y el resultado se le asigna a la constante. Ejemplo:
const
Min = 0;
Max = 100;
Intervalo = 10; N = (Max - Min) div Intervalo; Centro = (Max - Min) div 2;
TIPOS
DE CÁLCULO RELACIONAL
Calculo
relacional orientado a tuplas: Se procesan tuplas de una o más relaciones SQL
orientado a la tupla utilizando nombres de relación y etiquetas como variables
de tupla.
Calculo
relacional orientado a los dominios: Variables de tupla se reemplazan por variables
de dominio Se procesan dominios que alcanzan una o más relaciones.
Cálculo
Relacional de Tuplas
Tuplas
Una tupla se define como una función finita que asocia
unívocamente los nombres de los atributos de una relación con los valores de
una instanciación de la misma. En términos simplistas, es una fila de una tabla
relacional.
Cálculo
relacional basado en tuplas.
Está basado en el cálculo de predicados utilizandovariables-tupla que representan
tuplas, esto obliga a introducir algunos cambios en las definicionescomentadas anteriormente, y que
pasamos a exponer.
Una consulta en TRC es de la forma:
{T | φ(T )}
donde T es una variable tipo tupla y φ(T) es
una fórmula que describe a T. El resultado de esta consulta es
el conjunto de todas las tuplas t para las cuales la fórmula es verdadera.
Variable de tipo tupla
Una variable tipo tupla T es una variable capaz de tomar
cualquier valor tupla que pertenece a una relación (o tabla).
Sintaxis de consulta en TRC
La sintaxis es definida a partir de la lógica de primer orden.
Donde la variable a utilizar son de tipo tupla. Una variable es libre en una
fórmula (o subfórmula) si la (sub) fórmula no contiene ninguna ocurrencia de
cuantificadores que la limiten. En una consulta en TRC de la forma: {T | φ(T
)}, T es la única variable libre.
Seanlasrelaciones:
Cálculo Relacional de Dominios
Es un lenguaje de consulta formal que permite expresar las
consultas a partir de fórmulasbien formadas, donde
cada variable se interpreta como variante sobre el dominio delatributo de una relación. Al igual que el anterior, éste se
deduce del cálculo de predicados,pero en este caso:
1. las variables están asociadas a
los dominios de los atributos y se denota como relación (atributo1: variable1, atributo2: variable2, ... ).
Ejm: ModeloCarro(modelo:m, marca: c).
2. los predicados utilizados se
construyen igual que para el cálculo relacional de tuplas.
RESUMEN
CÁLCULO RELACIONAL
ElCálculo
relacional es un lenguaje de consulta que describe la
respuesta deseada sobre unaBase de datos sin
especificar como obtenerla, a diferencia delÁlgebra
relacionalque es de tipo procedural, el cálculo
relacional es detipo declarativo;
pero siempre ambos métodos logran los mismos resultados.
El cálculo relacional usa un enfoque completamente
diferente al álgebra relacional. No obstante, los dos lenguajes son lógicamente
equivalentes. Esto significa que cualquier consulta que pueda resolverse en un
lenguaje puede resolverse en el otro. La solución para toda consulta en este
tipo de cálculo se define por:
ØUna lista de resultados
ØUna sentencia de cualificación
Cuantificadores
existenciales
Son
aquellos que tratan de averiguar el número de registros que devolvería un tipo
de consulta. Por ejemplo: saber el número de clientes de Madrid que han
comprado el producto 2015.
Cuantificadores
universales
Son aquellos que indican que una condición se aplica a
todas las filas de algún tipo. Se usa para brindar la misma capacidad que la
operación división del álgebra relacional.
VARIABLES
Una variable es
un nombre asociado a un elemento de datos que está situado en posiciones
contiguas de la memoria principal, y su valor puede cambiar durante la
ejecución de un programa.
Declaración de variables Esta es la primera fase en la vida de cualquier
variable. La declaración se realiza en la sección que comienza con la palabra var.
Iniciación de
variables Esto no es más que darle un valor inicial a una
variable. Así como lo primero que se hace con una variable es declararla, lo
siguiente tiene que ser iniciarla.
Utilización de
variables Una vez declarada e iniciada una variable, es el momento de utilizarla.
Esta es la parte que presenta un mayor abanico de posibilidades.
CONSTANTES
Una constante es
un dato cuyo valor no puede cambiar durante la ejecución del programa. Recibe
un valor en el momento de la compilación y este permanece inalterado durante
todo el programa.
Constantes literales Son valores de cualquier tipo que se utilizan directamente, no se
declaran ya que no tienen nombre.
Constantes declaradas También llamadas constantes con nombre, son las que se
declaran en la sección const asignándoles
un valor directamente.
Constantes expresión También se declaran en la sección const,
pero a estas no se les asigna un valor directamente, sino que se les asigna una expresión. Esta expresión se evalúa en
tiempo de compilación y el resultado se le asigna a la constante.
TIPOS
DE CÁLCULO RELACIONAL
Calculo
relacional orientado a tuplas: Se procesan tuplas de una o más relaciones SQL
orientado a la tupla utilizando nombres de relación y etiquetas como variables
de tupla.
Calculo
relacional orientado a los dominios: Variables de tupla se reemplazan por variables
de dominio Se procesan dominios que alcanzan una o más relaciones.
Tuplas
Una tupla se define como una función finita que asocia
unívocamente los nombres de los atributos de una relación con los valores de
una instanciación de la misma. En términos simplistas, es una fila de una tabla
relacional.
Cálculo Relacional de Dominios
Es un lenguaje de consulta formal que permite expresar las
consultas a partir de fórmulasbien formadas, donde cada variable se interpreta como variante
sobre el dominio delatributo de una relación.
SUMMARY
relational calculus
The relational calculus is a query language that
describes the desired answer on a database without specifying how to get it,
unlike the relational algebra is procedural type, relational calculus is
declaratory; but always both methods achieve the same results.
The relational calculus uses a completely different approach
to the relational algebra. However, the two languages are logically
equivalent. This means that any query that can be resolved in a language can be
solved on the other. The solution to all queries in this type of calculation is
defined by:
A list of results
A statement of qualification
existential quantifiers
They are those who try to find out the number of
records that would return a query type. For example: knowing the number of
customers who bought the Madrid 2015 product.
universal quantifiers
They are those that indicate a condition applies to
all ranks of some sort. It is used to provide the same capacity as the
operation division of relational algebra.
VARIABLES
A variable is a name associated with a data item that
is located in adjacent positions of main memory, and its value can change
during the execution of a program.
Declaration of variables
This is the first phase in the life of any variable.
The statement is made in the section that begins with the word var.
Initiation of variables
This is nothing more than give an initial value to a
variable. And the first thing that is done is to declare a variable, the
following must be start it.
Using variables
Once declared and initiated a variable, it is time to
use it. This is the part that has a greater range of possibilities.
CONSTANT
A constant is data whose value can not change during
program execution. You receive a value at compile time and it remains unchanged
throughout the program.
literals
They are values of any type that are used directly,
they not declared because they have no name.
Constants declared
Also called named constants, are those declared in the
const section assigning a value directly.
constant expression
also they declared in the const section, but these are
not assigned a value directly but are assigned an expression. This expression
is evaluated at compile time and the result is assigned to the constant.
TYPES
OF relational calculus
relational tuples oriented calculation: tuples of one
or more SQL oriented relationship tuple using names and labels as relationships
tuple variables are processed.
oriented relational calculus domains: Variables Tuple
variables are replaced by domain ?? domains reaching one or more relationships
are processed.
tuples
A tuple is defined as a finite function that uniquely
associates the names of the attributes of a relationship with the values of
an instantiation of it. In simplistic terms, it is a row of a relational table.
Domain Relational Calculus
It is a language that can express formal consultation
inquiries from well-formed formulas, where each variable is interpreted as a
variant on the domain attribute of a relationship.
RECOMENDACIONES
Para poder realizar
un buen cálculo relacional, se debe
tener un buen conocimiento del tema ya que es un lenguaje de consulta
que describe la respuesta deseada sobre una
El cálculo
relacional es un tema muy interesante y
muy amplio ya que nos da a conocer los aspectos más concisos, nos explica las características
de sus tipos, variables y constantes, además nos da a conocer que el cálculo relacional se apoya en
algún lenguaje de interrogación de bases de datos como puede ser el SQL.
GLOSARIO
CUANTIFICADOR: Pala bra que cuantifica a otra, como los
numerales o ciertos indefinidos.
Abanico: Forma de un objeto o de
una cosa parecida a la de ese utensilio cuando está abierto.
Elálgebra relacionales un conjunto de operaciones que describen paso a paso cómo computar una respuesta sobre las relaciones, tal y como éstas son definidas en el modelo relacional. Denominada de tipoprocedimental, a diferencia delCálculo relacionalque es de tipo declarativo.
Describe el aspecto de lamanipulación de datos. Estas operaciones se usan como una representación intermedia de una consulta a una base de datos y, debido a sus propiedades algebraicas, sirven para obtener una versión más optimizada y eficiente de dicha consulta.
Una característica destacable de todas las operaciones del álgebra relacional es que tanto los operandos como el resultado son relaciones. Esta propiedad se denomina cierre relacional.
Las operaciones del álgebra relacional han sido clasificadas según distintos criterios; de todos ellos indicamos los tres siguientes:
1) Según se pueden expresar o no en términos de otras operaciones.
a) Operaciones primitivas: son aquellas operaciones a partir de las cuales podemos definir el resto. Estas operaciones son la unión, la diferencia, el producto cartesiano, la selección y la proyección.
b) Operaciones no primitivas: el resto de las operaciones del álgebra relacional que no son estrictamente necesarias, porque se pueden expresar en términos de las primitivas; sin embargo, las operaciones no primitivas permiten formular algunas consultas de forma más cómoda. Existen distintas versiones del álgebra relacional, según las operaciones no primitivas que se incluyen. Nosotros estudiaremos las operaciones no primitivas que se utilizan con mayor frecuencia: la intersección y la combinación.
2) Según el número de relaciones que tienen como operandos:
a) Operaciones binarias: son las que tienen dos relaciones como operandos. Son binarias todas las operaciones, excepto la selección y la proyección.
b) Operaciones unarias: son las que tienen una sola relación como operan- do. La selección y la proyección son unarias.
3) Según se parecen o no a las operaciones de la teoría de conjuntos:
a) Operaciones conjuntistas: son las que se parecen a las de la teoría de conjuntos. Se trata de la unión, la intersección, la diferencia y el producto cartesiano.
b) Operaciones específicamente relacionales: son el resto de las operaciones;
Es decir, la selección, la proyección y la combinación.
Como ya hemos comentado anteriormente, las operaciones del álgebra relacional obtienen como resultado una nueva relación. Es decir que si hacemos una operación del álgebra como por ejemplo EMPLEADOS_ADM ∪∪ EMPLEADOS_PROD para obtener la unión de las relaciones EMPLEADOS_ADM y EMPLEADOS_PROD, el resultado de la operación es una nueva relación que tiene la unión de las tuplas de las relaciones de partida.
Esta nueva relación debe tener un nombre. En principio, consideramos que su nombre es la misma expresión del álgebra relacional que la obtiene; es decir, la misma expresión EMPLEADOS_ADM ∪ EMPLEADOS_PROD. Puesto que este nombre es largo, en ocasiones puede ser interesante cambiarlo por uno más simple. Esto nos facilitará las referencias a la nueva relación, y será especialmente útil en los casos en los que queramos utilizarla como operando de otra operación.
Usaremos la operación auxiliar redenominar con este objetivo.
La operación redenominar, que denotaremos con el símbolo:=, permite asignar un nombre R a la relación que resulta de una operación del álgebra relacional; lo hace de la forma siguiente:
R:=E,
Siendo E la expresión de una operación del álgebra relacional.
En el ejemplo, para dar el nombre EMPLEADOS a la relación resultante de la operación EMPLEADOS_ADM ∪ EMPLEADOS_PROD, haríamos:
EMPLEADOS:= EMPLEADOS_ADM ∪ EMPLEADOS_PROD.
Cada operación del álgebra relacional da unos nombres por defecto a los atributos del esquema de la relación resultante, tal y como veremos más adelante.
En algunos casos, puede ser necesario cambiar estos nombres por defecto por otros nombres. Por este motivo, también permitiremos cambiar el nombre de la relación y de sus atributos mediante la operación redenominar.
Utilizaremos también la operación redenominar para cambiar el esquema de una relación. Si una relación tiene el esquema S (B1, B2, ..., Bn) y queremos cambiarlo por R (A1, A2, ..., An), lo haremos de la siguiente forma:
R (A1, A2, ..., An) := S(B1, B2, ..., Bn).
A continuación presentaremos un ejemplo que utilizaremos para ilustrar las operaciones del álgebra relacional. Después veremos con detalle las operaciones.
Supongamos que tenemos una base de datos relacional con las cuatro relaciones siguientes:
1) La relación EDIFICIOS_EMP, que contiene datos de distintos edificios de los que una empresa dispone para desarrollar sus actividades.
2) La relación DESPACHOS, que contiene datos de cada uno de los despachos que hay en los edificios anteriores.
3) La relación EMPLEADOS_ADM, que contiene los datos de los empleados de la empresa que llevan a cabo tareas administrativas.
4) La relación EMPLEADOS_PROD, que almacena los datos de los empleados de la empresa que se ocupan de tareas de producción.
A continuación describimos los esquemas de las relaciones anteriores y sus ex- tensiones en un momento determinado:
• Esquema y extensión de EDIFICIOS_EMP:
EDIFICIOS_EMP
edificio
supmediadesp
Marina
15
Diagonal
10
• Esquema y extensión de DESPACHOS:
DESPACHOS
edificio
número
superficie
Marina
120
10
Marina
230
20
Diagonal
120
10
Diagonal
440
10
• Esquema y extensión de EMPLEADOS_ADM:
EMPLEADOS_ADM
DNI
nombre
apellido
edificiodesp
númerodesp
40.444.255
Juan
García
Marina
120
33.567.711
Marta
Roca
Marina
120
• Esquema y extensión de EMPLEADOS_PROD:
EMPLEADOS_PROD
DNI
nombreemp
apellidoemp
edificiodesp
númerodesp
33.567.711
Marta
Roca
Marina
120
55.898.425
Carlos
Buendía
Diagonal
120
77.232.144
Elena
Pla
Marina
230
21.335.245
Jorge
Soler
NULO
NULO
88.999.210
Pedro
González
NULO
NULO
Se considera que los valores nulos de los atributos edificiodesp y númerodesp de las relaciones EMPLEADOS_PROD y EMPLEADOS_ADM indican que el empleado correspondiente no tiene despacho.
OPERACIONES CONJUNTISTAS
Las operaciones conjuntistas del álgebra relacional son la unión, la intersección, la diferencia y el producto cartesiano.
Unión
La unión es una operación que, a partir de dos relaciones, obtiene una nueva relación formada por todas las tuplas que están en alguna de las relaciones de partida.
La unión es una operación binaria, y la unión de dos relaciones T y S se indica T ∪ S.
La unión de las relaciones EMPLEADOS_ADM y EMPLEADOS_PROD proporciona una nueva relación que contiene tanto a los empleados de administración como los empleados de producción; se indicaría así: EMPLEADOS_ADM ∪ EMPLEADOS_PROD.
Sólo tiene sentido aplicar la unión a relaciones que tengan tuplas similares.
Por ejemplo, se puede hacer la unión de las relaciones EMPLEADOS_ADM y EMPLEADOS_PROD porque sus tuplas se parecen. En cambio, no se podrá hacer la unión de las relaciones EMPLEADOS_ADM y DESPACHOS porque, como habéis podido observar en las tablas, las tuplas respectivas son de tipo diferente.
Más concretamente, para poder aplicar la unión a dos relaciones, es preciso que las dos relaciones sean compatibles. Decimos que dos relaciones T y S son relaciones compatibles si:
• Tienen el mismo grado.
• Se puede establecer una biyección entre los atributos de T y los atributos de
S que hace corresponder a cada atributo Ai de T un atributo Aj de S, de modo que se cumple que dominio(Ai) = dominio(Aj).
Ejemplo de relaciones compatibles
Las relaciones EMPLEADOS_ADM y EMPLEADOS_PROD tienen grado 5. Podemos establecer la siguiente biyección 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 númerodesp de EMPLEADOS_ADM le corresponde edificiodesp de EMPLEADOS_PROD.
Además, supondremos que los dominios de sus atributos se han declarado de forma que se cumple que el dominio de cada atributo de EMPLEADOS_ADM sea el mismo que el dominio de su atributo correspondiente en EMPLEADOS_PROD.
Por todos estos factores, podemos llegar a la conclusión de que EMPLEADOS_ADM y
EMPLEADOS_PROD son relaciones compatibles.
A continuación, pasaremos a definir los atributos y la extensión de la relación resultante de una unión:
Los atributos del esquema de la relación resultante de T ∪ S coinciden con los atributos del esquema de la relación T.
La extensión de la relación resultante de T ∪ S es el conjunto de tuplas que pertenecen a la extensión de T, a la extensión de S o a la extensión de ambas relaciones.
Ejemplo de unión
Si queremos obtener una relación R que tenga a todos los empleados de la empresa del ejemplo anterior, llevaremos a cabo la unión de las relaciones EMPLEADOS_ADM y EMPLEADOS_PROD de la forma siguiente:
R:= EMPLEADOS_ADM ∪ EMPLEADOS_PROD.
Entonces la relación R resultante será la reflejada en la tabla siguiente:
R
DNI
nombre
apellido
edificiodesp
númerodesp
40.444.255
Juan
García
Marina
120
33.567.711
Marta
Roca
Marina
120
55.898.425
Carlos
Buendía
Diagonal
120
R
DNI
nombre
apellido
edificiodesp
númerodesp
77.232.144
Elena
Pla
Marina
230
21.335.245
Jorge
Soler
NULO
NULO
88.999.210
Pedro
González
NULO
NULO
El hecho de que los atributos de la relación resultante coincidan con los atributos de la relación que figura en primer lugar en la unión es una convención; teóricamente, también habría sido posible convenir que coincidiesen con los de la relación que figura en segundo lugar.
Intersección
La intersección es una operación que, a partir de dos relaciones, obtiene una nueva relación formada por las tuplas que pertenecen a las dos relaciones de partida.
La intersección es una operación binaria; la intersección de dos relaciones T y S se indica T ∩ S.
La intersección de las relaciones EMPLEADOS_ADM y EMPLEADOS_PROD obtiene una nueva relación que incluye a los empleados que son al mismo tiempo de administración y de producción:
se indicaría como EMPLEADOS_ADM ∩ EMPLEADOS_PROD.
La intersección, como la unión, sólo se puede aplicar a relaciones que tengan tuplas similares. Para poder hacer la intersección de dos relaciones, es preciso, pues, que las relaciones sean compatibles.
A continuación definiremos los atributos y la extensión de la relación resultante de una intersección.
Los atributos del esquema de la relación resultante de T ∩ S coinciden con los atributos del esquema de la relación T.
La extensión de la relación resultante de T ∩ S es el conjunto de tuplas que pertenecen a la extensión de ambas relaciones.
Ejemplo de intersección
Si queremos obtener una relación R que incluya a todos los empleados de la empresa del ejemplo que trabajan tanto en administración como en producción, realizaremos la inter- sección de las relaciones EMPLEADOS_ADM y EMPLEADOS_PROD de la forma siguiente:
R: = EMPLEADOS_ADM ∩ EMPLEADOS_PR
Entonces, la relación R resultante será:
R
DNI
nombre
apellido
edificiodesp
númerodesp
33.567.711
Marta
Roca
Marina
120
Observad que se ha tomado la convención de que los atributos de la relación que resulta coincidan con los atributos de la relación que figura en primer lugar.
Diferencia
La diferencia es una operación que, a partir de dos relaciones, obtiene una nueva relación formada por todas las tuplas que están en la primera relación y, en cambio, no están en la segunda. La diferencia es una operación binaria, y la diferencia entre las relaciones T y S se indica como T – S.
La diferencia EMPLEADOS_ADM menos EMPLEADOS_PROD da como resultado una nueva re- lación que contiene a los empleados de administración que no son empleados de producción, y se indicaría de este modo: EMPLEADOS_ADM – EMPLEADOS_PROD.
La diferencia, como ocurría en la unión y la intersección, sólo tiene sentido si se aplica a relaciones que tengan tuplas similares. Para poder realizar la diferencia de dos relaciones es necesario que las relaciones sean compatibles.
A continuación definimos los atributos y la extensión de la relación resultante de una diferencia.
Los atributos del esquema de la relación resultante de T – S coinciden con los atributos del esquema de la relación T.
La extensión de la relación resultante de T – S es el conjunto de tuplas que pertenecen a la extensión de T, pero no a la de S.
Ejemplo de diferencia
Si queremos obtener una relación R con todos los empleados de la empresa del ejemplo que trabajan en administración, pero no en producción, haremos la diferencia de las relaciones EMPLEADOS_ADM y EMPLEADOS_PROD de la forma siguiente:
R:= EMPLEADOS_ADM – EMPLEADOS_PROD
Entonces la relación R resultante será:
R
DNI
nombre
apellido
edificiodesp
númerodesp
40.444.255
Juan
García
Marina
120
Se ha tomado la convención de que los atributos de la relación resultante como incidan con los atributos de la relación que figura en primer lugar.
Producto cartesiano
El producto cartesiano es una operación que, a partir de dos relaciones, obtiene una nueva relación formada por todas las tuplas que resultan de concatenar tuplas de la primera relación con tuplas de la segunda.
El producto cartesiano es una operación binaria. Siendo T y S dos relaciones que cumplen que sus esquemas no tienen ningún nombre de atributo común, el producto cartesiano de T y S se indica como T × S.
Si calculamos el producto cartesiano de EDIFICIOS_EMP y DESPACHOS, obtendremos una nueva relación que contiene todas las concatenaciones posibles de tuplas de EDIFICIOS_EMP con tuplas de DESPACHOS.
Si se quiere calcular el producto cartesiano de dos relaciones que tienen algún nombre de atributo común, sólo hace falta redenominar previamente los atributos adecuados de una de las dos relaciones.
A continuación definimos los atributos y la extensión de la relación resultante de un producto cartesiano.
Los atributos del esquema de la relación resultante de T × S son todos los atributos de T y todos los atributos de S*.
La extensión de la relación resultante de T × S es el conjunto de todas las tuplas de la forma <v1, v2, … vn, w1, w2, ..., wm> para las que se cum- ple que <v1, v2, ..., vn> pertenece a la extensión de T y que <w1, w2, ..., wm> pertenece a la extensión de S.
Ejemplo de producto cartesiano
El producto cartesiano de las relaciones DESPACHOS y EDIFICIOS_EMP del ejemplo se puede hacer como se indica (es necesario redenominar atributos previamente):
Conviene señalar que el producto cartesiano es una operación que raramente se utiliza de forma explícita, porque el resultado que da no suele ser útil para resolver las consultas habituales.
A pesar de ello, el producto cartesiano se incluye en el álgebra relacional por- que es una operación primitiva; a partir de la cual se define otra operación del álgebra, la combinación, que se utiliza con mucha frecuencia.
OPERACIONES ESPECÍFICAMENTE RELACIONALES
Las operaciones específicamente relacionales son la selección, la proyección y la combinación.
Selección
Podemos ver la selección como una operación que sirve para elegir algunas tuplas de una relación y eliminar el resto. Más concretamente, la selección es una operación que, a partir de una relación, obtiene una nueva relación formada por todas las tuplas de la relación de partida que cumplen una condición de selección especificada.
La selección es una operación unaria. Siendo C una condición de se- lección, la selección de T con la condición C se indica como T(C).
Para obtener una relación que tenga todos los despachos del edificio Marina que tienen más de 12 metros cuadrados, podemos aplicar una selección a la relación DESPACHOS con una condición de selección que sea edificio = Marina y superficie > 12; se indicaría DESPA- CHOS(edificio = Marina y superficie > 12).
En general, la condición de selección C está formada por una o más cláusulas de la forma:
Ai θ v,
O bien:
Ai θ Aj,
Donde Ai y Aj son atributos de la relación T, θ es un operador de comparación* y v es un valor. Además, se cumple que:
• En las cláusulas de la forma Ai θ v, v es un valor del dominio de Ai.
• En las cláusulas de la forma Ai, θ Aj, Ai y Aj tienen el mismo dominio.
Las cláusulas que forman una condición de selección se conectan con los siguientes operadores booleanos: “y” (∧) y “o” (∨).
A continuación definimos los atributos y la extensión de la relación resultante de una selección.
Los atributos del esquema de la relación resultante de T(C) coinciden con los atributos del esquema de la relación T.
La extensión de la relación resultante de T(C) es el conjunto de tuplas que pertenecen a la extensión de T y que satisfacen la condición de selección C. Una tupla t satisface una condición de selección C si, después de sustituir cada atributo que hay en C por su valor en t, la condición C se evalúa en el valor cierto.
Ejemplo de selección
Si queremos obtener una relación R con los despachos de la base de datos del ejemplo que están en el edificio Marina y que tienen una superficie de más de 12 metros cuadrados, ha- remos la siguiente selección:
R:= DESPACHOS (edificio = Marina y superficie > 12).
La relación R resultante será:
R
edificio
número
superficie
Marina
230
20
Proyección
Podemos considerar la proyección como una operación que sirve para elegir algunos atributos de una relación y eliminar el resto. Más concretamente, la proyección es una operación que, a partir de una relación, obtiene una nueva relación formada por todas las (sub)tuplas de la relación de partida que resultan de eliminar unos atributos especificados.
La proyección es una operación unaria. Siendo {Ai, Aj, ..., Ak} un subconjunto de los atributos del esquema de la relación T, la proyección de T sobre {Ai, Aj, ..., Ak} se indica como T[Ai, Aj, ..., Ak].
Para obtener una relación que tenga sólo los atributos nombre y apellido de los empleados de administración, podemos hacer una proyección en la relación EMPLEADOS_ADM sobre estos dos atributos. Se indicaría de la forma siguiente: EMPLEADOS_ADM [nombre, apellido].
A continuación definiremos los atributos y la extensión de la relación resultante de una proyección.
Los atributos del esquema de la relación resultante de T[Ai, Aj, ...,Ak]
son los atributos {Ai, Aj, ..., Ak}.
La extensión de la relación resultante de T[Ai, Aj, ..., Ak] es el conjunto de todas las tuplas de la forma <t.Ai, t.Aj, ..., t.Ak>, donde se cumple que t es una tupla de la extensión de T y donde t.Ap denota el valor para el atributo Ap de la tupla t.
Ejemplo de proyección
Si queremos obtener una relación R con el nombre y el apellido de todos los empleados de administración de la base de datos del ejemplo, haremos la siguiente proyección:
R:= EMPLEADOS_ADM [nombre, apellido].Entonces, la relación R resultante será:
R
nombre
apellido
Juan
García
Marta
Roca
Combinación
La combinación es una operación que, a partir de dos relaciones, obtiene una nueva relación formada por todas las tuplas que resultan de concadenar tuplas de la primera relación con tuplas de la segunda, y que cumplen una condición de combinación especificada.
La combinación es una operación binaria. Siendo T y S dos relaciones cuyos esquemas no tienen ningún nombre de atributo común, y siendo B una condición de combinación, la combinación de T y S según la condición B se indica T[B]S.
Para conseguir una relación que tenga los datos de cada uno de los empleados de administración junto con los datos de los despachos donde trabajan, podemos hacer una combinación de las relaciones EMPLEADOS_ADM y DESPACHOS, donde la condición de combinación indique lo siguiente: edificiodesp = edificio y númerodesp = número. La condi- ción de combinación hace que el resultado sólo combine los datos de un empleado con los datos de un despacho si el edificiodesp y el númerodesp del empleado son iguales que el edificio y el número del despacho, respectivamente. Es decir, la condición hace que los datos de un empleado se combinen con los datos del despacho donde trabaja, pero no con datos de otros despachos.
La combinación del ejemplo anterior se indicaría de la forma siguiente:
Si se quiere combinar dos relaciones que tienen algún nombre de atributo común, sólo hace falta redenominar previamente los atributos repetidos de una de las dos.
En general, la condición B de una combinación T[B]S está formada por una o más comparaciones de la forma
Ai θ Aj,
Donde Ai es un atributo de la relación T, Aj es un atributo de la relación S, θ es un operador de comparación ( =, ≠, <, ≤, >, ≥), y se cumple que Ai y Aj tienen el mismo dominio. Las comparaciones de una condición de combinación se separan mediante comas.
A continuación definimos los atributos y la extensión de la relación resultante de una combinación.
Los atributos del esquema de la relación resultante de T[B]S son to- dos los atributos de T y todos los atributos de S*.
La extensión de la relación resultante de T[B]S es el conjunto de tuplas que pertenecen a la extensión del producto cartesiano T × S y que satisfacen todas las comparaciones que forman la condición de combinación B. Una tupla t satisface una comparación si, después de sustituir cada atributo que figura en la comparación por su valor en t, la compa- ración se evalúa al valor cierto.
Supongamos ahora que para obtener los datos de cada uno de los empleados de administración, junto con los datos del despacho donde trabajan, utilizamos la siguiente combinación:
La relación R combina los datos de cada empleado con los datos de su despacho.
En ocasiones, la combinación recibe el nombre de θ-combinación, y cuando todas las comparaciones de la condición de la combinación tienen el operador “=”, se denomina equicombinación.
Según esto, la combinación del último ejemplo es una equicombinación.
Observad que el resultado de una equicombinación siempre incluye una o más parejas de atributos que tienen valores idénticos en todas las tuplas.
En el ejemplo anterior, los valores de edificiodesp coinciden con los de edificio, y los valores de
númerodesp coinciden con los de número.
Puesto que uno de cada par de atributos es superfluo, se ha establecido una variante de combinación denominada combinación natural, con el fin de eliminarlos.
La combinación natural de dos relaciones T y S se denota como T * S y consiste básicamente en una equicombinación seguida de la eliminación de los atributos superfluos; además, se considera por defecto que la condición de combinación iguala todas las parejas de atributos que tienen el mismo nombre en T y en S.
Observad que, a diferencia de la equicombinación, la combinación natural se aplica a relaciones que tienen nombres de atributos comunes.
Ejemplo de combinación natural
Si hacemos:
R:= EDIFICIOS_EMP * DESPACHOS,
Se considera que la condición 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 combinación natural es:
R
edificio
supmediadesp
número
superficie
Marina
15
120
10
Marina
15
230
20
Diagonal
10
120
10
Diagonal
10
440
10
Notar que se ha eliminado uno de los atributos de nombre edificio.
En ocasiones, antes de la combinación natural es necesario aplicar la operación redenominar para hacer coincidir los nombres de los atributos que nos interesa igualar.
Ejemplo de combinación natural con redenominación
Por ejemplo, si queremos obtener los datos de cada uno de los empleados de administración junto con los datos del despacho donde trabajan pero sin repetir valores de atributos superfluos, haremos la siguiente combinación natural, que requiere una redenominación previa:
D (edificiodesp, númerodesp, superficie):= DESPACHOS (edificio, número, superficie),
R:= EMPLEADOS_ADM * D.
Entonces, la relación R resultante será:
R
DNI
nombre
apellido
edificiodesp
númerodesp
superficie
40.444.255
Juan
García
Marina
120
10
33.567.711
Marta
Roca
Marina
120
10
SECUENCIAS DE OPERACIONES DEL ÁLGEBRA RELACIONAL
En muchos casos, para formular una consulta en álgebra relacional es preciso utilizar varias operaciones, que se aplican en un cierto orden. Para hacerlo, hay dos posibilidades:
1) Utilizar una sola expresión del álgebra que incluya todas las operaciones con los paréntesis necesarios para indicar el orden de aplicación.
2) Descomponer la expresión en varios pasos donde cada paso aplique una sola operación y obtenga una relación intermedia que se pueda utilizar en los pasos subsiguientes.
Ejemplo de utilización de secuencias de operaciones
Para obtener el nombre y el apellido de los empleados, tanto de administración como de producción, es necesario hacer una unión de EMPLEADOS_ADM y EMPLEADOS_PROD, y después hacer una proyección sobre los atributos nombre y apellido. La operación se puede expresar de las formas siguientes:
En los casos en que una consulta requiere efectuar muchas operaciones, resulta más sencilla la segunda alternativa, porque evita expresiones complejas.
Otros ejemplos de consultas formuladas con secuencias de operaciones
Veamos algunos ejemplos de consultas en la base de datos formuladas con secuencias de operaciones del álgebra relacional.
1) Para obtener el nombre del edificio y el número de los despachos situados en edificios en los que la superficie media de estos despachos es mayor que 12, podemos utilizar la siguiente secuencia de operaciones:
• A:= EDIFICIOS_EMP (supmediadesp > 12);
• B:= DESPACHOS * A;
• R:= B [edificio, número]
2) Supongamos ahora que se desea obtener el nombre y el apellido de todos los empleados (tanto de administración como de producción) que están asignados al despacho 120 del edificio Marina. En este caso, podemos utilizar la siguiente secuencia:
• A:= EMPLEADOS_ADM ∪ EMPLEADOS_PROD;
• B:= A (edificiodesp = Marina y númerodesp = 120);
• R:= B [nombre, apellido].
3) Si queremos consultar el nombre del edificio y el número de los despachos que ningún empleado de administración tiene asignado, podemos utilizar esta secuencia:
• A:= DESPACHOS [edificio, número];
• B:= EMPLEADOS_ADM[edificiodesp, númerodesp];
• R:= A – B.
4) Para obtener el DNI, el nombre y el apellido de todos los empleados de administración que tienen despacho, junto con la superficie de su despacho, podemos hacer lo siguiente:
Para finalizar el tema del álgebra relacional, analizaremos algunas extensiones útiles de la combinación.
Las combinaciones que se han descrito obtienen las tuplas del producto cartesiano de dos relaciones que satisfacen una condición de combinación. Las tuplas de una de las dos relaciones que no tienen en la otra relación una tupla como mínimo con la cual, una vez concatenadas, satisfagan la condición de combinación, no aparecen en el resultado de la combinación, y podríamos decir que sus datos se pierden.
Por ejemplo, si hacemos la siguiente combinación natural (con una redenominación previa):
D (edificiodesp, númerodesp, superficie):= DESPACHOS (edificio, número, superficie),
R:= EMPLEADOS_PROD * D.
Puesto que se trata de una combinación natural, se considera que la condición de combinación es edificio = edificio y número = número, y la relación R resultante será:
R
DNIemp
nombreemp
apellidoemp
edificiodesp
númerodesp
superficie
33.567.711
Marta
Roca
Marina
120
10
55.898.425
Carlos
Buendía
Diagonal
120
10
77.232.144
Elena
Pla
Marina
230
20
Notar que en esta relación R no están los empleados de producción que no tienen despacho asignado (con valores nulos en edificiodesp y númerodesp), y tampoco los despachos que no tienen ningún empleado de producción, porque no cumplen la condición de combinación.
Conviene destacar que las tuplas que tienen un valor nulo para alguno de los atributos que figuran en la condición de combinación se pierden siempre, porque en estos casos la condición de combinación siempre se evalúa a falso.
En algunos casos, puede interesar hacer combinaciones de los datos de dos relaciones sin que haya pérdida de datos de las relaciones de partida. Entonces, se utilizan las combinaciones externas.
Las combinaciones externas entre dos relaciones T y S consisten en variantes de combinación que conservan en el resultado todas las tuplas de T, de S o de ambas relaciones. Pueden ser de los tipos siguientes:
1) La combinación externa izquierda entre dos relaciones T y S, que denotamos como T[C]IS, conserva en el resultado todas las tuplas de la relación T.
2) La combinación externa derecha entre dos relaciones T y S, que denotamos como T[C]DS, conserva en el resultado todas las tuplas de la relación S.
3) Finalmente, la combinación externa plena entre dos relaciones T y S, que denotamos como T[C]pS, conserva en el resultado todas las tuplas de T y todas las tuplas de S.
Estas extensiones también se aplican al caso de la combinación natural entre dos relaciones, T * S, concretamente:
a) La combinación natural externa izquierda entre dos relaciones T y S, que se indica como T *I S, conserva en el resultado todas las tuplas de la relación T.
b) La combinación natural externa derecha entre dos relaciones T y S, que se indica como T *D S, conserva en el resultado todas las tuplas de la relación S.
c) Finalmente, la combinación natural externa plena entre dos relaciones T y S, que se indica como T *P S, conserva en el resultado todas las tuplas de T y todas las tuplas de S.
Las tuplas de una relación T que se conservan en el resultado R de una combi- nación externa con otra relación S, a pesar de que no satisfacen la condición de combinación, tienen valores nulos en el resultado R para todos los atributos que provienen de la relación S.
Ejemplos de combinaciones naturales externas
1)Si hacemos la siguiente combinación natural derecha (con una redenominación previa):
D (edificiodesp, númerodesp, superficie) := DESPACHOS (edificio, número, superficie),
R:= EMPLADOS_PROD *D
La relación Rresultante será:
R
DNIemp
nombreemp
apellidoemp
edificiodesp
númerodesp
superficie
33.567.711
Marta
Roca
Marina
120
10
55.898.425
Carlos
Buendía
Diagonal
120
10
77.232.144
Elena
Pla
Marina
230
20
NULO
NULO
NULO
Diagonal
440
10
Ahora obtenemos todos los despachos en la relación resultante, tanto si tienen un empleado de producción asignado como si no. Notad que los atributos DNI, nombre y apellido para los despachos que no tienen empleado reciben valores nulos.
2) Si hacemos la siguiente combinación natural izquierda (con una redenominación previa):
D (edificiodesp, númerodesp, superficie):= DESPACHOS (edificio, número, superficie),
R:= EMPLEADOS_PROD *I D,
Entonces la relación R resultante será:
R
DNIemp
nombreemp
apellidoemp
edificiodesp
númerodesp
superficie
33.567.711
Marta
Roca
Marina
120
10
55.898.425
Carlos
Buendía
Diagonal
120
10
77.232.144
Elena
Pla
Marina
230
20
21.335.245
Jorge
Soler
NULO
NULO
NULO
88.999.210
Pedro
González
NULO
NULO
NULO
Esta combinación externa nos permite obtener en la relación resultante a todos los empleados de producción, tanto si tienen despacho como si no. Observad que el atributo superficie para los empleados que no tienen despacho contiene un valor nulo.
3) Finalmente, si hacemos la siguiente combinación natural plena (con una redenominación previa):
D (edificiodesp, númerodesp, superficie):= DESPACHOS (edificio, número, superficie),
R:= EMPLEADOS_PROD *P D,
Entonces la relación R resultante será:
R
DNIemp
nombreemp
apellidoemp
edificiodesp
númerodesp
superficie
33.567.711
Marta
Roca
Marina
120
10
55.898.425
Carlos
Buendía
Diagonal
120
10
77.232.144
Elena
Pla
Marina
230
20
21.335.245
Jorge
Soler
NULO
NULO
NULO
88.999.210
Pedro
González
NULO
NULO
NULO
NULO
NULO
NULO
Diagonal
440
10
En este caso, en la relación resultante obtenemos a todos los empleados de producción y también todos los despachos
RESUMEN
ALGEBRA RELACIONAL
Elálgebra relacionales un conjunto de operaciones que describen paso a paso cómo computar una respuesta sobre las relaciones, tal y como éstas son definidas en el modelo relacional. Denominada de tipoprocedimental, a diferencia delCálculo relacionalque es de tipo declarativo.
Describe el aspecto de lamanipulación de datos. Estas operaciones se usan como una representación intermedia de una consulta a una base de datos y, debido a sus propiedades algebraicas, sirven para obtener una versión más optimizada y eficiente de dicha consulta.
OPERACIONES CONJUNTISTAS
Las operaciones conjuntistas del álgebra relacional son la unión, la intersección, la diferencia y el producto cartesiano.
Unión
La unión es una operación que, a partir de dos relaciones, obtiene una nueva relación formada por todas las tuplas que están en alguna de las relaciones de partida.
Intersección
La intersección es una operación que, a partir de dos relaciones, obtiene una nueva relación formada por las tuplas que pertenecen a las dos relaciones de partida.
Diferencia
Es una operación que, a partir de dos relaciones, obtiene una nueva relación formada por todas las tuplas que están en la primera relación y, en cambio, no están en la segunda.
Producto cartesiano
El producto cartesiano es una operación que, a partir de dos relaciones, obtiene una nueva relación formada por todas las tuplas que resultan de concatenar tuplas de la primera relación con tuplas de la segunda.
OPERACIONES ESPECÍFICAMENTE RELACIONALES
Las operaciones específicamente relacionales son la selección, la proyección y la combinación.
Selección
Podemos ver la selección como una operación que sirve para elegir algunas tuplas de una relación y eliminar el resto. Más concretamente, la selección es una operación que, a partir de una relación, obtiene una nueva relación formada por todas las tuplas de la relación de partida que cumplen una condición de selección especificada.
Proyección
Podemos considerar la proyección como una operación que sirve para elegir algunos atributos de una relación y eliminar el resto. Más concretamente, la proyección es una operación que, a partir de una relación, obtiene una nueva relación formada por todas las (sub)tuplas de la relación de partida que resultan de eliminar unos atributos especificados.
Combinación
La combinación es una operación que, a partir de dos relaciones, obtiene una nueva relación formada por todas las tuplas que resultan de concadenar tuplas de la primera relación con tuplas de la segunda, y que cumplen una condición de combinación especificada.
SECUENCIAS DE OPERACIONES DEL ÁLGEBRA RELACIONAL
En muchos casos, para formular una consulta en álgebra relacional es preciso utilizar varias operaciones, que se aplican en un cierto orden. Para hacerlo, hay dos posibilidades:
1) Utilizar una sola expresión del álgebra que incluya todas las operaciones con los paréntesis necesarios para indicar el orden de aplicación.
2) Descomponer la expresión en varios pasos donde cada paso aplique una sola operación y obtenga una relación intermedia que se pueda utilizar en los pasos subsiguientes.
Extensiones: combinaciones externas
Para finalizar el tema del álgebra relacional, analizaremos algunas extensiones útiles de la combinación.
Las combinaciones que se han descrito obtienen las tuplas del producto cartesiano de dos relaciones que satisfacen una condición de combinación. Las tuplas de una de las dos relaciones que no tienen en la otra relación una tupla como mínimo con la cual, una vez concatenadas, satisfagan la condición de combinación, no aparecen en el resultado de la combinación, y podríamos decir que sus datos se pierden.
SUMMARY
RELATIONAL ALGEBRA
The relational algebra is a set of operations that describe step by step how to compute an answer about relationships, as they are defined in the relational model. Denominated of procedural type, unlike Relational Calculus which is declaratory.
Describes the appearance of data manipulation. These operations are used as an intermediate representation of a query to a database and, because of its algebraic properties serve for a more streamlined and efficient version of such consultation.
set operations
The set operations of relational algebra are union, intersection, difference and Cartesian product.
Union
The union is an operation, from two relations, obtained a new relationship formed by all tuples that are in any of the relationships of departure.
Intersection
The intersection is an operation, from two relations, obtained a new relationship formed by the tuples belonging to the two starting relationships.
Difference
It is an operation, from two relations, obtained a new relationship formed by all tuples that are in the first list and, instead, are not in the second.
Cartesian product
The Cartesian product is an operation, from two relations, obtained a new relationship formed by all tuples that result from concatenating tuples of the first relation with tuples of the second.
SPECIFICALLY relational operations
The specifically relational operations are selection, projection and combination.
Selection
We can see the selection as an operation that serves to choose some tuples of a relationship and eliminate the rest. More specifically, the selection is an operation that, from a relationship, get a new relationship formed by all tuples of the relationship starting to meet a condition specified selection.
Projection
We can consider the projection as an operation that is used to select some attributes of a relationship and eliminate the rest. More specifically, the projection is an operation that, from a relationship obtains a new relationship formed by all (sub) tuples of the relation that are starting to remove a specified attribute.
Combination
The combination is an operation, from two relations, obtained a new relationship formed by all tuples that result from concatenating tuples of the first relation with tuples of the second, and that meet a condition specified combination.
STRINGS relational algebra operations
In many cases, to formulate a query in relational algebra is necessary to use several operations, which are applied in a certain order. To do this, there are two possibilities:
1) Use a single expression of algebra that includes all necessary operations with parentheses to indicate the order of application.
2) Decompose the expression of several steps where each step apply a single operation for an intermediate relationship that can be used in subsequent steps.
Extensions: Outer Joins
To end the issue of relational algebra, we discuss some useful extensions of the combination.
Combinations obtained as described tuples of the Cartesian product of two relationships that satisfy a condition of combination. Tuples of one of the two relationships that do not have in the other relationship tuple least with which, once concatenated, satisfy the join condition do not appear in the result of the combination, and we could say that their data is lost .
RECOMENDACIONES
Para poder realizar una buena computación de relación, se debe tener un buen conocimiento del tema ya que así nos conllevara a poder realizar operaciones se usan como una representación intermedia de una consulta a una base de datos.
CONCLUSIONES
El álgebra relacional es un tema muy interesante y muy amplio ya que nos da a conocer los aspectos más concisos y nos conlleva a poder realizar una buena relación en una base datos.
GLOSARIO
Combinación: Operación del álgebra relacional que, a partir de dos relaciones, obtiene una nueva relación formada por todas las tuplas que resultan de concatenar tuplas de la primera relación con tuplas de la segunda relación, y que cumplen una condición de combinación especificada.
Combinación externa: Extensión de combinación entre dos relaciones, T y S, que conserva en el resultado todas las tuplas de T, de S o de las dos relaciones.
Combinación natural: Variante de combinación que consiste básicamente en una equicombinación seguida de la eliminación de los atributos superfluos.
Consulta: Obtención de datos deducibles a partir de las relaciones que contiene la base de datos.
Diferencia: Operación del álgebra relacional que, a partir de dos relaciones, obtiene una nueva relación formada por todas las tuplas que están en la primera relación y, en cambio, no están en la segunda.
Proyección: operación del álgebra relacional que, a partir de una relación, obtiene una nueva relación formada por todas las (sub)tuplas de la relación de partida que resultan de eliminar unos atributos especificados.