Database Repairs with Answer Set Programming
Total Page:16
File Type:pdf, Size:1020Kb
Ricardo Jorge de Aragão Vaz Alves Licenciatura em Engenharia Informática Database Repairs With Answer Set Programming Dissertação para obtenção do Grau de Mestre em Engenharia Informática Orientador: Prof. Doutor João Alexandre C. Pinheiro Leite, Prof. Auxiliar, Universidade Nova de Lisboa Júri: Presidente: Prof. Doutor Adriano Martins Lopes Arguentes: Profa. Doutora Maria Inês C. de Campos Lynce Faria Vogais: Prof. Doutor João Alexandre C. Pinheiro Leite Novembro, 2011 ii iii Database Repairs With Answer Set Programming Copyright c Ricardo Jorge de Aragão Vaz Alves, Faculdade de Ciências e Tecnologia, Universidade Nova de Lisboa A Faculdade de Ciências e Tecnologia e a Universidade Nova de Lisboa têm o direito, perpétuo e sem limites geográficos, de arquivar e publicar esta dissertação através de ex- emplares impressos reproduzidos em papel ou de forma digital, ou por qualquer outro meio conhecido ou que venha a ser inventado, e de a divulgar através de repositórios científicos e de admitir a sua cópia e distribuição com objectivos educacionais ou de in- vestigação, não comerciais, desde que seja dado crédito ao autor e editor. iv To my parents vi Abstract Integrity constraints play an important part in database design. They are what allow databases to store accurate information, since they impose some properties that must always hold. However, none of the existing Database Management Systems allows the specification of new integrity constraints if the information stored is already violating these new integrity constraints. In this dissertation, we developed DRSys, an application that allows the user to spec- ify integrity constraints that he wishes to enforce in the database. If the database becomes inconsistent with respect to such integrity constraints, DRSys returns to the user possi- ble ways to restore consistency, by inserting or deleting tuples into/from the original database, creating a new consistent database, a database repair. Also, since we are deal- ing with databases, we want to change as little information as possible, so DRSys offers the user two distinct minimality criteria when repairing the database: minimality under set inclusion or minimality under cardinality of operations. We approached the database repairing problem by using the capacity of problem solv- ing offered by Answer Set Programming (ASP), which benefits from the simple specifica- tion of problems, and the existence of “Solvers” that solve those problems in an efficient manner. DRSys is a database repair application that was built on top of the database manage- ment system PostgreSQL. Furthermore, we developed a graphical user interface, to aid the user in the whole process of defining new integrity constraints and in the process of database repairing. We evaluate the performance and scalability of DRSys, by presenting several tests in different situations, exploring particular features of it as well, in order to understand the scalability of DRSys. Keywords: answer set programming, relational databases, integrity constraints, incon- sistency, repairs, minimality. vii viii Resumo Restrições de integridade desempenham um papel importantíssimo na implementa- ção e desenho de uma base de dados. Elas permitem que as bases de dados contenham informação mais “exacta”, visto que impõem certas propriedades que têm que ser res- peitadas. Porém, nenhum dos actuais Sistemas de Gestão de Bases de Dados permite a especificação de novas restrições de integridade se a informação guardada na base de dados já estiver a violar estas novas restrições. Nesta dissertação, desenvolvemos DRSys, uma aplicação que permite ao utilizador a especificação de restrições de integridade que devem ser impostas na base de dados. Se esta ficar inconsistente, de acordo com as restrições de integridade, DRSys retorna ao utilizador possiveis formas de restaurar consistência, através da inserção e/ou remoção de tuplos da base de dados original, gerando uma nova base de dados consistente, uma reparação, . Visto que estamos a lidar com bases de dados, queremos alterar o mínimo de informação possível. Desta forma, DRSys oferece ao utilizador dois critérios distintos de minimalidade: minimalidade sob inclusão de conjuntos ou minimalidade sob cardinali- dade de operações (inserções e/ou remoções). Abordámos o problema da reparação de bases de dados usando a capacidade de reso- lução de problemas oferecida pela Programação Por Conjuntos de Resposta, que benificia da simples espeficicação de problemas, e da existência de “Solvers” que resolvem estes problemas de uma maneira eficiente. DRSys é uma aplicação de reparação de bases de dados que foi construído em cima do sistema de gestão de bases de dados PostgreSQL. Desenvolvemos também uma interface gráfica orientada ao utilizador, de forma a ajudar o utilizador no processo da especifica- ção de restrições de integridade e reparação da base de dados. Avaliamos a performance e escalabilidade de DRSys, mostrando diversos testes em diversas situações, explorando funcionalidades particulares de DRSys, de forma a com- preender melhor a sua escalabilidade. ix x Palavras-chave: programação por conjuntos de resposta, bases de dados relacionais, restrições de integridade, inconsistência, reparação, minimalidade. Contents 1 Introduction1 2 Preliminaries7 2.1 First Order Logic.................................7 2.1.1 FOL - Syntax...............................7 2.1.2 FOL - Semantics..............................9 2.2 Relational Databases............................... 10 2.2.1 Relational Model............................. 11 2.2.2 Integrity Constraints (IC’s)....................... 15 2.3 Answer Set Programming............................ 19 2.3.1 Syntax................................... 19 2.3.2 Semantics................................. 20 3 Database Repair 23 3.1 Inconsistency................................... 23 3.2 Repairs....................................... 24 4 Related Work 29 4.1 Consistent Query Answering.......................... 29 4.2 Database Repair.................................. 33 5 Database Repair with Answer Set Programming 45 5.1 General Approach................................. 45 5.2 Minimality Statements.............................. 57 5.2.1 Cardinality Distance........................... 58 5.2.2 Set Inclusion Distance.......................... 59 6 Database Repair System - DRSys 63 6.1 Functionalities and Graphical User Interface................. 64 6.1.1 Database Connection Menu....................... 66 xi xii CONTENTS 6.1.2 Main Menu................................ 66 6.1.3 Constraints Edition Menu........................ 67 6.1.4 Operations Menu............................. 68 6.1.5 Insertions Menu.............................. 68 6.1.6 Deletions Menu.............................. 70 6.1.7 Repair Menu............................... 70 6.1.8 Repair Choice Menu........................... 71 6.2 DRSys Architecture................................ 72 7 Experimental Evaluation 85 7.1 Experimental Results............................... 85 7.1.1 Influence of the Number of Irrelevant Relations Involved in the Re- pair Process................................ 86 7.1.2 Influence of the Number of Integrity Constraints Involved in the Repair Process............................... 88 7.1.3 Influence of the number of operations per relation and overall num- ber of operations in the repair process................. 90 7.1.4 Influence of the Number of Irrelevant Integrity Constraints.... 92 7.1.5 Influence of the of Size of the Database in the Repair Process.... 94 7.2 Comparison.................................... 95 7.2.1 Functionalities.............................. 95 7.2.2 Quality................................... 97 7.2.3 Applicability............................... 97 7.2.4 Integrity Constraints Mapping into Logic Programs......... 97 7.2.5 Performance and Scalability....................... 98 7.2.6 Parametrization Requirements..................... 98 8 Conclusions and Future Work 101 List of Figures 2.1 Client relation................................... 12 4.1 ProbClean repair.................................. 42 6.1 TCP-W database schema............................. 64 6.2 DRSys flowchart.................................. 65 6.3 Database Connection............................... 66 6.4 Main Menu..................................... 67 6.5 Edition Menu................................... 67 6.6 Operations Menu................................. 68 6.7 Insertions menu.................................. 68 6.8 Extra Tuples.................................... 69 6.9 Limit Insertions.................................. 69 6.10 Deletions Menu.................................. 70 6.11 Repair Menu.................................... 70 6.12 Forbid Removals................................. 71 6.13 Repair Choice................................... 72 6.14 DRSys Architecture................................ 73 6.15 Dependencies Graph considering deletions.................. 77 6.16 Dependencies Graph considering insertions.................. 77 7.1 Influence of the number of relations involved in the repair process..... 87 7.2 Influence of the number of constraints involved in the repair process... 89 7.3 Influence of the number of user defined deletions in the repair process.. 91 7.4 Influence of the number irrelevant integrity constraints in the repair process 93 7.5 Influence of the size of the database in the repair process.......... 95 xiii xiv LIST OF FIGURES List of Tables 1.1 Employees table..................................3 1.2 Employees Repair.................................4