Bases de Datos NoSQL: Flexibilidad y Escalabilidad
En el desarrollo moderno, muchas veces necesitamos guardar datos que no encajan bien en una tabla fija. Aquí es donde entran las Bases de Datos NoSQL (Not Only SQL). En lugar de tablas y filas, suelen utilizar estructuras similares a los diccionarios de Python (JSON).
1. El concepto de Documento
La base de datos NoSQL más popular es MongoDB. En ella, la información se organiza en: * Colecciones: Equivalentes a las "Tablas", pero más flexibles. * Documentos: Equivalentes a los "Registros". Se guardan en formato BSON (un JSON binario).
¿Por qué usar NoSQL?
- Esquema Flexible: Un documento puede tener 3 campos y el siguiente puede tener 10 sin romper la base de datos.
- Escalabilidad: Están diseñadas para crecer fácilmente a través de muchos servidores.
- Velocidad: Ideales para lectura y escritura masiva de datos no estructurados.
2. Conectando Python con NoSQL (PyMongo)
Para interactuar con MongoDB desde Python, utilizamos la librería PyMongo. El flujo es muy similar al que vimos en SQL, pero más directo:
- Cliente: Conectar al servidor (ej. MongoDB Atlas).
- Base de Datos: Seleccionar la base de datos.
- Colección: Seleccionar la colección (ej. "usuarios").
- Operación: Insertar o buscar diccionarios directamente.
Operaciones CRUD en NoSQL
- insert_one({ ... }): Guarda un nuevo diccionario.
- find({ "campo": "valor" }): Busca documentos que coincidan.
- update_one(): Modifica un registro existente.
- delete_one(): Elimina un documento.
Reto: Simulador de Catálogo NoSQL
Vamos a simular la inserción de un producto en una colección. Imagina que estamos usando una librería que emula MongoDB.
Instrucciones:
- Crea un diccionario llamado
productocon:"nombre": "Teclado","precio": 50y"stock": 10. - Imagina que tienes un objeto
coleccion. Usa el métodocoleccion.insert_one(producto). - Para verificar, busca el producto usando
coleccion.find_one({"nombre": "Teclado"})y guarda el resultado en una variable llamadaresultado.
# Manejo de datos JSON-like: