Академический Документы
Профессиональный Документы
Культура Документы
Clculo relacional
Diseo de Base de Datos
Ing. Luis Reyes
Objetivos
El significado del trmino completud
relacional.
Cmo construir consultas en lgebra relacional.
Cmo construir consultas en el clculo
relacional de tuplas.
Introduccin
El lgebra relacional y el clculo relacional
son lenguajes formales asociados al
modelo relacional.
De manera informal el lgebra relacional
es un lenguaje procedimental (de alto
nivel) y el clculo relacional un lenguaje no
procedimental.
Sin embargo, formalmente, ambos
lenguajes son equivalentes entre s.
lgebra relacional
Las operaciones de lgebra relacional se aplican
a una o ms relaciones para definir otra
relacin sin modificar las relaciones originales.
Tanto los operandos como los resultados son
relaciones de manera que la salida de una
operacin puede utilizarse como entrada de
otra.
lgebra relacional
Existen cinco operaciones bsicas en al
lgebra relacional: seleccin, proyeccin,
producto cartesiano, unin y diferencia de
conjuntos.
Estas permiten realizar la mayora de las
operaciones de extraccin de datos que nos
interesan.
Seleccin
Proyeccin
Unin
Interseccin
Producto cartesiano
Diferencia de conjuntos
Combinacin
natural
Semicombinacin
Ejemplo de divisin
Combinacin
externa izquierda
Seleccin (o Restriccin)
predicate (R)
La operacin de seleccin se aplica a
una nica relacin R y define otra
relacin que contiene nicamente
aquellas tuplas de R que satisfacen la
condicin (predicado) especificada.
Proyeccin
col1, . . . , coln(R)
Se aplica a una nica relacin R y define
otra relacin que contiene un
subconjunto vertical de R, extrayendo
los valores de los atributos especificados
y eliminando los duplicados.
10
Ejemplo - Proyeccin
Generar una lista de salarios para todo el
personal, mostrando solamente los detalles
referidos a los atributos staffNo, fName,
lName, y salary.
staffNo, fName, lName, salary(Staff)
Unin
RS
La unin de dos relaciones R y S define una
relacin que contiene todas las tuplas de R,
de S o tanto de R como de S, eliminndose
las tuplas duplicadas.
R y S tienen que ser compatibles con
respecto a la unin.
Ejemplo - Unin
Enumerar todas las ciudades en las que
exista una sucursal, o un inmueble en
alquiler.
city(Branch) city(PropertyForRent)
Diferencia de conjuntos
RS
Define una relacin compuesta por las
tuplas que encuentran en la relacin R
pero no en S.
R y S deben ser compatibles con
respecto a la unin.
Interseccin
RS
Define una relacin compuesta por el
conjunto de todas las tuplas que existen
tanto en R como en S.
R y S deben ser compatibles con
respecto a la unin.
Expresndolo con operaciones bsicas:
R S = R (R S)
Ejemplo - Interseccin
Enumerar todas las ciudades en las que
exista tanto una sucursal como al menos
un inmueble en alquiler.
city(Branch) city(PropertyForRent)
Producto cartesiano
RXS
Define una relacin que es la
concatenacin de cada tupla de la
relacin R con cada tupla de la relacin
S.
18
Operaciones de combinacin
La combinacin es una derivada del
producto cartesiano.
Equivalente a realizar una operacin de
seleccin utilizando el predicado de
combinacin como frmula se seleccin
sobre el producto cartesiano de las dos
relaciones que funcionan como operando.
Operaciones de combinacin
Existen varias formas de operacin de
combinacin
Combinacin theta
Equicombinacin (un tipo particular
de combinacin theta)
Combinacin natural
Combinacin externa
Semicombinacin
FS
= F(R S)
Ejemplo - Equicombinacin
Enumerar los nombres y comentarios de
todos los clientes que hayan visitado un
inmueble en alquiler.
(clientNo, fName, lName(Client))
Client.clientNo
= Viewing.clientNo (clientNo, propertyNo,
comment(Viewing))
Combinacin natural
R
S
La combinacin natural entre las dos
relaciones R y S sobre todos los atributos
comunes. De los resultados se elimina una
de las dos apariciones de cada atributo
comn.
Combinacin externa
Se emplea para incluir en la relacin
resultante las tuplas que no tengan valores
correspondientes en los atributos comunes de
S.
R
S
La combinacin externa izquierda (natural)
es aquella combinacin que tambin
incluye en el resultado las tuplas de R que
no tienen valores correspondientes en los
atributos comunes de S.
Semicombinacin
R
FS
Define una relacin que contiene las tuplas
de R que participan en la combinacin de R
con S.
29
Ejemplo - Semicombinacin
Enumerar los detalles completos de todos los
empleados que trabajen en la sucursal de
Glasgow.
Staff
Staff.branchNo=Branch.branchNo(city=Glasgow(Branch)
30
Divisin
RS
Define una relacin sobre los atributos C
que est compuesta por el conjunto de
tuplas de R que se corresponden con la
combinacin de todas las tuplas de S.
31
Ejemplo - Divisin
Identificar todos los clientes que hayan
visto todos los inmuebles con tres
habitaciones.
(clientNo, propertyNo(Viewing))
(propertyNo(rooms = 3 (PropertyForRent)))
Clculo relacional
Las consultas de clculo relacional especifican
qu hay que extraer, en lugar de cmo
extraerlo.
En la lgica de primer orden o clculo de
predicados, un predicado es una funcin
booleana con argumentos.
Cuando asignamos valores a los argumentos la
funcin nos proporciona una expresin,
denominada proposicin, que puede ser
verdadera o falsa.
Clculo relacional
Si el predicado contiene una variable (Ej. x
es miembro del personal), tiene que existir
un rango asociado para x.
Cuando sustituimos algunos de los valores
de este rango por x, la proposicin puede
ser verdadera; para otros valores puede
ser falsa.
Cuantificador universal
(para todo)
42
Otros lenguajes
Los lenguajes orientados a transformacin
son lenguajes no procedimentales que
utilizan relaciones para transformar los
datos de entrada en las salidas requeridas
(Ej. SQL).
Los lenguajes grficos proporcionan al
usuario una imagen o ilustracin de la
estructura de la relacin. El usuario rellena
un ejemplo de lo que desea y el sistema
devuelve los datos requeridos en dicho
formato (Ej. QBE, Query-By-Example).
Otros lenguajes
Los lenguajes de cuarta generacin (4GL,
Fourth Generation Languages, permiten crear
una aplicacin personalizada completa
utilizando un conjunto limitado de comandos en
un entorno amigable y frecuentemente basado
en mens.
Algunos sistemas aceptan algn tipo de
lenguaje natural, que suele ser una versin
restringida del ingls, lo que a veces se
denomina lenguajes de quinta generacin (5GL,
Fifth Generation Languages). Estos desarrollos
se encuentran todava en una etapa temprana.