O que é engenharia reversa em Engenharia de dados?

A trajetória de um desenvolvedor geralmente começa com a criação de aplicações bem básicas – como a tradicional impressão de um “Hello World” na tela. É somente com o tempo que o estudante passa a criar programas mais complexos e que exigem estruturas como um banco de dados para o armazenamento de informações.

Ao continuar o seu crescimento profissional, o programador também pode acabar se deparando com a necessidade de documentar um software que infelizmente não passou por essa importante fase de desenvolvimento.

Como fazer isso? Que estratégias existem para auxiliar no entendimento do funcionamento de um programa depois que ele já está pronto?

A resposta para essa pergunta está baseada na técnica chamada engenharia reversa, que pode ser aplicada em banco de dados para construir o “esqueleto” de funcionamento de um software.

Vamos entender como isso é realizado e o que isso tem a ver com uma carreira de Engenharia de Dados?

Baixe o guia completo sobre a profissão de

Engenharia de Dados

O que é engenharia reversa?

A engenharia reversa ajuda a entender o funcionamento de sistemas ou objetos.

O termo não é novo e trata-se de uma técnica que provavelmente já é utilizada há milênios pela humanidade. A engenharia reversa consiste em destrinchar algo (um objeto, um sistema ou qualquer outra coisa) para compreender o seu funcionamento. O objetivo é identificar as estruturas, o modo de operação e aprender como aquilo foi construído – e adquirir a capacidade de conceber um igual.

Dentro do contexto tecnológico, a engenharia reversa é utilizada para compreender o funcionamento de programas, sistemas, banco de dados, dispositivos e até mesmo malwares. Dessa forma, é possível trabalhar sobre esse objeto e, dependendo da situação, até mesmo replicá-lo ou criar soluções que impeçam a sua multiplicação (no caso de um vírus, por exemplo).

Como a engenharia reversa é aplicada em Engenharia de Dados?

Lidar com uma grande quantidade de dados sem ao menos ter uma pista de como aqueles recursos foram construídos ou acumulados é um empecilho para iniciar qualquer trabalho nessa área.

Essa é, infelizmente, a realidade de desenvolvedores que precisam fazer mudanças em um software, por exemplo, e não encontram uma documentação que diga por onde começar. A mesma analogia pode ser aplicada à Engenharia de Dados. Não é raro um profissional da área se deparar com uma base de dados sem registros históricos ou informações que ajudem a interpretá-la.

É aqui que entra a engenharia reversa e a sua capacidade de gerar compreensão a partir de um estado em que o entendimento não é tão simples. Às vezes estamos falando de uma base gigantesca e extensamente populada, ou podemos estar falando de um banco de dados enxuto, mas com ligações complexas.

Um exemplo prático

Para mostrar como a engenharia reversa pode ser aplicada na prática em um banco de dados, vamos utilizar um exemplo simples criando um dicionário de dados a partir de tabelas do SQL Server. Considere as tabelas a seguir:

Tabelas de exemplo que precisam ser compreendidas pelo engenheiro de dados.

Para a sua construção, utilizamos os seguintes scripts SQL (o que pode variar dependendo do sistema de gerenciamento de banco de dados que você utiliza):

Código para a construção das tabelas de exemplo.

Como ter uma compreensão melhor dos dados desse banco sem precisar depender da visualização de tabelas?

Uma solução seria criar um diagrama entidade-relacionamento (DER), uma possibilidade oferecida por alguns sistemas gratuitos. Porém, outra alternativa viável seria criar um dicionário de dados que permite analisar todos os objetivos de um modelo de forma textual.

Isso poderia ser feito através do seguinte código:

Código que cria um dicionário de dados e ajuda a aumentar a compressão das tabelas.

A função SELECT fez a união (JOIN) dos objetos que queremos visualizar mostrando o nome das colunas de acordo com cada um dos campos da tabela. Esse tipo de script pode ser utilizado em qualquer situação em que você necessite gerar um dicionário de dados em um banco de dados já existente.

Há muitas outras formas de aplicar a engenharia reversa para auxiliar o trabalho de um engenheiro de dados. Esse é apenas um exemplo e que demonstra a importância dessa técnica para “desembaraçar” o trabalho de um profissional que está lidando com dificuldades para interpretar ou mesmo entender uma base de dados.

Onde aprender mais?

O conhecimento de como aplicar a engenharia reversa pode ser adquirido na prática, mas as circunstâncias para aprender essa técnica nem sempre são favoráveis. Por isso, buscar um treinamento profissional pode prepará-lo para enfrentar esse tipo de desafio e muitos outros.

Nos cursos oferecidos pelo Instituto Infnet – referência no preparo de profissionais na área de Tecnologia da Informação –, você pode encontrar soluções ideais para quem quer se especializar na área de Engenharia de Dados.

Alguns cursos recomendados nesse campo:

Baixe o guia completo sobre a profissão de

Engenharia de Dados