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 17, 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
  • Formulários e Fluxos Específicos
    • Form
    • MBA Form (mba_form)
    • Compliance Form (compliance_form)
    • Recovery Form (recovery_form)
  • Materiais e Apreensões
    • Seized Material (seized_material)
    • Seized Drug (seized_drug)
    • Seized Money (seized_money)
  • Agentes e Equipes
    • Agent
    • Team
    • Team Agent (team_agent)
  • Reuniões
    • Meeting
  • Controle de Permissões
    • Role
    • Permission
    • Role Permissions (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 conduzida pelo GAECO.

Campos-chave:

  • id (PK), name, description, status
  • responsible_prosecutor_office, responsible_prosecutor
  • pic_number, judicial_process, judicial_body, judicial_authority
  • created_at, updated_at

Target

Função: Entidade central que representa o alvo da operação.

Campos-chave:

  • id (PK), id_operation (FK), id_location (FK), id_hospital (FK)
  • target_number, scheduled_date
  • name, cpf, rg
  • parents, briefing_location, environment_description
  • relationships, observations, warrant_url
  • targeted_materials, mba_number, ended_at
  • created_at, updated_at

Location

Função: Endereço vinculado ao Target.

Campos:

  • id (PK), owner, latitude, longitude
  • image_url, address, postal_code, number, complement
  • created_at, updated_at

Hospital

Função: Instituição de saúde vinculada ao Target.

Campos:

  • id (PK), latitude, longitude, address
  • postal_code, number, complement
  • created_at, updated_at

Formulários e Fluxos Específicos


Form

Função: Registro base utilizado em diferentes fluxos.

Campos:

  • id (PK), id_target (FK)
  • start_time, end_time
  • entry_type
  • created_at, updated_at

MBA Form (mba_form)

Função: Registro do módulo MBA Digital.

Campos:

  • id (PK), id_target (FK — unique)
  • objective, additional_info
  • created_at, updated_at

Compliance Form (compliance_form)

Função: Informações de cumprimento de mandado ou medida cautelar.

Campos:

  • id (PK), id_target (FK — unique)
  • issuance_date, issuing_judge
  • arrest_observations
  • created_at, updated_at

Recovery Form (recovery_form)

Função: Registro do módulo Recupera.

Campos:

  • id (PK), id_target (FK — unique)
  • asset_type, asset_description
  • estimated_value, asset_location
  • originating_process
  • created_at, updated_at

Materiais e Apreensões


Seized Material (seized_material)

Função: Materiais apreendidos durante a operação.

Campos:

  • id (PK), id_target (FK)
  • description, type, found_location
  • seal_number, image_url
  • created_at, updated_at

Seized Drug (seized_drug)

Função: Registro de substâncias apreendidas.

Campos:

  • id (PK), id_target (FK)
  • drug_type, amount

Seized Money (seized_money)

Função: Valores apreendidos.

Campos:

  • id (PK), id_target (FK)
  • currency, amount

Agentes e Equipes


Agent

Função: Representa usuários operacionais.

Campos:

  • id (PK), name, occupation, role
  • institution, unit
  • rg, cpf, phone, password
  • created_at, updated_at

Team

Função: Equipe associada a um Target.

Campos:

  • id (PK), id_target (FK), leader_id (FK → Agent)
  • created_at, updated_at

Team Agent (team_agent)

Função: Tabela associativa que relaciona Agentes com Equipes.

Campos:

  • id (PK), id_team (FK), id_agent (FK)

Reuniões


Meeting

Função: Reuniões e briefings operacionais.

Campos:

  • id (PK), id_target (FK)
  • location, scheduled_date
  • created_at, updated_at

Controle de Permissões


Role

Função: Papel do usuário.

Campos:

  • id (PK), title, description

Permission

Função: Ação autorizável no sistema.

Campos:

  • id (PK), title, description

Role Permissions (role_permissions)

Função: Tabela associativa entre papéis e permissões.

Campos:

  • id_role (FK), id_permission (FK)

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