| Home | Escopo | Gerência | Processo | Design | Configuração | Arquitetura | Banco de Dados | Continuidade |
|---|
Sumário
- Modelo Entidade Relacionamento
- Visão Geral
- Entidades e Atributos
- Formulários e Fluxos Específicos
- Materiais e Apreensões
- Agentes e Equipes
- Reuniões
- Controle de Permissões
- Relacionamentos
- Documentação Complementar da Arquitetura de Dados
Modelo Entidade Relacionamento
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)
