You are on page 1of 5

Sistemas de Bases de Datos I Prof. Nunzio N. Savino V. Tema Nro.

9
CI3315
Enero-Abril 2002
Clculo Relacional de Tuplas

Pgina 1 de 5
Clculo Relacional de Tuplas

El clculo relacional de tuplas es un lenguaje declarativo que permite especificar, por
comprensin, las propiedades que deben poseer las tuplas de un conjunto. En tal sentido se
dice que es un lenguaje orientado a tuplas, ya que para poder determinar el conjunto
resultado se requiere el procesamiento tupla a tupla de las relaciones que permiten obtener
las tuplas del conjunto resultado.

A diferencia del lgebra relacional, la cual visualiza las operaciones de una forma
procedimental (un requerimiento debemos expresarlo a travs de las operaciones que deben
realizarse para resolverlo), el clculo relacional slo permite indicar cul es el requerimiento
y no cmo debe ser llevado a cabo. Por tal fin no es necesario ofrecer una serie de
operaciones y un lenguaje de formacin de operaciones sino ofrecer un lenguaje de
especificacin declarativa de cul es la operacin a resolver.

Por estas caractersticas es sencillo apoyarse en una extensin a la lgica tradicional
adaptada al modelo relacional, la cual permite llevar a cabo tal especificacin.

As, toda expresin del clculo relacional de tuplas tiene la forma

{t
1
.A
1
,t
2
.A
2
,t
3
.A
3
,....,t
n
.A
n
| CONDICION(t
1
,t
2
,...,t
n
,t
n+1
,...,t
n+m
)}

donde:

Cada t
i
1 i m+n recibe el nombre de variable de tuplas. Como su nombre lo
indican permiten representar las tuplas sobre las cuales se desea trabajar. Sin
embargo toda tupla pertenece a una relacin. Llamaremos relacin rango a la
relacin en la cual tiene dominio una variable de tupla.
Cada A
i
asociado a un t
i
a travs del operador punto (.) permite indicar el valor del
atributo de nombre A
i
en la tupla t
i
. Claro esta que el atributo A
i
debe ser
atributo de la relacin rango de t
i
.
CONDICION(t
1
,t
2
,...,t
n
,t
n+1
,...,t
n+m
) es una expresin en de la lgica de primer orden
extendida para el modelo relacional que se explicar luego.

Significado: La expresin

{t
1
.A
1
,t
2
.A
2
,t
3
.A
3
,....,t
n
.A
n
| CONDICION(t
1
,t
2
,...,t
n
,t
n+1
,...,t
n+m
)}

expresa el requerimiento: Dar los valores de t
1
.A
1
,..., t
n
.A
n
tales que se cumple la
condicin CONDICION(t
1
,t
2
,...,t
n
,t
n+1
,...,t
n+m
).

Ntese que los t
i
no necesariamente tienen que ser diferentes.

Sistemas de Bases de Datos I Prof. Nunzio N. Savino V. Tema Nro. 9
CI3315
Enero-Abril 2002
Clculo Relacional de Tuplas

Pgina 2 de 5
Veamos ahora el lenguaje a utilizar para definir condiciones. Este lenguaje, como se
mencion anteriormente, no es ms que una extensin a la lgica de primer orden para poder
manejar relaciones. El lenguaje a utilizar se basa en el concepto de frmula como un grupo de
tomos: Un tomo puede ser:
Un predicado de la forma R(t) donde R es el nombre de una relacin de la base de
datos y t es una variable de tuplas. Con esta especificacin se indica que R es la
relacin rango de la variable de tuplas t.
Una expresin de la forma t
i
.A <operador> t
j
.B. En este caso se quiere indicar la
comparacin por <operador> del valor del atributo A en la tupla t
i
con el valor del
atributo B de la tupla t
j
. Obviamente debe cumplirse que el atributo A sea un
atributo de la relacin rango de t
i
y el atributo B sea atributo de la relacin
rango de t
j
. Es fundamental ( y puede constituirse como un error) que a toda
variable de tupla se le indique la relacin rango en la condicin. Los operadores
permitidos son =,,<,, > y .
Una expresin de la forma t
i
.A <operador> <constante> o t
i
.A <operador>
<constante>. En este caso se quiere indicar la comparacin por <operador> del
valor del atributo A en la tupla t
i
con una constante dada. Obviamente debe
cumplirse que <valor> se encuentre en el dominio del atributo A. Los operadores
permitidos son =,,<,,> y .

