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

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

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