4. Administrar un SGBD#

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 )

Esfuerzo Necesario

El curso está organizado en 8 sesiones de clase. Cada clase (sesión) implica una dedicación de entre 2 y 4 horas.

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

4.1. Sistemas Gestores de bases de datos#

  1. Te permiten administrar la BD:

    1. El almacén: la base de datos

    2. El sistema (hardware / software / usuarios) que lo gestiona: El SGBD

  2. Historia:

    1. organización secuencial

    2. navegación archivos

    3. relacionales (y SQL)

    4. OO

    5. NoSQL (Not Only SQL)

    6. XML / JSON

  3. Descripción del SGBD: Arquitectura ANSI/XPARC :

    1. Nivel Externo. Cada usuario tiene una visión de los datos (Vistas)

    2. Nivel Conceptual. Describe cómo están organizados los datos (Diseño Conceptual y Lógico)

    3. Nivel Interno. Describe cómo se almacenan los datos y donde (Diseño Físico)

    https://upload.wikimedia.org/wikipedia/commons/5/5c/ANSI-SPARC_DB_model.jpg
  4. Muchos componentes según la complejidad del sistema:

    1. Interfaz externa: GUI (gráfica) y CLI (consola)

    2. Gestor del almacenamiento físico

    3. Intérprete del lenguaje según el modelo de datos utilizado

    4. Compilador y Optimizador de las consultas

    5. Motor de la BD

    6. Gestor de las transacciones

    7. Gestor de los usuarios y seguridad

  5. Hay muchos (pero muchos) SGBD. Algunos ejemplos:

    1. Comparativa SGBD Relacionales

    2. Comparativa SGDB No SQL

    3. y muchas más

  6. SGBD como servicio ( Cloud Databases ). Más avanzado pero muy utilizado en servicios complejos

    1. Un tercero (delego mi responsabilidad) gestiona mi base de datos en su infraestructura

    2. Uso la BD como un servicio, es decir DBaaS (o podría instalarla en su infraestructura -> IaaS)

Sistemas SGBD

  1. ¿Cuántos SGBD hay?

  2. ¿Cual fue el primero que se desarrolló?

  3. ¿Cual es la última versión de PostreSQL?

  4. ¿Cual la de mariaBD?

  5. ¿Cuántas versiones de Oracle hay?

  6. ¿Cual es el SGBD más usado en el mundo?

  7. ¿Microsoft Access cuánto cuesta?

  8. Para organizar tu lista de la compra, ¿qué sistema utilizarías?

  9. ¿Cuándo te compensa usar un SGBD?

  10. ¿Podrías preparar una pequeña presentación (máximo 3 minutos) sobre un SGBD?

4.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

      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: 1 y 2

      2. senior

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

    1. Administrar la infraestructura tecnológica (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 (FP, no un doctorado en BD)

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.3. El SGBD Sqlite#

  1. Pequeñita (pero matona). Sqlite Home Page

    1. Pequeña

    2. (muy) Rápida

    3. Fiable

  2. Stand-alone: toda la bd en un archivo (autocontenida)

  3. Soporte (casi) completo SQL. Full Featured SQL

  4. Muy fiable

  5. Y fácil de utilizar ( Getting Started ):

Instalación básica de SQLite

Instala sqlite y dile hola.

  1. Prueba >sqlite3 test.sql a ver si ya está instalado (Lo instalas , o lo pruebas en el navegador )

  2. Le dices hola (en SQL) -> sqlite> select 'hola';

  3. O hasta pídele una suma (en SQL) -> sqlite> select 14 * 23/4.56

  4. Y da para mucho más, puedes hasta pedirle ayuda de los comandos -> sqlite> .help

4.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)

4.5. El SGBD MariaDB#

  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 ). Múltiples opciones (reiniciar o recargar el servicio al modificar)

  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

    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)

4.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)

4.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)

4.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)