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.
Tabla de contenidos
¿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
Jorge Durán
Latest posts by Jorge Durán (see all)
- [Remix] Multitud de recursos para .NET - 18 junio, 2021
- ¿Qué es un puntero y cómo se usan? - 4 junio, 2021
- Los 10 mejores paquetes nuget que tienes que instalar - 26 abril, 2021