4. Administrar un SGBD¶
En este curso aprenderás a:
Realizar una instalación y configuración básica de un SGBD
Conocer las tareas de administración básicas de una BD
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¶
Te permiten administrar la BD:
El almacén: la base de datos
El sistema (hardware / software / usuarios) que lo gestiona: El SGBD
Historia:
organización secuencial
navegación archivos
relacionales (y SQL)
OO
NoSQL (Not Only SQL)
XML / JSON
Descripción del SGBD: Arquitectura ANSI/XPARC :
Nivel Externo. Cada usuario tiene una visión de los datos (Vistas)
Nivel Conceptual. Describe cómo están organizados los datos (Diseño Conceptual y Lógico)
Nivel Interno. Describe cómo se almacenan los datos y donde (Diseño Físico)
Muchos componentes según la complejidad del sistema:
Interfaz externa: GUI (gráfica) y CLI (consola)
Gestor del almacenamiento físico
Intérprete del lenguaje según el modelo de datos utilizado
Compilador y Optimizador de las consultas
Motor de la BD
Gestor de las transacciones
Gestor de los usuarios y seguridad
Hay muchos (pero muchos) SGBD. Algunos ejemplos:
Comparativa SGBD Relacionales
Comparativa SGDB No SQL
SGBD como servicio ( Cloud Databases ). Más avanzado pero muy utilizado en servicios complejos
Un tercero (delego mi responsabilidad) gestiona mi base de datos en su infraestructura
Uso la BD como un servicio, es decir DBaaS (o podría instalarla en su infraestructura -> IaaS)
Sistemas SGBD
¿Cuántos SGBD hay?
¿Cual fue el primero que se desarrolló?
¿Cual es la última versión de PostreSQL?
¿Cual la de mariaBD?
¿Cuántas versiones de Oracle hay?
¿Cual es el SGBD más usado en el mundo?
¿Microsoft Access cuánto cuesta?
Para organizar tu lista de la compra, ¿qué sistema utilizarías?
¿Cuándo te compensa usar un SGBD?
¿Podrías preparar una pequeña presentación (máximo 3 minutos) sobre un SGBD?
4.2. Administrar un SGBD¶
¿Quien es el responsable? El Administrador (DBA)
Funciones: instalar, configurar y administrar:
El software SGBD en …
una o varias instancias …
y con una o varias BD (o esquemas)
Ojo con las obligaciones legales (sobre los datos y el acceso)
Carrera Profesional (How to become a … ) :
¿Qué hay que hacer? Muchas cosas, pero por simplificar:
Administrar la infraestructura tecnológica (sistema base)
Administrar el acceso a los datos (quien, a qué y desde donde)
Administrar la seguridad e integridad de los datos (aspectos técnicos y legales)
Administrar el servicio (rendimiento, acceso, etc) y dar soporte (ayuda a usuarios)
Conceptos Generales de administración de BD y SQL (Database Glossary /PostgreSQL Glossary )
Conceptos Generales
Objetos SQL: Tablas, índices, vistas, disparadores (triggers), funciones, etc
Restricciones (Constraint) a nivel de columna o de tabla
Test ACID: soporte transaccional
Consultas y Subconsultas (Query / Multi-row_subquery)
Particionado (Tablespace): misma BD (o esquema) en diferentes sistemas de almacenamiento físico
Componentes y Funciones del SGBD
Query Planner (Planificador de consultas)
Estándar SQL (listado)
Concurrencia y bloqueo (Lock)
Programación: funciones, procedimientos almacenados, etc
Motor de Almacenamiento
Mecanismo de Almacenamiento
Disaster Recovery
Replicación: copias y sincronización de una BD en diferentes instancias
Business Intelligence (BI): análisis de datos para toma de decisiones
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:
Explicar los diferentes tipos de objetos en una BD
Tener claros los conceptos del modelo relacional
¿Qué sería una transacción? ¿Qué es eso de ACID?
¿Qué es la concurrencia y el bloqueo?
Diferentes conceptos de SQL (lenguajes DDL, DML, DCL y DTL)
¿Qué es la replicación o la recuperación por fallo?`
¿Qué es la autenticación basada en cliente? ¿Y en host?
¿Sobre qué infraestructura voy a desplegar mi SGBD?
¿Qué es eso de la alta disponibilidad?
¿Cómo realizo actualización y migración de los datos?
4.3. El SGBD Sqlite¶
Pequeñita (pero matona). Sqlite Home Page
Pequeña
(muy) Rápida
Fiable
Stand-alone: toda la bd en un archivo (autocontenida)
Soporte (casi) completo SQL. Full Featured SQL
Muy fiable
Y fácil de utilizar ( Getting Started ):
Instalación básica de SQLite
Instala sqlite y dile hola.
Prueba
>sqlite3 test.sql
a ver si ya está instalado (Lo instalas , o lo pruebas en el navegador )Le dices hola (en SQL) ->
sqlite> select 'hola';
O hasta pídele una suma (en SQL) ->
sqlite> select 14 * 23/4.56
Y da para mucho más, puedes hasta pedirle ayuda de los comandos ->
sqlite> .help
4.4. Administración básica de Sqlite¶
Documentación de Referencia:
Uso de comandos sqlite (dot commands ).
Se ven todos con uno de ellos:
.help
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
)
Importar / Exportar:
Archivo .db (base de datos autocontenida). Se puede abrir con
.open base_de_datos.bd
o directamente.Archivo .sql (exportar esquema y contenido).
Exportar esquema (
.schema
) a un archivo (vía.output
)Exportar la BD completa (esquema + contenido) vía
.dump
Importar esquema (cargando comandos SQL vía
.read
)Se puede exportar también a tabla csv (exportar csv )
Uso de archivos CSV (importar CSV en sqlite ):
Activar modo CSV
Revisar el archivo CSV por si hay alguna inconsistencia (campos, texto, delimitadores, etc)
Importar archivo csv (vía
.import
) o …Crear la tabla e importar el archivo (eliminar campos de encabezado)
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¶
Es uno de los SGBD más usados en sitios (aplicaciones) web
Es básicamente MySQL (Compatibility ) pero resolviendo el problema de la licencia (y control) del desarrollo
Permite diferentes motores de almacenamiento (nivel físico)
Tiene una funcionalidad muy completa
Un archivo de configuración principal:
my.cnf
(ejemplo ). Múltiples opciones (reiniciar o recargar el servicio al modificar)Proceso estándar de instalación:
Descargas e instalas (depende de tu sistema)
Aseguras la instalación (localhost, ojo en configuración LAN o WAN):
Definimos el usuario administrador (y le ponemos clave)
Quitamos el acceso anónimo (y cualquier usuario no administrador)
El acceso sería sólo desde localhost
Es decir la conexión necesitará generalmente: el host, el puerto, el usuario, la contraseña y la base de datos
Revisas el archivo de configuración
Ves si ya hay bases de datos creadas (Revisar información )
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¶
Documentación de Referencia:
Administrar MariaDB
Usar MariaDB en la práctica Administrar un SGBD (Cualquiera)
4.7. El SGBD PostgreSQL¶
Relacional y orientada a objetos (ORDBMS )
Muy completa, fiable, con muy buen rendimiento, alta concurrencia y libre
Muy buen soporte y documentación muy completa
Es muy extensible (un muy buen ejemplo es PostGIS )
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¶
Documentación de Referencia:
Curso Completo (14 videos sencillos) de Postgres para principiantes :
Instalar PostgreSQL
Usar PostgreSQL en la práctica Administrar un SGBD (Cualquiera)