Mi ejemplo favorito es un clásico resultado de 1977 de Ashok Chandra y Philip Merlin. Mostraron que el problema de contención de consultas era decidible para consultas conjuntivas. El problema de contención de consultas conjuntas resulta ser equivalente a decidir si existe un homomorfismo entre las dos consultas de entrada. Esto reformula un problema de semántica, que implica la cuantificación sobre un conjunto infinito, en uno sintáctico, que solo requiere verificar un número finito de posibles homomorfismos. El certificado de homomorfismo es solo de tamaño lineal y, por lo tanto, el problema está en NP.
Este teorema proporciona uno de los fundamentos de la teoría de optimización de consultas de bases de datos. La idea es transformar una consulta en otra más rápida. Sin embargo, uno quiere asegurarse de que el proceso de optimización no cree una nueva consulta que no proporcione respuestas en algunas bases de datos donde la consulta original sí produjo resultados.
Formalmente, una consulta de base de datos es una expresión de la forma , donde x es una lista de variables libres, y es una lista de variables enlazadas, y Q ( x , y ) es una fórmula de primer orden con variables x e y de un lenguaje con símbolos de relación. La consulta Q puede contener cuantificadores existenciales y universales, la fórmula puede contener conjunción y disyunción de átomos relacionales, y también puede aparecer negación. Se aplica una consulta a una instancia de base de datos Ix.Q(x,y)xyQ(x,y)xyQI, que es un conjunto de relaciones. El resultado es un conjunto de tuplas; cuando la tupla en el resultado se sustituye por x, entonces se puede satisfacer la fórmula Q ( t , y ) . Uno puede entonces comparar dos consultas: Q 1 está contenida en Q 2 si siempre que Q 1 aplicado a un ejemplo de base de datos arbitraria I produce algunos resultados, entonces Q 2 aplicada a la misma instancia que también produce algunos resultados. (Está bien si Q 1 no produce resultados pero Q 2txQ(t,y)Q1Q2Q1IQ2IQ1Q2no, pero para la contención de la implicación debe mantener durante todos los casos posibles) El. problema de contención consulta se pregunta: Dadas dos bases de datos consulta y Q 2 , se Q 1 contenida en Q 2 ?Q1Q2Q1Q2
Antes de Chandra-Merlin no estaba del todo claro que el problema fuera decidible. Usando solo la definición, uno tiene que cuantificar sobre el conjunto infinito de todas las bases de datos posibles. Si las consultas no están restringidas, el problema es, de hecho, indecidible: dejar que sea una fórmula que siempre es verdadera, entonces Q 1 está contenido en Q 2 si Q 2 es válido. (Este es el problema Entscheidungs de Hilbert , que Church and Turing demostró indecidible en 1936).Q1Q1Q2Q2
Para evitar la indecidibilidad, una consulta conjuntiva tiene una forma bastante limitada: solo contiene cuantificadores existenciales, y la negación y la disyunción no están permitidas. Entonces Q es una fórmula existencial positiva con solo conjunción de átomos relacionales. Este es un pequeño fragmento de lógica, pero es suficiente para expresar una gran proporción de consultas útiles en la base de datos. La declaración clásica en SQL expresa consultas conjuntivas; La mayoría de las consultas de motores de búsqueda son consultas conjuntas.QQSELECT ... FROM
Se pueden definir homomorfismos entre consultas de una manera directa (similar al homomorfismo gráfico, con un poco de contabilidad adicional). El teorema de Chandra-Merlin dice: dadas dos consultas conjuntas y Q 2 , Q 1 está contenido en Q 2 si hay una consulta homomorfismo de Q 2 a Q 1 . Esto establece la membresía en NP, y es sencillo demostrar que esto también es NP-hard.Q1Q2Q1Q2Q2Q1
- Ashok K. Chandra y Philip M. Merlin, Implementación óptima de consultas conjuntas en bases de datos relacionales , STOC '77 77–90. doi: 10.1145 / 800105.803397
La capacidad de decisión de la contención de consultas se extendió más tarde a las uniones de consultas conjuntivas (consultas positivas existenciales donde se permite la disyunción), aunque permitir la disyunción aumenta la complejidad a -completo. Los resultados de decidibilidad e indecidibilidad también se han establecido para una forma más general de contención de consultas , que implican valoraciones de semiring que se producen al contar el número de respuestas, al combinar anotaciones en la procedencia o al combinar resultados de consultas en bases de datos probabilísticas.ΠP2