Conceptos Esenciales y Estructura de Bases de Datos Relacionales
Conceptos Esenciales de Bases de Datos
Banco de Datos Manual vs. Base de Datos Digital
Un banco de datos manual es un conjunto de datos relacionados gestionados de forma manual, como los archivos de una empresa con fichas y carpetas. La gestión la realiza un secretario o administrador.
Una base de datos, en cambio, es un banco de datos digital.
Sistema de Gestión de Bases de Datos (SGBD)
Un Sistema de Gestión de Bases de Datos (SGBD) facilita el trabajo al administrador del banco de datos. Ofrece ventajas como mayor rapidez, fiabilidad, eficiencia y menor coste.
Un SGBD debe ofrecer:
- Estructuras de almacenamiento de datos.
- Soporte para la definición de restricciones de integridad.
- Mecanismos de manejo de datos (altas, bajas, ordenación, etc.).
- Subsistema de control de la concurrencia para evitar inconsistencias ante accesos simultáneos.
- Subsistema de seguridad ante accesos no autorizados, garantizando la confidencialidad.
- Subsistema de seguridad ante fallos para evitar la pérdida de datos.
Niveles de un SGBD
Nivel Externo
Visión del usuario. El esquema externo o subesquema define los datos y relaciones que necesita el usuario, así como las restricciones de uso. Puede haber tantas visiones como usuarios o aplicaciones.
Nivel Lógico-Global
Visión de la organización. El esquema conceptual incluye todos los datos y sus relaciones, junto con las restricciones de integridad y confidencialidad. Hay una sola visión.
Nivel Físico
Estructura física de la base de datos. El esquema interno define la estrategia de almacenamiento, caminos de acceso y otros aspectos como la compresión y optimización. Hay una sola visión.
Instancia de una Base de Datos: Es la información que contiene una base de datos en un instante dado. Cambia continuamente con altas, bajas y modificaciones.
Esquema Lógico-Global de una Base de Datos: Una vez diseñado, no cambia o cambia muy poco.
Fundamentos del Modelo Relacional
Base de Datos Relacional: Es un conjunto de tablas relacionadas.
Tabla o Relación: Representa un tipo de objeto o un tipo de evento.
- Tipo de Objeto: Representa algo tangible como personas, lugares o cosas. Todos los objetos de un mismo tipo comparten las mismas características, que se almacenan como datos. Ejemplos: Pilotos, Productos, Máquinas, Estudiantes, Edificios.
- Tipo de Evento: Representa algo que ocurre en un momento dado y tiene características que se desean registrar. Ejemplos: Resultados de test de laboratorio, analíticas de pacientes, mediciones de variables meteorológicas.
Dominio: Conjunto de valores de un mismo tipo sobre el que se define uno o varios atributos.
Atributo/Campo/Columna: Es la estructura más pequeña. Representa una propiedad o característica de un objeto o evento. No se admiten nombres de atributos duplicados. El orden de los atributos no es relevante.
Registro/Fila/Tupla: Representa uno de los objetos o eventos de la tabla. No se admiten filas duplicadas. El orden de las filas no es relevante.
Dato: Valor de un atributo de un objeto o evento. Ejemplo: “María”.
Clave Primaria (PK): Atributo o grupo de atributos que identifica de manera única cada registro de la tabla. Cada tabla debe tener una PK para asegurar la integridad a nivel de tabla.
Clave Ajena (FK): Copia de la PK de una tabla en otra tabla para establecer una relación. La FK se convierte en clave ajena en la segunda tabla.
Restricciones de Integridad (Clave Ajena)
- Las FK permiten establecer relaciones entre tablas y aseguran la integridad a nivel de relación.
- Los registros en ambas tablas estarán relacionados apropiadamente porque los valores de la FK se refieren a valores de la PK.
- Ayudan a evitar registros huérfanos.
- Admiten valores nulos.
Vistas: Una vista es una tabla virtual compuesta de atributos de una o más tablas base, almacenada en la base de datos. Es como el resultado de una consulta almacenada permanentemente.
Tipos de Asociaciones entre Tablas
Cuando un registro en una tabla puede asociarse con registros en otra, existe una asociación. Hay tres tipos:
Asociación 1:1
Un registro de la primera tabla se asocia a un solo registro de la segunda, y viceversa. Una tabla es la tabla primaria y la otra la tabla secundaria. La PK de la tabla primaria se inserta en la tabla secundaria como FK. A menudo, la FK también actúa como PK en la tabla secundaria.
Asociación 1:n
Un registro de la primera tabla puede asociarse con muchos registros de la segunda, pero un registro de la segunda solo se asocia con uno de la primera. La PK de la tabla del “lado 1” se inserta en la tabla del “lado n” como FK.
Asociación n:n
Un registro de la primera tabla puede relacionarse con muchos de la segunda, y viceversa. Se crea una tabla intersección con copias de las PK de ambas tablas como atributos. Estos atributos forman la PK compuesta de la nueva tabla y actúan como FK.
Ejemplo Práctico: Gestión de Proyectos de Ingeniería
Una empresa de ingeniería necesita una base de datos para gestionar sus proyectos, almacenando información sobre empleados y proyectos.
Datos de los Proyectos
- Número de proyecto
- DNI del director
- Cliente
- Fecha de inicio
Datos de los Empleados
- DNI
- Apellidos y nombre
- Cargo
- Fecha de nacimiento
- Horas dedicadas a cada proyecto
Consideraciones
- Un empleado puede estar asignado a varios proyectos, registrando las horas trabajadas en cada uno.
- En un proyecto trabajan varios empleados.
- Un proyecto tiene un único director, que debe ser Jefe de Proyecto.
- Un proyecto es encargado por un cliente.