Cómo elaborar bases de datos relacionales

Cómo elaborar bases de datos relacionales

Carlos Yañez

01-10-2018

Diseñar una base de datos relacional de forma adecuada es la clave para que el acceso posterior a la información sea rápido.

Existen unas pautas importantes que hay que seguir para poder diseñar una base de datos relacional óptima. Estas pautas implican un correcto diseño tanto físico como lógico de la base de datos.

En el post de hoy explicaremos las claves más importantes para realizar un diseño adecuado de una base de datos relacional.

¿Qué es una base de datos?

Antes de comentar las claves para diseñar de forma óptima una base de datos veamos qué 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 actualmente electrónico.

La definición de IBM de una base de datos relacional es:

Una base de datos relacional es una base de datos que se trata como un conjunto de tablas y se manipula de acuerdo con el modelo de datos relacional (que veremos más adelante).

Contiene un conjunto de objetos que se utilizan para almacenar y gestionar los datos, así como para acceder a los mismos. Las tablas, vistas, índices, funciones, activadores y paquetes son ejemplos de estos objetos.”

En todo caso, 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 la información almacenada.

Han aparecido en el mercado otros tipos de bases de datos que organizan la información de forma diferente a los registros, proporcionando una velocidad de búsqueda superior y un ahorro notable en el espacio de almacenamiento, ya que evitan almacenar duplicidades, tan solo punteros al dato.

Fases en el diseño de bases de datos relacionales

Para un correcto diseño de una base de datos relacional deben usarse metodologías específicas de diseño de base de datos. Estas metodologías se fundamentan en tres fases claras con sus respectivos diseños:

  • Diseño conceptual: esta fase de diseño pretende describir a alto nivel lo que será la estructura de la base de datos. Simplemente se identifican las entidades que deben formar parte de la base de datos sin detallar aspectos físicos de la misma

  • Diseño lógico: Una vez definido el diseño conceptual se baja un poco de nivel pasando al diseño lógico, en el que ya se definen con precisión las tablas, índices, relaciones, vistas, etc.… adaptándolo al gestor de base de daros que se vaya a utilizar.

  • Diseño físico: Definido el diseño lógico, el siguiente paso es definir a nivel físico cómo será la base de datos. Esto es tarea del administrador de la base de datos o DBA, que debe optimizar el diseño físico para un rendimiento adecuado de la base de datos y los ficheros físicos que la soportarán.

El modelo Relacional

Cuando trabajamos con bases de datos relacionales, decimos que usamos el modelo relacional.

Dentro de este modelo relacional, se definen los diseños conceptual y lógico siguiendo un conjunto de normas que rige dicho modelo.

Se utilizan los denominados diagramas Entidad/Relación o E/R para definir el diseño conceptual. Normalmente se utilizan herramientas específicas de diseño que posteriormente y en base al modelo E/R genera las instrucciones SQL necesarias para pasar al diseño lógico de la base de datos.

Como hemos comentado, se deben seguir una serie de normas en el modelo relacional y que son las siguientes:

  • Las entidades definidas en el diseño conceptual son las tablas o relaciones del modelo lógico, siendo la tabla la unidad de almacenamiento principal

  • Las tablas están compuestas por filas o registros o tuplas y por columnas o campos. Los registros contienen la información a almacenar mientras que los campos definen cada tipo de información del registro.

  • Cada tabla debe tener definida una clave primaria que determinará que cada registro es único. Esta clave puede estar compuesta por uno o más campos de la tabla.

  • Las tablas pueden relacionarse entre sí con el fin de facilitar las consultas y organización de los datos. En ese caso, se definen las claves foráneas que indican a través de qué campos se relacionan dos tablas.

  • Las claves foráneas garantizan la integridad referencial entre tablas, esto quiere decir que no se permitirá borrar registros de una tabla principal si tiene registros referenciados a una tabla secundaria, pero si al revés.

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, …) 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.

Es importante en este punto saber el tipo de uso que se hará de la base de datos con el fin de definir el tipo de disco que usaremos para almacenar la base de datos, ya que la 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 file systems diferente cada tipo de archivo. Incluso sobre diferentes discos si queremos llegar al máximo detalle.

Esta parte del diseño físico de la base de datos recae sobre el administrador de esta 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 tenemos que tener en cuenta para realizar un buen diseño es el propósito de la base de datos. No empecemos 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, pasan por 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. Los índices es importante definirlos de forma adecuada y representan los campos por los que vamos 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 a posteriori, cualquier modificación puede ser muy costosa.

Si alguna vez te has enfrentado a diseñar una base de datos relacional, nos interesa conocer tu experiencia, así como cualquier consejo que creas conveniente.

Curso relacionado: Ciclo de FP de Técnico en Sistemas Microinformáticos y Redes

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.