sábado, 28 de mayo de 2016

CÁLCULO RELACIONAL

             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.
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 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.
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ó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













1 comentario:

  1. Por favor definir bien las CONCLUSIONES, RECOMENDACIONES y la APRECIACIÓN. Gracias por su investigación. Saludos

    ResponderEliminar