Estrutura
Schema, tabelas, chaves, restrições, índices e views.
Implementação executável do modelo relacional, com tabelas, índices, funções, triggers, auditoria, validação de vocabulários, controle de versões, promoção segura para produção e dados iniciais.
Este documento descreve a implementação física do banco de dados da Máquina de Conhecimento. Enquanto o modelo lógico define tabelas e relações, o modelo físico acrescenta comportamento operacional, validações executáveis, automação, auditoria e dados mínimos para inicialização.
O modelo físico não altera o significado das entidades anteriores. Ele transforma as regras conceituais e lógicas em mecanismos executáveis.
Schema, tabelas, chaves, restrições, índices e views.
Funções e triggers para integridade, datas, versões e publicação.
Auditoria de alterações em entidades críticas.
Validação dos códigos usados pelos objetos e representações.
Papéis, agente autor, domínios, jornada e objeto inicial.
Views para localizar objetos ou publicações incompletas.
Todos os objetos são criados no schema:
CREATE SCHEMA IF NOT EXISTS lac_mc; SET search_path TO lac_mc, public;
Isso separa a Máquina de Conhecimento de outros sistemas que possam usar o mesmo banco PostgreSQL.
O script ativa pgcrypto, preparando o banco para geração de hashes, UUIDs e funções criptográficas. O núcleo atual usa identificadores públicos controlados, mas a extensão poderá apoiar checksums e integrações futuras.
| Função | Finalidade |
|---|---|
| fn_normalizar_codigo | Converte texto em código padronizado para identificadores e vocabulários. |
| fn_atualizar_timestamp | Atualiza automaticamente atualizado_em. |
| fn_impedir_alteracao_id_publico | Protege identificadores conceituais persistentes. |
| fn_codigo_vocabulario_ativo | Confirma a existência e atividade de termos controlados. |
| fn_registrar_auditoria | Registra inserções, alterações e exclusões. |
| fn_validar_publicacao | Impede publicação de produção sem versão, validação e checksum. |
Atualizam o momento da última alteração em entidades mutáveis.
Impedem a troca de IDs públicos após a criação.
Validam tipos, estados, ambientes e classificações de acesso.
Desativa automaticamente a versão anterior quando uma nova versão se torna vigente.
Exige validação aprovada, versão e checksum para produção.
Registra alterações nos objetos, representações, versões, decisões, validações e publicações.
Uma inserção em publicacao com ambiente producao e estado publicado é rejeitada quando qualquer requisito estiver ausente.
A tabela auditoria_evento registra:
A auditoria técnica complementa, mas não substitui, decisões formais de governança.
| View | Uso |
|---|---|
| vw_objeto_conhecimento_resumo | Consulta consolidada dos objetos e sua situação. |
| vw_objeto_sem_idioma | Localiza objetos sem idioma registrado. |
| vw_objeto_sem_representacao | Localiza objetos ainda sem representação. |
| vw_objeto_publicado_sem_versao_vigente | Detecta objetos publicados sem versão conceitual vigente. |
| vw_publicacao_producao_sem_validacao | Audita publicações de produção sem validação aprovada. |
| vw_conformidade_objeto | Apresenta indicadores básicos de conformidade. |
O script instala:
AGE-WD-001, correspondente ao autor Walter Dominguez;JOR-MC-001;OC-MC-0001;O Objeto de Conhecimento inicial é inserido como aprovado, e sua representação como nao_publicado no ambiente de desenvolvimento.
createdb lac_mc psql -d lac_mc \ -f modelo_fisico_postgresql_maquina_conhecimento_lac.sql
Em um banco já existente:
psql -d nome_do_banco \ -v ON_ERROR_STOP=1 \ -f modelo_fisico_postgresql_maquina_conhecimento_lac.sql
O parâmetro ON_ERROR_STOP=1 interrompe a instalação quando ocorre erro.
SET search_path TO lac_mc, public; SELECT * FROM vw_objeto_conhecimento_resumo; SELECT * FROM vw_conformidade_objeto; SELECT * FROM auditoria_evento ORDER BY ocorrido_em DESC;
Antes de publicar em produção, devem ser criados:
aprovado;Sem esses elementos, a trigger rejeitará a publicação.
DELETE diretamente às aplicações;Apta a instalação experimental em PostgreSQL 16+, antes da adoção em produção.