Práctica Ejercicio 2
2. Marco Teórico y Fundamentos de las Relaciones en Access 2016
2.1 Definiciones y Conceptos Clave
En el contexto de las bases de datos relacionales, una relación se refiere a la asociación lógica establecida entre dos o más tablas mediante la utilización de claves. Es fundamental entender que una relación no es un objeto físico en la base de datos, sino una conexión conceptual que permite organizar, integrar y consultar datos dispersos en diferentes tablas de manera coherente y eficiente.
Las relaciones en Access 2016 se establecen principalmente a través de relaciones uno a muchos, aunque también existen otros tipos como uno a uno y muchos a muchos. La correcta definición y gestión de estas relaciones garantizan la integridad referencial, evitando inconsistencias y redundancias en los datos.
Los componentes principales que intervienen en las relaciones son:
- Clave primaria (PK): Un campo o conjunto de campos que identifican de manera única cada registro en una tabla.
- Clave foránea (FK): Un campo en una tabla que referencia la clave primaria de otra tabla, estableciendo así la relación.
Por ejemplo, en un sistema de gestión escolar, la tabla Estudiantes puede tener una clave primaria ID_Estudiante, mientras que la tabla Matrículas tendrá un campo ID_Estudiante como clave foránea para relacionar cada matrícula con un estudiante específico.
2.2 Teorías y Principios Fundamentales
Las relaciones en bases de datos relacionales se fundamentan en principios matemáticos y lógicos derivados de la teoría de conjuntos y la lógica proposicional. La teoría relacional establece que los datos se almacenan en forma de tablas (relaciones), donde cada fila representa un tupla, y cada columna un atributo.
El modelo relacional fue propuesto inicialmente por E.F. Codd en 1970, estableciendo que las bases de datos deben garantizar:
- Integridad referencial: La consistencia entre las claves primarias y foráneas, asegurando que las relaciones sean válidas y no apunten a registros inexistentes.
- Normalización: La organización lógica del esquema para reducir redundancias y dependencias anómalas.
- Cohesión semántica: Que las tablas reflejen conceptos del mundo real con atributos coherentes.
Estas bases permiten realizar consultas complejas, mantener la coherencia del sistema y facilitar el mantenimiento a largo plazo.
En términos técnicos, las relaciones pueden representarse mediante diagramas entidad-relación (ER), donde las entidades corresponden a tablas y las relaciones a conexiones entre ellas. En Access, estos diagramas se traducen en relaciones físicas mediante claves primarias y foráneas.
2.3 Desarrollo Teórico: Tipos de Relaciones y su Implementación
Las relaciones en Access 2016 se clasifican principalmente en tres tipos:
- Relación uno a muchos (1:N): Es la más común. Un registro en la tabla "uno" puede estar asociado con múltiples registros en la tabla "muchos". Por ejemplo, un cliente puede realizar varias órdenes, pero cada orden pertenece a un solo cliente.
- Relación uno a uno (1:1): Cada registro en una tabla está asociado con un único registro en otra tabla. Se emplea cuando se desea dividir información por motivos de seguridad o diseño, por ejemplo, separar datos personales sensibles de los datos comerciales.
- Relación muchos a muchos (N:N): Varios registros en una tabla pueden estar relacionados con varios registros en otra. En Access, esto requiere una tabla intermedia para gestionar la relación, llamada también tabla puente o relación asociativa.
Ejemplo práctico:
"Supongamos que tenemos una base de datos para una librería. La tabla Autores contiene información sobre los autores, mientras que la tabla Librerías registra las tiendas físicas. La relación entre autores y librerías es muchos a muchos porque un autor puede vender sus libros en varias librerías y cada librería puede tener varios autores."
2.4 Relación Uno a Muchos: Detalles Técnicos y Reglas
La relación uno a muchos se establece mediante la creación de una clave foránea en la tabla "muchos" que referencia la clave primaria de la tabla "uno". Para garantizar la integridad referencial, Access permite definir reglas específicas durante el establecimiento de relaciones:
- Mantener integridad referencial: Asegura que no existan registros en la tabla "muchos" sin correspondencia válida en la tabla "uno". Si se intenta eliminar o modificar registros relacionados, Access puede impedirlo o aplicar acciones específicas.
- Cascada de actualizaciones: Cuando se modifica el valor de una clave primaria, automáticamente se actualizan las claves foráneas relacionadas.
- Cascada de eliminaciones: Cuando se elimina un registro principal, todos los registros dependientes también pueden eliminarse automáticamente si así se configura.
Estrategia práctica:
- Crea ambas tablas con sus claves respectivas.
- Añade los campos necesarios para establecer la relación.
- Pasa al modo diseño y selecciona "Relaciones".
- Sigue el asistente para arrastrar el campo clave primaria hacia el campo correspondiente en la otra tabla.
- Asegúrate de marcar "Mantener integridad referencial" y definir acciones relacionadas si es necesario.
2.5 Ejemplificación con Tablas Reales: Caso del Sistema Hospitalario
Pensemos en un sistema hospitalario donde existen las tablas Pacientes, Citas Médicas, y Médicos. La relación entre Pacientes y Citas Médicas es uno a muchos: un paciente puede tener múltiples citas, pero cada cita corresponde a un solo paciente. La relación entre Médicos y Citas Médicas, igualmente, es uno a muchos: un médico puede atender varias citas.
| Tabla Pacientes | |
|---|---|
| ID_Paciente (PK) | Número único identificador del paciente |
| Nombre | Nombres del paciente |
| DNI | Número de documento nacional de identidad |
| Tabla Citas Médicas | |
| ID_Cita (PK) | Número único para cada cita médica |
| ID_Paciente (FK) | Código del paciente asociado (relación) |
| ID_Médico (FK) | Código del médico responsable (relación) |
| Date_Hora | Date and time of the appointment |
| Tabla Médicos | |
| ID_Médico (PK) | Código único del médico |
| Nombres_Médico | Nombres completos del médico |