Conceptos Esenciales de Ficheros y Bases de Datos en Ingeniería Informática

Ficheros: Conceptos Fundamentales

Un fichero es una estructura de información que crean los Sistemas Operativos (S.O.) para almacenar datos. Guardan información de diversos tipos y se almacenan en diferentes dispositivos de almacenamiento.

Clasificación de Ficheros

Según su Contenido

  • Texto: Contienen caracteres legibles por humanos.
  • Binario: Contienen datos en formato binario, no directamente legibles.

Según su Organización

  • Secuencial: Los datos se disponen unos detrás de otros, de manera que para llegar a uno concreto hay que recorrer todos los datos anteriores.
  • Directa: Permite acceder a un dato concreto sin tener que acceder a los anteriores, utilizando una dirección o clave.
  • Indexada: Se accede a los datos consultando un índice que almacena la posición de cada dato, combinando características de los modelos secuencial y directo.

Según su Utilidad

  • Maestro: Contiene datos fundamentales para la organización, como los datos de los clientes o productos.
  • Movimientos: Almacenan variaciones en los datos (altas, bajas, modificaciones) de forma temporal, que luego se aplican al fichero maestro.
  • Históricos: Contienen datos que ya no son necesarios para el proceso diario, pero que puede ser necesario consultar en algún momento para auditorías o estadísticas.

Bases de Datos: Definición y Estructura

Una base de datos es una colección de información perteneciente a un mismo contexto o problema, que está almacenada de forma organizada en ficheros. Se organizan en tablas que almacenan información concerniente a algún objeto o suceso, y estas tablas se vinculan mediante relaciones entre ellas que ayudan a mantener la información de forma ordenada y coherente. Las tablas están formadas por columnas que corresponden a propiedades o atributos, y filas que corresponden a individuos (registros). La intersección se denomina celda y contiene un dato o valor concreto.

Glosario de Términos Clave en Bases de Datos

Dato:
Partícula de información concreta sobre algún concepto o suceso. Se caracterizan por un tipo y pueden requerir una unidad de medida.
Tipo de Dato:
Indica la naturaleza del campo. Así podemos tener datos numéricos, alfanuméricos, booleanos, fechas, etc.
Campo:
Es un identificador para una familia de datos y pertenece a un tipo de datos específico. Representa un atributo de la entidad.
Clave:
Campo especial que identifica de forma única a cada elemento (registro) de la tabla. Puede ser una clave primaria o una clave foránea.
Registro:
Colección de datos referentes al mismo objeto o suceso. Corresponde a una fila en una tabla.
Tabla:
Conjunto de registros bajo un mismo nombre que representa el conjunto de todos ellos. Es la estructura fundamental para almacenar datos en una base de datos relacional.
Vista:
Transformación que se hace de una o más tablas para obtener una nueva tabla que ofrece una visión parcial de los datos. Esta tabla es virtual, no está almacenada como tal, lo que se almacena es su definición.
Índice:
Estructura que almacena los campos clave de una tabla, organizándolos de manera que facilite el acceso rápido a los registros de dicha tabla.
Consulta:
Instrucción que permite hacer peticiones a una base de datos, ya sea para buscar los campos o registros que satisfagan ciertas condiciones, o para modificar información (inserción, eliminación y actualización).
Informe:
Listado ordenado de los campos y registros seleccionados en un formato fácil de leer, diseñado para la presentación de datos.
Guion (Script):
Conjunto de instrucciones que, ejecutadas de forma ordenada, permiten realizar operaciones avanzadas de mantenimiento en las bases de datos.
Procedimiento:
Tipo especial de script que está almacenado en la base de datos y forma parte del esquema, permitiendo encapsular lógica de negocio.
Esquema:
Es la definición de la estructura donde se almacenan los datos. Contiene todo lo necesario para organizar la información mediante tablas, registros y campos, y otros objetos necesarios para el tratamiento de datos.

Modelos de Datos Tradicionales

Modelo de Datos Jerárquico

Utiliza árboles para la representación lógica de datos. El árbol está compuesto de elementos llamados nodos que representan registros con sus correspondientes campos. El nivel más alto del árbol se denomina raíz y los diferentes niveles quedan unidos mediante relaciones. En este modelo solo se pueden representar relaciones uno a muchos (1:M).

Inconvenientes del Modelo Jerárquico

  • No admiten relaciones muchos a muchos (N:M).
  • Un segmento hijo no puede tener más de un padre.
  • No se permiten más de una relación entre dos segmentos.
  • Para acceder a cualquier segmento es necesario comenzar por el segmento raíz.
  • El árbol se debe recorrer en el orden designado.

Modelo de Datos en Red

Permite que un mismo nodo tenga varios padres, lo que supone una gran mejora con respecto al modelo jerárquico, ya que ofrecía una solución eficiente al problema de redundancia de datos. Aun así, su complejidad ha provocado que sea un modelo utilizado en su mayoría por programadores más que por usuarios finales.

Sistemas Gestores de Bases de Datos (SGBD)

Un Sistema Gestor de Bases de Datos (SGBD) es un conjunto de herramientas que facilitan la consulta, uso y actualización de una base de datos.

