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 Bruno Rosa Duarte Aug 29, 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
  • Address
  • Warrant
  • SeizedMaterial
  • Recovery
  • Compliance
  • MbaDigital
  • Meeting
  • OperationalKit
  • Agent
  • Team
  • Relacionamentos (cardinalidades e chaves)

Modelo Entidade Relacionamento

Untitled__3_

Visão geral

Este esquema organiza operações (missões) do MPRS e toda a informação ligada a alvos (targets): endereço, mandados, materiais apreendidos, prisões/medidas (compliance), recuperações de bens, registros do MBA Digital, reuniões e kits operacionais, além de agentes e equipes. O Target é o hub central que ancora as evidências e atos a uma Operation.

Entidades e atributos

Operation

Função: Representa a missão/ação oficial. Campos-chave:

id_operation (PK), name, scheduled_date, description, status (Planning|In_Progress|Completed|Cancelled).

Metadados jurídico-institucionais: responsible_prosecutor_office, responsible_prosecutor, pic_number, judicial_process, judicial_body, judicial_authority.

Auditoria: created_at, updated_at. Índices: status, pic_number, judicial_process (aceleram consultas típicas por situação e processos).

Target

Função: Nó central: local/pessoa/objeto de interesse dentro de uma Operation. Campos-chave:

id_target (PK), id_operation (FK → Operation), id_address (FK → Address).

Identificação: name, type (MBA_Digital|Compliance|Recovery), cpf (quando pessoa).

Risco/ambiente: danger_level (Low|Medium|High|Critical), geolocation, environment_description, flags (has_animals, has_cameras, has_weapons).

Observações e auditoria: observations, created_at, updated_at. Índices: type, id_operation, danger_level (facilitam consultas operacionais).

Address

Função: Endereço principal do Target. Campos-chave:

id_address (PK), postal_code, number, complement, created_at, updated_at. Índices: postal_code (buscas por CEP).

Warrant

Função: Mandados vinculados ao Target. Campos-chave:

id_warrant (PK), id_target (FK → Target).

type (SearchAndSeizure|Arrest|AssetRecovery), issuance_date, issuing_judge, file_pdf, created_at, updated_at. Índices: type (filtragem por natureza do mandado).

SeizedMaterial

Função: Materiais/evidências apreendidos no contexto do Target. Campos-chave:

id_material (PK), id_target (FK → Target).

Classificação e cadeia de custódia: description, type (Electronic|Weapon|Drug|Document|Money|Other), found_location, seal_number, has_damage, access_password, evidence_image.

Auditoria: created_at, updated_at. Índices: type.

Recovery

Função: Recuperação/apreensão de bens patrimoniais ligados ao Target. Campos-chave:

id_recovery (PK), id_target (FK → Target, unique).

asset_type (Vehicle|RealEstate|Values|Documents), asset_description, estimated_value, asset_location, originating_process, created_at, updated_at. Observação: id_target com unique implica relação 1:1 (um Target tem, no máximo, um registro de Recovery).

Compliance

Função: Prisões/medidas cautelares relacionadas ao Target. Campos-chave:

id_compliance (PK), id_target (FK → Target, unique).

arrest_type (Preventive|Temporary|Execution), arrest_warrant, issuance_date, issuing_judge, arrest_observations, created_at, updated_at. Observação: id_target unique ⇒ relação 1:1.

MbaDigital

Função: Registro específico do núcleo MBA Digital referente ao Target. Campos-chave:

id_mba (PK), id_target (FK → Target, unique).

objective, seizure_materials, additional_info, created_at, updated_at. Observação: id_target unique ⇒ relação 1:1.

Meeting

Função: Reuniões/briefings de campo associados ao Target. Campos-chave:

id_meeting (PK), id_target (FK → Target), location, date, time, created_at, updated_at. Cardinalidade: 1:N (muitos Meetings por Target).

OperationalKit

Função: Kit/itens operacionais destinados a um Target e sob responsabilidade de um Agente. Campos-chave:

id_kit (PK), id_target (FK → Target), responsible_agent_id (FK → Agent), materials, created_at, updated_at. Cardinalidade: N:1 para Target (vários kits por Target) e N:1 para Agent (um agente pode responder por vários kits).

Agent

Função: Usuários operacionais (polícia, MP, técnico, suporte). Campos-chave:

id_agent (PK), name, email (unique), password_hash, role, institution, unit, id_number (RG), id_type (CPF|RG|ID_POLICIAL), cpf (unique), phone, access_level (Administrator|Operator|Viewer), created_at, updated_at. Índices: cpf, email. Segurança: senha armazenada em password_hash (boa prática para autenticação).

Team

Função: Grupos formais de atuação. Campos-chave:

id_team (PK), name, type (Prosecutor|Police|Technical|Support), leader_id (FK → Agent), member_id (FK → Agent), created_at, updated_at. Índices: type. Observação de modelagem: o par leader_id/member_id permite apenas um membro por registro. Para múltiplos membros por equipe, o recomendado é normalizar com uma tabela de associação TeamMember (id_team, id_agent, role_na_equipe).

Relacionamentos (cardinalidades e chaves)

Operation (1) — (N) Target Target.id_operation → Operation.id_operation.

Address (1) — (N) Target Target.id_address → Address.id_address.

Target (1) — (N) Warrant, SeizedMaterial, Meeting, OperationalKit Cada uma possui id_target como FK para Target.id_target.

Target (1) — (1) MbaDigital, Compliance, Recovery id_target unique em cada uma ⇒ 1:1 (no máximo um registro por Target em cada domínio).

Agent (1) — (N) OperationalKit OperationalKit.responsible_agent_id → Agent.id_agent.

Agent (1) — (N) Team (líder e/ou membro) Team.leader_id → Agent.id_agent; Team.member_id → Agent.id_agent. (Para multi-membros por equipe, usar tabela de associação.)

Clone repository
  • Arquitetura
  • Banco de Dados
  • Escopo
  • Home