A partir del concepto de tomo podemos construir frmulas como:

Todo tomo es una frmula.
Si F
1
y F
2
son frmulas, entonces F
1
and F
2
, F
1
or F
2
, not F
1
, F
1
F
2
y (F
1
) son
frmulas. Note que el operador de implicacin no forma parte de los operadores
permitidos en la versin de clculo relacional que Ud. encontrar en su libro de
texto. Esta adicin no viola las reglas del clculo ya que este operador puede
rescribirse utilizando la regla de traduccin de la implicacin de la lgica de
primer orden.
Si F
1
es una frmula y t es una variable de tuplas, t(F
1
) es una frmula
(cuantificacin existencial de t)
Si F
1
es una frmula y t es u,t(F
1
) es una frmula (cuantificacin universal de t).

Finalmente debe tenerse en cuenta el hecho de que toda variable de tuplas debe
ocurrir ligada en la condicin. Por defecto, toda variable de tupla indicada como resultado
ocurre ligada en la condicin si se indica la relacin rango. Las variables de tuplas no
declaradas en el resultado y usadas en la condicin ocurrirn ligadas si y slo si se indica su
relacin rango y se cuantifican universal o existencialmente en la condicin.

Ejemplos:

El requerimiento Dar la cdula de identidad de las personas que sintonizan al
menos la emisora X o la emisora Y, podra expresarse como:
{t
1
.CI | SINTONIZA(t
1
) and (t
1
.CodEm = X or t
1
.CodEm = Y)}

Sistemas de Bases de Datos I Prof. Nunzio N. Savino V. Tema Nro. 9
CI3315
Enero-Abril 2002
Clculo Relacional de Tuplas

Pgina 3 de 5
El requerimiento Dar la cdula de identidad de las personas que sintonizan al
menos la emisora X y la emisora Y, podra expresarse como:

{t
1
.CI | SINTONIZA(t
1
) and t
1
.CodEm = X and
t
2
(SINTONIZA(t2) and t
1
.CI = t
2
.CI and t
2
.CodEm = Y)}

El requerimiento Dar las personas (cdula de identidad y nombre) que slo
sintonizan la emisora X y la emisora Y, podra expresarse como:

{t
1
.CI,t
1
.Nombre | PERSONA(t
1
) and
t
2
(SINTONIZA(t
3
) and t
2
.CI = t
1
.CI and t
2
.CodEm = X) and
t
3
(SINTONIZA(t
3
) and t
3
.CI = t
1
.CI and t
3
.CodEm = Y) and
not t
4
(SINTONIZA(t
4
) and t
4
.CI = t
1
.CI and
(t
4
.CodEm X and t
2
.CodEm Y))}

El requerimiento Dar el cdigo de las emisoras donde no se colocan las canciones
ni Z ni W podra expresarse como:

{t.CodEm | EMISORA(t) and not t
1
(COLOCA(t
1
) and t
1
.CodEm = t.CodEm and
(t
1
.CodCan = Z or t
1
.CodCan = W))}

Dar el nombre de las canciones que le gustan a Jos Prez.

{t
1
.Nombre|CANCION(t
1
) and t
2
t
3
(GUSTA(t
2
) and PERSONA(t
3
) and
t
2
.CodCan = t
1
.CodCan and t
2
.CI = t
3
.CI and t
3
.Nombre = Jos Prez)}

Dar el nombre de los radioescuchas que sintonizan slo emisoras que colocan la
cancin W .

{t
1
.Nombre | PERSONA(t
1
) and
not t
2
(SINTONIZA(t
2
) and t
2
.CI = t
1
.CI and
not t
3
(SINTONIZA(t
3
) and t
3
.CI=t
1
.CI and
t
3
.CodEm = X))}












