{"id":115772,"date":"2014-08-06T00:00:00","date_gmt":"2014-08-06T00:00:00","guid":{"rendered":"https:\/\/www.deberes.net\/tesis\/sin-categoria\/tecnicas-de-deteccion-y-diagnosis-de-errores-en-consultas-de-bases-de-datos\/"},"modified":"2014-08-06T00:00:00","modified_gmt":"2014-08-06T00:00:00","slug":"tecnicas-de-deteccion-y-diagnosis-de-errores-en-consultas-de-bases-de-datos","status":"publish","type":"post","link":"https:\/\/www.deberes.net\/tesis\/complutense-de-madrid\/tecnicas-de-deteccion-y-diagnosis-de-errores-en-consultas-de-bases-de-datos\/","title":{"rendered":"T\u00e9cnicas de detecci\u00f3n y diagnosis de errores en consultas de bases de datos"},"content":{"rendered":"<h2>Tesis doctoral de <strong> Yolanda Garcia Ruiz <\/strong><\/h2>\n<p>El objetivo de esta tesis es el dise\u00f1o y desarrollo de t\u00e9cnicas para la detecci\u00f3n y diagnosis de errores en el campo de las bases de datos y en particular, en consultas a bases de datos. Para ayudar a la detecci\u00f3n de errores se desarrollan t\u00e9cnicas para la generaci\u00f3n autom\u00e1tica de casos de prueba. Estos casos de prueba no son m\u00e1s que instancias v\u00e1lidas de la base de datos que facilitan al usuario probar de forma sencilla la correcci\u00f3n de los resultados de las consultas. Para realizar el diagn\u00f3stico de errores se proponen t\u00e9cnicas relacionadas con la depuraci\u00f3n declarativa o algor\u00edtmica. Estas t\u00e9cnicas se basan en la exploraci\u00f3n de una estructura que representa el c\u00f3mputo de la consulta a depurar, conteniendo, adem\u00e1s de la informaci\u00f3n del resultado final, informaci\u00f3n de todos los resultados intermedios. Para localizar la causa del error, se realizan consultas  a un or\u00e1culo al que se supone conocimiento de los resultados esperados.Dentro del \u00e1mbito de las bases de datos, nos hemos centrado en las bases de datos deductivas, relacionales y  semiestructuradas.Las bases de datos deductivas se basan en la utilizaci\u00f3n de la programaci\u00f3n l\u00f3gica para mantener y consultar los datos. El lenguaje m\u00e1s conocido dentro de este campo es datalog, cuya sintaxis puede verse como un subconjunto del lenguaje l\u00f3gico prolog. La mayor parte de las propuestas para depurar programas datalog utilizan m\u00e9todos usados tradicionalmente en depuraci\u00f3n imperativa. Otros se basan en  el an\u00e1lisis de los \u00e1rboles de prueba asociados a un programa transformado, que resulta dif\u00edcil de relacionar con el programa original. En esta tesis se propone una herramienta de depuraci\u00f3n basada m\u00e1s en la sem\u00e1ntica del programa que en el modelo de c\u00f3mputo, extendiendo y adaptando las ideas gen\u00e9ricas de la depuraci\u00f3n declarativa al caso de datalog.En el caso de las bases de datos relacionales, la fase de pruebas requiere el previo dise\u00f1o de casos de prueba para su posterior ejecuci\u00f3n. Este dise\u00f1o se realiza, en la mayor\u00eda de los casos, de forma manual y se vuelve especialmente dif\u00edcil en el caso de consultas que involucran gran cantidad de relaciones. Los trabajos relacionados con la generaci\u00f3n de casos de prueba para consultas sql, se centran especialmente en el estudio del nivel de cobertura, m\u00e1s que en la propia generaci\u00f3n. En esta tesis tratamos el problema de la generaci\u00f3n autom\u00e1tica de dichos casos de prueba. Los casos de prueba permiten evaluar de forma sencilla si el resultado de una consulta es el esperado. Sin embargo, en el caso de consultas sql que se basan en vistas, el que una vista produzca un resultado incorrecto no implica necesariamente que sea incorrecta; una vista puede producir un resultado inesperado a causa de la err\u00f3nea definici\u00f3n de otras vistas de las cuales depende. En estos casos, la falta de herramientas apropiadas hace dif\u00edcil encontrar el fragmento de c\u00f3digo al que achacar el error. Los complejos mecanismos de ejecuci\u00f3n de estos lenguajes dificultan la ejecuci\u00f3n paso a paso t\u00edpica de otros paradigmas. Es por ello que en esta tesis aplicamos las t\u00e9cnicas de depuraci\u00f3n declarativa como mecanismo para la detecci\u00f3n y diagnosis de errores en consultas sql que involucran varias vistas.En los \u00faltimos tiempos se ha incrementado el inter\u00e9s por los lenguajes de acceso a bases de datos semiestructuradas como xquery y xpath. Al igual que suced\u00eda en los casos de las bases de datos relacionales, se trata generalmente de consultas sobre documentos de gran tama\u00f1o, lo que dificulta tanto la prueba como la depuraci\u00f3n de las consultas. En esta tesis se ha realizado una inmersi\u00f3n del lenguaje de consulta xpath\/xquery en el lenguaje l\u00f3gico-funcional toy. Esto nos ha permitido utilizar patrones de orden superior y las capacidades de generaci\u00f3n y prueba propias de la programaci\u00f3n l\u00f3gico-funcional para localizar errores en las consultas y obtener casos de prueba en forma de documentos xml.<\/p>\n<p>&nbsp;<\/p>\n<h3>Datos acad\u00e9micos de la tesis doctoral \u00ab<strong>T\u00e9cnicas de detecci\u00f3n y diagnosis de errores en consultas de bases de datos<\/strong>\u00ab<\/h3>\n<ul>\n<li><strong>T\u00edtulo de la tesis:<\/strong>\u00a0 T\u00e9cnicas de detecci\u00f3n y diagnosis de errores en consultas de bases de datos <\/li>\n<li><strong>Autor:<\/strong>\u00a0 Yolanda Garcia Ruiz <\/li>\n<li><strong>Universidad:<\/strong>\u00a0 Complutense de Madrid<\/li>\n<li><strong>Fecha de lectura de la tesis:<\/strong>\u00a0 08\/06\/2014<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<h3>Direcci\u00f3n y tribunal<\/h3>\n<ul>\n<li><strong>Director de la tesis<\/strong>\n<ul>\n<li>Rafael Caballero Roldan<\/li>\n<\/ul>\n<\/li>\n<li><strong>Tribunal<\/strong>\n<ul>\n<li>Presidente del tribunal: Francisco javier Lopez fraguas <\/li>\n<li>Antonio  Jos\u00e9 Fern\u00e1ndez leiva (vocal)<\/li>\n<li>damiano Zanardini (vocal)<\/li>\n<li>Mar\u00eda Alpuente frasnedo (vocal)<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Tesis doctoral de Yolanda Garcia Ruiz El objetivo de esta tesis es el dise\u00f1o y desarrollo de t\u00e9cnicas para la [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-gradient":""}},"footnotes":""},"categories":[1890,986],"tags":[48834,228864,6475,6479,85858,228863],"class_list":["post-115772","post","type-post","status-publish","format-standard","hentry","category-ciencia-de-los-ordenadores","category-complutense-de-madrid","tag-antonio-jose-fernandez-leiva","tag-damiano-zanardini","tag-francisco-javier-lopez-fraguas","tag-maria-alpuente-frasnedo","tag-rafael-caballero-roldan","tag-yolanda-garcia-ruiz"],"_links":{"self":[{"href":"https:\/\/www.deberes.net\/tesis\/wp-json\/wp\/v2\/posts\/115772","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.deberes.net\/tesis\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.deberes.net\/tesis\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.deberes.net\/tesis\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.deberes.net\/tesis\/wp-json\/wp\/v2\/comments?post=115772"}],"version-history":[{"count":0,"href":"https:\/\/www.deberes.net\/tesis\/wp-json\/wp\/v2\/posts\/115772\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.deberes.net\/tesis\/wp-json\/wp\/v2\/media?parent=115772"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.deberes.net\/tesis\/wp-json\/wp\/v2\/categories?post=115772"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.deberes.net\/tesis\/wp-json\/wp\/v2\/tags?post=115772"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}