Computing explanations for unlively queries in databases
A query is lively in a database schema if it returns a non-empty answer for some database satisfying the schema. Debugging a database schema requires not only determining queries (as well as views or tables) that are not lively, but also fixing them. To make that task easier it is required to provid...
| Autores: | , , , |
|---|---|
| Tipo de recurso: | informe técnico |
| Fecha de publicación: | 2007 |
| País: | España |
| Institución: | Universitat Politècnica de Catalunya (UPC) |
| Repositorio: | UPCommons. Portal del coneixement obert de la UPC |
| Idioma: | inglés |
| OAI Identifier: | oai:upcommons.upc.edu:2117/86232 |
| Acceso en línea: | https://hdl.handle.net/2117/86232 |
| Access Level: | acceso abierto |
| Palabra clave: | Database schema validation Existing methods Query liveliness Àrees temàtiques de la UPC::Informàtica::Sistemes d'informació |
| Sumario: | A query is lively in a database schema if it returns a non-empty answer for some database satisfying the schema. Debugging a database schema requires not only determining queries (as well as views or tables) that are not lively, but also fixing them. To make that task easier it is required to provide the designer with some explanation of why a query is not lively. To the best of our knowledge, the existing methods for liveliness checking in databases do not provide such explanations. An explanation is understood as the minimal set of constraints that are responsible for the non-liveliness of the tested query. In this paper we propose a method for computing such explanations which is independent of the particular method used to determine liveliness of a given query. Our method provides three levels of search: one explanation, a maximal set of non-overlapping explanations, and all explanations. The first two levels require only a linear number of callings to the underlying method. In addition, we propose a filter to reduce the number of callings to the underlying liveliness method. We also experimentally compare our method with a more naive method for query liveliness and with the best known method for finding unsatisfiable subsets of constraints. |
|---|