Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Jorge Pérez
Profesor Asistente Departamento de Ciencias de la Computación,
Universidad de Chile. Doctor en Ciencias de la Ingeniería (2011),
Magíster en Ciencias de la Ingeniería (2004) e Ingeniero Civil en
Computación (2003), Pontificia Universidad Católica de Chile. Líneas
de Investigación: Bases de Datos - Datos Web, Lógica en Ciencia de la
Computación.
jperez@dcc.uchile.cl
TEORÍA DE LA
COMPUTACIÓN
E
l área de Bases de Datos atributos. Por ejemplo, la siguiente base
de datos de bebedores tiene dos relacio-
Lenguajes de
se preocupa de almace-
nar, consultar y actualizar nes: frecuenta y sirve, la primera con consulta: lógica
grandes volúmenes de in- atributos bebedor y bar, y la segunda
con atributos bar y cerveza1.
en acción
formación. Las bases de
datos están presentes hoy Una de las ventajas cruciales de las ba-
en innumerables aplicaciones y contex- frecuenta bebedor bar
ses de datos relacionales son los llama-
tos, y muchos profesionales y autodidac- Juan Constitución
dos lenguajes de consulta. Tomemos por
tas no necesariamente interesados en la Pablo Liguria
ejemplo el caso de la consulta:
computación, las usan a diario. Lo que Marcelo Loreto
1
El ejemplo de los bebedores, es un ejemplo clásico de la literatura de Bases de Datos.
47
TEORÍA DE LA
COMPUTACIÓN
48
TEORÍA DE LA
COMPUTACIÓN
los estudiantes no podrían completar la problema particular. Generalmente se Usar lógica de segundo orden es poco
carrera. Es decir queremos impedir que considera el tiempo como el más impor- razonable ya que su complejidad es más
exista una secuencia de cursos A1, A2, ..., tante de estos recursos. Para el caso de alta que la de los problemas NP-Comple-
Ak, tal que A1 es requisito de A2, A2 es las bases de datos el problema es, dada tos y por lo tanto será poco usable en la
requisito de A3, etc. y que finalmente Ak una consulta fija sobre una base de da- práctica ya que la ejecución de una con-
sea requisito de A1. Pues bien, se puede tos de tamaño N ¿cuánto tiempo tardará sulta tardará un tiempo demasiado alto.
demostrar que no existe una fórmula en en ejecutar la consulta como función de
lógica de primer orden que me permita N? Si ahora consideramos todas las posi- En general se pueden utilizar diversos
chequear si hay un ciclo en las dependen- bles consultas en un lenguaje específico lenguajes de consulta en bases de datos
cias de cursos; el álgebra relacional no y tomamos el máximo de estas funciones relacionales y siempre existirá este “tira
tiene el poder expresivo suficiente para obtenemos la complejidad del lenguaje. y afloja” entre expresividad y comple-
determinar la existencia de ciclos en los jidad. El ideal es llegar a un equilibrio
datos. No es difícil notar que los ciclos y Se puede demostrar que la complejidad entre ambas medidas; encontrar un len-
los caminos de largo arbitrario están ínti- de la lógica de primer orden es sumamen- guaje suficientemente expresivo para las
mamente relacionados. te baja: la complejidad está en la clase aplicaciones que quiero modelar y a la
ACº [3] que contiene problemas masi- vez suficientemente eficiente y simple de
Lo profundo del resultado es indicarnos vamente paralelizables. Esta clase está ejecutar para que las consultas se puedan
las limitantes del álgebra en cuanto a su propiamente contenida en la clase de pro- responder en la práctica. La lógica de pri-
poder para responder consultas. Pero la blemas solubles en tiempo polinomial, mer orden es un muy buen ejemplo en el
teoría también nos ayuda a determinar PTIME. En cambio, DATALOG que es el caso de las bases de datos relacionales.
qué es lo que le falta a la lógica para ser lenguaje estándar que incluye recursión,
capaz de responder C3. En este caso lo es completo para PTIME y, por lo tanto,
que le falta a la lógica es recursión. No es
importante la definición formal para efec-
considerablemente más complejo de eva-
luar que la lógica de primer orden. A pe-
Más allá de sólo
tos de este artículo, pero lo interesante es sar de ser más complejo que la lógica de consultar
que dado que C3 es una consulta natural primer orden, DATALOG sigue teniendo
que nos gustaría responder en un sistema un procedimiento de evaluación eficien- Hay muchos otros problemas en teoría de
de bases de datos, necesitamos agregar te (de hecho, de tiempo polinomial) por bases de datos más allá de sólo consultar.
poder expresivo a nuestro lenguaje. En la lo que se puede utilizar en la práctica. Uno de ellos es el problema de equiva-
práctica esta observación teórica se tra- Sin embargo uno podría agregar mucha lencia de consultas: dadas dos consultas
dujo en una adición al estándar inicial de expresividad a un lenguaje y sacrificar distintas en álgebra relacional (o lógica de
SQL (el estándar SQL 3 incluye la posi- la complejidad a un nivel que lo vuelva primer orden), ¿será el caso que para todas
bilidad de hacer recursión). impráctico. Un ejemplo es la lógica de las posibles bases de datos las consultas
segundo orden que permite expresar con- entregan exactamente el mismo resultado?
A priori suena simple y hasta atractivo sultas sumamente complejas. Considere Alguien podría pensar que esto no puede
lo de agregar expresividad a un lengua- nuevamente la base de datos de vuelos ocurrir si las consultas son distintas, pero
je, pero ¿no estaremos perdiendo algo? directos, y suponga que además se cuenta considere la siguiente consulta:
La respuesta es sí, lo que se pierde es con una tabla países de nombres de paí-
eficiencia: cada nueva funcionalidad ses por los que un viajero quiere pasar. La
agregada a un lenguaje implica la im- lógica de segundo orden permite expre- C5: πbebedor (frecuenta
plementación de una nueva operación sar consultas como la siguiente: (ocerveza = “Kriek” sirve))
la que puede ser más costosa de ejecu-
tar en un computador. Esto nos lleva al
tema de complejidad. C4: “¿Existe un itinerario de vuelo que No es difícil notar que, sea cual sea la
pase exactamente una vez por cada país base de datos donde la ejecutemos, las
En complejidad computacional se intenta en la tabla países?” consultas C1’ y C5 entregarán siempre
determinar qué tantos recursos computa- los mismos resultados. También se puede
cionales se necesitarán para resolver un argumentar que la consulta C5 se puede
49
TEORÍA DE LA
COMPUTACIÓN
ejecutar más eficientemente que C1’. Si consultas usando vistas [5]. Suponga sistema traduce estas consultas en diver-
un sistema de bases de datos pudiera en- que un sistema de bases de datos tiene sas consultas sobre las distintas bases de
tonces establecer la equivalencia entre un conjunto de consultas V1, V2, V3,... datos de bibliotecas, en donde se compu-
consultas, podría notar que da lo mismo etc., precomputadas, es decir, antes las tan las respuestas y luego se entrega una
responder C1’ o C5, y si alguien consulta consultó y el resultado de cada una está visión unificada al usuario. Una forma
por C1’, el sistema podría en vez ejecutar almacenado. A este conjunto de consultas de modelar y resolver este problema, es
C5, optimizando el tiempo de respuesta. se les llama vistas. Cuando llega una pensar que cada posible base de datos
Note que establecer la equivalencia en- nueva consulta, digamos Q, al sistema de distribuida es una vista precomputada de
tre consultas no parece ser un problema base de datos, se podría antes de ejecutar la base de datos global (virtual). El siste-
trivial para nada. De hecho ¿cómo che- Q desde cero intentar computarla como ma entonces no tiene acceso a los datos
queamos en general que dos consultas una combinación de las vistas V1, V2, de la base de datos global y cada nueva
entregan el mismo resultado para todas V3,..., y así ahorrar considerable tiempo. consulta debe ser respondida usando sólo
las posibles bases de datos? La mala no- Una solución a este problema permitiría la información de las vistas, que en este
ticia es que el problema de equivalencia a un sistema de bases datos mantener caso corresponderían a cada una de las
para el álgebra relacional es indecidible: un caché de consultas más solicitadas, bases de datos de bibliotecas indepen-
no existe un algoritmo que, dadas dos o suficientemente generales, de manera dientes [6, 7].
consultas del álgebra relacional, de- tal que puedan ser utilizadas para
termine si éstas son equivalentes. Una
noticia negativa de parte de la teoría para
responder diversas otras consultas. En
[5], los autores plantearon este problema
Nuevos modelos
la práctica. y propusieron un algoritmo para el de datos
caso en que las vistas son expresadas
Lo típico que se hace en investigación en el fragmento conjuntivo del álgebra Hemos hecho una revisión de algunos
teórica en computación una vez que se relacional. problemas teóricos importantes en bases
determina que un problema no puede de datos relacionales. Obviamente la lista
ser resuelto algorítmicamente, es buscar El problema de responder consultas usan- visitada está lejos de ser exhaustiva. Una
restricciones bajo las cuales el problema do vistas se ha usado (tanto su teoría buena referencia para el lector interesado
se vuelve decidible. Una interesante res- como sus algoritmos) en diversos otros puede ser [8, 9]. Muchos de estos proble-
tricción del álgebra relacional es el frag- problemas de interés práctico, como por mas teóricos que han sido estudiados por
mento que considera expresiones donde ejemplo, el de integración de datos. En décadas, hoy deben ser revisitados ante el
sólo las operaciones de proyección (π), un sistema de integración de datos, ya surgimiento de nuevos modelos de datos
selección (o) y join ( ) son permitidas. no es sólo una base de datos la que se principalmente motivados por el manejo
quiere consultar sino varias posiblemen- e intercambio de información en la Web.
Este fragmento se llama fragmento te distribuidas. El usuario no tiene acceso
conjuntivo del álgebra relacional. a cada una de las bases de datos por se- Uno de estos modelos es XML, que ha
El fragmento conjuntivo contiene la parado sino más bien tiene acceso a una demostrado ser una interesante fuente de
mayor parte de las consultas de la forma única interfaz global. Se puede pensar por desafíos teóricos donde los resultados
SELECT-FROM-WHERE de SQL y, ejemplo en un sistema de bibliotecas dis- para bases de datos relacionales no siem-
por lo tanto, tiene gran interés práctico. tribuidas en distintas universidades. Cada pre se pueden adaptar. Otro modelo muy
Se puede demostrar [4] que para este universidad almacena información de li- en boga hoy es el modelo de datos de gra-
fragmento el problema de determinar bros de manera independiente y no nece- fos. En este modelo, los datos están re-
equivalencia de consultas es NP- sariamente usando los mismos esquemas presentados como puntos y las relaciones
Completo. Si bien el problema no tiene (tablas, nombres de tablas y atributos). entre ellos como links. Un típico ejemplo
una solución eficiente (NP-Completo Para simplificar el acceso a todas estas son las redes sociales tipo Facebook o
significa que será difícil de resolver en posibles bases de datos, se le presenta al Twitter. En estas nuevas bases de datos,
la práctica), al menos sabemos que el usuario una base de datos virtual, o sea los datos atómicos son los identificadores
problema es decidible. Otro problema nombres y atributos de tablas pero sin de objetos, sean estos usuarios, empre-
de interés teórico que ha tenido datos. Cada vez que el usuario hace una sas, ciudades, etc., y las relaciones entre
implicaciones prácticas es el de responder consulta sobre la base de datos virtual, el ellos vienen dadas por las relaciones de
50
TEORÍA DE LA
COMPUTACIÓN
51