Tema:

  • 2. Arquitectura de la administración de la base de datos
  • 2.1 Modelo de proceso
  • 2.2 Componentes de un modelo
  • 2.2.1 Arquitectura
  • 2.2.2 Actividad
  • 2.2.3 Métodos
  • 2.2.4 Estrategia
  • 2.2.5 Herramientas

¿Qué crees que abarca la administración de una base de datos?


meme


¿Solo se trata de hacer consultas?


Objetivo
Comprender las responsabilidades, herramientas y procesos que emplean los administradores de bases de datos.

start


Administrar una BD abarca desde la planificación hasta el mantenimiento continuo. No se limita a tecnología; implica diseñar un proceso coherente con actividades, métodos y estrategias bien definidos.

La administración efectiva de la BD es clave para asegurar confiabilidad y disponibilidad de la información.

La arquitectura es el “esqueleto” que permite que la administración de bases de datos sea eficiente y segura.

DBA

La función principal de un DBA es asegurar que el sistema de bases de datos sea disponible, íntegro, seguro, recuperable y con buen rendimiento.

Responsabilidades

Fase Responsabilidades del DBA (resumidas)
1. Análisis y diseño Seleccionar el DBMS (criterios: desempeño, costos, soporte, compatibilidad)
Modelado de datos y diseño lógico
Definir restricciones de integridad (PK, FK, UNIQUE, CHECK)
Documentar la estructura (diccionario de datos: significado, dominios, sensibilidad)
Definir políticas de acceso (roles, mínimos privilegios)
Definir estándares de cifrado (en tránsito/en reposo)
2. Implementación Instalar y configurar el DBMS (instancia, parámetros base)
Crear el esquema físico (tablas, índices iniciales, particiones)
Implementar integridad referencial
Desplegar disparadores y procedimientos almacenados
Otorgar permisos conforme a políticas
Habilitar logs/auditoría (nivel y retención)
Configurar cifrado (TLS, TDE/keys)
3. Monitoreo y optimización Acompañar al desarrollo (revisión de consultas/SQL review)
Monitoreo continuo (métricas, slow-log, waits, locking)
Optimizar consultas e índices (EXPLAIN, add/modify/drop)
Tuning del motor (memoria, paralelismo, autovacuum/redolog, plan cache)
Gestionar concurrencia y transacciones (aislamiento, bloqueos, tiempos de espera)
4. Mantenimiento y evolución Backups y restauración periódicos (RPO/RTO, pruebas de recuperación)
Parches y actualizaciones del DBMS
Auditorías de seguridad y hardening
Controles SQL de integridad (validaciones periódicas)
Gestión de capacidad y escalado (vertical/horizontal)
Plan de recuperación de desastres (DR, conmutación por error)

Hardening (seguridad) es el proceso de configurar y optimizar la base de datos para reducir su superficie de ataque y minimizar vulnerabilidades.

Tuning (optimización de rendimiento) es el conjunto de prácticas para mejorar rendimiento y eficiencia de una base de datos.

Principales

  1. Elaborar y mantener la Política de Seguridad de la Información (ISP)
  2. Desarrollar planes de contingencia (disaster recovery) y continuidad (backup, sitios alternativos).

unit


Herramientas

1. Herramientas para modelado/diseño de BD:

  • Funcionalidades:

    • Generar automáticamente DDL.
    • Comparar y sincronizar modelo ↔ base de datos.
    • Validaciones/estándares.
    • Documentación.
    • Ingeniería inversa.

Las herramientas de diagramación pura solo permiten dibujar diagramas visuales, sin conexión real con un motor de base de datos. No se deben confundir con las herramientas CASE para modelado/diseño de bases de datos.

  • Diagramación pura:

    • Microsoft Visio,
    • Figma,
    • Draw.io,
    • Lucidchart,
    • Mermaid.
