Introducción a las Bases de Datos
El Problema Original: Datos Ligados a Aplicaciones
Inicialmente, un problema común en las aplicaciones era que los datos pertenecían exclusivamente a la aplicación que los utilizaba. Esto generaba:
- Redundancia: La misma información se repetía en diferentes lugares.
- Inconsistencia: Las diferentes copias de los datos podían contradecirse.
La Solución: Creación de Bases de Datos
Para resolver estos problemas, se crearon las Bases de Datos (BD) como un almacén común de información, centralizado y accesible para múltiples aplicaciones.
Conceptos Fundamentales de Bases de Datos
¿Qué es una Base de Datos?
Una base de datos es un conjunto estructurado de información relacionada entre sí, diseñado para satisfacer las necesidades de información de una organización.
Componentes: Datos y Metadatos
Esta información se almacena principalmente en tablas y puede ser de dos tipos:
- Datos: La información útil en sí misma (p. ej., Nombre, Apellido, DNI, Nombre de asignatura, Curso).
- Metadatos: Información sobre los datos, que describe su estructura y características (p. ej., definir que un campo de texto tiene una longitud máxima de 50 caracteres:
CHAR(50)
).
Visualización y Modificación
La información contenida en una base de datos generalmente se visualiza mediante consultas o informes, y se introduce o modifica utilizando formularios.
Estructura Lógica y Física
- Estructura lógica: Define cómo se organiza y relaciona la información conceptualmente (el esquema).
- Estructura física: Define cómo se almacena físicamente la información en los dispositivos de almacenamiento (archivos, índices, etc.).
En resumen, una base de datos comprende los archivos que contienen los datos (estructurados e interrelacionados) y los objetos que definen y manejan esos datos: tablas, consultas, formularios, informes, etc.
El Modelo Relacional
El modelo relacional es un enfoque para gestionar bases de datos cuya idea fundamental es el uso de relaciones. Estas relaciones pueden considerarse lógicamente como conjuntos de datos organizados.
Relaciones y Tablas
Cada relación se representa típicamente como una tabla, la cual está compuesta por:
- Registros (filas): Cada fila representa una instancia o elemento individual.
- Campos (columnas): Cada columna representa un atributo o característica de los registros.
Sistemas de Gestión de Bases de Datos (SGBD)
Un Sistema de Gestión de Bases de Datos (SGBD o DBMS por sus siglas en inglés) es un software que permite introducir, organizar, recuperar y, en general, administrar la información contenida en las bases de datos.
Elementos Clave de una Base de Datos
Tablas, Registros y Campos
- Tablas: Son el componente principal donde se almacenan los datos de modo organizado. Esta organización es imprescindible para manipular la información eficazmente. Se componen de listas de registros.
- Campo: Es la unidad fundamental de información dentro de una tabla. Cada campo representa una característica específica de los registros (p. ej., ‘Nombre’, ‘Fecha de Nacimiento’).
Consultas
Las consultas son herramientas que permiten extraer información específica de las tablas, dando respuesta a preguntas sobre los datos almacenados. Permiten realizar operaciones como:
- Selección de datos según criterios.
- Inserción de nuevos datos.
- Modificación de datos existentes.
- Borrado de datos.
- Realización de cálculos.
Formularios
Los formularios ofrecen una interfaz para mostrar, introducir y modificar los datos de una manera más amigable, vistosa y eficaz que la vista directa de la tabla. Facilitan la interacción del usuario con los datos.
Informes
Los informes permiten presentar y/o imprimir los datos almacenados en las tablas con un formato específico diseñado por el usuario, a menudo resumiendo o agrupando la información.
Principios de Diseño de Bases de Datos
Determinación de Campos y Tablas
Uno de los pasos cruciales, y a veces más complicado, en el diseño de una base de datos es determinar qué campos se necesitan y cómo agruparlos en tablas.
Evitar la Duplicidad (Normalización)
Al diseñar las tablas, es fundamental tener en cuenta los siguientes principios para evitar problemas:
- Una tabla no debe contener información duplicada dentro de sí misma (en diferentes registros).
- La misma información no debe duplicarse entre tablas diferentes (salvo campos clave para relacionarlas).
- Cada tabla debe contener información sobre un único tema o entidad.
- Cada campo dentro de una tabla debe describir una única característica de esa entidad.
Conceptos Avanzados de Diseño
Clave Primaria (Primary Key)
Se llama clave primaria (o clave principal) a un campo (o una combinación de campos) que identifica de forma única a cada fila (registro) dentro de una tabla.
- No puede haber dos filas en una tabla con la misma clave primaria.
- En muchas herramientas de SGBD, se representa visualmente con el icono de una llave.
- Para definirla, usualmente se selecciona el campo deseado y se marca como ‘Clave principal’.
Reglas de Validación
Las reglas de validación permiten especificar criterios o formatos que los datos deben cumplir al ser introducidos en un campo. Ayudan a mantener la integridad y calidad de los datos, restringiendo la entrada de valores no deseados o incorrectos.
Para implementarlas, generalmente se selecciona el campo a validar, se introduce la expresión lógica que define la regla (en la propiedad Regla de validación) y se especifica un mensaje de error (en la propiedad Texto de validación) que se mostrará si el dato introducido no cumple la regla.
Máscaras de Entrada
Una máscara de entrada define un formato fijo para la introducción de datos en un campo específico. Esto ayuda a mantener la coherencia cuando varias personas introducen datos y facilita la administración de la base de datos.
Por ejemplo, se puede establecer una máscara de entrada para un campo de número de teléfono para asegurar que todos los usuarios lo introduzcan siguiendo el mismo patrón (p. ej., `(999) 000-0000`).
Relaciones entre Tablas
Bases de Datos Relacionales
Los SGBD como Microsoft Access son gestores de bases de datos relacionales. Esto significa que las tablas dentro de una misma base de datos pueden estar relacionadas entre sí, lo que aumenta enormemente la funcionalidad y eficiencia al evitar redundancia.
Para poder relacionar dos tablas, es necesario que ambas tengan un campo en común (generalmente la clave primaria de una tabla se corresponde con un campo llamado clave externa o foránea en la otra). A través de este campo común, los registros de ambas tablas pueden vincularse.
Ejemplo: Una tabla `Libros` (con `ID_Libro` como clave primaria) se relaciona con una tabla `Prestamos` (que contiene un campo `ID_Libro` para saber qué libro se prestó).
Integridad Referencial
La integridad referencial es una propiedad deseable que garantiza la validez de las relaciones entre tablas. Asegura que:
- Un registro en una tabla relacionada (tabla secundaria o hija) siempre se refiera a un registro válido y existente en la tabla principal (o padre).
- Se mantenga la consistencia de los datos, evitando repeticiones innecesarias, datos perdidos o relaciones mal resueltas.
Ejemplo de violación de integridad: Permitir que se añada un registro a la tabla `Pedidos` que especifique un `ID_Producto` que no existe en la tabla `Productos`.
Actualización y Eliminación en Cascada
Son opciones que se pueden configurar al definir relaciones con integridad referencial:
- Actualización en cascada: Si se modifica el valor del campo clave primaria en la tabla principal, automáticamente se actualiza ese valor en todos los registros relacionados de la tabla secundaria.
- Eliminación en cascada: Si se elimina un registro en la tabla principal, automáticamente se eliminan todos los registros relacionados en la tabla secundaria.
Ejemplo de actualización en cascada: Si en una tabla `Poblaciones` se cambia el código postal (clave primaria) de ‘28001’ a ‘28010’, todos los registros en una tabla `Habitantes` que tuvieran ‘28001’ en su campo de código postal se actualizarían automáticamente a ‘28010’.