MariaDB es un sistema de gestión de bases de datos derivado de MySQL con licencia GPL esta desarrollado por el creador de MySQL Michael (Monty) Widenius, después de la venta a Oracle de esta, Es desarrollado por  (fundador de MySQL) , en la que cuenta con el apoyo de la comunidad de desarrolladores de software libre.

Introduce dos motores de almacenamiento nuevos, uno llamado Aria -que reemplaza con ventajas a MyISAM– y otro llamado XtraDB -en sustitución de InnoDB.

Una de las características principales es que tiene una alta compatibilidad con MySQL ya que posee las mismas órdenes, interfaces, APIs y bibliotecas, lo que permite cambiar un servidor por otro directamente, como ha hecho, por ejemplo, Wikipedia entre otros.

Empezemos con el tutorial.

Tutorial Mariadb (Mysql): Explicación

En este caso vamos a crear una serie de tablas en relación al proyecto que se explica a continuación para poder aprender y hacer pruebas con Mysql con ejemplos, aquí podemos optar por la versión de Oracle o por el fork de Mariadb.

  1. EL PROYECTO: definición y esquema E-R
  2. MARIADB: instalación y configuración
  3. CREAMOS LA BASE DE DATOS: customerdb
  4. PREPARAMOS EL ENTORNO CON DBEAVER

Utiliza el código como quieras y para lo que quieras ya que este es un proyecto de aprendizaje para mi y para todo aquel que lo encuentre útil.

Si ya has consultado el post de PostgreSQL puedes pasar directamente al apartado de preparación del entorno, ya que para facilitar el aprendizaje y comparación de diferentes bases de datos, usamos siempre el mismo esquema

1. EL PROYECTO: definición y esquema E-R

Definición

El proyecto consiste en la administración de clientes para diferentes empresas, para ello se plantea la necesidad de tener la información de la empresa y de los clientes, cada empresa podrá tener múltiples clientes, para el caso de estudio se plantea que ambas entidades tengan los campos básicos y direcciones que podrán ser una o varias.

Así mismo, y para completar el proyecto con el desarrollo que creemos necesario, se plantea que la tabla clientes tenga como tablas asociadas las tablas de: monedas, países e idiomas, que podrían ser tablas de uso general en la aplicación, y una tabla más específica como podría ser formas de pago.

Esquema inicial

Este no es un diagrama entidad relación clásico sino una simple estructura de las tablas que se van a implementar y de sus relaciones.

Learning Project Customerdb Database Esquema Inicial

Tablas del esquema

Para desarrollar este esquema vamos a necesitar las siguientes tablas, a continuación se explica su utilidad y algunas características básicas, el resto se explicará directamente sobre el código SQL:

TABLADESCRIPCIÓNCARACTERÍSTICAS DE DISEÑO
cb_enterpriseEmpresas de la aplicación, cada empresa tendrá sus clientes.Las empresas tendrán definido inicialmente: idioma, país y moneda, así como otros campos básicos propios.
cb_customer Tabla general de cliente, donde se almacenarán los clientes de las diferentes empresas.Tendrán definido inicialmente: idioma, país, direcciones, empresas, métodos de pago y moneda, así como otros campos básicos propios.
cb_addressesTabla de registro de las direcciones, se asocian aquí las direcciones que tienen un cliente.Registro para asociar las direcciones al cliente, cada cliente tendrá un número ilimitado de direcciones con cb_address relacionado mediante cb_addresses (es básicamente una tabla relacional)
cb_addressTabla de dirección donde se guardan los datos de la dirección en sí.Tabla de dirección que tendrá los campos generales de una dirección, así como números de teléfono, transportista y tipos de dirección.
cb_languageTabla con los idiomas registrados en la aplicación, se podrá relacionar con múltiples tablas.
cb_currencyTabla con las monedas registradas en la aplicación, se podrá relacionar con múltiples tablas.
cb_countryTabla con los países registrados en la aplicación, se podrá relacionar con múltiples tablas.Para cada país se especificará la moneda y el idioma utilizado por defecto.
cb_paymentmethodMétodos de pago definidos para el cliente u otras entidades.
Descripción de las tablas que veremos a lo largo del curso.

