4. Administrar un SGBD

4.1. ¿De qué va este tema?

En este curso aprenderás a:

  1. Realizar una instalación y configuración (básica) de un SGBD

  2. Conocer las tareas de administración básicas de una BD

  3. Entender las funciones de un administrador de BD (DBA)

Se trata de ser capaces de realizar una administración básica de una base de datos cualquiera. En este tema usaremos tres SGBD muy utilizados (Sqlite , MariaDB y Postgresql ) para tener una idea genérica y transversal de las principales tareas de administración.

4.2. Clases

Está organizado en 8 talleres de unas 3 sesiones de clase. En total unas 24 sesiones de clase más tu trabajo en casa.

La dedicación depende del conocimiento previo, motivación y capacidad de aprendizaje del estudiante para esa sesión en concreto.

4.2.1. Sistemas Gestores de bases de datos (Repaso)

Repasamos la clase Sistemas Gestores de bases de datos

4.2.2. Administrar un SGBD

  1. ¿Quien es el responsable? El Administrador (DBA)

  2. Funciones: instalar, configurar y administrar:

    1. El software SGBD en …

    2. una o varias instancias …

    3. y con una o varias BD (o esquemas)

    4. Ojo con las obligaciones legales (sobre los datos y el acceso)

  3. Carrera Profesional (How to become a … ) :

    1. Recomendaciones:

      1. Escoger un SGBD (y usar la documentación oficial)

      2. Aprender SQL (básico y avanzado)

      3. Aprender administración de ese SGBD

      4. Coger experiencia (perfil junior)

      5. Obtener una Certificación y/o adquirir nuevos roles

    2. Salarios (depende)

    3. Ofertas Trabajo:

      1. Junior (con poca, o ninguna experiencia)

      2. Senior (más experiencia)

  4. ¿Qué hay que hacer? Muchas cosas, pero por simplificar:

    1. Administrar la infraestructura tecnológica (el sistema base)

    2. Administrar el acceso a los datos (quien, a qué y desde donde)

    3. Administrar la seguridad e integridad de los datos (aspectos técnicos y legales)

    4. Administrar el servicio (rendimiento, acceso, etc) y dar soporte (ayuda a usuarios)

  5. Conceptos Generales de administración de BD y SQL (Database Glossary /PostgreSQL Glossary )

    1. Conceptos Generales

      1. Data_type . Por ejemplo dato BLOB

      2. Objetos SQL: Tablas, índices, vistas, disparadores (triggers), funciones, etc

      3. Restricciones (Constraint) a nivel de columna o de tabla

      4. Cluster

      5. Schema

      6. Test ACID: soporte transaccional

      7. Consultas y Subconsultas (Query / Multi-row_subquery)

      8. Particionado (Tablespace): misma BD (o esquema) en diferentes sistemas de almacenamiento físico

    2. Componentes y Funciones del SGBD

      1. Query Planner (Planificador de consultas)

      2. Estándar SQL (listado)

      3. Concurrencia y bloqueo (Lock)

      4. Programación: funciones, procedimientos almacenados, etc

      5. Motor de Almacenamiento

      6. Mecanismo de Almacenamiento

      7. Disaster Recovery

      8. Replicación: copias y sincronización de una BD en diferentes instancias

    3. Business Intelligence (BI): análisis de datos para toma de decisiones

  6. Licencia de Uso (y su importancia)

Leer Material

Revisa la documentación propuesta con el nivel de profundización en el que estamos (curso inicial de BD en FP, no un doctorado). Los conceptos son los mismos, pero el nivel de profundización para un diseño complejo es lo que cambia.

