Um novo processo para refatoração de bancos de dados [thesis]

Márcia Beatriz Pereira Domingues
Este exemplar foi revisado e corrigido em relação à versão original, sob responsabilidade única do autor e com a anuência de seu orientador. São Paulo, 06 de Junho de 2014. Assinatura do autor ____________________________ Assinatura do orientador _______________________ FICHA CATALOGRÁFICA Domingues, Márcia Beatriz Pereira Um novo processo para refatoração de banco de dados / M.B.P. Domingues. --versão corr. --São Paulo, 2014. 112 p. Tese (Doutorado) -AGRADECIMENTOS Agradeço primeiramente a
more » ... , que nos momentos difíceis me deu forças para superar os obstáculos e continuar a caminhar. Ao meu orientador Jorge Rady de Almeida Júnior que soube com paciência e sabedoria me conduzir durante esse trabalho. Agradeço de coração tudo o que me ensinou, as oportunidades que me deu e a atenção que teve comigo. Aos meus pais, Márcia e Davi que tanto amo, que muito se empenharam para me proporcionar mais essa conquista profissional. Aos meus queridos irmãos, Fábio e Naíra, que são tão especiais na minha vida. Ao meu marido Helves, pelo apoio, compreensão e motivação para realização deste trabalho. Ao professor Antônio Mauro Saraiva, pela confiança e oportunidade de contribuir com os trabalhos do LAA. Aos colegas do Laboratório de Automação Agrícola, Wilian e Allan, pela parceria em todos os trabalhos que realizamos juntos. Aos colegas do Grupo de Análise de Segurança, Andréia, Lúcio, Ricardo, Antônio e Daniel, pela disposição em me ajudar quando precisei. Ao meu amigo e professor de inglês Claudio Maia, pela ajuda e apoio nos textos e trabalhos que apresentei. Aos meus amigos Laura Lourenço, Rafael Will, pelo apoio e torcida de sempre. Agradeço a todas as pessoas que direta ou indiretamente contribuíram de alguma forma para a conclusão deste trabalho. Palavras Chave: Evolução de banco de dados. Refatoração de banco de dados. Esquemas. Performance de consultas. Processo. ABSTRACT The development and maintenance of a database is an important challenge, due to frequent changes and requirements from users. To follow these changes, the database schema suffers structural modifications that, many times, negatively affect its performance and the result of the queries, such as: unnecessary relationships, primary and foreign keys, created strongly attached to the domain, with obsolete attributes or inadequate types of attributes. The literature about Agile Methods for software development suggests the use of refactoring for the evolution of database schemas when there are requirement changes. A refactoring is a simple change that improves the design, but it does not alter the semantics of the data model neither adds new functionalities. This thesis aims at proposing a new process to apply many refactoring to the database schema. This process is defined by a set of refactoring tasks, which is executed in a controlled, secure and automatized form, aiming at improving the design of the schema and allowing the DBA to know exactly the impact on the performance of the database for each refactoring performed. A notation BPMN has been used to represent and execute the tasks of the workflow. As a case study, a relational database, which is used by an information system for precision agriculture was used. This system is web based, and needs to perform large consultations to transfer graphics with geo-referential information. a) Escolha do esquema do banco de dados para ser usado: SET SCHEMA 'estudo'; b) Script para selecionar todas as linhas da tabela productivity_raw para dados de produtividade com id=1: SELECT prod_point_id, prod_id, p.plot_id, pw.farm_id, prod_point_prod_drymat, prod_point_moisture, prod_point_plat_width, prod_point_distance, prod_point_geom, prod_point_mac_speed, prod_point_date, prod_point_direction, prod_point_timelength, prod_point_shift_x, prod_point_shift_y, prod_point_culture_flow, prod_point_grain_temp, prod_point_prod_moist, prod_point_prodvol_moist, prod_point_prodvol_drymat, prod_point_productivity, prod_point_round, longitude, latitude FROM estudo.productivity_raw WHERE prod_id = 1 c) Exemplo de script para inserir uma linha na tabela productivity_raw INSERT INTO productivity_raw (prod_point_id, prod_id, plot_id, farm_id, prod_point_prod_drymat, prod_point_moisture, prod_point_plat_width, prod_point_distance, prod_point_geom, prod_point_mac_speed, prod_point_date, prod_point_direction, prod_point_timelength, prod_point_shift_x, prod_point_shift_y, prod_point_culture_flow, prod_point_grain_temp, prod_point_prod_moist, prod_point_prodvol_moist, prod_point_prodvol_drymat, prod_point_productivity, prod_point_round, longitude, latitude) VALUES (50245,
doi:10.11606/t.3.2014.tde-29122014-165740 fatcat:hlm42krufzf37dzxkwsypdhaqi