Esto te ayudará a visualizar mucho mejor cómo estructurar los datos que genera el cliente.
Por ejemplo, una de las primeras decisiones que tendrás que tomar es, ¿Modelo Relacional o Dimensional? Según escribe Steve Hoberman en “Data Modelling Made Simple”, ambos modelos se pueden distinguir por lo siguiente:
“Los modelos relacionales de datos capturan la solución de negocio de cómo funciona una parte del negocio, también conocido como proceso comercial. Mientras que los modelos de datos dimensionales capturan los detalles que la empresa necesita para responder preguntas sobre lo bien que lo está haciendo.”
Es decir, si el cliente solo necesita tener estructurada y almacenada digitalmente la información concerniente a su negocio, y sólo necesitará insertar, borrar y modificar datos en cada una de las posibles tablas que conformen su base de datos, con un modelo relacional es más que suficiente. Ahora, si dichos datos van a ser usados de manera analítica, y, a parte de almacenarse, también serán reutilizados para la toma de decisiones, un modelo dimensional será más adecuado.
Con esto en mente, toca dibujar un boceto previo del esquema. A este boceto se le suele llamar “diseño conceptual”.
Digamos que el diseño conceptual va a ser el esqueleto en el que, como huesos, plasmarás cómo la información va a estar dividida en términos generales. Imaginemos que se nos ha pedido diseñar la base de datos interna de los empleados de una empresa (ejemplo más simple imposible ¿eh?). El diseño conceptual, constaría, por ejemplo, de los diferentes departamentos de la empresa, y dentro de cada departamento, cómo la información debería estar dividida. Por ejemplo, dentro del departamento de ventas, se podría obtener información como el puesto, el nombre y apellidos, el id dentro de la empresa, el número de contacto, si tiene coche, si tiene permiso de conducir, si tiene patinete… Aunque no te flipes, es mas que probable que la empresa no te quiera pagar para almacenar información sobre si sus empleados tienen patinetes o no. Para ello está el primer punto ya expuesto: ¡comprende el negocio!
Los diagramas entidad-relación (ERD) son una herramienta bastante útil a la hora de diseñar el concepto de nuestra base de datos, y es uno de los modelos más usados para esta fase del diseño.
Tras el diseño conceptual, tocará desarrollarlo, meterle músculo y tendones a nuestro esqueleto. Esto se entiende como “diseño lógico”. Dentro de este diseño lógico podemos desarrollar varias formas de modelo creando entidades, atributos e instancias que serán nuestras futuras tablas, columnas y filas respectivamente. Veamos unos cuantos de estos modelos para añadir luz a nuestra oscura ignorancia:
Por un lado, tenemos el modelo jerárquico, que organiza los datos en una estructura de árbol (como, por ejemplo, el organigrama de una empresa) y que rara vez se usa hoy en día por su ineficiencia operativa a la hora de estructurar cantidades masivas de datos.
Basado en el modelo jerárquico, pero añadiéndole cierta complejidad, podemos encontrar también el modelo de red, que permite las relaciones muchos a muchos entre registros que tienen un vínculo, permitiendo que dichos registros puedan ser miembro principal o secundario en múltiples conjuntos.
También tenemos el modelo de base de datos orientados a objetos, donde la base de datos se define como una colección de objetos, funciones y métodos que se relacionan entre sí; tablas, imágenes, hipertexto… Hoy en día es bastante útil si buscas montar una base de datos post-relacional.
Además, y por último en esta breve introducción a los diferentes modelos, del resultado de combinar el modelo relacional con el modelo orientado a objetos surge el modelo relacional de objetos, que permite añadir objetos en una estructura de tablas.
En esta fase del proceso entran también algunas cuestiones fundamentales para el funcionamiento de nuestra base de datos, como por ejemplo, qué atributos usaremos como claves primarias, qué vistas deben definirse, cómo resolver relaciones de varios a varios…
Si estás leyendo este artículo, seguro ya sabes qué son y cómo funcionan las Primary Keys y las Foreign Keys y como usarlas en diferentes tablas para relacionarlas entre sí, por lo que no creo que sea necesario hacer un breve repaso de ello. Mejor hablemos de la maldita normalización.