1.
FICHEROS DE DATOS:
Fichero o archivo: permite almacenar datos de forma permanente en dispositivos de
memoria masiva.
Fichero de datos: estructura de datos que se almacena en una memoria secundaria
del ordenador consiste en un conjunto de informaciones organizadas en unidades de
acceso denominadas registro.
Ej: archivadores de fichas de cartón. La información de cada ficha equivale a un
registro, y cada una de las informaciones elementales que contiene la ficha es a lo
que le llamaremos campo.
Registro: información correspondiente a un empleado.
Campo: APELLIDO, NOMBRE CATEGORÍA...
Campo clave es un campo o conjunto de campos que identifica de manera única cada
registro en una tabla de base de datos.
Inconvenientes de los sistemas tradicionales:
-Problemas de concurrencia. Cuando dos o más personas quieren acceder al mismo
tiempo a los datos de un archivo para actualizarlo.
Ej: Una persona quiere borra un dato y la otra quiere modificarlo o consultarlo...
                                           1
-Falta de un lenguaje de acceso estandarizado. Cada lenguaje de programación tiene
una sistaxis propia para acceder a los archivos.
-Falta de coherencia.
-Falta de integridad referencial.
   2. CONCEPTO Y OBJETIVOS DE LOS SISTEMAS DE BASES
       DE DATOS
   2.1         De los sistemas tradicionales de ficheros a las bases de datos
Los sistemas tradicionales de ficheros organizaban y almacenaban datos de manera
independiente para cada aplicación, lo que provocaba redundancia. Esto generaba
problemas como:
      Uso innecesario de memoria. Al repetirse los mismos datos en varios archivos.
      Duplicación de controles y operaciones. Ej: para validar el formato de un DNI
      Inconsistencias en los datos al no actualizarse simultáneamente en todos los
       archivos.
      El control del archivo si varios procesos intentan acceder al mismo tiempo.
       Dos o más programas o usuarios intentan leer o modificar un archivo de
       datos al mismo tiempo en los sistemas tradicionales de ficheros.
       Inconvenientes que puede generar:
           o   Colisiones y errores de modificación: Si dos procesos están intentando
               cambiar el mismo archivo a la vez, existe el riesgo de que uno
               sobrescriba las modificaciones del otro.
           o   Bloqueo de archivos: Para evitar conflictos, algunos sistemas antiguos
               implementan un "bloqueo" cuando un proceso está usando un archivo,
               de manera que ningún otro proceso puede acceder al archivo hasta que
                                            2
              se libere. Esto puede causar demoras o hacer que algunos procesos
              queden "esperando" mucho tiempo, afectando la eficiencia y
              productividad.
      Problemas de seguridad. Se refiere al riesgo de que los datos se pierdan o se
       vuelvan inaccesibles debido a fallos en la gestión del acceso o a la falta de
       mecanismos adecuados de protección.
Para resolver estos problemas, surgieron las bases de datos, donde los datos se
almacenan una sola vez, permitiendo su uso por múltiples aplicaciones de manera
eficiente y coherente.
Ej: Una empresa maneja los datos de sus empleados mediante varios sistemas
diferentes:
   1. Sistema de nómina: Almacena el nombre, DNI y salario del empleado.
   2. Sistema de gestión de horarios: Almacena el nombre, DNI y los turnos de
       trabajo.
En un sistema tradicional de ficheros, el nombre y el DNI del empleado se
almacenan en cada uno de estos sistemas por separado. Esto genera redundancia. Si
el DNI de un empleado cambia y solo se actualiza en el sistema de nómina, aparecerá
una inconsistencia, ya que los otros sistemas seguirán teniendo el antiguo DNI.
Con una base de datos, el nombre y el DNI se almacenarían una sola vez, y los tres
sistemas (nómina y horarios) accederían a esos datos centralizados, evitando
redundancia, inconsistencias y facilitando la gestión de la información.
   2.2 Bases de Datos
Una base de datos es un conjunto organizado y estructurado de datos relacionados
entre sí, que representan entidades (objetos o personas) y sus interrelaciones. Su
objetivo es minimizar la redundancia y facilitar la gestión, almacenamiento, y
recuperación de datos de manera centralizada y coherente.
                                            3