Una buena propuesta y muy completa de carrera profesional de un DBA está descrita en PostgreSQL DBA Roadmap . Ser DBA (a nivel profesional) implicaría responder (y saber implementar) preguntas de este estilo:

  1. Explicar los diferentes tipos de objetos en una BD

  2. Tener claros los conceptos del modelo relacional

  3. ¿Qué sería una transacción? ¿Qué es eso de ACID?

  4. ¿Qué es la concurrencia y el bloqueo?

  5. Diferentes conceptos de SQL (lenguajes DDL, DML, DCL y DTL)

  6. ¿Qué es la replicación o la recuperación por fallo?`

  7. ¿Qué es la autenticación basada en cliente? ¿Y en host?

  8. ¿Sobre qué infraestructura voy a desplegar mi SGBD?

  9. ¿Qué es eso de la alta disponibilidad?

  10. ¿Cómo realizo actualización y migración de los datos?

4.2.3. El SGBD Sqlite (Repaso)

Repasamos la clase El SGBD Sqlite

4.2.4. Administración básica de Sqlite

  1. Documentación de Referencia:

    1. SQLite Official Documentation

    2. SQLite Getting Started

    3. SQLite FAQ

    4. SQLite Cheatsheet

  2. Uso de comandos sqlite (dot commands ).

    1. Se ven todos con uno de ellos: .help

    2. La configuración en sí, es usando estos comandos (por ejemplo como se muestran los datos, vía .mode o guardar en un archivo, vía .output)

  3. Importar / Exportar:

    1. Archivo .db (base de datos autocontenida). Se puede abrir con .open base_de_datos.bd o directamente.

    2. Archivo .sql (exportar esquema y contenido).

      1. Exportar esquema (.schema) a un archivo (vía .output)

      2. Exportar la BD completa (esquema + contenido) vía .dump

      3. Importar esquema (cargando comandos SQL vía .read)

      4. Se puede exportar también a tabla csv (exportar csv )

    3. Uso de archivos CSV (importar CSV en sqlite ):

      1. Activar modo CSV

      2. Revisar el archivo CSV por si hay alguna inconsistencia (campos, texto, delimitadores, etc)

      3. Importar archivo csv (vía .import) o …

      4. Crear la tabla e importar el archivo (eliminar campos de encabezado)

  4. Curso completo de una hora (instalación y consultas):

Administrar SQLite

Usar SQLite en la práctica Administrar un SGBD (Cualquiera) (instalación, creación y Administración)

4.2.5. El SGBD MariaDB (o MySQL)

  1. Es uno de los SGBD más usados en sitios (aplicaciones) web

  2. Es básicamente MySQL (Compatibility ) pero resolviendo el problema de la licencia (y control) del desarrollo

  3. Permite diferentes motores de almacenamiento (nivel físico)

  4. Tiene una funcionalidad muy completa

  5. Un archivo de configuración principal: my.cnf (ejemplo ).

  6. Proceso estándar de instalación:

    1. Descargas e instalas (depende de tu sistema)

    2. Aseguras la instalación (localhost, ojo en configuración LAN o WAN):

      1. Definimos el usuario administrador (y le ponemos clave)

      2. Quitamos el acceso anónimo (y cualquier usuario no administrador)

      3. El acceso sería sólo desde localhost

      4. Es decir la conexión necesitará generalmente: el host, el puerto, el usuario, la contraseña y la base de datos

    3. Revisas el archivo de configuración (recuerda reiniciar el servicio si modificas la configuración)

    4. Ves si ya hay bases de datos creadas (Revisar información )

    5. Creas una base de datos de prueba

Instalar MariaDB

Usar MariaDB en la práctica Administrar un SGBD (Cualquiera) (instalación, creación y Administración)

4.2.6. Administración básica de MariaDB

  1. Documentación de Referencia:

    1. MariaDB Official Documentation

    2. MariaDB Getting Started

    3. MariaDB FAQ

    4. MariaDB Cheatsheet

Administrar MariaDB

Usar MariaDB en la práctica Administrar un SGBD (Cualquiera) (instalación, creación y Administración)

4.2.7. El SGBD PostgreSQL

  1. Funcionalidad de tipo empresarial

  2. Relacional y orientada a objetos (ORDBMS )

  3. Muy completa, fiable, con muy buen rendimiento, alta concurrencia y libre

  4. Muy buen soporte y documentación muy completa

  5. Es muy extensible (un muy buen ejemplo es PostGIS )

  6. Arquitectura Cliente (p.ej psql pero hay muchos) / Servidor (varios procesos) con configuración muy personalizada. Es un software complejo (y potente)

Instalar PostgreSQL

Usar PostgreSQL en la práctica Administrar un SGBD (Cualquiera) (instalación, creación y Administración)

4.2.8. Administración básica de PostgreSQL

  1. Documentación de Referencia:

    1. Postgresql Official Documentation

    2. Postgresql Full Tutorial

    3. Postgresql FAQ

    4. Postgresql Cheatsheet

  2. Curso Completo (14 videos sencillos) de Postgres para principiantes :

Instalar PostgreSQL

Usar PostgreSQL en la práctica Administrar un SGBD (Cualquiera) (instalación, creación y Administración)