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
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
  • 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