El diseño y normalización de bases de datos es un pilar fundamental en la gestión de información, esencial para garantizar la eficiencia, integridad y consistencia de los datos. Este proceso implica estructurar la información de manera lógica y física, optimizando su almacenamiento y acceso. Comprender sus principios es crucial para estudiantes y profesionales del área.
Fundamentos del Diseño de Bases de Datos para Estudiantes
Una base de datos (BD) es un conjunto de datos interrelacionados, mientras que un Sistema de Gestión de Bases de Datos (SGBD) es el software que permite acceder y administrarlos. La importancia del diseño y normalización de bases de datos radica en evitar problemas como la redundancia, las inconsistencias y las anomalías de actualización.
Los SGBD utilizan dos tipos de lenguajes: el Lenguaje de Definición de Datos (LDD) para especificar el esquema (estructura, relaciones, restricciones) y el Lenguaje de Manipulación de Datos (LMD) para recuperar, agregar, modificar o borrar información. Los LMD pueden ser procedimentales (indican qué y cómo obtener datos) o no procedimentales (solo qué datos se requieren).
Los objetivos clave de un SGBD incluyen:
- Controlar la concurrencia: Evitar inconsistencias cuando múltiples usuarios acceden o modifican el mismo dato simultáneamente.
- Control centralizado: Gestionar datos y programas que acceden a ellos.
- Facilitar el acceso a datos: A través de lenguajes de consulta.
- Proveer seguridad: Imponer restricciones de acceso a usuarios autorizados.
- Mantener la integridad de los datos: Asegurar que los datos respeten las condiciones definidas y permitir la restauración ante fallos.
Niveles de Visión y Modelos de Datos
Para simplificar la interacción con estructuras de datos complejas, las BD se representan en tres niveles de abstracción:
- Nivel de Vista: El nivel más alto, describe una parte específica de la BD que un usuario desea ver.
- Nivel Lógico: Describe la BD completa, indicando qué datos se almacenarán y sus relaciones, conduciendo a estructuras más complejas en el nivel físico.
- Nivel Físico: El nivel más bajo, detalla cómo se almacenan realmente los datos, incluyendo estructuras de bajo nivel.
Un modelo de datos es un conjunto de herramientas conceptuales para describir datos, su semántica, relaciones y restricciones. Se dividen en:
- Modelos lógicos basados en objetos: Usados en niveles de vista y lógico, como el modelo Entidad-Relación (ER) con entidades y atributos, y el modelo orientado a objetos.
- Modelos lógicos basados en registros: Usados en niveles lógico y físico, emplean estructuras de registro. Incluyen el modelo jerárquico (estructura de árbol), de red (estructura de grafo) y el modelo relacional (el más utilizado, basado en tablas o tuplas con columnas o atributos).
Los usuarios de bases de datos se clasifican en:
- Administrador de BD: Control centralizado, define esquemas, otorga derechos de acceso y establece restricciones.
- Programadores de aplicaciones: Desarrollan sistemas de software que interactúan con la BD.
- Usuarios sofisticados: Realizan consultas directas a la BD con lenguajes de consulta.
- Usuarios especializados: Desarrollan aplicaciones no tradicionales (Sistemas Expertos, GIS).
- Usuarios normales: Utilizan sistemas desarrollados por otros, con acceso indirecto.
Optimización del Almacenamiento: Registros de Longitud Fija vs. Variable
Una parte crítica del diseño y normalización de bases de datos es la gestión del espacio en disco. Los archivos pueden contener registros de longitud fija o variable.
Registros de Longitud Fija:
- Cada registro ocupa un tamaño predefinido (ej., 314 bytes para un empleado con campos Nombre, Dirección, Documento, Edad, Observaciones).
- Ventajas: Facilita la entrada/salida de información, y las operaciones de alta, baja y modificación son sencillas.
- Desventajas: Puede haber un desperdicio significativo de espacio si los campos no usan toda su capacidad asignada (ej., de 314 bytes, solo 124 útiles, el resto relleno).
- Mayor tiempo de procesamiento al transferir bytes inútiles.
Registros de Longitud Variable:
- Utilizan solo el espacio necesario para almacenar la información, sin un tamaño predeterminado a priori.
- Ventajas: Optimización del espacio en disco y reducción del tiempo de procesamiento al transferir solo datos útiles.
- Desventajas: Requieren una organización de archivos diferente y algoritmos más complejos para su administración, ya que la operación de lectura/escritura debe resolver la transferencia carácter a carácter o elemento a elemento.
Para gestionar registros de longitud variable, es necesario usar marcas de fin de campo (ej. '#') y marcas de fin de registro (ej. '@') para delimitar los elementos. El programador debe resolver de forma minuciosa las operaciones de agregar y quitar elementos.
Alternativas para Registros de Longitud Variable
Existen variantes en la implementación de registros de longitud variable:
- Delimitadores de campo: Como se vio, se utilizan caracteres especiales para marcar el final de cada campo.
- Indicadores de longitud: Antes de almacenar un campo o registro, se indica su longitud en bytes. Los siguientes bytes corresponden a los datos.
Eliminación y Recuperación de Datos en Bases de Datos
El proceso de baja permite quitar información de un archivo. Históricamente, buscaba recuperar espacio; hoy, con la información como bien preciado, a menudo se preserva en repositorios históricos.
Existen dos modos principales de baja:
- Baja Física: Borra la información y recupera el espacio físico. Esto mantiene el archivo en su tamaño mínimo, pero puede impactar la performance debido a los reacomodamientos.
- Generando un nuevo archivo: Se crea un archivo sin los elementos a eliminar, copiando solo los válidos. Esto implica leer el archivo completo y escribir uno nuevo.
- Utilizando el mismo archivo: Se reacomodan los elementos dentro del archivo existente. Un registro a eliminar puede ser reemplazado por el último registro válido, y la cantidad total de elementos se decrementa.
- Baja Lógica: Marca la información como eliminada sin recuperar el espacio físico. Esto se hace asignando un valor especial a un campo (ej., un campo
borradooestado).
- Ventajas: Algorítmicamente más simple y rápido, ya que no requiere reacomodamientos físicos.
- Desventajas: No libera espacio físico de inmediato, lo que puede requerir un proceso de compactación posterior.
Recuperación y Reasignación de Espacio
Para recuperar espacio de bajas lógicas o físicas y reutilizarlo, especialmente con registros de longitud variable, se deben considerar nuevas complejidades. No basta con disponer de lugar, sino que el lugar debe tener un tamaño suficiente para el nuevo elemento.
Se utiliza una lista invertida con un registro cabecera para disponer de las direcciones libres dentro del archivo, indicando la cantidad de bytes disponibles en cada caso. El proceso de inserción debe localizar el lugar más adecuado, siguiendo estrategias:
- Primer ajuste: Seleccionar el primer espacio disponible donde quepa el registro.
- Mejor ajuste: Seleccionar el espacio más pequeño donde quepa el registro.
La fragmentación ocurre cuando se insertan y eliminan registros de longitud variable, dejando