Salta el contingut

Fonaments de l'automatització

Per què automatitzar?

Gestionar una base de dades en producció implica moltes tasques repetitives: netejar registres antics, actualitzar estadístiques, verificar integritat referencial, generar informes nocturns, arxivar dades, enviar alertes... Fer-ho manualment comporta:

  • Inconsistència: cada operador pot fer-ho de manera diferent.
  • Oblit: una tasca manual pot no executar-se en el moment crític.
  • Errors humans: la fatiga i les distraccions provoquen errors en scripts llargs.
  • Dependència de persones: si l'operador no hi és, la tasca no es fa.

L'automatització elimina aquests riscos movent la lògica i la planificació al propi SGBD.

Beneficis principals

mindmap
  root((Automatització SGBD))
    Consistència
      Mateixos resultats sempre
      Lògica centralitzada
      Sense variació humana
    Rendiment
      Execució al servidor
      Menys tràfic de xarxa
      Plans d'execució optimitzats
    Seguretat
      Control d'accés granular
      Ocultació de lògica
      Audit trails automàtics
    Manteniment
      Tasques nocturnes
      Arxivat automàtic
      Neteja periòdica
    Reutilització
      Un cop definit, usat moltes vegades
      Menys codi a l'aplicació
      Estandardització

Visió general dels mecanismes d'automatització

En aquest bloc estudiem quatre mecanismes principals disponibles en els SGBD relacionals més importants:

1. Procediments emmagatzemats (Stored Procedures)

Blocs de codi SQL i lògica de control (IF, WHILE, FOR...) que s'emmagatzemen compilats al servidor. S'executen amb una crida explícita (CALL o EXEC). Ideals per a operacions complexes de múltiples passos: validar dades, inserir en diverses taules, calcular totals, gestionar transaccions.

2. Funcions d'usuari (User-Defined Functions)

Similars als procediments però retornen un valor i es poden usar directament en expressions SQL (SELECT, WHERE, ORDER BY). Hi ha funcions escalars (retornen un valor únic) i de taula (retornen un conjunt de files).

3. Disparadors (Triggers)

Codi que s'executa automàticament en resposta a un esdeveniment de dades: INSERT, UPDATE o DELETE. No cal cridar-los explícitament. S'utilitzen per auditoria, validació de regles de negoci, manteniment de dades derivades i sincronització de taules.

4. Esdeveniments programats (Scheduled Events / Jobs)

Mecanismes per executar codi SQL de manera planificada en el temps: cada nit a les 2:00, cada hora, els diumenges... Equivalen als cron jobs del sistema operatiu però integrats al SGBD. Cada motor té el seu propi sistema: pg_cron (PostgreSQL), EVENT SCHEDULER (MySQL), SQL Server Agent (SQL Server), DBMS_SCHEDULER (Oracle).


Comparativa de suport entre motors

Característica PostgreSQL MySQL/MariaDB SQL Server Oracle
Stored Procedures Sí (PL/pgSQL) Sí (T-SQL) Sí (PL/SQL)
Funcions escalars
Funcions de taula No (limitat) Sí (pipelined)
Triggers BEFORE/AFTER AFTER/INSTEAD OF
Triggers FOR EACH ROW FOR EACH STATEMENT
Events/Jobs integrats pg_cron (ext.) EVENT SCHEDULER SQL Server Agent DBMS_SCHEDULER
Gestió d'excepcions EXCEPTION DECLARE HANDLER TRY/CATCH EXCEPTION
Llenguatge procedural PL/pgSQL SQL/PSM T-SQL PL/SQL