Fundamentos de Base de Datos

Una Base de Datos (BD) no es solo un “almacén” de archivos, sino un sistema estructurado diseñado para manejar datos de forma eficiente, íntegra y segura.

Conceptos pilares de base de datos:

  1. Dato vs. Información: Un dato es una representación o valor mínimo (un número, una fecha, un nombre) que por sí solo no dice mucho. La información es el resultado de procesar y organizar esos datos para que tengan un significado útil para la toma de decisiones.
  2. Base de Datos (BD): Es una colección organizada de datos estructurados que pertenecen a un mismo contexto (por ejemplo, todos los datos de una universidad). Se diseñan para que los datos sean persistentes y se puedan recuperar fácilmente.
  3. Sistema de Gestión de Bases de Datos (DBMS/SGBD): Es el software que interactúa con el usuario, las aplicaciones y la propia base de datos. Es el “traductor” y administrador; sin un DBMS (como MySQL, PostgreSQL o MongoDB), no podríamos consultar ni proteger los datos de manera profesional.

1. Características del Dato

En el contexto de TI, un dato no es solo un valor; para ser procesable, debe cumplir con:

  • Precisión: El dato debe representar fielmente la realidad que describe.
  • Atomicidad: Un dato debe ser indivisible (por ejemplo, en un modelo relacional, un campo de “nombre” no debería contener también el “teléfono”).
  • Consistencia: El dato no debe entrar en contradicción con otros datos relacionados.

2. Características de una Base de Datos (BD)

Una base de datos profesional se distingue por:

  • Independencia física y lógica: Puedes cambiar cómo se guardan los datos en el disco sin afectar cómo los ve el programador. Este es un concepto de arquitectura (Modelo ANSI/SPARC) que evita que un cambio en un nivel (de diseño y desarrollo de base de datos) “rompa” los demás:
    • Física: Puedes cambiar el disco duro, mover los archivos de C: a D: o cambiar el método de almacenamiento sin que el programador tenga que cambiar una sola línea de código SQL.
    • Lógica: Puedes añadir nuevas columnas a una tabla o cambiar nombres internos sin que las aplicaciones que consultan la base de datos dejen de funcionar (usando vistas, por ejemplo).
  • Integridad: Reglas que aseguran que los datos sean válidos (ej. un precio no puede ser negativo).
  • Redundancia mínima: Se busca que cada dato se guarde una sola vez para evitar desperdicio de espacio y errores de actualización.
  • Seguridad y Acceso Concurrente: Permite que muchos usuarios accedan al mismo tiempo sin corromper la información.

3. Características de un SGBD (Sistema de Gestión)

El software que administra la base de datos debe garantizar las propiedades ACID:

  • Atomicidad: O se realiza toda la operación o no se realiza nada. La transacción es “todo o nada”. Si transfieres dinero y el sistema falla tras restar el saldo pero antes de sumarlo al otro, el SGBD deshace todo (rollback).
  • Consistencia: La BD pasa de un estado válido a otro estado válido. La base de datos sigue sus propias reglas. No permite que guardes un texto donde debe ir un número.
  • Aislamiento (Isolation): Las operaciones de un usuario no interfieren con las de otro. Si dos usuarios intentan comprar el último asiento del cine al mismo tiempo, el SGBD los pone en “fila” para que uno no vea lo que el otro está haciendo hasta que termine.
  • Durabilidad: Una vez guardados, los datos no se pierden aunque falle el sistema. Una vez que el sistema dice “operación exitosa”, el dato está en el disco. Si se va la luz un segundo después, el dato sigue ahí.

4. Información vs. Banco de Datos

A veces se usan como sinónimos, pero en TI tienen roles distintos:

  • Información: Es el resultado de procesar datos para que tengan un propósito. Si ves el número “39.5”, es un dato. Si te digo que es la “temperatura corporal de un paciente en °C”, eso ya es información útil para un médico.
  • Banco de Datos: Es el conjunto físico o lógico donde residen esos datos. Es la infraestructura (tablas, archivos, índices) que permite que la información esté disponible y organizada.

5. Banco de Datos vs. Base de Datos

Tomando como perspectiva clave la gestion y el propósito, aunque ambos contienen datos, una Base de Datos implica una estructura interna rígida y relaciones lógicas administradas por un SGBD para garantizar que no haya basura o datos huérfanos. Un Banco de Datos se ve a menudo como un repositorio masivo (como un “almacén”) que puede contener múltiples bases de datos, archivos planos o incluso datos no estructurados, enfocándose más en la disponibilidad y el volumen que en la relación interna de cada campo.

6. Integridad y Redundancia

En programación, si duplicas una variable, gastas memoria. En Bases de Datos, si duplicas un dato (Redundancia), pones en riesgo la Integridad.

  • ¿Cómo afecta la redundancia a la integridad? Imagina que el teléfono de un cliente está guardado en tres tablas distintas. Si el cliente cambia su número y solo lo actualizas en dos tablas, tienes una inconsistencia. Los datos ya no son íntegros porque no sabemos cuál es el verdadero.

7. Niveles de Desarrollo de una Base de Datos

Los niveles de desarrollo (o arquitectura de esquemas) son fundamentales para lograr independencia de datos. Se representan de la siguiente manera:

Nivel / ModeloObjetivoRepresentación Común
ConceptualDescribir qué datos se almacenan y qué relaciones existen, sin pensar en software.Diagrama Entidad-Relación (DER).
LógicoAdaptar el modelo conceptual a un modelo de datos específico (ej. relacional).Tablas, llaves primarias (PK) y foráneas (FK). Diagrama Relacional
FísicoDescribir cómo se guardan los datos en el disco (índices, tipos de almacenamiento).Código SQL (DDL) y estructuras de archivos.