Sistemas de Bases de Datos I Prof. Nunzio N. Savino V. Tema Nro. 9
CI3315
Enero-Abril 2002
Clculo Relacional de Tuplas

Pgina 4 de 5
EXPRESIONES SEGURAS

La gramtica del lenguaje de especificacin del clculo relacional no prohbe la
ocurrencia de situaciones como not EMISORA(x). El significado de esta frmula
quiere indicar cualquier tupla que no sea emisora. Sin embargo, Cmo se puede
trabajar con un dominio infinito de tuplas? Esta nocin se escapa a lo que es como tal
un problema computable. Para tal fin se definen lo que se conocen como expresiones
(reglas) seguras.

Para hablar de que una expresin del clculo relacional es segura introduciremos el
concepto del universo de valores permitidos como resultado de la expresin del
clculo relacional que representa la consulta. Sea Q una expresin del clculo
relacional de la forma:

Q = {t
1
.A
1
,t
2
.A
2
,t
3
.A
3
,....,t
n
.A
n
| CONDICION(t
1
,t
2
,...,t
n
,t
n+1
,...,t
n+m
)}

donde t
1
, t
2
, , t
n
son variables de tupla cuyas relaciones rango son R
1
,R
2
,R
m
(mn)
que ser aplicada sobre un conjunto r
1
,r
2
,,r
m
de instancias de las relaciones
R
1
,R
2
,R
m
para responder al query que representa la expresin del clculo. Se
define el dominio de valores para Q sobre el conjunto de instancias de las relaciones
(lo denotaremos como Dom(Q,{r
1
,r
2
,,r
m
}) ) como la unin de los valores que para cada
atributo de cada relacin R
i
de la cual es instancia r
i
(1 i m) tienen cada una de las
tuplas que pertenecen a r
i
y los valores de aquellas constantes utilizadas en la
condicin de Q.

Ejemplo: Si tenemos las instancias c y s de las relaciones COLOCA y SINTONIZA
respectivamente y la expresin del clculo relacional de tuplas

Q = {t
1
.codCan | COLOCA(t
1
) and SINTONIZA(t
2
) and t
2
.CodEm = t
1
.CodEm and t
2
.CI=5}

c(COLOCA) s(SINTONIZA)
CodEm CodCan CI CodEm
X 1 1 X
X 2 1 Y
Y 3 2 Z
Y 4 3 X
Z 2 3 Y
Z 4

Entonces Dom(Q,{c,g})={1,2,3,4,X,Y,Z,5}

En el clculo relacional de tuplas, se dice que una expresin Q es segura si se cumple
que:
Sistemas de Bases de Datos I Prof. Nunzio N. Savino V. Tema Nro. 9
CI3315
Enero-Abril 2002
Clculo Relacional de Tuplas

Pgina 5 de 5
Para cualquier conjunto de instancias de relaciones I formado por instancias de
las relaciones utilizadas en Q, el conjunto de respuestas devuelto por Q contiene
slo valores que se encuentran en Dom(Q,I).
Para cualquier conjunto de instancias de relaciones I formado por instancias de
las relaciones utilizadas en Q, y para cualquier subcondicin de Q de la forma
t(P(t)) con t variable de tupla sobre la relacin R, al considerar la instancia de R
sobre la que se verifica la subcondicin debe cumplirse que si t hace que la
condicin de Q evale a cierto entonces t slo podr contener valores en
Dom(Q,I)
Para cualquier conjunto de instancias de relaciones I formado por instancias de
las relaciones utilizadas en Q, y para cualquier subcondicin de Q de la forma
t(P(t)) con t variable de tupla sobre la relacin R, si t contiene valores que no se
encuentran en Dom(Q,I) entonces para dicha tupla la condicin de Q debe evaluar
a cierto.

En general, una regla semntica del clculo relacional determina que una expresin en clculo
no es correcta si alguna de las subcondiciones de la condicin definida en ella no es segura.

You might also like