2. MARIADB: INSTALACIÓN Y CONFIGURACIÓN

Instalación de Mariadb

No me extenderé en este apartado, las descargas e información para la instalación las puedes encontrar aquí: https://downloads.mariadb.org/, como en mi caso para las pruebas estoy usando Ubuntu ejecuto directamente la instalación del servidor:

sudo apt-get install mariadb-server

Si necesitas seguir paso a a paso la instalación y securización de MariaDB lo puede ver en la entrada: Instalación de MariaDB en Ubuntu 20.04

Instalación de Mariadb en Ubuntu 20.04v
Instalación de Mariadb en Ubuntu 20.04

Una vez hecha la instalación, vamos a registrar la clave para root y crear la base de datos para las pruebas. Para empezar hacemos login en la cuenta de MySQL root (administrative) usando este comando:

mysql -u root -p

Te preguntará la clave para la cuenta de root de MySQL root cuanto instales el software.

De momento vamos a trabajar con la consola de MySQL directamente, tal y como dije anteriormente que se podía acceder y realizar todas las acciones.

Puesta en marcha básica del servidor

Después de la instalación la base de datos ya queda iniciada automáticamente, y queda funcionando para que al reiniciar el ordenador esta arranque por defecto, algunas opciones de servicio mysql son:

Otras opciones del servicio son: stop|restart|reload|force-reload|status

Por ejemplo, para reiniciar el servidor utilizaríamos:

sudo /etc/init.d/mysql restart

Para ver la configuración y la versión mysql que tenemos instalada:

sudo /etc/init.d/mysql status

Lo que nos saldrá por pantalla será algo así:

* /usr/bin/mysqladmin  Ver 9.0 Distrib 5.5.44-MariaDB, for debian-linux-gnu on x86_64
Copyright (c) 2000, 2015, Oracle, MariaDB Corporation Ab and others.

Server version 5.5.44-MariaDB-1ubuntu0.14.04.1
Protocol version  10
Connection  Localhost via UNIX socket
UNIX socket /var/run/mysqld/mysqld.sock
Uptime: 4 min 17 sec

Threads: 1 Questions: 82 Slow queries: 0 Opens: 13  Flush tables: 2 Open tables: 39 Queries per second avg: 0.319

Creamos una base de datos de prueba, para comprobar la instalación:

CREATE DATABASE pruebadb;

El comando para eliminar la base de datos sería.

DROP DATABASE pruebadb;

Si hasta aquí todo fue bien, ya podemos empezar con la creación de la base de datos del proyecto.

3. CREAMOS LA BASE DE DATOS: CUSTOMERDB

Creación de la base de datos customerdb y el usuario

Creamos la base de datos donde vamos a crear las tablas para desarrollar nuestro tutorial, el nombre que utilizamos es customerdb:

CREATE DATABASE customerdb;

Ver la entrada

Creamos el usuario que vamos a utilizar xulescode y la contraseña, en este caso la misma:

CREATE USER xulescode@localhost IDENTIFIED BY 'xulescode'

Damos todos los privilegios al usuario xulescode sobre las base de datos customerdb:

GRANT ALL PRIVILEGES ON customerdb.* TO xulescode@localhost;

El comando para eliminar la base de datos sería.

DROP DATABASE customerdb;

Si tuvieras que eliminar el usuario creado este sería el comando a ejecutar:

DROP USER xulescode@localhost;

En este caso, para facilitar las pruebas de creación de tablas y consultas voy a utilizar un editor gráfico de escritorio Dbeaver, ya que para los que estáis empezando os servirá de ayuda y os facilita que vayais guardando los diferentes scripts con el código SQL que se vaya generando. Tenemos varias alternativas a Dbeaver en escritorio como: Database Workbench o Squirrel SQL, también web como el conocidísimo PhpMyAdmin o Adminer. Tenéis una lista completa de los que recomienda MariaDB en este enlace: Graphical and Enhanced Clients

4. Preparamos el entorno con Dbeaver