erDiagram
    ALUMNOS {
        int id_alumno PK
        string nombre
        string apellido
        date fecha_nacimiento
    }

    ASIGNATURAS {
        int id_asignatura PK
        string nombre
        string descripcion
    }

    ALUMNOS_ASIGNATURAS {
        int id_alumno FK
        int id_asignatura FK
        string periodo
    }

    ALUMNOS ||--o{ ALUMNOS_ASIGNATURAS : "inscribe"
    ASIGNATURAS ||--o{ ALUMNOS_ASIGNATURAS : "pertenece"
Herramienta CASE MySQL PostgreSQL Oracle SQL Server Características principales
MySQL Workbench ⚠️* (limitado, vía ODBC) ⚠️* (limitado, vía ODBC) Oficial de MySQL; modelado EER, ingeniería directa/inversa, generación de scripts SQL.
pgModeler ⚠️* (ODBC) Especializada en PostgreSQL, modelado EER, generación y sincronización de bases de datos.
Oracle SQL Developer Data Modeler Gratuita; modelado lógico/físico, ingeniería inversa y generación de DDL, compatible con varios motores vía JDBC/ODBC.
dbForge Studio (Devart) Modelado visual, comparación de esquemas, generación de scripts, soporte para múltiples motores.
ER/Studio Data Architect Comercial, modelado conceptual/lógico/físico, ingeniería inversa, soporte multiplataforma y colaboración.
Toad Data Modeler Multimotor, modelado y documentación, ingeniería inversa, personalización de modelos.
Navicat Data Modeler Modelado EER, sincronización de esquemas, exportación de diagramas, multiplataforma.
DBeaver (con plugin de modelado) Open source, exploración y modelado básico, compatible con múltiples motores vía JDBC.
PowerDesigner (SAP) Comercial; modelado avanzado, simulación de cambios, gestión de metadatos y estándares corporativos.

Leyenda:

  • ✅ = Soporte nativo completo
  • ⚠️ = Soporte parcial o mediante ODBC/JDBC
  • ❌ = No soportado directamente

2. Herramientas para Hardening y Tuning:

Herramienta MySQL PostgreSQL Oracle SQL Server Funcionalidad principal
MySQL Enterprise Monitor Oficial de MySQL, monitoreo de rendimiento, alertas, análisis de seguridad.
Percona Monitoring and Management (PMM) Open source, monitoreo en tiempo real, métricas de queries, seguridad y capacidad.
phpMyAdmin Security Advisor Asistente de seguridad integrado, revisión de configuraciones y permisos.
pgAdmin + pg_stat_statements Monitoreo de consultas, estadísticas de uso, tuning de queries.
pgaudit Extensión para auditoría detallada de eventos y accesos.
Oracle Enterprise Manager (OEM) Gestión centralizada, tuning advisor, auditoría, monitoreo de seguridad.
Oracle Data Safe Servicio en la nube para análisis de riesgos, enmascaramiento y auditorías.
SQL Server Management Studio (SSMS) Administración, tuning de consultas, análisis de planes de ejecución.
SQL Server Profiler Trazas y diagnósticos de rendimiento en tiempo real.
SQL Server Database Tuning Advisor (DTA) Recomendaciones de índices y particiones basadas en carga de trabajo.
Redgate SQL Monitor Monitoreo proactivo, alertas, métricas de rendimiento y seguridad.
SolarWinds Database Performance Analyzer Análisis de rendimiento multiplataforma, sugerencias de tuning, detección de cuellos de botella.
Lynis (Linux) Auditoría de seguridad a nivel sistema, útil para hardening de entornos de BD.
Nessus / OpenVAS Escáneres de vulnerabilidades, detección de configuraciones inseguras.

Leyenda:

  • ✅ = Soporte o uso común en ese motor
  • ❌ = No aplicable o no usado normalmente

3. Lenguajes y entornos de scripting

Un DBA necesita manejar herramientas y lenguajes de scripting para automatizar tareas de backups, mantenimiento y monitoreo.

  • Scripts comunes:

    • Respaldo y restauración programada.
    • Limpieza de logs y archivos temporales.
    • Automatización de actualizaciones de estadísticas e índices.
    • Monitoreo de espacio en disco y rendimiento.
    • Alertas por correo o chat ante fallos o baja disponibilidad.
    • Migración de datos entre entornos.
    • Verificación de integridad de copias de seguridad.
Tipo de uso MySQL / MariaDB PostgreSQL Oracle SQL Server
Lenguaje de scripting interno SQL, Procedures y Triggers; funciones en SQL estándar SQL, PL/pgSQL SQL, PL/SQL SQL, T-SQL
CLI (cliente y ejecución de scripts) mysql (cliente interactivo) psql sqlplus sqlcmd
Respaldo / restauración mysqldump, mysqlpump, mysqlimport pg_dump, pg_restore expdp, impdp (Data Pump) BACKUP DATABASE / RESTORE DATABASE, bcp
Monitoreo / tuning en CLI mysqladmin, performance_schema, EXPLAIN pg_stat_statements, EXPLAIN ANALYZE, pg_stat_activity AUTOTRACE, tkprof, EXPLAIN PLAN SET STATISTICS IO/TIME, sys.dm_exec_query_stats, Execution Plan Viewer
Automatización en SO Bash scripts con cron (Linux) Bash scripts con cron (Linux) Bash scripts con cron (Linux) PowerShell con Programador de tareas (Windows)
Lenguajes externos comunes Python (mysql-connector-python, PyMySQL), Perl Python (psycopg2), Perl Python (cx_Oracle), Java Python (pyodbc), PowerShell
Control de versiones Git/GitHub/GitLab Git/GitHub/GitLab Git/GitHub/GitLab Git/GitHub/GitLab
Integración continua / despliegue de scripts Jenkins, Ansible, GitHub Actions Jenkins, Ansible, GitHub Actions Jenkins, Ansible, GitHub Actions Jenkins, Ansible, GitHub Actions