{"id":35209,"date":"2025-12-19T12:14:13","date_gmt":"2025-12-19T11:14:13","guid":{"rendered":"https:\/\/inlab.fib.upc.edu\/noticias\/eliminacion-de-redundancias-en-el-descubrimiento-de-dcs"},"modified":"2025-12-19T12:31:40","modified_gmt":"2025-12-19T11:31:40","slug":"eliminacion-de-redundancias-en-el-descubrimiento-de-dcs","status":"publish","type":"post","link":"https:\/\/inlab.fib.upc.edu\/es\/articulos\/eliminacion-de-redundancias-en-el-descubrimiento-de-dcs","title":{"rendered":"Eliminaci\u00f3n de redundancias en el descubrimiento de DCs"},"content":{"rendered":"\n<h6 class=\"wp-block-heading\">Autores: <a href=\"https:\/\/inlab.fib.upc.edu\/persones\/oriol-catasus-i\">Oriol Catasus<\/a>, <a href=\"https:\/\/inlab.fib.upc.edu\/persones\/xavier-oriol\">Xavier Oriol<\/a> i <a href=\"https:\/\/inlab.fib.upc.edu\/persones\/ernest-teniente\">Ernest Teniente<\/a><\/h6>\n\n<p>Cuando trabajamos con bases de datos, el escenario ideal es sencillo: primero, estudiamos el dominio; luego, bas\u00e1ndonos en esto, definimos la estructura de la base de datos y las restricciones de integridad para que todo funcione a la perfecci\u00f3n; finalmente, una vez que tenemos todo dise\u00f1ado, insertamos los datos en la base de datos, lo que garantiza que estos datos siempre cumplir\u00e1n con las reglas de integridad que hemos definido.<\/p>\n\n<p>El problema es que este escenario ideal no siempre es posible. Hoy en d\u00eda, especialmente en el mundo del Big Data, nos encontramos a menudo con proyectos donde se generan grandes vol\u00famenes de datos no estructurados, sin un esquema claro ni restricciones predefinidas. Y aqu\u00ed es donde entran en juego los algoritmos que descubren autom\u00e1ticamente restricciones de integridad a partir de los datos.  <\/p>\n\n<h2 class=\"wp-block-heading\">Qu\u00e9 son las <em>denial constraints<\/em> (DCs)?<\/h2>\n\n<p>Las Denial Constraints (DCs), o restricciones de denegaci\u00f3n, son una forma muy potente y flexible de describir patrones prohibidos en los datos. Su gran ventaja es que pueden expresar restricciones complejas que otros formalismos no pueden. <\/p>\n\n<p>Por ejemplo, imaginemos una universidad con una pol\u00edtica de tasas que garantiza que los estudiantes con mejores notas paguen menos tasas en comparaci\u00f3n con otros estudiantes con peores notas, siempre dentro de la misma asignatura. Esta regla es dif\u00edcil de expresar con mecanismos tradicionales, pero con una DC se puede hacer sin problemas: <\/p>\n\n<p><\/p>\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"544\" height=\"29\" src=\"https:\/\/inlab.fib.upc.edu\/wp-content\/uploads\/2025\/12\/image-3.png\" alt=\"\" class=\"wp-image-35192\" srcset=\"https:\/\/inlab.fib.upc.edu\/wp-content\/uploads\/2025\/12\/image-3.png 544w, https:\/\/inlab.fib.upc.edu\/wp-content\/uploads\/2025\/12\/image-3-300x16.png 300w\" sizes=\"(max-width: 544px) 100vw, 544px\" \/><\/figure>\n\n<h2 class=\"wp-block-heading\">El problema: un alud de restricciones<\/h2>\n\n<p>Debido a su gran expresividad, en los \u00faltimos a\u00f1os se han desarrollado varios algoritmos que permiten descubrir las restricciones de integridad en forma de DC a partir de un conjunto de datos. Sin embargo, estos algoritmos presentan un problema evidente que afecta a todos ellos y dificulta su adopci\u00f3n pr\u00e1ctica: la enorme cantidad de DCs descubiertas. <\/p>\n\n<p>En nuestras pruebas hemos podido comprobar c\u00f3mo conjuntos de datos peque\u00f1os con menos de 10 atributos pueden llegar a generar cientos de restricciones, lo que hace inviable cualquier tipo de interpretaci\u00f3n de las restricciones descubiertas.<\/p>\n\n<p>Esto ocurre porque los algoritmos de descubrimiento de DCs generan muchas DCs redundantes, es decir, son restricciones que significan lo mismo pero expresadas con palabras diferentes. En nuestros experimentos hemos visto casos donde hasta el 95% de las DCs descubiertas son redundantes. <\/p>\n\n<h2 class=\"wp-block-heading\">Nuestra soluci\u00f3n<\/h2>\n\n<p>Esto ocurre porque los algoritmos de descubrimiento de DCs generan muchas DCs redundantes, es decir, son restricciones que significan lo mismo pero expresadas con palabras diferentes. En nuestros experimentos hemos visto casos donde hasta el 95% de las DCs descubiertas son redundantes. <\/p>\n\n<p>La imagen de abajo muestra un diagrama simplificado de nuestro sistema: toma como entrada las DCs descubiertas por los algoritmos existentes, las traduce a Datalog, las minimiza mediante el IMP Reasoner y luego las vuelve a traducir a notaci\u00f3n DC, dando como resultado el conjunto m\u00ednimo de las restricciones originales.<\/p>\n\n<figure class=\"wp-block-image size-full\"><img fetchpriority=\"high\" decoding=\"async\" width=\"681\" height=\"521\" src=\"https:\/\/inlab.fib.upc.edu\/wp-content\/uploads\/2025\/12\/image-2.png\" alt=\"\" class=\"wp-image-35189\" srcset=\"https:\/\/inlab.fib.upc.edu\/wp-content\/uploads\/2025\/12\/image-2.png 681w, https:\/\/inlab.fib.upc.edu\/wp-content\/uploads\/2025\/12\/image-2-300x230.png 300w\" sizes=\"(max-width: 681px) 100vw, 681px\" \/><\/figure>\n\n<p>Hemos probado este enfoque con diferentes tipos de datos y hemos encontrado que, en todos los experimentos, entre el 70% y el 95% de las restricciones descubiertas eran redundantes y se pod\u00edan eliminar, pasando de un conjunto inicial de cientos de restricciones a un conjunto m\u00ednimo de entre 30 y 60 DCs. Esto permite que el conjunto de DCs resultante sea una herramienta \u00fatil en la pr\u00e1ctica para que dise\u00f1adores y expertos puedan extraer conocimiento y reglas de negocio sobre el dominio. <\/p>\n\n<p>Como pr\u00f3ximos pasos, nos gustar\u00eda explorar el desarrollo de nuevas heur\u00edsticas para ser capaces de predecir cu\u00e1ndo una DC es probable que sea redundante dado un peque\u00f1o subconjunto de las DCs iniciales, lo que mejorar\u00eda significativamente la eficiencia de nuestra soluci\u00f3n en escenarios donde tenemos miles de restricciones por analizar.<\/p>\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Autores: Oriol Catasus, Xavier Oriol i Ernest Teniente Cuando trabajamos con bases de datos, el escenario ideal es sencillo: primero, estudiamos el dominio; luego, bas\u00e1ndonos en esto, definimos la estructura de la base de datos y las restricciones de integridad para que todo funcione a la perfecci\u00f3n; finalmente, una vez que tenemos todo dise\u00f1ado, insertamos [&hellip;]<\/p>\n","protected":false},"author":1302,"featured_media":35206,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[496],"tags":[],"experteses":[],"class_list":["post-35209","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-articulos"],"acf":[],"_links":{"self":[{"href":"https:\/\/inlab.fib.upc.edu\/es\/wp-json\/wp\/v2\/posts\/35209","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/inlab.fib.upc.edu\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/inlab.fib.upc.edu\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/inlab.fib.upc.edu\/es\/wp-json\/wp\/v2\/users\/1302"}],"replies":[{"embeddable":true,"href":"https:\/\/inlab.fib.upc.edu\/es\/wp-json\/wp\/v2\/comments?post=35209"}],"version-history":[{"count":1,"href":"https:\/\/inlab.fib.upc.edu\/es\/wp-json\/wp\/v2\/posts\/35209\/revisions"}],"predecessor-version":[{"id":35210,"href":"https:\/\/inlab.fib.upc.edu\/es\/wp-json\/wp\/v2\/posts\/35209\/revisions\/35210"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/inlab.fib.upc.edu\/es\/wp-json\/wp\/v2\/media\/35206"}],"wp:attachment":[{"href":"https:\/\/inlab.fib.upc.edu\/es\/wp-json\/wp\/v2\/media?parent=35209"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/inlab.fib.upc.edu\/es\/wp-json\/wp\/v2\/categories?post=35209"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/inlab.fib.upc.edu\/es\/wp-json\/wp\/v2\/tags?post=35209"},{"taxonomy":"experteses","embeddable":true,"href":"https:\/\/inlab.fib.upc.edu\/es\/wp-json\/wp\/v2\/experteses?post=35209"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}