Programación

Como crear una base de datos de ejemplo en 5 minutos

Uno de los problemas habituales que podemos tener al querer probar una nueva tecnología, es la necesidad de tener una base de datos de ejemplo con información.

¿Qué es una base de datos de ejemplo?

Una base de datos de prueba no es más que un conjunto de datos relacionados, con los que poder trabajar. Esto es muy útil en multitud de casos:

  • Aprender un lenguaje de consultas, como SQL
  • Conocer cómo usar los conectores de base de datos de cada lenguaje
  • Hacer pruebas de rendimiento a nuestra base de datos
  • Testear configuraciones

¿Cómo crear una base de datos de test?

Para crear este conjunto de datos, podemos seguir dos alternativas principales. Crear una copia de datos que actualmente tengamos nosotros ya en una base de datos, o utilizar conjuntos de prueba disponibles en la red. En mi opinión, si se va a utilizar de manera interna tiene sentido utilizar datos propios. Sin embargo, liberar estos datos para que otros los utilicen pueden entrañar problemas de seguridad. Por ello, voy a utilizar la segunda opción.

¿Dónde conseguir datos de prueba?

Quizás esta sea la parte más compleja del proceso. Por una parte, los datos deben ser numerosos y estar relacionados con otros para poder hacer consultas complejas y pruebas intensivas. Pero, también queremos que la base de datos ocupe poco y que se pueda restaurar fácilmente.

Por las razones anteriores, para mí uno de los mejores conjunto de pruebas es el siguiente. Este conjunto contiene 300.000 registros de empleados unidos a su salario y algunas otras tablas auxiliares, siguiendo el siguiente esquema:

 

Otra opción que os puede resultar interesante, pero que no he podido probar a fondo es el siguiente generador de datos.

¿Cómo levantar una base de datos de pruebas?

Una vez que tenemos claro qué es, cómo crearla y de dónde conseguir los datos, sólo nos queda levantar una base de datos con el conjunto de pruebas. Para simplificar el proceso y favorecer que este artículo sea útil a un mayor número de lectores, voy a realizar la demo con Docker. Si todavía no sabes qué es docker, te recomiendo visitar el enlace anterior.

Los comandos que vamos a utilizar son los siguientes:

git clone https://github.com/datacharmer/test_db
cd test_db
docker run --name test-db -e MYSQL_ALLOW_EMPTY_PASSWORD=yes -d --rm mysql
docker exec -i test-db sh -c 'exec mysql -uroot ' < employees.sql
docker exec -i test-db sh -c 'exec mysql -uroot  employees' < load_departments.dump
docker exec -i test-db sh -c 'exec mysql -uroot  employees' < load_employees.dump
docker exec -i test-db sh -c 'exec mysql -uroot  employees' < load_dept_emp.dump
docker exec -i test-db sh -c 'exec mysql -uroot  employees' < load_dept_manager.dump
docker exec -i test-db sh -c 'exec mysql -uroot  employees' < load_titles.dump
docker exec -i test-db sh -c 'exec mysql -uroot  employees' < load_salaries1.dump
docker exec -i test-db sh -c 'exec mysql -uroot  employees' < load_salaries2.dump
docker exec -i test-db sh -c 'exec mysql -uroot  employees' < load_salaries3.dump
docker exec -i test-db sh -c 'exec mysql -uroot  employees' < test_employees_md5.sql

En este caso he necesitado cargar volcado a volcado cada uno de los ficheros, debido a varios problemas con el script de carga inicial. Este script hace referencia a otros ficheros, lo que complica trabajar con Docker ya que las rutas son distintas. Para finalizar se lanza el comando de la última línea que comprueba que todos los datos han sido cargados correctamente.

Si te ha resultado útil este artículo, házmelo saber.

Icono diseñado por Smashicons para www.flaticon.com bajo la licencia CC 3.0 BY

The following two tabs change content below.

Jorge Durán

Entusiasta de la tecnología desde los 10 años, desarrollador y creador de varios proyectos de software y autodidacta por naturaleza. Ingeniero Informático por la USAL
Jorge Durán

Entusiasta de la tecnología desde los 10 años, desarrollador y creador de varios proyectos de software y autodidacta por naturaleza. Ingeniero Informático por la USAL

Share
Publicado por
Jorge Durán

Recent Posts

[Remix] Multitud de recursos para .NET

En los últimos tiempos no he podido escribir con toda la frecuencia que me gustaría,…

3 años hace

¿Qué es un puntero y cómo se usan?

Uno de los problemas más comunes a los que se enfrentan los usuarios que empiezan…

3 años hace

Los 10 mejores paquetes nuget que tienes que instalar

Cuando empiezas un proyecto hay una serie de aspectos comunes que suelen ser resueltos mediante…

4 años hace

Haz los mejores layouts y patrones CSS fácilmente

Si alguna vez has tenido que realizar un desarrollo de front-end seguramente te habrás dado…

4 años hace

10 lugares con retos y competiciones de programación

Una vez que una persona ya ha aprendido lo básico sobre un lenguaje de programación,…

5 años hace

¿Cómo elegir un buen hosting para tu proyecto?

Hoy en día, un gran porcentaje de los proyectos que se desarrollan son páginas webs.…

5 años hace