Skip to content

GitLab

  • Menu
Projects Groups Snippets
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
  • W Wiki
  • Project information
    • Project information
    • Activity
    • Labels
    • Planning hierarchy
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 0
    • Issues 0
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 0
    • Merge requests 0
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Monitor
    • Monitor
    • Incidents
  • Packages & Registries
    • Packages & Registries
    • Package Registry
    • Infrastructure Registry
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • Vincula
  • Wiki
  • Wiki
  • Banco de Dados

Last edited by Artur Humberto Silva Plentz Sep 09, 2025
Page history
This is an old version of this page. You can view the most recent version or browse the history.

Banco de Dados

Home Convenções e Diretrizes Tecnologias Banco de dados

O banco de dados escolhido foi o PostgreSQL que roda dentro de um container Docker, o que garante que todos os desenvolvedores possuam o mesmo ambiente. Foi escolhido o banco de dados relacional devido a integridade e coesão que os dados devem apresentar entre si para que sejam utilizados e manipulados ao longo da aplicação. Além disso, a nível de código, foi utilizada a biblioteca SQLAlchemy, responsável por facilitar o mapeamento das entidades como classes de Python.

Em relação a modelagem, existem oito tabelas que se relacionam no projeto conforme a imagem abaixo.

BANCO_VINCULA__1_

  • User: armazena as informações sobre os usuários da aplicação. Possui campo de _id _(chave primária), name, password e role(indica o cargo do usuário no sistema e vai ser usado para níveis de permissão na aplicação)

  • Case: armazena as informações de cada caso a ser investigado. Possui campo de _id _(chave primária), _case_number _(utilizado pelo MP para identificar um caso), name, description, status, creation_date, update_date e owner (indica quem é o dono do caso, pois é uma chave estrangeira para a tabela de User).

  • Archive: armazena as informações dos arquivos submetidos pelo usuário para poderem compor o caso. Possui campo de id (chave primária), url (vai indicar o arquivo em si), creation_date e case_id (relaciona o arquivo com o caso do qual faz parte)

  • Suspect: são as pessoas suspeitas de um caso. Possui id (chave primária), name, cpf_cnpj, phone_number e case_id (para poder relacionar o registro com o caso do qual faz parte)

  • Analyzed_person: é uma tabela auxiliar para armazenar os dados de pessoas ou empresas citadas ao longo dos arquivos de fontes externas, como o simba, sittel e o rif. Possui atributo de id (chave primária), cpf_cnpj, name, phone, address.

  • Data_simba_detailed_extract: armazena as informações provenientes do SIMBA. Possui atributo de id (chave primária), fk_analysed_person (chave estrangeira para tabela de analyzed_person), name e fk_archive_id (chave estrangeira para a tabela de Archive).

  • Data_sittel: armazena as informações provenientes do SITTEL. Possui atributo de id (chave primária), originating_number (número que fez a ligação), destination_number (número que recebeu a ligação), fk_subscriber_origin (relaciona na tabela de analyzed_person quem é o dono da linha que fez a ligação), fk_assigned_origin (relaciona na tabela de analyzed_person quem foi a pessoa que de fato fez a ligação), fk_subscriber_destination (relaciona na tabela de analyzed_person quem é o dono da linha que recebeu a ligação), fk_assigned_destination (relaciona na tabela de analyzed_person quem é que de fato recebeu a ligação), fk_archive_id (chave estrangeira para a tabela de Archive).

  • Data_riffs: armazena as informações provenientes do RIF. Possui atributo de id (chave primária), indexer, rif_number, name_involved, fk_analysed_person (chave estrangeira para tabela de analyzed_person), type_envolved, fk_archive_id (chave estrangeira para a tabela de Archive).

image

image

image

image

image

{{image.png}}

Clone repository
  • Arquitetura
  • Banco de Dados
  • Convenções e Diretrizes
  • Designs e Mockups
  • Tecnologias
  • Home