Skip to content

GitLab

  • Menu
Projects Groups Snippets
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
  • Operações GAECO wiki Operações GAECO 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
  • Operações GAECO
  • Operações GAECO wiki Operações GAECO wiki
  • Wiki
  • Banco de Dados

Last edited by Március Moraes Vargas Nov 18, 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 Escopo Gerência Processo Design Configuração Arquitetura Banco de Dados Continuidade

Sumário

  • Modelo Entidade Relacionamento
  • Visão Geral
  • Entidades e Atributos
    • Operation
    • Target
    • Location
    • Hospital
    • Agent
    • Team
    • Team_Agent
    • Form (Tabela Base)
    • Mba_Form (Estende Form)
    • Compliance_Form (Estende Form)
    • Recovery_Form (Estende Form)
    • Seized_Material (Tabela Base)
    • Seized_Money (Estende Seized_Material)
    • Seized_Drug (Estende Seized_Material)
    • Meeting
    • Role & Permissions
  • Relacionamentos
  • Documentação Complementar da Arquitetura de Dados
    • Escolha do PostgreSQL
    • Escolha do DBeaver
    • Dockerização do Banco
    • Integração com Hibernate (ORM)

Modelo Entidade Relacionamento

diagramabdages2

Visão Geral

O esquema do banco de dados organiza todas as informações envolvidas nas operações do GAECO/MPRS. Ele representa desde a operação em si, passando pelos alvos, equipes, agentes, locais, evidências, formulários e registros específicos dos módulos MBA Digital, Compliance e Recupera.

O Target é o eixo central da modelagem, conectando formulários, evidências, reuniões, equipes e demais informações necessárias para a execução das operações.


Entidades e Atributos


Operation

Função: Representa a operação oficial (investigação) conduzida pelo órgão, centralizando os dados administrativos e judiciais.

Campos:

  • id: Identificador único da operação (UUID).
  • name: Nome de código ou oficial da operação.
  • description: Detalhes descritivos sobre o objetivo da operação.
  • status: Estado atual (Planejamento, Em Progresso, Concluída, Cancelada).
  • responsible_prosecutor_office: Promotoria ou órgão do Ministério Público responsável.
  • responsible_prosecutor: Nome do promotor responsável.
  • pic_number: Número do Procedimento Investigatório Criminal (PIC) ou inquérito.
  • judicial_process: Número do processo judicial unificado.
  • judicial_body: Órgão julgador (ex: 1ª Vara Criminal).
  • judicial_authority: Nome do Juiz responsável.
  • created_at: Data de criação do registro.
  • updated_at: Data da última atualização.

Target

Função: Entidade central que representa o alvo da operação (pessoa ou local a ser abordado) e vincula logística e inteligência.

Campos:

  • id: Identificador único do alvo.
  • id_operation: Referência à operação a qual este alvo pertence.
  • id_location: Referência ao endereço do alvo.
  • id_hospital: Referência ao hospital mais próximo.
  • target_number: Número identificador tático do alvo.
  • scheduled_date: Data/hora agendada para a abordagem.
  • name: Nome completo do alvo (pessoa física).
  • rg: Registro Geral (documento de identidade).
  • cpf: Cadastro de Pessoas Físicas.
  • parents: Filiação (pai e mãe).
  • date_of_birth: Data de nascimento.
  • briefing_location: Local onde será realizado o briefing da equipe.
  • environment_description: Descrição do ambiente (ex: riscos, estrutura).
  • relationships: Descrição de vínculos ou comparsas.
  • observations: Observações gerais de inteligência ou segurança.
  • warrant_url: Link para o arquivo digital do mandado.
  • targeted_materials: Lista de materiais esperados para apreensão.
  • mba_number: Número do Mandado de Busca e Apreensão.
  • ended_at: Data/hora em que a ação no alvo foi finalizada.

Location

Função: Armazena dados geográficos e de endereço físico, geralmente residências ou locais de busca.

Campos:

  • id: Identificador único do local.
  • owner: Nome do proprietário do imóvel.
  • latitude: Coordenada geográfica (latitude).
  • longitude: Coordenada geográfica (longitude).
  • image_url: Link para foto da fachada ou mapa.
  • address: Nome da rua/logradouro.
  • postal_code: CEP.
  • number: Número do imóvel.
  • complement: Complemento (apto, bloco).

Hospital

Função: Pontos de referência médicos para suporte logístico e emergencial durante a operação.

Campos:

  • id: Identificador único do hospital.
  • latitude: Coordenada geográfica.
  • longitude: Coordenada geográfica.
  • address: Endereço do hospital.
  • postal_code: CEP.
  • number: Número.
  • complement: Complemento.

Agent

Função: Cadastro dos policiais e agentes envolvidos na operação.

Campos:

  • id: Identificador único do agente.
  • name: Nome completo.
  • ocupation: Cargo ou patente.
  • role: Referência ao nível de permissão no sistema.
  • institution: Instituição de origem (ex: PC, PF, PM).
  • unit: Unidade de lotação.
  • rg: Registro Geral.
  • cpf: CPF (chave única).
  • phone: Telefone de contato.
  • password: Hash da senha de acesso.

Team

