Diseñar una base de datos de forma adecuada es la clave para que el acceso posterior a la información sea rápido, no es otra cosa que definir la estructura que le daremos a los datos que vamos a manejar, al final es un proceso que vas a dominar y que podrás realizar de forma fácil e intuitiva.

Existen algunas claves que se deben seguir para tener un diseño óptimo de una base de datos,  e implican un correcto diseño tanto físico como lógico de la estructura de datos.

¿Qué es una base de datos?

Antes de conocer las claves para diseñar una base de datos deberíamos entender el porqué de una base de datos, y es que, por definición, una base de datos es un conjunto de datos organizados dentro de un mismo contexto para ser explotados y que se almacenan en un soporte electrónico.

La información dentro de una base de datos se organiza normalmente en registros y se proporcionan los mecanismos adecuados para poder acceder de forma ágil a dicha información almacenada.

El proceso de diseño de bases de datos lo podemos dividir en 3 grandes bloques o etapas:

Diseño conceptual: Es la etapa donde describimos, sin importar que manejador de bases de datos se esté usando, toda la estructura que tendrá nuestro sistema. Esta parte es fundamental y es clave para el diseño de una base de datos exitosa.

Diseño lógico: Para esta etapa se utiliza como punto de arranque lo ya preparado durante la fase del diseño conceptual y nos permite desarrollar más a profundidad los datos, esto debido a las diferentes relaciones entre las entidades que tendrá la estructura de datos. Aquí vamos a tener una vista previa de cómo el motor de bases de datos va a ver nuestro esquema o mapa de implementación.

Diseño físico: En este punto vamos a implementar nuestra base de datos de la forma más eficiente posible con el sistema de gestión de bases de datos de nuestra elección. Es aquí donde llevamos nuestra estructura general a la forma requerida por el sistema de gestión de bases de datos que elegimos para nuestro proyecto.

Importancia del diseño físico de una base de datos

Como hemos comentado al inicio de este post, es tan importante el diseño lógico de una base de datos (definición de tablas, índices, relaciones, etc.) como el físico. El diseño físico hace referencia a cómo se va a almacenar la base de datos de forma física en nuestro servidor. Define el conjunto de ficheros o archivos sobre los que se almacenarán los datos.

En este punto será muy importante el saber qué tipo de uso se dará a la base de datos, para poder definir las capacidades de hardware que vamos a necesitar, como procesador, memoria RAM, espacios de  disco para almacenar la base de datos, y su velocidad, del disco será muy importante de cara a la velocidad de acceso al disco.

Si necesitamos altas prestaciones, deberíamos usar discos de estado sólido, de lo contrario, podemos usar discos convencionales. Dentro de los convencionales, tendremos diferentes velocidades de giro del disco, que evidentemente, determinarán la velocidad de acceso.

La última generación de bases de datos va ya a un nivel superior, almacenando todos los datos en memoria, obteniendo así la mejor velocidad de acceso posible, pero esto implica disponer de servidores con capacidad para muchos GB de memoria RAM.

A nivel físico, otra parte importante es la definición de los ficheros, siendo recomendable diferenciar entre los de datos, los de índices y los de log, ya que el tipo de acceso a los mismos será diferente.

De esta manera, lo más recomendable es ubicar en filesystems diferentes cada tipo de archivo. Incluso sobre diferentes tipos de disco si queremos llegar al máximo detalle.

Esta parte del diseño físico de la base de datos recae sobre el administrador de la misma o DBA y el administrador del sistema (servidor y discos) que van a gestionar la plataforma, y es una de las claves para un acceso ágil.

Claves para el diseño lógico de una base de datos

El diseño físico y el diseño lógico de una base de datos van siempre de la mano y si bien podemos realizar diseño físico sin tener el diseño lógico, lo ideal es que se realice de forma conjunta para poder optimizar el rendimiento.

A nivel lógico, lo primero que debemos tener en cuenta para realizar un buen diseño es el propósito de la base de datos. No podemos comenzar a diseñar si no tenemos claro qué va a almacenar la base de datos.

Definido el alcance, el primer paso es identificar los diferentes tipos de información que va a contener la base de datos. A esto lo denominaremos entidades, que finalmente pasarán a ser tablas de la base de datos.

Es importante crear entidades distintas para cada tipo de información. Por ejemplo, no es conveniente crear una sola tabla para facturas, lo lógico es una tabla para las cabeceras de factura, otra para cada línea de factura y otra con los datos de los clientes a los que se factura.

Esta atomización de la información va a permitir tener entidades más pequeñas y manejables.

Una vez tenemos definidas estas entidades, deberemos definir las relaciones existentes entre ellas y que van a determinar las claves foráneas y la integridad referencial de la base de datos.

Siguiendo el ejemplo anterior, relacionaremos la cabecera de la factura con las líneas de factura a través del número de factura. Y relacionaremos la cabecera de factura con los datos del cliente a través de un código de cliente.

Estas relaciones permitirán que no se puedan eliminar registros que tengan alguna dependencia con otra entidad para no tener registros huérfanos. Con las entidades y las relaciones definidas, ya tendremos nuestro esquema entidad-relación creado y que podremos plasmar en una herramienta de modelización de base de datos.

Los siguientes pasos serian detallar el contenido de cada entidad o tabla, es decir los campos que la componen, además de los ya identificados para relacionar las diferentes tablas. Parte importante de este proceso, es definir las claves primarias, que son el campo o campos que harán único a cada registro de la tabla y evitarán duplicidades.

Para finalizar un primer diseño, definiremos los índices a crear para cada tabla. La definición de forma adecuada de esos índices es muy importante y representan los campos por los que se van a realizar las búsquedas en las tablas.

Tenemos que tener claro el orden de los campos que van a componer un índice pues si no filtramos por alguno de los campos que componen el índice, el mismo no se usará y la búsqueda será más lenta.

Y hasta aquí, las claves para realizar un diseño adecuado de una base de datos. Es importante dedicar el tiempo que sea necesario a definir con precisión el modelo de base de datos ya que luego, ya implementada, cualquier modificación puede resultar muy costosa.

Deja un comentario

Close Menu