Las bases de datos (BD) son conjuntos organizados de datos que han sido diseñados para tener significado y utilidad, proveen información para apoyar la toma de decisiones en una empresa, o para almacenar datos de interés.
El principal objetivo de una base de datos es organizar y modelar datos de manera que puedan ser consultados y analizados fácilmente para extraer información útil o necesaria para la operación de un sistema.
Para que una base de datos sea eficiente, debe llevar un proceso en su diseño, en el cual se deben definir dos aspectos muy importantes:
- Determinar el propósito de la base de datos
- Organizar la información que estará almacenada ahí.
El primer punto se refiere a definir qué información se necesita almacenar, para esto, se deben responder las siguientes preguntas: ¿Cómo se van a usar los datos? ¿Quiénes van a usar la BD? ¿Cómo van a hacer uso de la BD? Etc. Cuando ya se tiene definido, de manera clara y concisa, el propósito de la BD, se podrán tomar decisiones durante el proceso de diseño de la misma.
Dentro de la organización de la información se debe considerar tener los datos separados en tablas, por ejemplo, si se van a almacenar los datos de alumnos y maestros de una escuela, la información debe estructurarse de la siguiente forma.
Y cada una, tanto la de los maestros, como la de los alumnos, tiene información que le interesa almacenar a una escuela, como el nombre y otros datos. Estos deben ser analizados y se debe determinar la importancia de que estén o no en la tabla.
Si se tiene una tabla como la que se muestra de Maestros, puede ser que en algún momento haya personas que tengan el mismo nombre, por lo que consultar la información de un maestro puede ser complicado, en el sentido en el que no se podría saber si se refiere al primer maestro que nos devuelve la base de datos, o al segundo (en caso que haya dos maestros con el mismo nombre); por lo que es necesario crear un campo llamado llave primaria (el estándar es usar el nombre de parámetro ‘ID’), que es un campo que por definición no se repite en una tabla. De esta forma, se podrá identificar de manera única a cada uno de los maestros.
Nota: Solo puede existir una llave primaria en cada tabla.
Una vez que se han definido las tablas, es necesario definir una relación entre ellas, es decir, se debe responder a la pregunta ¿Qué tienen que ver los maestros con los alumnos? En este caso, una posibilidad sería que cada maestro tiene alumnos asignados a las materias que imparte, por lo que la relación sería “asignar”.
Otro punto importante es el definir la cardinalidad de la relación que se está definiendo, para esto se tienen cuatro tipos de relaciones entre tablas:
- Uno a uno
- Un maestro solo puede tener un alumno asignado
- Un alumno solo puede tener un maestro asignado
- Uno a muchos
- Un maestro puede tener muchos alumnos asignados
- Muchos a uno
- Muchos maestros pueden tener a un alumno asignado
- Muchos a muchos
- Un alumno puede tener muchos maestros y un maestro puede tener muchos alumnos.
En este caso sería una relación de muchos a muchos.
Se puede considerar, por ejemplo, que el maestro Pedro, con ID 4, tiene asignados a Carlos y a Javier para la materia que imparte, de esta manera, si se hace una consulta a la base de datos sobre qué alumnos tiene asignados para su clase el profesor Pedro con el ID 4, la base de datos regresaría a Javier y Carlos como respuesta, sin importar que haya otro maestro Pedro en la tabla. Gracias a la llave primaria el sistema los puede diferenciar entre sí.
Por último y como buena práctica se debe hacer una verificación sobre que las tablas estén bien estructuradas, esto una vez que ya se tiene un primer diseño preliminar de la BD. A este proceso se le conoce como “normalización” o “normalizar la base de datos”. Dicho concepto fue introducido por primera vez en 1970 por Edgar F. Codd en su artículo A relational model of data for large shared data banks y es considerado un estándar en la industria.
NORMALIZACIÓN
El objetivo de aplicar este proceso es verificar que la información esté correctamente organizada en las tablas que se definieron. Para esto se tiene tres diferentes niveles de normalización. Cada nivel nos ayuda a verificar alguna característica de las tablas.
Primera Forma Normal (FNF)
La primera forma normal establece que cada columna y cada fila de las tablas, puede tener un solo valor y no un conjunto de valores.
Por ejemplo, en la tabla de Maestros debemos tener que en cada fila hay un nombre de maestro y no varios nombres de varios maestros.
Segunda Forma Normal (SNF)
La segunda forma normal establece que cada fila debe ser identificada de manera única por alguna columna, podemos ver que al decir “de manera única” es la definición de la llave primaria por lo que al tener definido este campo la segunda forma normal se cumple. También cabe destacar que esta norma implica que no debe haber un segundo atributo que sea candidato a llave única, por ejemplo, si se tuviera también el número de cuenta único del alumno, la columna de ID debería ser descartada o el número de cuenta debería ser colocado en otra tabla, para cumplir esta norma.
Tercera Forma Normal (TNF)
La tercera forma normal es un principio de diseño de bases de datos que busca reducir la redundancia de datos y mejorar la integridad. Establece que:
- Toda columna que no forma parte de la llave primaria debe depender únicamente de la llave primaria, y no de otras columnas.
- Las columnas que no son llave primaria deben ser independientes entre sí, es decir, no deben tener valores derivados o calculados a partir de otras columnas.
En otras palabras, la tercera forma normal dicta que todos los campos no primarios (columnas) de una tabla deben identificarse sólo por la llave primaria. Esto asegura que no existan dependencias transitivas entre las columnas, lo que podría llevar a anomalías e inconsistencias en los datos.
Al seguir este principio se elimina la redundancia de datos y se mejora la integridad referencial entre tablas relacionadas.
Un diseño deficiente de una base de datos puede generar graves problemas:
- Almacenar datos innecesarios que no se utilizan, desperdiciando espacio y ralentizando consultas.
- Incluir tablas que no tienen una función clara, complicando el modelado y las interrelaciones.
- Dificultar las tareas de mantenimiento y consulta debido a la complejidad del esquema.
Esto provoca que en lugar de agilizar el rendimiento y servir de apoyo en la toma de decisiones, la base de datos se vuelva un lastre que entorpece las operaciones.
Un buen diseño implica modelar cuidadosamente las entidades y sus relaciones, determinando con precisión los datos que se capturarán y cómo se emplearán. Esto permite crear un esquema óptimo, sin redundancias ni elementos superfluos.
Cabe destacar que la normalización de base de datos no acaba en la TNF existen más normalizaciones, pero se considera un estándar en la industria alcanzar por lo menos la TNF ya que esto asegura una operación mínima óptima de la base de datos.
Al priorizar la simplicidad, integridad, flexibilidad y escalabilidad durante el diseño, la base de datos se convierte en una pieza clave para la eficiencia de la empresa. Una herramienta valiosa de consultas, reportes y análisis de datos enfocados a mejorar el desempeño.
¿Necesitas expertos que te ayuden a evaluar, modernizar o crear una base de datos?
En Axo, contamos con un equipo de profesionales especializados en bases de datos que pueden asesorarte para implementar la mejor solución para tu negocio. Ya sea que necesites migrar tus sistemas heredados a tecnologías más modernas, optimizar el rendimiento de tus bases de datos existentes o diseñar una base de datos desde cero, estamos listos para ayudarte.
Nuestro servicio de consultoría incluye:
- Evaluación de infraestructura de BD existente
- Recomendaciones de mejora y optimización
- Diseño lógico y físico de bases de datos
- Modelado y normalización de datos
- Configuración de alta disponibilidad y recuperación ante desastres
- Tuning de bases de datos
- Capacitación a tu equipo
No importa el tamaño de tu empresa, contamos con la experiencia para agregar valor a tus sistemas de información. ¡Agenda una consulta con nuestros expertos! Estaremos encantados de escuchar tus necesidades y presentarte una propuesta personalizada para que obtengas el máximo provecho de tus datos.
¡Optimiza tu gestión de datos con Axo!
Nota: La base de datos que se mostró es únicamente para ejemplificar los puntos que se fueron tratando a lo largo del documento, esta base de datos podría crecer tanto como se requiriera añadiendo una tabla para salones, materias, etc.
Codd, E. F. (1970). A relational model of data for large shared data banks. Commun. ACM, 13(6), 377–387. doi:10.1145/362384.362685
Base de datos. (2024, 5 de febrero). Wikipedia, La enciclopedia libre. Fecha de consulta: 11:34, febrero 5, 2024 desde https://es.wikipedia.org/w/index.php?title=Base_de_datos&oldid=157995457.