Un Sistema Gestor de Bases de Datos (SGBD) es un conjunto de programas que
permite la creación, gestión, actualización y recuperación de datos en una base de
datos, asegurando la integridad, seguridad y confidencialidad de la información.
Componentes de una base de datos:
   o Dato: una unidad de información que puede ser registrada, almacenada y
      procesada.
   o Tipo de dato: Indica la naturaleza del campo que almacena el dato. Los tipos
      incluyen numéricos, alfanuméricos, y de fecha, entre otros.
   o Registro, tupla, fila. Un campo se refiere a la columna de una tabla en una
      base de datos y identifica una categoría específica de datos. Cada campo
      almacena un tipo de información sobre una entidad particular.
   o Un campo se refiere a la columna de una tabla en una base de datos y
      identifica una categoría específica de datos. Cada campo almacena un tipo de
      información sobre una entidad particular.
   o Campo clave: es un campo o un conjunto de campos con valores únicos en
      una tabla. Tipos:
                 Clave simple: clave formada por un único campo. Ej: DNI
                 Clave compuesta: clave formada por más de un campo. Ej:
                   nombre + apellidos
                 Clave principal o primaria. Cuando tenemos varias claves,
                   elegimos una de ellas como la clave principal a utilizar en la tabla.
                   Ej: Tabla de empleados el campo “DNI”.
                 Clave secundaria o alternativa. Cuando tenemos varias claves,
                   todas las quen no se elijan como clave principal, serán claves
                   alternativas. Ej: NSS(número seguridad social)
   o Tábla. Es un conjunto de tuplas bajo el mismo nombre. Ej: la tabla Clientes,
   almacena los datos de todos los clientes que hay en la base de datos.
   o Consulta, en inglés query (cuya traducción literal es “petición”). Es una
                                           4
instrucción que sirve para hacer peticiones a la base de datos: búsqueda de una tupla
concreta, búsqueda del conjunto de tuplas que cumplan una determinada condición,
eliminación o inserción de tuplas y actualización de tuplas.
      o Relación. Hablando de Modelo Relacional de BD es una tabla.
      o Índice es una estructura de datos que organiza y almacena los campos clave de
         una tabla en una base de datos, facilitando la búsqueda y ordenación de las
         tuplas. Cada elemento indexado está asociado con su posición en la base de
         datos, permitiendo acceder rápidamente a la información correspondiente.
      o Vista es una representación virtual de una tabla o de un conjunto de datos que
         se crea a partir de una consulta SQL. Útiles para simplificar el acceso a datos.
Ej:
CREATE VIEW Estudiantes AS
SELECT nombre, correo, edad
FROM Instituto
WHERE asignatura_matricula = 'Base de Datos';
          Informe. Es un listado de compos(columnas) y filas(tuplas) de datos
            seleccionados según ciertos criterios.
          Script o guion. Conjunto de instrucciones que, ejecutadas en un orden,
            concreto hacen operaciones avanzadas de mantenimiento de la base de
            datos.
          Procedimiento. Tipo especial de script que se almacena en la BD y que
            forma parte de su esquema. Ej;
            CREATE PROCEDURE InsertarEstudiante (
            IN p_nombre VARCHAR(100),
            IN p_correo VARCHAR(100),
            IN p_edad INT
            )
            BEGIN
            INSERT INTO Estudiantes (nombre, correo, edad)
            VALUES (p_nombre, p_correo, p_edad);
                                              5
          END;
   2.3       Ventajas de las bases de datos frente a los ficheros clásicos
       Independencia de datos. Los cambios en la base de datos no requieren
          modificaciones en el código de las aplicaciones.
       Coherencia de los resultados. Reduciendo la redundancia se minimizan los
          problemas de inconsistencia.
       Mayor eficiencia en la recogida y validacion de datos. El SGBD se encarga
          de la validación garantizando un manejo de datos más uniforme y
          controlado.
       Mejor disponibilidad de los datos. Información compartida entre usuario y
          aplicaciones, permitindo un acceso más amplio y flexible.
       Reducción del espacio de almacenamiento. Al eliminar las redundancias y
          aplicar técnicas de compactación, las bases de datos ocupan menos espacio
          en el almacenamiento.
   2.4       Inconvenientes de las bases de datos
