5. Bases de datos en MySQL

Una vez hemos terminado el proceso de diseño de nuestra solución, en cuanto a su sistema de información, es hora de implantarlo sobre un sistema gestor de bases de datos.

Ya que disponemos de dos alternativas (MySQL y PostgreSQL), y no nos corresponde tomar la decisión final (sólo hacer la recomendación), vamos a elaborar una lista con los aspectos clave en la toma de decisiones y a puntuar, o comentar, cada SGBD según los ítems siguientes:

 

Nota
Mostraremos esta lista en
forma de tabla, y al final elabo- raremos unas conclusiones. Aunque no realicemos una ponderación de cada aspecto de la lista anterior, la simple comparación nos servirá para llegar a una conclusión rápida.

•    Modelo de licencia, precio.
•    Soporte por parte del fabricante.
•    Conexión desde PHP.
•    Prestaciones en creación de las estructuras (tablas, índices, etc.).
•    Prestaciones en tipos de datos.
•    Prestaciones en consultas simples.
•    Prestaciones en consultas complejas.
•    Prestaciones en manipulación de datos.
•    Facilidad en la administración de usuarios.
•    Facilidad en la gestión de copias de seguridad.

Clave de valoración
•   1: no satisfactorio
•   2: satisfactorio
•   3: muy satisfactorio

 

Concepto Valoración Comentarios
Modelo de licencia, precio 2 Aunque no nos planteamos vender nuestra solución, ni comercializarla con una licencia propietaria, la licencia dual de MySQL siempre será un aspecto que tendremos que tener en cuenta si alguien se interesa por nuestra aplicación.
Soporte por parte del fabricante 3 Tenemos tanto la opción de contratar soporte en varias modalidades, como la de optar por consultar a la amplísima gama de usuarios del producto. En todo caso, en ambas situaciones obtendremos un excelente soporte.
Conexión desde PHP 3 PHP siempre ha incluido soporte para este SGBD bien con funciones especiales dedicadas que aprovechan al máximo sus características, o bien con librerías PEAR como DB que nos abstraen del SGBD y que soportan MySQL a la perfección. Aunque recientemente ha habido algún problema con la licencia y parecía que PHP no incluiría soporte para MySQL en sus últimas versiones, MySQL ha hecho una excepción con PHP
(que sin duda ha contribuido mucho a la popularización de MySQL) por el bien de la comunidad y de sus usuarios.
Prestaciones en creación de las estructuras (tablas, índices, etc.) 2 MySQL es francamente fácil de manejar en este aspecto, y aunque no ofrece todas las prestaciones contempladas en el estándar, es “satisfactorio” para la aplicación que estamos planeando.
Prestaciones en tipos de datos 2 Los tipos de datos soportados por MySQL así como los operadores incluidos en el SGBD son más que suficientes para nuestra aplicación.
Prestaciones en consultas simples 3 Ésa es precisamente la característica que hace que MySQL sea uno de los SGBD mejor posicionados.
Prestaciones en consultas complejas 2 Hasta hace poco, MySQL no soportaba subconsultas y esto implicaba un mayor esfuerzo por parte de los programadores. Ahora ya las soporta y a un nivel igual al de sus competidores.
Prestaciones en manipulación de datos 3 MySQL incluye multitud de opciones no estándares para cargar datos externos, insertar o actualizar sobre la base de consultas complejas y la utilización de operadores como condiciones para la manipulación.
Facilidad en la administración de usuarios 3 Soporta muy bien el estándar en cuanto a la creación de usuarios y la gestión de sus privilegios con GRANT y REVOKE. Además, todos estos datos están accesibles en tablas de sistema,  lo que hace muy sencilla la verificación de permisos.
Facilidad en la gestión de copias de seguridad 3 Disponemos tanto de herramientas de volcado, como la posibilidad de copia binaria de la base de datos. Además, dada su popularidad varios fabricantes de soluciones de copias de seguridad proporcionan conectores para realizar backups de la base de datos en caliente.
Conclusión 2,6 Estamos ante un “más que satisfactorio” SGBD para la solución que nos planteamos. No hay ninguna carencia insalvable.