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

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
    • Operacional e Alvos
    • Equipes e Agentes (Recursos Humanos)
    • Formulários (Estrutura de Herança)
    • Materiais Apreendidos (Estrutura de Herança)
  • Documentação Complementar do Banco
    • 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

Operacional e Alvos

  • Operation (1) — (N) Target
  • Location (1) — (N) Target
  • Hospital (1) — (N) Target
  • Meeting (1) — (N) Target

Equipes e Agentes (Recursos Humanos)

  • Agent (1) — (N) Team
  • Target (1) — (N) Team
  • Team (1) — (N) Team_Agent
  • Agent (1) — (N) Team_Agent
  • Role (1) — (N) Agent
  • Role (1) — (N) Role_Permissions
  • Permission (1) — (N) Role_Permissions

Formulários (Estrutura de Herança)

  • Target (1) — (N) Form (Um alvo pode ter vários formulários gerados)
  • Form (1) — (1) Mba_form (Herança)
  • Form (1) — (1) Compliance_form (Herança)
  • Form (1) — (1) Recovery_form (Herança)

Materiais Apreendidos (Estrutura de Herança)

  • Target (1) — (N) Seized_material
  • Seized_material (1) — (1) Seized_drug (Herança)
  • Seized_material (1) — (1) Seized_money (Herança)

Documentação Complementar do Banco

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
  • Configuração
  • Design
  • Escopo
  • Gerencia
  • Processo
  • Home