Dbeaver es herramienta de base de datos multiplataforma gratuita para desarrolladores, administradores de bases de datos, analistas y todas las personas que necesitan trabajar con bases de datos. Admite todas las bases de datos populares: MySQL, MariaDB, PostgreSQL, SQLite, Oracle, DB2, SQL Server, Sybase, MS Access,…

Por lo tanto Dbeaver es un editor que podrás utilizar de forma sencilla con otras bases de datos relacionales, si tienes curiosidad en nuestra web encontrarás tutoriales de PostgreSQL y SQLite.

Características del editor SQL DBeaver

Con Dbeaver puedes manipular sus datos como en una hoja de cálculo normal, crear informes analíticos basados ​​en registros de diferentes almacenamientos de datos y exportar información en un formato apropiado. Para los usuarios avanzados de bases de datos, Dbeaver tiene un potente editor de SQL, y que es muy sencillo de manejar para los usuarios que estén empezando, además proporciona muchas funciones de administración, capacidades de migración de datos y esquemas, monitoreo de sesiones de conexión de bases de datos y mucho más. Dbeaver es compatible con más de 80 bases de datos.

Teniendo la usabilidad como su principal objetivo, Dbeaver ofrece:

  • Interfaz de usuario cuidadosamente diseñada e implementada
  • Soporte de fuentes de datos en la nube
  • Soporte para el estándar de seguridad empresarial
  • Capacidad para trabajar con varias extensiones para la integración con Excel, Git y otros.
  • Gran cantidad de funciones
  • Soporte multiplataforma

Conexión a MariaDB con DBeaver

Vamos a ver con unas imágenes que fácilmente nos conectamos a la base de datos y empezamos a trabajar:

Dbeaver 21.0.2 - 01 -Visión General
Dbeaver 21.0.2 – 01 -Visión General
Dbeaver - 02 - Selección de base de datos Mariadb
Dbeaver – 02 – Selección de base de datos Mariadb
Dbeaver - Conexión a la base de datos local con MariaDB
Dbeaver – Conexión a la base de datos local con MariaDB
Dbeaver - 06 - Probamos la conexión
Dbeaver – 06 – Probamos la conexión

Alternativa para la gente de Java con Netbeans

Al usar Netbeans u otro editor Java como Eclipse o IntelliJ IDEA tenemos integrado un editor SQL que definiendo la conexión nos permite conectar a la base de datos directamente y hacer desde ahí nuestras consultas.

Algunas de las características del editor Netbeans para bases de datos, son por ejemplo:

  • El soporte que proporciona directamente con la incorporación de drivers para MySQL (lo que nos sirve para el Tutorial MariaDB), y para otras bases de datos como Postgresql o Oracle.
    • «NetBeans IDE provides drivers for the Java DB, MySQL, Oracle, and PostgreSQL database servers so that you can connect to these databases very easily. You can also register any other JDBC driver with the IDE, so that you can explore any database that provides a JDBC driver».
    • Así, de forma fácil y solo añadiendo los datos de tu conexión a la base de datos ya tienes fácilmente tu conexión a la base de datos. Como se puede ver en la imagen de ejemplo
  • Proporciona un explorador de bases de datos como se puede ver en la figura superior, desde aquí tendrás cubiertas las necesidades principales para la creación y manejo de tablas.
  • El editor SQL proporciona ayuda en el código directamente sobre la consulta que estás efectuando, también puedeas cargar un script y ejecutarlo directamente desde aquí.

Para conectar la base de datos que hemos creado simplemente completamos los parámetros que se muestran en la imagen para la conexión al servidor y listo:

Si tienes algún problema o dudas consulta este tutorial: Connecting to a MySQL Database , donde lo explican todo detalladamente.

Hasta aquí el primer post del Tutorial MariaDB (MySQL), próximamente en el siguiente post empezaremos con la creación de las tablas en nuestra base de datos.

Espero que te haya sido útil.

Curso MariaDB (2): Creando las tablas en SQL

Sigue el aprendizaje de SQL con MariaDB (MySQL) con Learning Project en la siguiente publicación: Tutorial MariaDB (2): Creando las tablas en SQL, donde explicamos paso a paso la sintaxis para la creación de tablas.