-Instalación costosa tanto en equipos físicos como en el lógico (sitemas operativos,
programas...)
-Personal especializado. La gestión de BD requiere personal especializado con
conocimientos técnicos específicos, lo que puede dificultar su contratación y
formación. Este desafío es crucial al implementar un sistema de bases de datos.
-Implantación larga y difícil. La implantación de una BD puede convertirse en una
tarea larga y laboriosa.
-Falta de rentabilidad a corto plazo para la implementación de BD debido al costos
de personal y equipos, así como al tiempo necesito para que esté operativo.
   2.5          Tipos de bases de datos
   2 formas de clasificar las BD:
                                          6
-Según el modelo de datos
-Según la localización de la información
2.5.1 Según el modelo de datos, método conceptual para estructurar los
      datos. Existen varios modelos:
1. Modelo Jerárquico o modelo en arbol. Organizan los datos en una estructura
donde cada registro tiene un único padre y puede tener múltiples hijos. Aunque
permite representar relaciones, tiene limitaciones, ya que no todas las
interrelaciones se pueden modelar jerárquicamente.
Ej: IBM Information Management System en los años 60.
2.Modelo Red. Surge como respuesta a las limitaciones del modelo jerárquico,
permitiendo representar relaciones más complejas. Organiza datos en
registros(nodos) y enlaces, donde un registro puede tener múltiples padres y
relaciones en todas direcciones.
Ej: IDMS fue su sistema más popular, pero hoy está en desuso.
3.Modelo relacional. Organizan los datos en tablas bidimensionales formadas por
filas y columnas y están relacionadas entre sí.
Fue desarrollado por Codd en 1970 y propuso dos lenguajes para manipular los
datos de las tablas: algebra relacional y cálculo relacional.
Ej: MySQL, PostgreSQL, Oracle, MariaDB, SQLServer
                                         7
4.Modelo multidimensional. Debido a que el volumen de datos puede ser
excesivamente grande, los datos y sus relaciones son estructurados en hipercubos de
n dimensiones.
Ej: OLAP es un ejemplo de este modelo.
5.Modelo orientado a objetos. Almacena datos en forma de objetos.
Ej: ObjectDB
6.Modelo orientado a documentos. Datos semiestructurados. Los
registros y sus datos asociados se almacenan en documentos.
Ej: MongoDB
                                         8
7. Modelo en la Nube. Ofrecen servicios de almacenamiento de datos a
través de la nube, permitiendo el acceso y la gestión remota. Pueden ser
relacionales o no relacionales.
Ej: Goodle Cloud Firestore
   2.5.2 Según la localización de los datos
    Bases de Datos Centralizadas. La información se almacena en un sólo lugar y
todos los usuarios acceden a ella a través de la red.
Ej: El sistema de gestión de base datos de una empresa que tiene todo en un
servidor central
    Bases de Datos Distribuidas. Datos ubicados en múltiples serividores
conectados a través de una red permitiendo que los datos se encuentren más
cerca de los usuarios.
Ej: Sistema de bases de datos que replica información en varios centros de datos
en diferentes geografías.
    Base de datos híbrida: Combina características de bases de datos
      centralizadas y distribuidas. Puede tener datos almacenados en un servidor
      central y también en varias ubicaciones distribuidas, permitiendo flexibilidad y
      escalabilidad en la gestión de la información.
Ej: Una empresa que utiliza un sistema centralizado para almacenar datos críticos, en
un servidor principal. Al mismo tiempo, puede tener bases de datos distribuidas en
diferentes sucursales para gestionar información local (como inventarios y ventas en
tiempo real).
Dónde almancenan la información las bases de datos:
Las bases de datos (BD) almacenan la información en una estructura organizada y
accesible dentro de diversos sistemas de almacenamiento:
- Discos duros o SSD locales. Ej: MySQL, PostgreSQL o Microsoft SQL Server
almacena los datos en el servidor local del disco duro del sistema.
- Almacanamiento en la nube. Ej: AWS, Microsoft Azure, Google Cloud
                                            9
