La gestión de las bases de datos en el desarrollo web

La gestión de las bases de datos en el desarrollo web

Carlos Yañez

27-07-2016

En el post de hoy vamos a hablar de un elemento que da vida a una página web y que debemos tener en cuenta en cualquier desarrollo web pues va a determinar la calidad del mismo. Nos estamos refiriendo a las bases de datos en el desarrollo web.

Siempre que estamos delante de una página web dinámica, es decir, interactiva y con contenidos que varían fácilmente en el tiempo o que permite registrarnos, tendremos detrás un gestor de base de datos.

 

¿Qué es una base de datos?

Una base de datos no es más que un programa informático capaz de almacenar información de forma estructurada y ofreciendo mecanismos de búsqueda de esa información almacenada óptimos y rápidos. La información se suele organizar en diferentes tablas que suelen estar relacionadas entre ellas.

Cada tabla suele contener información en diferentes registros de un tipo de entidad (clientes, facturas, etc…). Sobre esas tablas se crean claves o índices que permiten referenciar los contenidos y optimizar la búsqueda de los mismos.

Aunque existen diferentes tipos de bases de datos, el más usando es el de tipo relacional, que como su nombre indica, permite relacionar los contenidos que alberga mediante diferentes tablas y relaciones entre ellas.

En el mundo de los desarrollos web, MySQL es la base de datos más extendida, pero tampoco podemos olvidar otras alternativas también muy extendidas, como Microsoft SQL Server, PostgreSQL o MongoDB.

 

¿Para qué sirve una base de datos en desarrollo web?

En un desarrollo web, las bases de datos nos permiten actuar como almacén de datos y extraer el contenido de la web y disponerlo fácilmente, tal y como el desarrollador requiere en su proyecto web o el internauta necesita visualizarlo.

Aunque mucha gente puede que no sea consciente, la base de datos es na parte fundamental del rendimiento de una web, además de otros factores.

Por este motivo, es muy importante que hagamos un diseño inicial de la misma óptimo y orientado al desarrollo web que tenemos pensado implementar.

En la fase inicial de diseño de la base de datos, es necesario determinar la finalidad de la misma, organizar y categorizar la información a contener según las claves, definir las relaciones entre tablas y elementos que conformarán la misma y normalizarla de cara a facilitar la integración de la base de datos con otros sistemas.

Así mismo, es fundamental dotar a la base de datos de un hardware adecuadamente dimensionado a las necesidades de consulta que va a tener dicha base de datos.

 

Consejos para una gestión eficiente de las bases de datos en el desarrollo web

Como hemos indicado, un diseño adecuado de la base de datos y una gestión eficiente de la misma nos va a permitir minimizar los problemas de rendimiento de nuestro desarrollo web, o al menos, en caso que se diesen, focalizarlo en otros componentes como puedan ser el servidor web o el hardware que lo soporta.

Para optimizar pues el rendimiento y gestión de la base de datos, conviene seguir los siguientes consejos:

  1. Mantén tu base de datos limpia y ordenada

Pese a haber realizado un diseño de base de datos óptimo, con el tiempo es probable que lo hayamos modificado creando tablas o dejando de usar algunas.

Es importante que sólo mantengamos vivas aquellas estructuras (tablas e índices) que realmente estamos usando y evitar la “basura” que solo va a penalizar el rendimiento de nuestra base de datos y a consumir espacio innecesario.

  1. Revisa y optimiza las consultas

Los accesos a los datos que hay en las bases de datos se realizan a través de lo llamado consultas SQL. Para optimizar el rendimiento de las mismas, se crean índices que permiten localizar la información de forma rápida.

Conviene revisar periódicamente el rendimiento de nuestras consultas y ver si existe la necesidad de crear índices que las agilicen. También es recomendable recrear los índices de forma periódica pues con el tiempo pueden llegar a corromperse.

  1. Monitoriza las consultas abiertas

En ocasiones, cuando se está accediendo a la base de datos mediante una consulta para mostrar contenido en la web, puede surgir un problema y quedar se dicha consulta abierta sin finalizar.

Esta situación provoca que haya procesos inútiles en ejecución que consumen memoria y tiempo de CPU del servidor web pudiendo provocar un enlentecimiento del mismo.

Es fundamental monitorizar estas consultas y matar aquellas que lleven mucho tiempo abiertas pues lo más probable es que sean procesos colgados.

  1. Las imágenes mejor fuera de la base de datos

Aunque es posible almacenar imágenes dentro de las bases de datos, pero no es algo recomendable.

Las imágenes de alta definición tienen un tamaño elevado y guardarlas dentro de la base de datos sólo hará que esta crezca rápidamente. Lo más recomendable es guardar las imágenes en directorios y en la base de datos tener tan solo una referencia al nombre y ubicación de esa imagen.

De esta forma, mantendremos el tamaño de la base de datos controlado, lo cual nos va a proporcionar un mejor rendimiento de la misma.

  1. Usa descripciones cortas

Cuando creamos una tabla, definimos el nombre de cada uno de los campos con total libertad. Lo ideal es que esos nombres de campos sean cortos y sencillos pues redundará en búsquedas más rápidas.

Por ejemplo, en una tabla de productos el campo de nombre del producto en mejor llamarlo nombre que nombre_producto.

 

Como ves, las bases de datos forman parte importante de un desarrollo web y hay que dedicarle un tiempo a la gestión de la misma para que la experiencia de quien navega por la web sea adecuada en cuanto a velocidad.

Espero que con estos consejos que te he dado hayas entendido lo importante tener una base de datos cuidada. Si ya tienes experiencia en la gestión de bases de datos en el desarrollo web, porque no nos cuentas algún otro consejo para optimizarlas.

Profile picture for user Carlos Yañez
Carlos Yañez

Ingeniero Superior de Telecomunicaciones por la UPC. Director de Informática en un Laboratorio de Análisis con implantación nacional. Profesor de los cursos de Electrónica y Técnico en Sistemas Microinformaticos y Redes.