Skip to main content

Banco de Dados em TinyDB

  Nesta seção, é explicado como o banco de dados da solução foi desenvolvido e como é planejado utilizá-lo no desenvolvimento do projeto. É importante mencionar que o banco de dados é TinyDB, que se trata de um tipo de banco de dados NoSQL, não relacional, e que utiliza arquivos JSON para armazenar informações. Esse tipo de banco de dados foi escolhido pela simplicidade e fácil configuração que ele apresenta, o que o torna ideal para uma prova de conceito, ou seja, um projeto de pequeno porte que não requer grandes armazenamentos de dados.

  No momento, planeja-se utilizar apenas o arquivo pipes.json para armazenamento dos dados, mas pode surgir a necessidade de criar novos arquivos JSON para armazenar os dados devido à natureza não relacional do TinyDB. O arquivo pipes.json pode ser encontrado na pasta ~/src/data-base.

Arquivos

  Dado o fato de que o TinyDB não trabalha com o sistema de tabelas, pode ser necessário criar novos arquivos JSON para armazenar informações. Atualmente, nosso projeto conta apenas com um arquivo chamado pipes.json, que armazena os dados dos canos dos reboilers. As informações contidas nesse arquivo estão escritas a seguir, na Tabela 1:

Tabela 1 - Relação entre chave e valor das informações contidas no banco de dados

ChaveValor
idint- representa o número de identificação do cano analisado
id_boilerint - representa o número de identificação do reboiler analisado
dirty_gradeint - representa a porcentagem de sujidade do cano analisado (com base na análise de visão computacional)
statusbool - verdadeiro caso o cano analisado esteja sujo e falso caso o cano analisado esteja limpo
datetimestring - ano, mês, dia, horas, minutos e segundos do momento em que o registro foi feito

Fonte: Elaborado pela equipe SugarZ3ro

O formato no qual tais dados são armazenados é o seguinte:

{
"id": <int>,
"id-boiler": <int>,
"dirty-grade": <int>,
"status": <boolean>,
"datetime": <str>
}

  A escolha das informações contidas nesta base de dados foi pensada com base nas necessidades atuais. Como o projeto foi inicialmente projetado para apenas guardar se os canos estão sujos ou não e um códio de identificação deles, foi decidido que somente haveria informações básicas de identificação dos canos para monitoramento.

  No momento, não é preciso de outras informações sobre os reboilers nem informações sobre o usuário do sistema, seguindo os pedidos e observações do cliente em relação às necessidades do sistema.

  Esta é a primeira versão da base de dados do projeto e pode sofrer alterações conforme novas necessidades. Foram realizados testes para verificar se os dados estavam sendo corretamente enviados para o arquivo JSON, utilizando dados para "dirty-grade" gerados aleatoriamente e definindo um máximo de 30% de sujeira para que o cano seja considerado limpo. A utilização do método random foi exclusiva para o primeiro teste, o que significa que ele não será utilizado na versão final do banco de dados. Além disso, conforme descrito na seção referente à API da solução, também foram realizados testes de criação, leitura e deleção de dados do banco de dados através da API.

   O percentual de 30% foi escolhido apenas para teste no momento atual. No futuro, a porcentagem máxima de sujidade de um cano para considerá-lo limpo será decidida pelo parceiro. A versão do banco de dados atual está adaptada para testes e não é necessariamente a versão final do banco de dados principal.