- Archivos binarios y ficheros de datos. Ej: Oracle Databas
- Sistemas de almacenamiento distribuidos. Ej: Cassandra o MongoDB, donde los
datos se replican y fragmentan entre nodos en diferentes ubicaciones físicas.
- Memoria principal, RAM. Ej: Redis o Memcached, almacenan la información
directamente en la RAM para acceso rápido.
Las 10 Bases de Datos más grandes del mundo:
- National Security Agency (NSA) Tamaño estimado: Yottabytes (clasificado)
- Google Tamaño estimado: 15+ exabytes
- YouTube. 1000+ petabytes
- Large Hadron Collider (LHC) en CERN Tamaño estimado: 530+ petabytes ...
- Facebook (Meta) Tamaño estimado: 300+ petabytes ...
- World Data Center for Climate (WDCC) Tamaño estimado: 140+ petabytes ...
- Amazon Web Services (AWS) Tamaño estimado: 100+ petabytes ...
- Spotify. 100+ petabytes
- Internet Archive. 70+ petabytes
- Wayback Machine. 70+ petabytes
Un administrador de bases de datos (DBA) debe realizar copias de seguridad de
manera regular para evitar la pérdida de datos en caso de fallos o desastres.
Tipos de copias de seguridad:
-Copias de seguridad completa(Full Backup). Es una copia total de todos los datos y
archivos de una base de datos. Contiene una réplica exacta de la información en el
momento en que se realiza la copia.
Cuándo usarla: Ideal para la primera vez que se realiza una copia de seguridad o
cuando es necesario tener una imagen completa y actual de los datos.
-Copia de seguridad incremental(Incremental Backup). Sólo copia los datos que
han cambiado o se han añadido desde la última copia se seguridad, ya sea completa o
incremental. Es más eficiente en cuanto a tiempo y espacio.
                                           10
Cuándo usarla: Útil para sistemas donde los cambios son frecuentes y se necesitan
copias rápidas y eficientes. Suele combinarse con una copia completa semanal.
-Copia de seguridad diferencial(Differential Backup). Copia todos los datos que han
cambiado desde la última copia completa, a diferencia de la incremental, que solo
guarda los cambios desde la última copia (sea completa o incremental).
Cuándo usarla: Ideal para sistemas que requieren un balance entre el tiempo de
restauración y la frecuencia de los cambios. Suele usarse cuando se necesita restaurar
rápidamente sin muchos pasos.
-Copia de seguridad en espejo(Mirror Backup). Es una réplica exacta y en tiempo
real de los datos, donde cualquier cambio que se haga en la base de datos principal se
refleja inmediatamente en la copia de seguridad.
Cuándo usarla: Ideal para sistemas que requieren alta disponibilidad y recuperación
inmediata de datos, como en empresas que no pueden permitirse perder ni un
segundo de datos.
   2.6         Componentes de un sistema de base de datos
Componentes de un sistema de base de datos:
- Datos. Almacenar y organizar la información de manera estructurada.
- Hardware. Proporciona infrastructura para almacenar y procesar datos.
- Software. Gestiona las operaciones de la base de datos.
- Personal. Clasificación de usuarios que intervienen en un sistema de base de
datos:
    Administrador de la Base de Datos (DBA): Diseña la estructura, asegura el
         funcionamiento óptimo y gestiona el acceso.
    Programadores de Aplicaciones: Desarrollan software que interactúa con la
         base de datos para realizar funciones específicas.
    Usuarios Finales: Utilizan aplicaciones para consultar y actualizar datos sin
         necesidad de conocimientos técnicos profundos.
                                             11
2.7 Un Sistema Gestor de Bases de Datos (SGBD) es un conjunto de
programas que permite la creación, gestión, actualización y recuperación de datos en
una base de datos, asegurando la integridad, seguridad y confidencialidad de la
información.
Los objetivos SGBD:
   Evitar la redundancia de datos, eliminando inconsistencias.
   Mantener la integridad de los datos mediante validaciones y actualizaciones
      necesarias.
   Mejorar la seguridad de la información.
   Asegurar la independencia de programas respecto a los datos, permitiendo
      modificaciones en la estructura sin cambiar el código de las aplicaciones.
   Optimizar la eficacia en el acceso a los datos, como almacenar en memoria
      caché las consultas recientes.
2.7.1 Niveles de Abstracción: Arquitectura ANSI/SPARC
La arquitectura ANSI/SPARC establece tres niveles de abstracción en sistemas de
bases de datos, cada uno con un enfoque distinto:
   1. Nivel Interno o Físico:
         o     Describe cómo se almacenan los datos en el hardware (memorias
               secundarias).
         o     Incluye detalles sobre archivos, nombres, direcciones, longitud de
               registros, campos, y rutas de acceso (índices).
   2. Nivel Conceptual:
         o     Representa los datos almacenados y sus relaciones sin preocuparse por
               su organización física.
         o     Definido por los administradores de la base de datos, incluye:
                     Entidades (ej. clientes, artículos).
                     Atributos (ej. nombre_cliente, NIF).
                     Asociaciones (ej. pedidos realizados por clientes).
                                             12
                    Restricciones de integridad que deben cumplirse.
   3. Nivel Externo o Vistas:
          o   Es la perspectiva más cercana al usuario, mostrando solo la parte de la
              base de datos relevante para ellos.
          o   Permite definir múltiples esquemas externos, protegiendo así el acceso a
              datos no autorizados. Se pueden omitir entidades, atributos y relaciones,
              así como cambiar el orden de los atributos.
