Curso de Base de Datos NoSQL

Curso de Base de Datos NoSQL

Adán Figueroa Jiménez

Adán Figueroa Jiménez

¿Qué debo elegir? NoSQL vs SQL

2/17
Recursos
Transcripción

Elegir la tecnología adecuada para un proyecto puede ser complejo y tener un impacto significativo en términos económicos, de tiempo y en la experiencia del equipo. La decisión entre utilizar SQL o NoSQL depende del caso de uso, la infraestructura y la naturaleza de los datos. A continuación, se presentan algunos escenarios y ventajas de cada tecnología para ayudar en esta elección.

¿Cuándo es ventajoso utilizar bases de datos NoSQL?

  • Datos semiestructurados: Cuando los datos no están bien definidos desde el inicio o tienden a ser semiestructurados.
  • Datos sin relaciones fuertes: Ideal cuando no hay relaciones fuertes entre los datos.
  • Distribución geográfica: Necesidad de distribuir datos localmente o geográficamente para cumplir con leyes de protección de datos.
  • Esquemas cambiantes: Útil cuando los datos son definidos por aplicaciones o terceros, como en middleware de APIs o almacenamiento de logs.
  • Disponibilidad rápida: Priorizar la disponibilidad rápida de los datos sobre la consistencia fuerte, no enfatizando el modelo ACID.

Ejemplo: Un e-commerce podría almacenar información de productos en una base de datos orientada a documentos como MongoDB, utilizar un motor de búsqueda como Elasticsearch para búsquedas rápidas y bases de datos vectoriales para recomendaciones.

¿Cuándo es ventajoso utilizar bases de datos SQL?

  • Esquemas bien definidos: Cuando los datos y el esquema están bien definidos y no cambiarán con el tiempo.
  • Relaciones claras: Cuando existen relaciones importantes y claras entre las entidades desde el inicio del proyecto.
  • Consistencia de datos: La ventaja de ACID, que asegura la consistencia, disponibilidad y otros factores cruciales para datos que requieren alta integridad.

Ejemplo: Un sistema bancario que necesita mantener la consistencia de los datos y maneja relaciones claras y definidas puede beneficiarse del uso de SQL.

¿Qué es la persistencia políglota y por qué es común?

La persistencia políglota es la práctica de utilizar múltiples tecnologías de bases de datos en un solo proyecto para aprovechar las ventajas de cada una. Es común en grandes compañías que han escalado, ya que permite combinar bases de datos SQL y NoSQL para obtener mejores resultados.

Aportes 9

