Cómo almacenar información correctamente en una base de datos

Cómo almacenar información correctamente en una base de datos

Carlos Yañez

21-12-2016

El correcto diseño de una base de datos nos permitirá una mejor organización de la información y un acceso rápido a la misma.

Existen unas pautas claras que hay que seguir para poder diseñar una base de datos óptima que nos evite redundancia en la información almacenada y mecanismos óptimos de búsqueda y de integridad de datos.

En el post de hoy explicaremos las pautas más importantes que se deben seguir en todo diseño de base de datos.

 

¿Qué es una base de datos?

Antes de comentar cómo diseñar correctamente una base de datos veamos que entendemos por base de datos

La definición de base de datos no es única, pero podemos acordar definirlo como un conjunto de datos organizados dentro de un mismo contexto para ser explotados y que se almacenan genéricamente en un soporte electrónico.

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

 

Primeros pasos en el diseño de una base de datos

Cuando se diseña una base de datos, hay un conjunto de aspectos que tenemos que valorar antes de nada y que van a determinar el modelo de base de datos a definir.

Lo primero de todo es tener claro el objetivo y finalidad de la base de datos de cara a saber cómo organizar los datos. No es lo mismo una base de datos de facturas que una base de datos simplemente de personas. En cada caso, los datos los organizaremos de forma distinta.

Una vez tenemos claro el objetivo y la finalidad, debemos realizar un proceso de abstracción para poder identificar las diferentes entidades que conformarán nuestra base de datos.

Es decir, para una base de datos de facturación podemos tener las siguientes entidades: Clientes, Proveedores, Productos, Pedidos, Líneas de factura, Factura, etc….

Cada una de estas entidades acabará siendo una tabla. Es importante identificar correctamente las entidades ya que esto nos permitirá cumplir con una de las reglas básicas del modelo de base de datos: Evitar la información duplicada.

Por último, y antes de pasar a un diseño más fino, deberemos establecer cuáles van a ser las relaciones entre nuestras entidades. Siguiendo el ejemplo anterior, fácilmente podemos deducir que las entidades Factura y Líneas de factura deben estar relacionados, de la misma forma que Clientes y Factura o Factura y Pedidos, ....

Estas relaciones garantizarán lo que se llama integridad referencial, es decir, que no podremos por ejemplo borrar un cliente si tiene facturas o pedidos asociados.

 

Cerrando el diseño de la base de datos

Una vez ya tenemos claros los aspectos anteriormente definidos, es el momento de plasmar en tablas nuestra base de datos.

Como hemos indicado, cada entidad acabará siendo una tabla. Cada tabla está compuesta de diferentes campos.

A la hora de definir los campos de una tabla, debemos tener en cuenta los siguientes aspectos:

  • Debe existir un campo que se lo denominado clave primaria y que no se repetirá nunca en la tabla. En ocasiones, esta clave primaria puede estar compuesta por varios campos. En una tabla de facturas se pude usar el número de factura como clave primaria.

  • Debe evitarse el guardar información que pueda repetirse varias veces. Por ejemplo, en una tabla de pedidos en vez de guardar la descripción de los productos del pedido, guardaremos un código de pedido. Con esto ahorramos espacio en disco y mejoraremos el rendimiento.

  • Hay que intentar siempre registrar los datos una sola vez, si vemos que no es así, lo óptimo es crear una nueva tabla.

  • Cada tabla que definimos sólo debe contener información de la entidad correspondiente y no mezclar datos de diferentes entidades en una sola tabla pues penaliza le mantenimiento de la base de datos

  • No definamos campos calculados en una tabla, es mejor que ese cálculo lo realice el software que va a presentar la información.

  • Creemos campos que contengan unidades mínimas de información. Es decir, no creemos un campo Nombre con el nombre completo de una persona, separemos en Nombre, Primer apellido y Segundo apellido. Esto ayudará a agilizar las búsquedas.

Una vez creadas las tablas, deberemos definir las relaciones entre ellas a través de lo llamado claves foráneas. Estas calves son campos comunes en las tablas relacionadas que facilitan la integridad de los datos y que impiden borrados de registros que puedan generar información huérfana. Es decir, no podremos borrar una factura si no hemos borrado primero sus líneas de factura.

Lo último a definir son los índices. Los índices son elementos que nos permitirán realizar las búsquedas de datos de forma rápida. Mediante un índice se guarda internamente la ubicación de los registros en base a los campos que forma el índice, optimizando así las búsquedas.

Para definir un índice, tenemos que tener claro el tipo de búsquedas que vamos a realizar, sobre todo sobre qué campos. Para crear un índice útil, se definirá usando en primer lugar los campos por los que siempre haremos la búsqueda, pues de lo contrario, el índice no se usará.

 

El diseño de una base de datos tiene pocos misterios y se trata más que nada de usar el sentido común y tener muy claro el tipo de consultas que se van a realizar a la base de datos para poder optimizar las búsquedas.

En el post de hoy sólo he dado unos pocos detalles sobre como almacenar de forma correcta los datos en una base de datos, pero el tema da para mucho más. Con lo visto hoy, ya puedes intentar hacer un diseño de base de datos.

Si te animas, podrías contarnos con las dificultades que te vayas encontrando.

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.