Capítulo 4 — Modelos de dados
Mapa da aula
Aula 04 publicada. Mapa, exemplo, EX010.
flowchart TD
N0["4.1 Tabelas, chaves e atributos"]
N1["4.2 Relações"]
N2["4.3 O que não guardar"]
N3["4.4 Campos de qualidade dos dados"]
N4["Síntese"]
N0 --> N1 --> N2 --> N3 --> N4
N4 --> EX["Exemplo resolvido"]
EX --> Q["Exercício EX010"]
Desenho lógico
flowchart LR
N0["4.1 Tabelas, chaves e atributos"]
N1["4.2 Relações"]
N2["4.3 O que não guardar"]
N3["4.4 Campos de qualidade dos dados"]
N4["Síntese"]
N0 --> N1 --> N2 --> N3 --> N4 --> Q["EX010"]
[4.1 Tabelas, chaves e atributos]
|
v
[4.2 Relações]
|
v
[4.3 O que não guardar]
|
v
[4.4 Campos de qualidade dos dados]
|
v
[Síntese]
|
v
[Exemplo resolvido] --> [Exercício EX010]
Objetivos de aprendizagem
Você vai (1) projetar uma tabela simples de ativos com chaves e atributos; (2) escolher identificadores que sobrevivam à troca de um dispositivo; (3) representar relações como "o gateway atende os registradores"; e (4) manter atributos sensíveis fora das tabelas gerais.
4.1 Tabelas, chaves e atributos
Uma tabela de ativos tem uma linha por ativo. A chave precisa ser única e estável. Endereços IP são chaves ruins, porque mudam quando um dispositivo é reendereçado; números de série mudam quando um dispositivo é substituído. A NCS usa uma etiqueta de ativo pintada no equipamento (por exemplo, "MP-1/PLC-R1"), que permanece com a função. O esquema de Priya usa essa etiqueta como chave de todas as tabelas, e é assim que as tabelas de ativos, de registradores e de fluxos se juntam sem problemas mesmo depois que o firmware documentado do PLC-R2 se revelou errado.
4.2 Relações
Quarenta registradores reportam pelo GW-LOG. Guardar "gateway" como atributo de cada linha de registrador cria uma relação de um para muitos que permite a uma consulta responder, numa linha, "quais registradores apagam se o GW-LOG falhar?". Da mesma forma, uma tabela de fluxos com chaves de origem e de destino liga os ativos no quadro de comunicações usado no Capítulo 12. A tabela de registradores de Priya guarda tag, room e gateway_tag. A sua consulta select tag, room from loggers where gateway_tag = 'GW-LOG' lista os quarenta registradores com as suas salas, e essa lista virou a tabela de impacto do plano de continuidade da NCS.
4.3 O que não guardar
Senhas, chaves privadas e backups completos de configuração não pertencem a uma tabela de ativos compartilhada. Guarde uma referência ("credencial guardada no cofre, entrada OT-17") e mantenha o segredo num sistema feito para isso. Uma planilha de senhas num drive compartilhado é um achado comum em avaliações de TO. No esquema de Priya, a tabela de ativos tem uma coluna de responsável e uma coluna de fonte, mas nenhuma coluna de credencial. A senha de administrador local da HMI-C, que ela depois encontra num bilhete adesivo, pertence ao cofre, com uma referência como OT-17 na tabela, e não a uma célula que qualquer pessoa com a planilha consegue ler.
4.4 Campos de qualidade dos dados
Acrescente a cada linha a "fonte" (documentação, observação da rede, vistoria em campo) e a data da "última verificação". Um inventário sem datas não merece confiança depois de um ano. O PLC-R2 mostra por quê. O firmware documentado, 2.4, veio dos registros de comissionamento da empresa contratada; a captura passiva reportou 2.1; e a vistoria de Priya leu 2.1 no painel frontal. Com uma coluna de fonte, a linha agora diz firmware 2.1, fonte vistoria, última verificação na data da visita, e um leitor pode ver que o valor antigo veio de documentos nunca atualizados depois do comissionamento. Sem a data, ninguém saberia se a leitura da vistoria era da semana passada ou de dois anos atrás.
Exemplo resolvido (NCS sintética)
O esquema de Priya: assets(tag, type, function, zone, firmware, owner, source, last_verified); loggers(tag, room, gateway_tag); flows(src_tag, dst_tag, protocol, port, approved). A sua consulta "select tag, room from loggers where gateway_tag = 'GW-LOG'" lista os 40 registradores e as suas salas, o que virou a lista de impacto do plano de continuidade da instalação.
Caso sintético — Northgate Cold Storage. O esquema e as contagens são inventados.
Erros e limites
Um modelo vale o que vale a sua manutenção; designe um responsável. Normalizar demais os dados de uma instalação pequena pode torná-los mais difíceis de usar que uma única tabela bem mantida.
Exercícios
- EX010 — Escolhendo uma chave. Por que a etiqueta de ativo pintada é uma chave melhor que o endereço IP para o PLC-R1? Rubrica: 3 = estável diante de reendereçamento e substituição; ligada à função; 2 = parcial; 1 = "mais fácil"; 0 = nada.
- EX011 — Consulta para uma lista de impacto. Escreva um SQL que liste os registradores da sala "Freezer-2" atendidos pelo GW-LOG. Rubrica: 3 = cláusula where correta nas duas colunas; 2 = uma condição; 1 = só a sintaxe; 0 = nada.
- EX012 — Tratando um campo de credencial. Um colega acrescenta uma coluna "password". Pelo que você a substitui? Rubrica: 3 = referência ao cofre, segredo em outro lugar, com controle de acesso; 2 = só remover; 1 = criptografar a planilha; 0 = manter.
Síntese
Um modelo de dados pequeno e estável, com chaves, relações e datas, é o que transforma inventário em respostas.
Continue estudando — capítulo 04 de 30
← Capítulo 03 · Índice de capítulos do curso · Capítulo 05 →
Siga para a próxima lição escrita.