Está en la página 1de 47

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
Normalmente el cálculo relacional se apoya en algún lenguaje de interrogación de
bases de datos como puede ser el SQL.
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.
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
 Iniciación
 Utilización
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 (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):
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 Base de dato.
 ÁLGEBRA  RELACIONAL
 El álgebra relacional es 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 tipo procedimental, a diferencia del Cálculo relacional que
es de tipo declarativo.
Describe el aspecto de la manipulació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á:

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á:

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):

EDIFICIOS (nombreedificio, supmediadesp):= EDICIOS_EMP(edificio, supmediadesp).

R:= EDIFICIOS × DESPACHOS.

Entonces, la relación R resultante será:

nombreedificio supmediadesp edificio número superficie

Marina 15 Marina 120 10

Marina 15 Marina 230 20

Marina 15 Diagonal 120 10

Marina 15 Diagonal 440 10

Diagonal 10 Marina 120 10

nombreedificio supmediadesp edificio número superficie

Diagonal 10 Marina 230 20


Diagonal 10 Diagonal 120 10

Diagonal 10 Diagonal 440 10

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á:

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:
EMPLEADOS_ADM [edificiodesp = edificio, númerodesp = número] DESPACHOS.
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.

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

Entonces, la relación R resultante será:

nombreedificio supmediadesp edificio número 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
administración, junto con los datos del despacho donde trabajan, utilizamos la siguiente
combinación:

R:= EMPLEADOS_ADM [edificiodesp = edificio, númerodesp = número]DESPACHOS.


 La relación R resultante será:

DNI nombre apellido edificiodesp númerodesp edificio número superficie

40.444.255 Juan García Marina 120 Marina 120 10

33.567.711 Marta Roca Marina 120 Marina 120 10

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:

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á:

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:

a) Se puede utilizar una sola expresión:

R:= (EMPLEADOS_ADM ∪ EMPLEADOS_PROD) [nombre, apellido].


b) O bien podemos expresarlo en dos pasos:

•  EMPS := EMPLEADOS_ADM ∪ EMPLEADOS_PROD;

•  R:= EMPS[nombre, apellido]

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:
•  A[DNI, nombre, apellido, edificio, número]:= EMPLEADOS_ADM[DNI, nombre, apellido,
edificiodesp, númerodesp];
•  B:= A * DESPACHOS;
•  R:= B[DNI, nombre, apellido, superficie].
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.
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 R  resultante será:

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á:

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 relacional es 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 tipo procedimental, a diferencia del Cálculo relacional que
es de tipo declarativo.

Describe el aspecto de la manipulació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.

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.

MODELO RELACIONAL
DEFINICIÓN
El modelo relacional, para el modelado y la gestión de bases de datos, es un modelo de
datos basado en la lógica de predicados y en la teoría de conjuntos.

Tras ser postuladas sus bases en 1970 por Edgar Frank Codd, de los laboratorios IBM en
San José (California), no tardó en consolidarse como un nuevo paradigma en los modelos de
base de datos.

Su idea fundamental es el uso de relaciones. Estas relaciones podrían considerarse en forma


lógica como conjuntos de datos llamados tuplas. Pese a que esta es la teoría de las bases
de datos relacionales creadas por Codd, la mayoría de las veces se conceptualiza de una
manera más fácil de imaginar, pensando en cada relación como si fuese una tabla que está
compuesta por registros (cada fila de la tabla sería un registro o "tupla") y columnas (también
llamadas "campos").

Es el modelo más utilizado en la actualidad para modelar problemas reales y administrar datos
dinámicamente.

VENTAJAS
         Provee herramientas que garantizan evitar la duplicidad de registros.
         Garantiza la integridad referencial, así, al eliminar un registro elimina todos los registros
relacionados dependientes.
         Favorece la normalización por ser más comprensible y aplicable.

DESVENTJAS
         Presentan deficiencias con datos gráficos, multimedia, CAD y sistemas de información
geográfica.
         No se manipulan de forma manejable los bloques de texto como tipo de dato.
         Las bases de datos orientadas a objetos (BDOO) se propusieron con el objetivo de satisfacer
las necesidades de las aplicaciones anteriores y así, complementar pero no sustituir a las
bases de datos relacionales.