Características de los SGBD

  • Facilitar el acceso a los datos: Dispone de mecanismos sencillos para que los usuarios con escasos o nulos conocimientos de su funcionamiento interno puedan acceder a los datos, consultarlos y manipularlos.
  • Controlar consistencia e integridad de los datos: Ofrece las opciones necesarias para que el diseñador de la base de datos introduzca cuantas restricciones de integridad sean necesarias, además de asegurar la consistencia de los datos.
  • Controlar la seguridad de la base de datos: Dispone de funciones para el control de la seguridad de los datos (realización de copias de seguridad, recuperación de dichas copias, gestión de permisos, etc.).
  • Controlar la concurrencia: Se refiere al hecho de que la base de datos puede ser accedida de forma simultánea por varios usuarios o aplicaciones, gestionando los conflictos que puedan surgir.
  • Facilitar la administración de la base de datos y del propio SGBD: El diseño de la base de datos puede estar sujeto a cambios a lo largo del tiempo, y el SGBD debe facilitar las modificaciones tanto en dicho diseño de la base de datos como en el funcionamiento del propio SGBD.

Componentes de un SGBD

  • Herramientas de gestión: Se trata de herramientas para realizar tareas como crear bases de datos, manipularlas, modificar el diseño, crear usuarios, asignar permisos, etc.
  • Herramientas de programación: Muchos SGBD ofrecen la posibilidad de crear las aplicaciones que utilizarán los usuarios para acceder a los datos cuando estos no puedan o no deban trabajar directamente sobre el SGBD.
  • Lenguajes: Permiten acceder a los datos y realizar tareas de gestión. Se clasifican en:
    • Lenguaje de Definición de Datos (DDL): Se utilizan para crear la base de datos y modificar su estructura (ej. CREATE TABLE, ALTER TABLE).
    • Lenguaje de Control de Datos (DCL): Sirven para realizar tareas de gestión de permisos y seguridad (ej. GRANT, REVOKE).
    • Lenguaje de Manipulación de Datos (DML): Permiten trabajar con los datos (ej. SELECT, INSERT, UPDATE, DELETE).

Tipos de SGBD

  • Según el modelo de datos: Jerárquico, de red, relacional, orientado a objetos, objeto-relacional, NoSQL.
  • Según el número de usuarios: Monousuario o multiusuario.
  • Según el propósito: General o específico.
  • Según el uso: Ofimáticos o corporativos.
  • Según la localización: Centralizados o distribuidos.

Usuarios de un SGBD

  • Administradores de Bases de Datos (DBA): Responsables del diseño físico, mantenimiento, seguridad y rendimiento del SGBD.
  • Diseñadores de Bases de Datos: Se encargan del diseño lógico y conceptual de la base de datos.
  • Programadores de Aplicaciones: Desarrollan las aplicaciones que interactúan con la base de datos.
  • Usuarios Finales: Interactúan con la base de datos a través de aplicaciones para realizar consultas y operaciones diarias.

Bases de Datos Distribuidas vs. Centralizadas

Las bases de datos distribuidas ofrecen ventajas como mejor rendimiento, fiabilidad y disponibilidad en comparación con las centralizadas. Sin embargo, presentan una mayor complejidad de diseño y requieren:

  • Acceso remoto eficiente.
  • Mantenimiento del catálogo distribuido.
  • Optimización de consultas distribuidas.
  • Integridad de permisos y consistencia de copias.
  • Garantizar la recuperación del sistema ante fallos parciales.

Arquitectura de Bases de Datos Distribuidas

Autonomía (Control sobre los Datos)

  • Integración fuerte: Un equipo actúa como coordinador central entre todos los nodos que contienen información.
  • Sistema semiautónomo: Cada SGBD es independiente, pero pueden compartir datos de forma controlada.
  • Sistema aislado: Cada SGBD no conoce a los demás y no hay intercambio de datos directo.

Distribución (Cómo se Distribuyen los Datos)

  • Distribución cero: No existe distribución; es una base de datos centralizada.
  • Cliente/servidor: Los datos están en los servidores, y los clientes proporcionan la interfaz de acceso y procesamiento.
  • Servidores cooperativos: Todos los equipos tienen toda la funcionalidad y pueden actuar como clientes y servidores, colaborando en la gestión de datos.

Fragmentación y Replicación de Datos

La unidad básica de datos en una base de datos relacional es la tabla.

Fragmentación

La fragmentación divide una tabla en partes más pequeñas para distribuirlas en diferentes nodos, mejorando el rendimiento y la disponibilidad.

  • Horizontal: Separamos por tuplas/filas, es decir, cada fragmento contiene un subconjunto de las filas de la tabla original.
  • Vertical: Separamos por campos/columnas, donde cada fragmento contiene un subconjunto de las columnas de la tabla original.
  • Mixta: Combina ambas estrategias, aplicando fragmentación horizontal y vertical.

Replicación

La replicación consiste en mantener copias idénticas de los datos en diferentes nodos. Es indispensable para mejorar la disponibilidad y fiabilidad del sistema.

  • Facilita la distribución de carga de trabajo.
  • Sirve como copia de seguridad y mecanismo de recuperación ante desastres.
  • Requiere un esquema de replicación bien definido para mantener la consistencia.
  • Implica mayores requisitos de almacenamiento y una mayor complejidad en la gestión de actualizaciones para asegurar la coherencia entre las copias.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.