Preguntas 1

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Cuándo usar SQL: 1. Datos estructurados: Cuando tus datos tienen un esquema fijo y bien definido. 2. Relaciones complejas: Si tus datos tienen muchas relaciones entre sí (por ejemplo, clientes, pedidos, productos). 3. Transacciones ACID: Cuando necesitas garantías de Atomicidad, Consistencia, Aislamiento y Durabilidad. 4. Consultas complejas: Si necesitas realizar consultas complejas que involucren múltiples tablas. 5. Aplicaciones tradicionales: Como sistemas de gestión empresarial, contabilidad, recursos humanos. Cuándo usar NoSQL: 1. Datos no estructurados o semiestructurados: Cuando el esquema de tus datos puede variar o no está bien definido. 2. Gran volumen de datos: Si manejas cantidades masivas de datos y necesitas escalar horizontalmente. 3. Alta velocidad de escritura/lectura: Para aplicaciones que requieren operaciones de lectura/escritura muy rápidas. 4. Flexibilidad en el esquema: Cuando necesitas añadir nuevos campos o tipos de datos frecuentemente. 5. Aplicaciones en tiempo real: Como redes sociales, IoT, análisis en tiempo real. 6. Desarrollo ágil: Si necesitas iterar rápidamente y cambiar la estructura de datos con frecuencia. Ejemplos específicos: * SQL: Sistemas bancarios, comercio electrónico tradicional, sistemas de reservas. * NoSQL: Redes sociales, aplicaciones móviles, juegos online, sistemas de recomendación. Recuerda que no es una decisión excluyente. Muchas aplicaciones modernas utilizan ambos tipos de bases de datos en diferentes partes de su arquitectura, lo que se conoce como persistencia políglota.
Por mi parte consideró que es conveniente usar BD NoSql cuando necesito almacenar información no estructurada o que no presenta una relación claramente definida. Por ejemplo: Para una empresa de vigilancia en la que solo requiero almacenar información de tipo multimedia. Para cuando es conveniente usar BD sql? Cuando la información presenta datos y entidades relacionadas como por ejemplo la relación entre un producto y un su proveedor.
Las bases de datos NoSQL, en general, no implementan el modelo ACID de la misma manera que las bases de datos SQL. SQL prioriza la consistencia fuerte utilizando transacciones ACID, que garantizan que las operaciones se completen completamente o no se realicen en absoluto. En contraste, muchas bases de datos NoSQL optan por la disponibilidad y partición, lo que a menudo significa que ofrecen características de consistencia eventual. Sin embargo, algunas bases de datos NoSQL, como MongoDB, han comenzado a incorporar soporte para transacciones ACID en un contexto limitado, permitiendo operaciones más complejas. Es importante elegir la base de datos adecuada según tus necesidades específicas.
considero que las bases de datos NoSql son más eficientes con datos no estructurados, como por ejemplo cuando se trabaja con APIs que retornan datos en formato JSON
Considero a la tecnología como a un ente vivo que itera constantemente, por lo que todas sus partes se ven obligadas adaptarse. Por ejemplo: Facebook incorporó el "me gusta" para entender los gustos y preferencias de sus usuarios, para a su vez poder mostrarle información afín. Cómo mides y monitoreas eso, la iteración de la tecnología, te obliga a seguir sus pasos.
NoSQL +Datos indeterminados +Semi estructurados +No relacionados +Distribucion geografica SQL +Datos definidos +Relaciones claras entre datos +A.C.I.D
* Elección de tecnologías en proyectos: \- Es crucial tomar decisiones sobre qué tecnologías utilizar durante el desarrollo y escalado de un proyecto. \- La elección puede impactar económicamente, en tiempo y en la experiencia del equipo. * Comparación SQL vs. No SQL: \- No se trata de cuál es mejor en general, sino cuál es mejor para el caso de uso específico. \- Factores a considerar: infraestructura, naturaleza de los datos, y tecnologías en uso. * Ventajas de No SQL: \- Datos no definidos o determinados desde el inicio. \- Datos semiestructurados o sin relaciones fuertes. \- Necesidad de distribución geográfica de datos (cumplimiento de leyes de protección de datos). \- Datos definidos por la aplicación o terceros, como logs de aplicaciones. \- Prioridad en disponibilidad rápida de datos sobre consistencia fuerte (a diferencia de SQL con ACID). * Ejemplo de No SQL en e-commerce: \- Uso de bases de datos orientadas a documentos (MongoDB, Dynamo, CouchDB) para productos. \- Uso de motores de búsqueda (Elasticsearch, Atlas Search) para búsquedas. \- Uso de bases de datos vectoriales para recomendaciones. * Persistencia políglota: \- Combinación de múltiples tecnologías para obtener mejores resultados. \- Ejemplo: datos de e-commerce analizados con SQL (Power BI). * Ventajas de SQL: \- Datos y esquemas bien definidos desde el inicio. \- Relaciones importantes y claras entre entidades. \- Consistencia de datos y transacciones (ACID). \- Escalamiento vertical (a diferencia de No SQL que escala horizontalmente). * Ejemplo de SQL en sistemas bancarios: \- Funcionalidades y esquemas definidos. \- Consistencia de datos y manejo de transacciones para evitar inconsistencias. * Conclusión: \- La combinación de tecnologías SQL y No SQL según el caso de uso es beneficiosa. \- Es importante estar abierto a utilizar la tecnología más conveniente según las necesidades del proyecto.
genial
¿Que tipo de bases de datos me recomendarían para trabajar con datos biomédicos, fisiológicos, etc.? Ya sea para desarrollo de nuevas tecnologías, bioingeniería o para hacer investigación en estos campos. Busco ejemplos e ideas.