En la teoría de bases de datos , el problema de evaluación de consultas es el problema [ 1 ] de determinar las respuestas a una consulta en una base de datos. La investigación en teoría de bases de datos tiene como objetivo determinar la complejidad computacional de responder a diferentes tipos de consultas sobre bases de datos, en particular sobre bases de datos relacionales .
Definición formal
El problema de evaluación de consultas toma dos entradas: la consulta que se va a responder y la base de datos sobre la que se debe responder. El resultado del problema es el conjunto de respuestas a la consulta en la base de datos. Si las consultas son booleanas , es decir, tienen una respuesta de sí o no (por ejemplo, consultas conjuntivas booleanas ), entonces el problema de evaluación de consultas es un problema de decisión .
El problema de evaluación de consultas se suele plantear para una clase específica de consultas y bases de datos. Por ejemplo, un ejemplo del problema de evaluación de consultas sería el problema de evaluar una consulta conjuntiva en una base de datos relacional .
La complejidad computacional del problema se puede medir de diferentes maneras, [ 2 ] para tener en cuenta el hecho de que las dos entradas del problema son diferentes:
- La complejidad combinada del problema de evaluación de consultas es su complejidad computacional cuando se mide en función de las dos entradas, es decir, la consulta y la base de datos, como es habitual en la complejidad computacional.
- La complejidad de datos es la complejidad computacional cuando la consulta es fija y la entrada es simplemente la base de datos. Por ejemplo, decimos que la evaluación de una consulta tiene una complejidad de datos polinomial para una clase de consultas si, para cada consulta fija Q de esa clase, dada una base de datos D , podemos calcular las respuestas a Q en D en tiempo polinomial.
- Con menos frecuencia, podemos estudiar la complejidad de la consulta , que es la complejidad computacional cuando la base de datos es fija y la entrada es solo la consulta. Esto también se denomina complejidad de la expresión . [ 3 ]
Clases de consulta
La complejidad de la evaluación de consultas se puede estudiar para varias clases de consultas, por ejemplo consultas acíclicas , consultas conjuntivas , uniones de consultas conjuntivas , Datalog, consultas de ruta regulares , etc., hasta formalismos lógicos como la lógica de primer orden o la lógica monádica de segundo orden .
Por ejemplo, para consultas conjuntivas booleanas , la complejidad de la evaluación de la consulta es polinómica en la complejidad de los datos: incluso cae en la clase AC0 . Por el contrario, la complejidad de la consulta y la complejidad combinada son NP-completas [ 4 ] por una reducción de la 3-colorabilidad . [ 5 ]
Consultas booleanas frente a consultas no booleanas
La complejidad de la evaluación de consultas puede estudiarse para consultas que devuelven respuestas o para consultas booleanas (consultas de sí/no). Sin embargo, a menudo podemos reducirla al caso de consultas booleanas. Más específicamente, si el número de respuestas a la consulta es siempre polinomial en el tamaño de la base de datos, y si podemos reescribir la consulta como una consulta booleana para cada respuesta, entonces podemos reducir la evaluación de una consulta no booleana a un número polinomial de problemas de evaluación de consultas booleanas. [ 6 ]
Referencias
- ↑ Kimelfeld, Benny; Kosharovsky, Yuri; Sagiv, Yehoshua (2009-10-01). "Evaluación de consultas sobre XML probabilístico" . The VLDB Journal . 18 (5): 1117– 1140. doi : 10.1007/s00778-009-0150-5 . ISSN 0949-877X .
Formalmente, cada consulta está asociada con un problema computacional distinto: su evaluación sobre una base de datos dada.
- ↑ Vardi, Moshe Y. (1982-05-05). "La complejidad de los lenguajes de consulta relacionales (Resumen extendido)" . Actas del decimocuarto simposio anual de la ACM sobre Teoría de la Computación - STOC '82 . Nueva York, NY, EE. UU.: Association for Computing Machinery. págs. 137–146 . doi : 10.1145/800070.802186 . ISBN 978-0-89791-070-5.
- ↑ Abiteboul, Serge; Hull, Richard; Vianu, Victor (2 de diciembre de 1994). Fundamentos de las bases de datos: El nivel lógico (1.ª ed.). Reading, Mass.: Pearson. ISBN 978-0-201-53771-0.
- ↑ Greco, Gianluigi; Scarcello, Francesco (18 de junio de 2014). «Conteo de soluciones a consultas conjuntivas: Tratabilidad estructural e híbrida» . Actas del 33.er simposio ACM SIGMOD-SIGACT-SIGART sobre Principios de sistemas de bases de datos . PODS '14. Nueva York, NY, EE. UU.: Association for Computing Machinery. págs. 132–143 . doi : 10.1145/2594538.2594559 . ISBN 978-1-4503-2375-8.
- ↑ De Giacomo, Giuseppe. "Consultas conjuntivas: métodos formales" (PDF) .
Diapositiva 6
- ↑ Amarilli, Antoine; Benedikt, Michael (2020-07-05). "Respuesta a consultas de mundo abierto finito con restricciones numéricas" . ACM Trans. Comput. Logic . 21 (4): 27:1–27:73. arXiv : 2003.02521 . doi : 10.1145/3365834 . ISSN 1529-3785 .
Siempre podemos enumerar todas las asignaciones posibles y resolver nuestro problema resolviendo un número polinomial de instancias.
- teoría de bases de datos