PROPIEDADES
  Cada tupla es diferente; no hay tuplas duplicadas.

  El orden de los Atributos no tiene importancia.

  El orden de las tuplas no tiene importancia, teóricamente.

  No hay dos atributos que se llamen igual en una misma tabla.

TIPOS DE RELACIÓN
Relaciones
En una BDR, todos los datos se almacenan y se accede a ellos por medio de relaciones.

Relaciones base
Las relaciones que almacenan datos son llamadas relaciones base y su implementación es
llamada "tabla".

Relaciones derivadas
Otras relaciones no almacenan datos, pero son calculadas al aplicar operaciones relacionales.
Estas relaciones son llamadas relaciones derivadas y su implementación es llamada "vista"
o "consulta". Las relaciones derivadas son convenientes ya que expresan información de
varias relaciones actuando como si fuera una sola tabla.

Restricciones
Una restricción es una limitación que obliga el cumplimiento de ciertas condiciones en la BD.

Algunas no son determinadas por los usuarios, sino que son inherentemente definidas por el
simple hecho de que la BD sea relacional. Algunas otras restricciones las puede definir el
usuario, por ejemplo, usar un campo con valores enteros entre 1 y 10.

Las restricciones proveen un método de implementar "reglas" en la base de datos.

Las restricciones limitan los datos que pueden ser almacenados en las tablas.

Usualmente se definen usando expresiones que dan como resultado un valor booleano,
indicando si los datos satisfacen la restricción o no.

Las restricciones no son parte formal del modelo relacional, pero son incluidas porque juegan
el rol de organizar mejor los datos. Las restricciones son muy discutidas junto con los
conceptos relacionales.
Dominios
Un dominio describe un conjunto de posibles valores para cierto atributo. Como un dominio
restringe los valores del atributo, puede ser considerado como una restricción.
Matemáticamente, atribuir un dominio a un atributo significa "cualquier valor de este atributo
debe ser elemento del conjunto especificado".

Distintos tipos de dominios son: enteros, cadenas de texto, fecha, no procedurales, etc.

Cada tabla puede tener uno o más campos cuyos valores identifican de forma única cada
registro de dicha tabla, es decir, no pueden existir dos o más registros diferentes cuyos
valores en dichos campos sean idénticos. Este conjunto de campos se llama clave única.
Pueden existir varias claves únicas en una determinada tabla, y a cada una de éstas suele
llamársele candidata a clave primaria.
Claves
Clave primaria
Una clave primaria es una clave única (puede estar conformada por uno o más campos de la
tabla) elegida entre todas las candidatas que define unívocamente a todos los demás atributos
de la tabla para especificar los datos que serán relacionados con las demás tablas. La forma
de hacer esto (relación entre tablas) es por medio de claves foráneas.

Clave foránea
Una clave foránea es una referencia a una clave en otra tabla, determina la relación existente
en dos tablas. Las claves foráneas no necesitan ser claves únicas en la tabla donde están y sí
a donde están referenciadas.

Por ejemplo, el código de departamento puede ser una clave foránea en la tabla de
empleados. Se permite que haya varios empleados en un mismo departamento, pero habrá
uno y sólo un departamento por cada clave distinta de departamento en la tabla de
departamentos.

Clave índice
Las claves índice surgen con la necesidad de tener un acceso más rápido a los datos. Los
índices pueden ser creados con cualquier combinación de campos de una tabla. Las consultas
que filtran registros por medio de estos campos, pueden encontrar los registros de forma no
secuencial usando la clave índice.

Las bases de datos relacionales incluyen múltiples técnicas de ordenamiento, cada una de
ellas es óptima para cierta distribución de datos y tamaño de la relación.

Los índices generalmente no se consideran parte de la base de datos, pues son un detalle
agregado. Sin embargo, las claves índices son desarrolladas por el mismo grupo de
programadores que las otras partes de la base de datos.
Procedimientos almacenados
Un procedimiento almacenado es código ejecutable que se asocia y se almacena con la base
de datos. Los procedimientos almacenados usualmente recogen y personalizan operaciones
comunes, como insertar un registro dentro de una tabla, recopilar información estadística, o
encapsular cálculos complejos. Son frecuentemente usados por un API por seguridad o
simplicidad.

Los procedimientos almacenados no son parte del modelo relacional, pero todas las
implementaciones comerciales los incluyen.

REGLAS DE INTEGRIDAD
Los conceptos básicos de integridad en el modelo relacional son el de llave primaria, llave
foránea, valores nulos y un par de reglas de integridad.

