Diseño de Bases de Datos – Parte 1
Cuando hablamos de temas acordes al modelo relacional, nos referimos principalmente al conocimiento, al menos básico, de los siguientes temas:
- Diseño y Modelado de la base de datos.
- Diseño de tablas y sus relaciones.
- Normalización.
- Construcción de tablas relacionadas normalizadas.
Diseño y Modelado de Bases de Datos
Uno de los pasos importantes en la construcción de una aplicación que maneja una base de datos, es precisamente, el diseño de la base de datos. Si las tablas no son definidas correctamente, podemos tener problemas al momento de ejecutar consultas que nos permitan obtener la información que deseamos.No importa si la base de datos contiene solo unos cuantos registros o miles de ellos, es importante asegurar que la base de datos está correctamente diseñada para obtener la máxima eficiencia y que podamos utilizarla por mucho tiempo.
Dependiendo de los requeriminetos de la base de datos, el diseño puede ser complejo, pero tomando en cuenta algunas de las reglas simples será mucho más fácil crear una base de datos para cada uno de nuestros proyectos.
Algunas de las consideraciones que debemos tomar en cuanta al realizar el diseño de la base de datos son:
- Velocidad de acceso
- Tamaño de la información
- Tipo de información
- Facilidad de acceso
- Importación y exportación de información
- Presentación de la información
No importa que tan buenas sean las aplicaciones que hemos desarrollado con anterioridad, siempre es recomendable seguir algunos estándares de diseño para garantizar la máxima eficiencia en lo que se refiere al almacenamiento y recuperación de la información.
Al igual que un arquitecto crea los planos para la construcción de un edificio, nosotros debemos crear el modelo para la construcción de una aplicación. Ningún arquitecto se avienta a iniciar la construcción de un edificio sin antes tener una idea clara de lo que quiere construir, y esta idea se modela con el desarrollo de los planos, ahí es donde se plasman las dimensiones, características y alcances de lo que se requiere construir. Pues en el desarrollo de software sucede lo mismo, antes de iniciar la programación y/o la construcción como tal es importante crear un modelo que nos permita visualizar las características y los alcances de nuestra aplicación.El modelo es una abstracción de la realidad, que nos permite simular el producto final y entender claramente el objetivo que perseguimos.
El modelo Entidad-Relación es uno de principales estándares que nos permiten plasmar la funcionalidad de la aplicación en terminos de entidades y la forma en que se relacionan unas con otras. Las entidades representan los datos del dominio de nuestra aplicación. Por ejemplo, si deseamos desarrollar una aplicación para llevar el control de los recorridos turísticos que realiza un turista. Las principales entidades que encontramos aquí son: Turistas y Recorridos, estas entidades son los datos que serán almacenados en la base de datos. La relación que guardan estas dos entidades una con otra, se podría describir de la siguiente forma: Los turistas realizan recorridos. La relación entre las dos entidades es una acción, es decir, un verbo que describe la acción que se lleva a cabo de una entidad a otra, lo cual se modela como se muestra en la siguiente figura:
La figura nos describe dos entidades relacionadas entre sí de acuerdo con el modelo entidad-relación. La simbología adicional utilizada en el modelo, nos permite describir con más detalle la forma en que estas dos entidades se encuentran relacionadas y lo podemos leer de la siguiente forma:
1 Turista realiza N Recorridos, 1 Recorrido es realizado por N Turistas, lo cual nos resulta en una relación de muchos a muchos (N:M) entre las dos entidades.
De esta manera podemos entender también como quedarán las tablas que construiremos en la base de datos. Adicionalmente en el modelo entidad-relación podemos especificar los atributos necesarios para cada una de las entidades, es decir, los datos que se requieren para procesar e identificar cada uno de ellos, por ejemplo para turista podríamos requerir su nombre, su nacionalidad, su edad, etc. Para la entidad Recorrido, quizas la ruta que lo identifica, el nombre del recorrido o algún otro dato que la empresa para esta entidad.
Los atributos de las entidades se convertiran en los campos de las tablas correspondientes.
Ahora bien, si para la relación “realiza” es necesario identificar cuando y a que hora se realiza el recorrido, entonces la relación se convierte en una relación identificada, la cual especificaría dos atributos: fecha y hora, de cuerdo con el ejemplo que estamos tratando.
Diseño de tablas y sus relaciones
Esta sección la cubriremos en la segunda parte de este artículo y basicamente consiste de la transformación del modelo entidad-relación al modelo relacional, en el cual, concretamente convertimos las entidades, así como las relaciones identificadas en tablas.