Esta estructura de tres niveles permite una mejor gestión y organización de los datos,
facilitando su uso y asegurando la seguridad y la integridad.
2.7.2 Funciones de los SGBD
Las principales funciones que debe realizar un S.G.B.D. son:
- La definición de los datos(DDL,Data Definition Language)
- La manipulación de los datos.
- Garantizar la seguridad e integridad de los datos.
- La gestión de las transacciones y el acceso concurrente.
   1. El Lenguaje de Definición de Datos (LDD o DDL) permite describir y definir
       los esquemas de una base de datos. Sus funciones incluyen:
      Creación de objetos conceptuales (esquema conceptual).
      Descripción de estructuras físicas (esquema físico).
      Definición de vistas (esquema externo).
Para bases de datos existentes, el LDD también permite:
                                           13
   Modificar la descripción de objetos conceptuales.
   Borrar objetos conceptuales.
   Modificar y eliminar caminos de acceso (índices) y espacios para tablas.
   Modificar y eliminar vistas.
2. El Lenguaje de Manipulación de Datos (LMD o DML) permite a los
    usuarios interactuar con la base de datos mediante comandos para consultar,
    insertar, modificar y eliminar datos. Es responsable de todas las operaciones de
    intercambio de información entre los usuarios y la base de datos.
3. La seguridad e integridad de los datos en un SGBD garantiza que solo los
    usuarios autorizados puedan realizar las operaciones adecuadas en la base de
    datos. Esto se logra mediante la gestión de autorizaciones, restricciones de
    integridad (como la referencial), y protección contra accesos malintencionados
    o fallos. Además, se implementan contraseñas, vistas, encriptado de datos y
    herramientas de recuperación para proteger la información y mantener su
    coherencia.
4. La gestión de transacciones y acceso concurrente en un SGBD garantiza que
    los datos permanezcan coherentes incluso cuando varios usuarios los
    manipulan simultáneamente o ante fallos del sistema. Las transacciones deben
    cumplir con las propiedades ACID:
       a. Atomicidad (se ejecutan completamente o no),
       b. Consistencia (mantienen un estado coherente),
       c. Aislamiento (no interfieren entre sí)
       d. Durabilidad (sus resultados son permanentes). Para evitar
          inconsistencias por accesos concurrentes, se utilizan técnicas de bloqueo
          de datos, aunque esto puede generar interbloqueos, que el SGBD debe
          gestionar.
                                        14
El SGBD debe cumplir con otras funciones importantes, como garantizar tiempos
de respuesta rápidos en los procesos en línea, para una interacción eficiente entre
usuarios y la base de datos.
Debe ofrecer capacidad de auditoría, permitiendo al administrador monitorear
quién accede a la base de datos y qué operaciones realiza, asegurando un control
adecuado sobre el uso de los datos.
3.    CONCEPTO Y OBJETIVOS DE LOS SISTEMAS DE BASES
DE DATOS
La evolución de las bases de datos ha traído innovaciones clave en respuesta a nuevas
necesidades y oportunidades:
    Bases de datos en la nube: Hay dos modelos principales:
         o Base de datos en la nube: gestionada por la organización, pero alojada en
             infraestructura externa.
         o DBaaS (Database as a Service): el proveedor gestiona todo, garantizando
             seguridad y disponibilidad.
    Big Data: Se caracteriza por las "3 V's":
         o Volumen: almacenamiento de grandes cantidades de datos.
         o Velocidad: procesamiento rápido, a veces en tiempo real.
         o Variedad: diferentes tipos de datos (estructurados y no estructurados).
    Almacenes de datos (Data Warehouse): Reúne y organiza datos históricos de
      varias fuentes para análisis y toma de decisiones.
    Minería de datos (Data Mining): Técnica que busca patrones y relaciones
      ocultas en grandes volúmenes de datos, ayudando a predecir tendencias y
      comportamientos.
                                         15