Una llave primaria es uno o un conjunto de atributos que permiten identificar a las n-adas de


manera única en cualquier momento.

Una llave foránea de una relación es un atributo que hace referencia a una llave primaria de


otra relación; esto da pie a que una relación pueda tener varias llaves foráneas.

Un valor nulo es un valor que está fuera de la definición de cualquier dominio el cual permite
dejar el valor del atributo ``latente'', su uso es frecuente en las siguientes situaciones:

i) Cuando se crea una n-ada y no se conocen todos los valores de cada uno de los atributos.

ii) Cuando se agrega un atributo a una relación ya existente.


iii) Para no tomarse en cuenta al hacer cálculos numéricos.

Las dos reglas de integridad tienen que ver precisamente con los conceptos antes
mencionados y son:

Integridad de Relaciones. Ningún atributo que forme parte de una llave primaria puede


aceptar valores nulos.

Integridad Referencial. Al tener una relación 9#9 con llave primaria 10#10 de dominio 11#11
y otra relación 1#1 con atributo 10#10 que no es llave primaria de 1#1, entonces cualquier
valor en el atributo 10#10 en 1#1 debe ser nulo, oun valor que esté en el atributo 10#10 de la
llave primaria de una n-ada en la relación 9#9

NULOS

Cuando en una tupla un atributo es desconocido, se dice que es nulo. Un nulo no representa
el valor cero ni la cadena vacía, éstos son valores que tienen significado. El nulo implica
ausencia de información, bien porque al insertar la tupla se desconocía el valor del atributo, o
bien porque para dicha tupla el atributo no tiene sentido.

Ya que los nulos no son valores, deben tratarse de modo diferente, lo que causa problemas
de implementación. De hecho, no todos los SGBD relacionales soportan los nulos.

REGLA DE INTEGRIDAD DE ENTIDADES

La primera regla de integridad se aplica a las claves primarias de las relaciones base:ninguno
de los atributos que componen la clave primaria puede ser nulo.

Por definición, una clave primaria es un identificador irreducible que se utiliza para identificar
de modo único las tuplas. Que es irreducible significa que ningún subconjunto de la clave
primaria sirve para identificar las tuplas de modo único. Si se permite que parte de la clave
primaria sea nula, se está diciendo que no todos sus atributos son necesarios para distinguir
las tuplas, con lo que se contradice la irreducibilidad.

Nótese que esta regla sólo se aplica a las relaciones base y a las claves primarias, no a las
claves alternativas.
REGLA DE INTEGRIDAD REFERENCIAL

La segunda regla de integridad se aplica a las claves ajenas: si en una relación hay alguna
clave ajena, sus valores deben coincidir con valores de la clave primaria a la que hace
referencia, o bien, deben ser completamente nulos.

La regla de integridad referencial se enmarca en términos de estados de la base de datos:


indica lo que es un estado ilegal, pero no dice cómo puede evitarse. La cuestión es ¿qué
hacer si estando en un estado legal, llega una petición para realizar una operación que
conduce a un estado ilegal? Existen dos opciones: rechazar la operación, o
bien aceptar loperación y realizar operaciones adicionales compensatorias que conduzcan a
un estado legal. 
Por lo tanto, para cada clave ajena de la base de datos habrá que contestar a tres preguntas:

Regla de los nulos: ¿Tiene sentido que la clave ajena acepte nulos?

Regla de borrado: ¿Qué ocurre si se intenta borrar la tupla referenciada por la clave ajena?

Restringir: no se permite borrar la tupla referenciada.

Propagar: se borra la tupla referenciada y se propaga el borrado a las tuplas que la


referencian mediante la clave ajena.

Anular: se borra la tupla referenciada y las tuplas que la referenciaban ponen a nulo la clave
ajena (sólo si acepta nulos).

Regla de modificación: ¿Qué ocurre si se intenta modificar el valor de la clave primaria de la


tupla referenciada por la clave ajena?

Restringir: no se permite modificar el valor de la clave primaria de la tupla referenciada.

Propagar: se modifica el valor de la clave primaria de la tupla referenciada y se propaga la


modificación a las tuplas que la referencian mediante la clave ajena.

Anular: se modifica la tupla referenciada y las tuplas que la referenciaban ponen a nulo la
clave ajena (sólo si acepta nulos).
Ejemplos:
Dadas las siguientes reglas de borrado y modificación ¿Se puede borrar a provincia de
Castellón?
        

