CÁLCULO RELACIONAL
El Cálculo
relacional es un lenguaje de consulta que describe la
respuesta deseada sobre una Base de datos sin
especificar como obtenerla, a diferencia del Álgebra
relacional que es de tipo procedural, el cálculo
relacional es de tipo 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.
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:
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:
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 (sin nombre)
- constantes declaradas (con nombre)
- constantes expresión
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):
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:
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:
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 utilizando variables-tupla que representan
tuplas, esto obliga a introducir algunos cambios en las definiciones comentadas 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.
Sean las relaciones:
Cálculo Relacional de Dominios
Es un lenguaje de consulta formal que permite expresar las
consultas a partir de fórmulas bien formadas, donde
cada variable se interpreta como variante sobre el dominio del atributo 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
El Cálculo
relacional es un lenguaje de consulta que describe la
respuesta deseada sobre una Base de datos sin
especificar como obtenerla, a diferencia del Álgebra
relacional que es de tipo procedural, el cálculo
relacional es de tipo 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.
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.
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.
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.
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.
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.
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órmulas bien formadas, donde cada variable se interpreta como variante
sobre el dominio del atributo 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
CONCLUSIONES
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.
LINKOGRAFÍA
Por favor definir bien las CONCLUSIONES, RECOMENDACIONES y la APRECIACIÓN. Gracias por su investigación. Saludos
ResponderEliminar