Capítulo 4 — Modelos de datos
Mapa de la lección
Lección 04 publicada. Mapa, ejemplo, EX010.
flowchart TD
N0["Resultados de aprendizaje"]
N1["4.1 Tablas, claves y atributos"]
N2["4.2 Relaciones"]
N3["4.3 Qué no guardar"]
N4["4.4 Campos de calidad de los datos"]
N5["Síntesis del capítulo"]
N0 --> N1 --> N2 --> N3 --> N4 --> N5
N5 --> EX["Ejemplo resuelto"]
EX --> Q["Ejercicio EX010"]
Dibujo lógico
flowchart LR
N0["Resultados de aprendizaje"]
N1["4.1 Tablas, claves y atributos"]
N2["4.2 Relaciones"]
N3["4.3 Qué no guardar"]
N4["4.4 Campos de calidad de los datos"]
N5["Síntesis del capítulo"]
N0 --> N1 --> N2 --> N3 --> N4 --> N5 --> Q["EX010"]
[Resultados de aprendizaje]
|
v
[4.1 Tablas, claves y atributos]
|
v
[4.2 Relaciones]
|
v
[4.3 Qué no guardar]
|
v
[4.4 Campos de calidad de los datos]
|
v
[Síntesis del capítulo]
|
v
[Ejemplo resuelto] --> [Ejercicio EX010]
Resultados de aprendizaje
Usted será capaz de (1) diseñar una tabla de activos sencilla con claves y atributos; (2) elegir identificadores que sobrevivan a la sustitución de dispositivos; (3) representar relaciones como «la pasarela da servicio a los registradores»; y (4) mantener los atributos sensibles fuera de las tablas generales.
4.1 Tablas, claves y atributos
Una tabla de activos contiene una fila por activo. La clave debe ser única y estable. Las direcciones IP son malas claves porque cambian cuando se cambia la dirección de un dispositivo; los números de serie cambian cuando se sustituye un dispositivo. NCS usa una etiqueta de activo pintada en el equipo (por ejemplo, «MP-1/PLC-R1»), que permanece con la función. El esquema de Priya usa esa etiqueta como clave de todas las tablas, y así las tablas de activos, registradores y flujos se combinan limpiamente incluso después de descubrirse que el firmware documentado de PLC-R2 era erróneo.
4.2 Relaciones
Cuarenta registradores informan a través de GW-LOG. Guardar la «pasarela» como atributo de cada fila de registrador crea una relación de uno a muchos que permite a una consulta responder en una línea a «¿qué registradores se quedan a oscuras si falla GW-LOG?». Del mismo modo, una tabla de flujos con claves de origen y destino vincula los activos en el panorama de comunicaciones que se usa en el capítulo 12. La tabla de registradores de Priya contiene tag, room y gateway_tag. Su consulta select tag, room from loggers where gateway_tag = 'GW-LOG' enumera los cuarenta registradores con sus salas, y esa lista se convirtió en la tabla de impacto del plan de continuidad de NCS.
4.3 Qué no guardar
Las contraseñas, las claves privadas y las copias de seguridad completas de configuración no pertenecen a una tabla de activos compartida. Guarde una referencia («credencial custodiada en la entrada OT-17 del almacén de secretos») y conserve el secreto en un sistema diseñado para ello. Una hoja de cálculo de contraseñas en una unidad compartida es un hallazgo habitual en las evaluaciones de TO. En el esquema de Priya, la tabla de activos tiene una columna de titular y una columna de fuente, pero ninguna columna de credenciales. La contraseña del administrador local de HMI-C, que más tarde encuentra en una nota adhesiva, debe estar en el almacén de secretos con una referencia como OT-17 en la tabla, no en una celda que pueda leer cualquiera que tenga la hoja de cálculo.
4.4 Campos de calidad de los datos
Añada a cada fila la «fuente» (documentación, observación de la red, recorrido por la planta) y la fecha de «última verificación». Un inventario sin fechas no es fiable al cabo de un año. PLC-R2 muestra por qué. Su firmware documentado, 2.4, procedía de los registros de puesta en marcha de la empresa contratista; la captura pasiva indicaba 2.1; y el recorrido por la planta de Priya leyó 2.1 en el panel frontal. Con una columna de fuente, la fila dice ahora firmware 2.1, fuente recorrido por la planta, última verificación en la fecha de la visita, y el lector puede ver que el valor antiguo procedía de documentos que nunca se actualizaron tras la puesta en marcha. Sin la fecha, nadie sabría si la lectura del recorrido era de la semana pasada o de hace dos años.
Ejemplo resuelto (NCS sintética)
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). Su consulta «select tag, room from loggers where gateway_tag = 'GW-LOG'» enumera los 40 registradores y sus salas, lo que se convirtió en la lista de impacto del plan de continuidad de la instalación.
Caso sintético — Northgate Cold Storage. El esquema y los recuentos son inventados.
Errores y límites
Un modelo solo vale lo que valga su mantenimiento; asígnele un titular. Normalizar en exceso los datos de una instalación pequeña puede hacerlos más difíciles de usar que una única tabla bien mantenida.
Ejercicios — capítulo 4
- EX010 — Elegir una clave. ¿Por qué la etiqueta de activo pintada es mejor clave que la dirección IP para PLC-R1? Rúbrica: 3 = estable ante cambios de dirección y sustituciones; ligada a la función; 2 = parcial; 1 = «más fácil»; 0 = nada.
- EX011 — Consulta para una lista de impacto. Escriba una consulta SQL que enumere los registradores de la sala «Freezer-2» a los que da servicio GW-LOG. Rúbrica: 3 = cláusula
wherecorrecta sobre ambas columnas; 2 = una condición; 1 = solo la sintaxis; 0 = nada. - EX012 — Tratar un campo de credenciales. Un colega añade una columna «password». ¿Con qué la sustituye? Rúbrica: 3 = referencia al almacén de secretos, secreto en otro sitio, acceso controlado; 2 = solo quitarla; 1 = cifrar la hoja; 0 = mantenerla.
Síntesis del capítulo
Un modelo de datos pequeño y estable, con claves, relaciones y fechas, es lo que convierte un inventario en respuestas.
Siga estudiando — capítulo 04 de 30
← Capítulo 03 (borrador) · Índice de capítulos del curso · Capítulo 05 (borrador) →