RESUMEN
MODELO RELACIONAL
DEFINICIÓN
El modelo relacional, para el modelado y la gestión de bases de datos, es un modelo de
datos basado en la lógica de predicados y en la teoría de conjuntos.

Tras ser postuladas sus bases en 1970 por Edgar Frank Codd, de los laboratorios IBM en
San José (California), no tardó en consolidarse como un nuevo paradigma en los modelos de
base de datos.
Su idea fundamental es el uso de relaciones. Estas relaciones podrían considerarse en forma
lógica como conjuntos de datos llamados tuplas. Pese a que esta es la teoría de las bases
de datos relacionales creadas por Codd, la mayoría de las veces se conceptualiza de una
manera más fácil de imaginar, pensando en cada relación como si fuese una tabla que está
compuesta por registros (cada fila de la tabla sería un registro o "tupla") y columnas (también
llamadas "campos").

VENTAJAS
         Provee herramientas que garantizan evitar la duplicidad de registros.
         Garantiza la integridad referencial, así, al eliminar un registro elimina todos los registros
relacionados dependientes.
         Favorece la normalización por ser más comprensible y aplicable.

DESVENTJAS
         Presentan deficiencias con datos gráficos, multimedia, CAD y sistemas de información
geográfica.
         No se manipulan de forma manejable los bloques de texto como tipo de dato.
         Las bases de datos orientadas a objetos (BDOO) se propusieron con el objetivo de satisfacer
las necesidades de las aplicaciones anteriores y así, complementar pero no sustituir a las
bases de datos relacionales.

PROPIEDADES
  Cada tupla es diferente; no hay tuplas duplicadas.
  El orden de los Atributos no tiene importancia.
  El orden de las tuplas no tiene importancia, teóricamente.
  No hay dos atributos que se llamen igual en una misma tabla.

TIPOS DE RELACIÓN
Relaciones
En una BDR, todos los datos se almacenan y se accede a ellos por medio de relaciones.

Relaciones base
Restricciones
Una restricción es una limitación que obliga el cumplimiento de ciertas condiciones en la BD.

Algunas no son determinadas por los usuarios, sino que son inherentemente definidas por el
simple hecho de que la BD sea relacional. Algunas otras restricciones las puede definir el
usuario, por ejemplo, usar un campo con valores enteros entre 1 y 10.
Dominios
Un dominio describe un conjunto de posibles valores para cierto atributo. Como un dominio
restringe los valores del atributo, puede ser considerado como una restricción.
Matemáticamente, atribuir un dominio a un atributo significa "cualquier valor de este atributo
debe ser elemento del conjunto especificado".

Claves
Clave primaria
Una clave primaria es una clave única (puede estar conformada por uno o más campos de la
tabla) elegida entre todas las candidatas que define unívocamente a todos los demás atributos
de la tabla para especificar los datos que serán relacionados con las demás tablas. La forma
de hacer esto (relación entre tablas) es por medio de claves foráneas.

Clave foránea
Una clave foránea es una referencia a una clave en otra tabla, determina la relación existente
en dos tablas. Las claves foráneas no necesitan ser claves únicas en la tabla donde están y sí
a donde están referenciadas.

Por ejemplo, el código de departamento puede ser una clave foránea en la tabla de
empleados. Se permite que haya varios empleados en un mismo departamento, pero habrá
uno y sólo un departamento por cada clave distinta de departamento en la tabla de
departamentos.

Clave índice
Las claves índice surgen con la necesidad de tener un acceso más rápido a los datos. Los
índices pueden ser creados con cualquier combinación de campos de una tabla. Las consultas
que filtran registros por medio de estos campos, pueden encontrar los registros de forma no
secuencial usando la clave índice.

Procedimientos almacenados
Procedimientos almacenados
Un procedimiento almacenado es código ejecutable que se asocia y se almacena con la base
de datos. Los procedimientos almacenados usualmente recogen y personalizan operaciones
comunes, como insertar un registro dentro de una tabla, recopilar información estadística, o
encapsular cálculos complejos. Son frecuentemente usados por un API por seguridad o
simplicidad.
ESTADO DE FLUJO DE EFECTIVO

