Saltar a contenido

Persistencia datos

La persistencia de datos se refiere a la capacidad de almacenar información generada durante la ejecución de un programa de manera que esta información permanezca disponible para futuras ejecuciones del programa, después de que el proceso actual haya terminado. En el contexto del desarrollo de software, especialmente en aplicaciones web y móviles, la persistencia es crucial para garantizar que los datos críticos, como las preferencias del usuario, el estado de la aplicación y los registros de transacciones, no se pierdan y puedan ser recuperados a través de reinicios del sistema o sesiones de usuario.

Este concepto se implementa generalmente utilizando diferentes métodos de almacenamiento, como bases de datos, archivos en un sistema de archivos, almacenamiento en la nube o mediante el uso de APIs que gestionan la persistencia en servidores remotos. El método elegido depende de los requisitos específicos de la aplicación, como la necesidad de acceso rápido, la seguridad de los datos, la escalabilidad y la capacidad de manejar grandes volúmenes de datos.

Persistencia en la lógica

En el contexto de una aplicación web, persistir datos en la lógica del programa implica mantenerlos en estructuras de datos durante el ciclo de vida de una solicitud HTTP. Por ejemplo, se pueden utilizar variables y estructuras como listas o diccionarios en PHP para almacenar temporalmente información mientras se procesa una solicitud.

Además, la persistencia a través de sesiones HTTP permite guardar datos entre múltiples solicitudes del mismo usuario. Esto se logra usando sesiones en PHP, donde se almacenan datos en variables de sesión que son accesibles a lo largo de diferentes páginas y solicitudes hasta que la sesión expire o se cierre.

Persistencia en archivos

Persistir datos en archivos implica escribir y leer datos de archivos en el sistema de archivos del servidor. Esto es útil para datos que no requieren operaciones complejas y pueden ser almacenados de manera permanente en un formato simple como CSV, JSON, o XML. PHP proporciona funciones como file_put_contents() y file_get_contents() que facilitan la escritura y lectura de archivos.

Esta técnica es adecuada para pequeñas cantidades de datos y donde la estructura de los datos es simple, pero no es recomendable para gestionar grandes volúmenes de datos o requerimientos de alta concurrencia debido a limitaciones de escalabilidad y velocidad.

Persistencia en un SGBD

La utilización de Sistemas de Gestión de Bases de Datos (SGBD) es el método más común para la persistencia de datos en aplicaciones web. Los SGBD como MySQL, PostgreSQL, o SQLite manejan la persistencia, consistencia, integridad, y seguridad de los datos. PHP se comunica con estos sistemas a través de extensiones como PDO (PHP Data Objects) o mysqli, que permiten ejecutar consultas SQL, insertar, actualizar, eliminar y recuperar datos de manera eficiente.

Este enfoque es altamente recomendable para manejar grandes volúmenes de datos, asegurar la integridad de los datos mediante transacciones y restricciones, y proporcionar un acceso concurrente efectivo.

Persistencia en una API

La persistencia de datos a través de APIs está ganando popularidad, especialmente con el auge de las arquitecturas basadas en microservicios y la nube. En este modelo, una aplicación web interactúa con una API externa para gestionar los datos. La API puede estar conectada a un backend que utiliza cualquier forma de almacenamiento mencionada anteriormente o incluso servicios especializados como bases de datos en la nube.

Este método es muy escalable y permite que la lógica de gestión de datos sea abstracta y mantenida por un tercero, reduciendo la carga de gestionar directamente la persistencia de los datos en la aplicación.

Ejemplos de uso

Tipo de Persistencia Uso Típico en E-commerce
Estructuras de datos Almacenar detalles del carrito de compra temporalmente en memoria.
Sesión HTTP Mantener información de sesión del usuario, como artículos en el carrito entre visitas a diferentes páginas.
Archivos Guardar imágenes de productos, descripciones en formato JSON/XML o configuraciones del sitio en archivos.
Sistema de Gestión de Bases de Datos (SGBD) Almacenar y gestionar inventarios de productos, datos de usuarios, historial de pedidos, y realizar transacciones seguras.
API Conectar con sistemas de pago remotos, integrar gestión de envíos y obtener datos de productos de proveedores externos.

Justificación

  • Estructuras de datos: Durante la navegación de un usuario, los productos seleccionados se pueden guardar en una estructura de datos como un array en PHP, lo cual permite manipular fácilmente los items añadidos o eliminados antes de realizar la compra.

  • Sesión HTTP: Al guardar el estado del carrito de compras y las preferencias del usuario (como la última categoría de productos visitada) en una sesión, se mejora la experiencia del usuario permitiendo que, al volver a la página, encuentre su carrito de compras tal y como lo dejó.

  • Archivos: Para un e-commerce, es práctico almacenar archivos estáticos como catálogos de productos en formato PDF, imágenes de productos o incluso archivos de configuración que controlen aspectos del layout o características del sitio web, que no requieren acceso frecuente a una base de datos.

  • Sistema de Gestión de Bases de Datos (SGBD): Las bases de datos son esenciales en e-commerce para gestionar voluminosas y dinámicas informaciones como los detalles de inventarios de productos, precios, usuarios registrados, preferencias de clientes, y registros de transacciones. Permiten realizar consultas complejas, gestionar la integridad de los datos, y asegurar la coherencia a través de transacciones.

  • API: Integrar APIs permite a una tienda de e-commerce extender su funcionalidad y automatización sin tener que manejar todos los datos internamente. Por ejemplo, una API de pagos como Stripe o PayPal gestiona de forma segura las transacciones financieras, mientras que otras APIs pueden ser utilizadas para obtener información en tiempo real sobre el estado del envío o para integrar reseñas de productos de un servicio externo.

Actividad

  • 🧪 PR 602. (RA6 / CE6a / IC2 / 5p) - Una vez comprendido el concepto de persistencia de datos, el CTO solicita que se realice una tabla en la que asignes, o no, el uso que le darías a cada tipo de persistencia de datos para el proyecto de e-commerce que estás realizando. Es necesario que justifiques tus decisiones.