Função: Define a equipe tática designada para cumprir o mandado em um alvo específico.

Campos:

  • id: Identificador da equipe.
  • id_target: Referência ao alvo da equipe.
  • leader_id: Referência ao agente líder da equipe.

Team_Agent

Função: Tabela associativa que vincula os agentes às suas respectivas equipes.

Campos:

  • id: Identificador do vínculo.
  • id_team: Referência à equipe.
  • id_agent: Referência ao agente membro.

Form (Tabela Base)

Função: Registro genérico das ações e formalizações realizadas no local do alvo.

Campos:

  • id: Identificador único do formulário.
  • id_target: Referência ao alvo relacionado.
  • start_time: Hora de início da ação.
  • end_time: Hora de término da ação.
  • entry_type: Tipo de entrada (Forçada, Permitida, Ninguém).

Mba_Form (Estende Form)

Função: Detalhamento específico para cumprimento de Mandados de Busca e Apreensão.

Campos:

  • id: Referência ao ID da tabela Form.
  • objective: Objetivo da busca.
  • additional_info: Informações adicionais.

Compliance_Form (Estende Form)

Função: Detalhamento para cumprimento de ordens judiciais (prisões, conduções).

Campos:

  • id: Referência ao ID da tabela Form.
  • issuance_date: Data de emissão da ordem.
  • issuing_judge: Juiz emissor.
  • arrest_observations: Observações sobre a detenção.

Recovery_Form (Estende Form)

Função: Registro específico para recuperação e sequestro de bens e ativos.

Campos:

  • id: Referência ao ID da tabela Form.
  • asset_type: Tipo do bem (Veículo, Imóvel, etc.).
  • asset_description: Descrição do bem.
  • estimated_value: Valor estimado.
  • asset_location: Local onde o bem estava.
  • originating_process: Processo de origem.

Seized_Material (Tabela Base)

Função: Registro central de todas as evidências e materiais apreendidos.

Campos:

  • id: Identificador único do material.
  • id_target: Referência ao alvo de origem.
  • description: Descrição do item.
  • type: Categoria do material (Eletrônico, Arma, etc.).
  • found_location: Local específico onde foi encontrado.
  • seal_number: Número do lacre da evidência.
  • image_url: Foto da evidência.

Seized_Money (Estende Seized_Material)

Função: Detalhamento específico para apreensão de numerário.

Campos:

  • id: Referência ao ID da tabela Seized_Material.
  • currency: Código da moeda (BRL, USD).
  • amount: Valor total.

Seized_Drug (Estende Seized_Material)

Função: Detalhamento específico para apreensão de entorpecentes.

Campos:

  • id: Referência ao ID da tabela Seized_Material.
  • drug_type: Tipo da droga.
  • amount: Quantidade ou peso.

Meeting

Função: Registro de briefings ou reuniões preparatórias vinculadas a um alvo.

Campos:

  • id: Identificador único da reunião.
  • id_target: Referência ao alvo.
  • location: Local da reunião.
  • scheduled_date: Data e hora agendada.

Role & Permissions

Função: Controle de Acesso Baseado em Funções (RBAC) para usuários do sistema.

Campos (Role):

  • id: ID do perfil.
  • title: Nome do perfil.
  • description: Descrição do perfil.

Campos (Permission):

  • id: ID da permissão.
  • title: Nome da permissão.
  • description: Descrição da permissão.

Campos (Role_Permissions):

  • id_role: ID do perfil.
  • id_permission: ID da permissão vinculada.

Relacionamentos

  • Operation (1) — (N) Target

  • Location (1) — (N) Target

  • Hospital (1) — (N) Target

  • Target (1) — (N) seized_material

  • Target (1) — (N) seized_drug

  • Target (1) — (N) seized_money

  • Target (1) — (N) meeting

  • Target (1) — (1) mba_form

  • Target (1) — (1) compliance_form

  • Target (1) — (1) recovery_form

  • Team (1) — (N) team_agent

  • Agent (1) — (N) team_agent

Documentação Complementar da Arquitetura de Dados


Escolha do PostgreSQL

O PostgreSQL foi adotado devido à sua confiabilidade, suporte ACID e robustez em cenários de missão crítica. Entre os benefícios:

  • integridade transacional
  • tipos avançados: JSONB, enums, arrays
  • extensões úteis: PostGIS, pgcrypto
  • compatibilidade com Hibernate e Docker

Escolha do DBeaver

Ferramenta de gerenciamento utilizada durante o desenvolvimento:

  • interface intuitiva
  • geração de diagramas ER
  • execução de scripts SQL
  • importação/exportação de dados
  • suporte a SSL e armazenamento seguro de credenciais

Dockerização do Banco

  • volumes garantem persistência
  • containers isolam comunicação
  • scripts de inicialização automatizam setup
  • permite reprodutibilidade entre máquinas

Integração com Hibernate (ORM)

Benefícios da adoção do Hibernate/JPA:

  • mapeamento direto das entidades
  • queries com JPQL e Criteria API
  • validação do schema
  • suporte a lazy loading e batching
  • integração com ferramentas de migração (Flyway/Liquibase)
Clone repository
  • Arquitetura
  • Banco de Dados
  • Design
  • Escopo
  • Home