Esta herramienta de análisis, conocida también con los nombres de Flujo de caja, Movimiento de
efectivo,  “Cash flow”, o simplemente Flujo de efectivo, es considerada como un estado financiero
que debe acompañar a los tres estados principales: Balance general, Estado de
resultados yEstado de cambios en la situación financiera.

El concepto de Flujo de Caja es muy sencillo: 

Este estado financiero busca presentar desde dónde se genera el efectivo y hacia dónde se está
aplicando. Es importante mencionar la diferencia que existe con el Estado de cambios en la
situación financiera, la cual consiste en que mientras en este último se presentan los movimientos
de fondos, sean o no de efectivo, en el estado de Flujo de efectivo solamente se tienen en cuenta
los movimientos de recursos representados por el dinero en efectivo, clasificados en actividades
de operación, inversión y financiación.

Sin embargo, por la información que presentan ambos estados financieros, hacen que se
complementen entre sí, es decir que gracias al estado de Flujo de efectivo, se logran analizar y
explicar los movimientos que ocasionaron el aumento o disminución del efectivo en el Balance
general y en el Estado de resultados.

Para una mayor comprensión de este artículo ABCFinanzas.com le recomienda ver


primero: “Estado de cambios en la situación financiera”.

CARACTERÍSTICAS DEL ESTADO DE FLUJO DE EFECTIVO

El objetivo del estado de Flujo de Efectivo es determinar la capacidad del ente económico para
generar recursos en efectivo. Partiendo de esta definición vale la pena preguntarse: ¿Qué es lo
que reporta este estado financiero? ¿Qué características particulares tiene este estado financiero?
ABCFinanzas.com se lo explica a continuación:

 Los cambios en el efectivo obedecen a lasactividades de operación, inversión y


financiamiento. Precisamente esta es la clave de este estado financiero, dado que las
empresas tienen ciertas actividades donde se desarrolla la operación estratégicamente y
se toman decisiones referentes a movimientos de dinero, conduciendo esto a que se
tenga un efectivo final para continuar su operación.

 Otra de las características que se puede mencionar es que la información que se presenta
en este estado financiero, corresponde a un período, es decir un mes, un trimestre o un
año.

 Como su nombre lo indica, este estado financiero solamente involucra efectivo, lo que lo


diferencia por ejemplo del Estado de Resultados, el cual contiene cuentas que no
necesariamente representan movimientos de recursos de dinero, como por ejemplo: las
ventas que pueden ser a crédito, pero aun así se plasman en este estado.
ACTIVIDADES DE OPERACIÓN, DE INVERSIÓN Y FINANCIAMIENTO:

Una de las características principales del estado de Flujo de Efectivo, como se mencionó


anteriormente, es que los movimientos (entradas y salidas) de dinero en una empresa obedecen a
la toma de decisiones que se dan en las actividades estratégicas de operación, de inversión  y
financiamiento. Debido a que estas actividades implican el funcionamiento y permanencia de la
empresa en el tiempo y dado a que las decisiones que se toman están directamente relacionadas
con la gestión del dinero, los tres conceptos se deben separar para que el administrador del
negocio logre evidenciar y vea discriminada cada una de estas actividades estratégicas  (operación,
inversión y financiamiento), lo cual permite un mejor entendimiento del negocio, para poder
gestionar mejor y adicionalmente para poder planear, es decir, para que el rendimiento financiero
sea mucho mejor en el futuro.

ACTIVIDADES DE OPERACIÓN

Esta actividad representa movimientos o recursos de efectivo que corresponden a las actividades
regulares o normales de la empresa, al día a día, a la razón misma de ser del negocio (la
producción, administración, venta de bienes y servicios de la empresa). Es decir que el efectivo
generado por las operaciones, consiste básicamente en explicar cada una de las partidas
del Estado de Resultados en función del movimiento de efectivo que ello implica. Adicionalmente,
dentro de esta actividad se deben dividir las entradas y salidas de dinero que afectan o afectaron
la actividad operativa:

Entradas de efectivo:

Como empresa pueden entrar recursos de dinero por las siguientes actividades operacionales:

 Las ventas de contado de bienes o servicios.

 Recuperación de cuentas por cobrar sobre ventas.

 Todo lo que provenga de los clientes corresponden a entradas de dinero en esta parte
operacional.

Salidas de efectivo:

Corresponde a todo aquello que está saliendo en efectivo en la parte operacional como por
ejemplo:

 Pago a empleados.

 Pagos a proveedores.

 Impuestos.

 Desembolsos de dinero que tengan que ver con la operación, como la publicidad, o el
pago de comisiones a los vendedores cuando cumplen una meta pactada.
 Compra de materia prima o mercancías.

 Gastos de administración y ventas.

Ahora bien, lo generado en dinero en la parte operativa del negocio es de vital importancia porque
finalmente es producto de la razón de ser de la empresa, lo que permite identificar si la compañía
está generando los suficientes recursos para pagar las deudas, para mantener la capacidad
operativa, para pagar dividendos, o para realizar nuevas inversiones.

ACTIVIDADES DE INVERSIÓN

Esta actividad representa movimientos o recursos de efectivo que corresponden a las actividades
de adquisición o bien sea la venta de activos a largo plazo. Adicionalmente dentro de esta
actividad también se deben dividir las entradas y salidas de dinero que afectan o afectaron la
actividad de inversión:

Entradas de efectivo:

Como empresa pueden entrar recursos de dinero por las siguientes actividades de inversión:

 Por la venta de la propiedad planta y equipo o como comúnmente se le conoce activos


fijos, o activos tangibles.

 Por la venta de los activos intangibles de la empresa como la marca, las patentes, el good
will, el know how, es decir si la empresa vende alguna de sus líneas de negocio también
corresponde a una entrada de efectivo que corresponde a esta parte de inversión.

 Por la venta de inversiones financieras como CDT.

 Cobros por préstamos realizados.

Salidas de efectivo:

Como empresa pueden salir recursos de dinero por las siguientes actividades de inversión:

 Por la adquisición de nuevos negocios o líneas de negocios debido a que se tiene que
desembolsar dinero para poder comprarlas.

 Por la compra de propiedad, planta y equipo, ya que la empresa está adquiriendo activos
fijos, lo que corresponde a una salida de dinero en efectivo.

 Por la compra de activos intangibles.

 Inversiones financieras a largo plazo, como por ejemplo la inversión en un CDT a más de
un año.

ACTIVIDADES DE FINANCIAMIENTO
Esta actividad representa movimientos o recursos de efectivo que corresponden a la obtención de
dinero por parte de la empresa, bien sea con terceros (préstamos a la empresa) o con los mismos
aportes de los dueños del negocio. Adicionalmente, dentro de esta actividad también se pueden
encontrar las entradas y salidas de dinero que afectan o afectaron la actividad de financiamiento:

Entradas de efectivo:

Como empresa pueden entrar recursos de dinero por las siguientes actividades de financiamiento:

 Por la venta de acciones, es decir si la empresa cede propiedad a cambio de ese efectivo
que va a entrar, porque finalmente aumentan la cantidad de dueños de la empresa a
causa de esa emisión de acciones y posteriormente esa venta le representa a la compañía
entrada de efectivo.

 Por los desembolsos de préstamos, es decir cuando los bancos o cualquier entidad
financiera le entrega el dinero a la empresa, aumentando de esta manera su flujo de caja.

 Aportes de capital.

 Préstamos recibidos de socios.

 Emisión de bonos.

Salidas de efectivo:

Como empresa pueden salir recursos de dinero por las siguientes actividades de financiamiento:

 Por los pagos de dividendos o la repartición de utilidades, que en otras palabras seria el
beneficio que están recibiendo los socios por pertenecer a la empresa

 Reembolso de préstamos, es decir cuando hay que pagarle al banco el valor de la cuota
mensual, la cual incluye interés y la amortización o el abono a capital. Ambas partes
(interés y abono a capital) representa un desembolso de efectivo que afecta la actividad
de financiamiento.

 Por la recompra de acciones, es decir cuando la empresa recupera las acciones porque
quiere volver a tener control sobre la empresa o porque tiene exceso de efectivo. En este
caso estaría la empresa desembolsando efectivo para volver a comprar esas acciones lo
que afecta la actividad de financiamiento.

Una de las ventajas que ofrece el Estado de Flujo de Efectivo es que sirve como herramienta para
analizar si se toma la decisión de pagar dividendos o no, debido a que este estado permite
identificar en qué han sido aplicadas o donde están las utilidades obtenidas por la empresa, y
gracias a esto los administradores y socios podrán formarse una idea acerca de la posibilidad
futura de repartir, o no, algún dividendo.

También podría gustarte