SGBD Top

 

MongoDB

MongoDB es una base de datos NoSQL de código abierto y de tipo documental. Fue creada en 2007 por Dwight Merriman, Eliot Horowitz y Kevin Ryan. Es una base de datos altamente escalable y distribuida que permite el almacenamiento de grandes cantidades de datos en una estructura flexible.

La característica clave de MongoDB es su capacidad para almacenar y recuperar documentos en formato JSON, lo que permite una mayor flexibilidad en las estructuras de datos. Además, MongoDB tiene una arquitectura en clúster que permite la replicación de datos y la distribución de la carga de trabajo en varios servidores.

MongoDB se usa ampliamente en aplicaciones web, aplicaciones móviles, análisis de datos y sistemas de gestión de contenido. Cuenta con una gran comunidad de usuarios y desarrolladores que contribuyen al desarrollo y mantenimiento de la plataforma.

MongoDB admite varios lenguajes de programación, incluidos Java, C ++, Python, Ruby y PHP. Además, integra herramientas de gestión y seguimiento para facilitar la gestión de la base de datos.

 

Licenciamiento

Las licencias de MongoDB se dividen en dos grandes categorías:

Licencia comunitaria: esta es una versión gratuita de MongoDB que se puede descargar y usar de forma gratuita. No incluye soporte técnico ni actualizaciones, pero es una buena opción para desarrolladores y pequeñas empresas que buscan experimentar con la base de datos. Esta versión es adecuada para proyectos de investigación y desarrollo, y para pequeñas aplicaciones con un bajo tráfico de datos.

Licencia Comercial: Esta es una versión paga de MongoDB que incluye soporte técnico, actualizaciones y otras funciones. Existen diferentes opciones de licencias comerciales, incluidas Enterprise Advanced, Atlas y MongoDB Cloud Manager. Cada uno ofrece diferentes niveles de soporte, seguridad y funciones avanzadas.

En resumen, el licenciamiento comercial ofrece más características y soporte para entornos empresariales, mientras que el licenciamiento comunitario es una versión gratuita para uso personal o para proyectos de investigación y desarrollo.


Casa Matriz:

MongoDB es una base de datos NoSQL de documentos, conocida por su escalabilidad y flexibilidad. Fue fundada en 2007 y su sede central se encuentra en Nueva York, Estados Unidos.

La casa matriz de MongoDB es responsable de dirigir y supervisar todas las operaciones de la compañía. La compañía ha expandido sus operaciones a nivel global y cuenta con presencia en varios países, incluyendo Europa, Asia y América Latina.

MongoDB ha experimentado un crecimiento constante y ha sido reconocido como una de las bases de datos más populares para aplicaciones empresariales. La compañía también ofrece una amplia gama de herramientas de gestión de bases de datos, así como soluciones empresariales para asegurar la disponibilidad, el rendimiento y la seguridad de las aplicaciones.

Además de su tecnología de vanguardia, MongoDB se destaca por su cultura empresarial orientada a la satisfacción del cliente y al compromiso con la innovación. La casa matriz de MongoDB trabaja constantemente para mejorar sus productos y servicios y para asegurar que cumpla con las expectativas de sus clientes.

En resumen, la casa matriz de MongoDB es la fuerza impulsora detrás de una de las bases de datos NoSQL más importantes y de vanguardia en el mercado, y su misión es brindar soluciones innovadoras y de alta calidad a sus clientes.

 

Tipo de SGBD

MongoDB es un sistema de gestión de bases de datos NoSQL, también conocido como base de datos orientada a documentos. En lugar de almacenar los datos en tablas con filas y columnas como en una base de datos relacional, MongoDB almacena los datos en documentos con formato JSON o BSON. Estos documentos pueden tener diferentes estructuras, lo que permite una mayor flexibilidad en la modelación de los datos.


Transacciones ACID

ACID es un conjunto de propiedades de transacciones de bases de datos con el fin de garantizar la validez de los datos sin importar los fallos que estos puedan presentar interna o externamente.

ACID es un acrónimo, Atomicidad, Consistencia, Aislamiento y Durabilidad.

Atomicidad

Esta propiedad nos garantiza que las transacciones que se realicen se comporten como una unidad, esto hace que todas tengan éxito o todas fracasen al tratar de ser ejecutadas. Esto es indispensable ya que al haber algún percance tendremos certeza del estado en el que se encuentra la base de datos, ya que si esas transacciones no se ejecutan de forma correcta la base de datos puede presentar errores, por eso es preferible que no se ejecuten a que se ejecuten a medias.

Consistencia

La consistencia garantiza que cada transacción que se realice en la base de datos sea consistente con las reglas de esta. Si los datos llegan a entrar en un estado ilegal, toda la transacción falla.

Aislamiento

Esta propiedad garantiza que todas las transacciones que se realicen simultáneamente en la base de datos no interfieran entre ellas mismas. Se ejecutan en un entorno aislado.

Durabilidad

Esta nos garantiza que llevadas a cabo las transacciones y los cambios que se realizan en la base de datos, todos estos se mantienen. Gracias a esto toda nuestra información va a persistir sin importar los fallos que se puedan presentar.

Gracias a todas estas propiedades podemos estar tranquilos y seguros que nuestra base de datos trabajará de la mejor manera y con la cantidad mínima de fallos sin importar la complejidad de nuestras transacciones.

“Las transacciones en documentos múltiples ACID fueron implementadas en la versión 4.0 en el año 2018” (ACID Properties In DBMS Explained, s.f.). Las transacciones en MongoDB funcionan de manera muy parecida a otras bases de datos.

El modelo que MongoDB utiliza permite que todos los datos se almacenen en un solo documento. Este modelo, combinado con las actualizaciones de los datos atómicas (se actualizan todas o ninguna), evita que sean necesarias las transacciones en la mayoría de casos. Por otro lado, en algunas ocasiones las verdaderas transacciones MongoDB de múltiples documentos y múltiples colecciones son la mejor opción.

La mayoría de usuarios no necesitan de las transacciones ACID en MongoDB, pero para la minoría restante las transacciones de documentos están disponibles.

Las aplicaciones que necesitan transacciones tienden a intercambiar valores entre diferentes partes. Algunas aplicaciones que se benefician de estas transacciones de varios documentos son:

·         Sistemas de registro.

·         Aplicaciones bancarias, sistemas de procesamiento de pagos y plataformas comerciales.

·         Cadena de suministro y sistemas de reserva.

·         Sistemas de facturación.

Buenas prácticas para transacciones

Generalmente, se recomienda que el modelado de datos se haga de tal manera que los datos a los que se accede juntos, permanezcan juntos. De esta manera, obtiene un mejor rendimiento y no necesita transacciones ACID.

Pero para cuando se requieren transacciones se recomienda:

·         Dividir las transacciones que se tardan en ejecutarse en varias partes más pequeñas para que el tiempo de espera estimado no sea excedido, este tiempo de espera son 60 segundos. También hay que asegurarse de que las operaciones de la operación utilicen índices para que se ejecuten más rápido.

·         Que cada transacción tenga un límite de 1000 modificaciones de documentos.

·         Asegúrese de hacer la configuración de lectura y escritura correctos.

·         Hacer el manejo de errores adecuado.

·         Tener en cuenta que las transacciones afectan a varios fragmentos y esto hace que el rendimiento disminuya.


Tipos de datos Mongo DB

·       String: este es el tipo de datos más utilizado para almacenar los datos. La cadena en MongoDB debe ser válida para UTF-8.

·    Integer: este tipo se utiliza para almacenar un valor numérico. El número entero puede ser de 32 o 64 bits, dependiendo de su servidor.

·        Boolean: este tipo se utiliza para almacenar un valor booleano (verdadero / falso).

·        Double: este tipo se utiliza para almacenar valores de punto flotante.

·       Min / Max: este tipo se usa para comparar un valor con los elementos BSON más bajos y más altos.

·       Arrays: este tipo se usa para almacenar arrays o listas o múltiples valores en una clave.

·       Timestamp: Marca de hora. Esto puede ser útil para grabar cuando un documento ha sido modificado o agregado.

·        Object: este tipo de datos se utiliza para documentos incrustados.

·        Null: este tipo se utiliza para almacenar un valor nulo.

·       Symbol: este tipo de datos se utiliza de forma idéntica a una cadena; sin embargo, generalmente se reserva para idiomas que usan un tipo de símbolo específico.

·        Date: este tipo de datos se utiliza para almacenar la fecha u hora actual en formato de hora UNIX. Puede especificar su propia fecha y hora creando el objeto de Fecha y día, mes, año que pasa.

·        ObjectId: este tipo de datos se utiliza para almacenar la ID del documento.

·        Binary: este tipo de datos se utiliza para almacenar datos binarios.

·   Code: este tipo de datos se utiliza para almacenar el código JavaScript en el documento.

·   Regular Expression: este tipo de datos se utiliza para almacenar expresiones regulares.


Programación

En cuanto a la programación podemos decir que MongoDB utiliza una API para interactuar con la base de datos. La API está disponible en muchos lenguajes de programación populares, incluidos JavaScript, Python, C#, Java y otros mediante drivers que nos puede ofrecer MongoDB. Con la API, los desarrolladores pueden realizar operaciones básicas como insertar, actualizar, eliminar y consultar documentos en la base de datos. Además, MongoDB ofrece características avanzadas de programación, como índices, agregaciones, y triggers los cuales se explicarán a continuación.

Los índices en MongoDB son estructuras de datos que se utilizan para mejorar el rendimiento de las consultas. Los índices en MongoDB son similares a los índices en otras bases de datos relacionales, pero se diferencian en que los índices en MongoDB pueden indexar cualquier campo en un documento, no solo las columnas en una tabla. Los índices en MongoDB se crean para una colección de documentos y se pueden crear para un solo campo o para varios campos. Al crear un índice, MongoDB organiza los documentos en la colección en función de los valores en el o los campos que se están indexando. De esta manera, cuando se realiza una consulta, MongoDB puede buscar los documentos más rápidamente en el índice en lugar de escanear la colección completa.

Las agregaciones en MongoDB son un proceso de manipulación de datos que permite a los desarrolladores analizar y transformar documentos en una colección. Con las agregaciones, los desarrolladores pueden combinar varios documentos en un solo resultado, realizar operaciones matemáticas y estadísticas en los datos y generar informes y visualizaciones útiles. Las agregaciones en MongoDB se realizan a través del método “aggregate()” del objeto de colección. Al llamar a este método, se pasa un pipeline de agregación, que es una secuencia de operaciones de agregación que se deben aplicar a los documentos en la colección.

Los triggers en MongoDB son un mecanismo para ejecutar automáticamente código personalizado en respuesta a ciertos eventos en la base de datos. Con los triggers, los desarrolladores pueden agregar lógica personalizada a sus aplicaciones, por ejemplo, para realizar validaciones, enviar notificaciones o realizar cálculos complejos. MongoDB no incluye soporte nativo para triggers, por lo que los desarrolladores deben implementar esta funcionalidad por sí mismos utilizando otras herramientas o soluciones externas, como servidores de aplicaciones, tareas programadas o scripts. Sin embargo, MongoDB Atlas, la plataforma de bases de datos en la nube de MongoDB, ofrece una solución de triggers de servidor para ejecutar código personalizado en respuesta a cambios en la base de datos. Los triggers de servidor en MongoDB Atlas se basan en la integración con Apache Cassandra, y se ejecutan en un entorno seguro y controlado, lo que permite a los desarrolladores implementar triggers de forma fácil y segura. 


Google Cloud SQL

Google Cloud SQL es un gestor de base de datos de Google que permite almacenar, gestionar y proteger datos críticos en la nube. Es un servicio completo y fácil de usar que permite a los desarrolladores crear y gestionar bases de datos relacionales en la nube.

Google Cloud SQL es compatible con los motores de base de datos MySQL y PostgreSQL, lo que permite a los desarrolladores elegir el motor de base de datos que mejor se adapte a sus necesidades. Además, ofrece alta disponibilidad y escalabilidad, lo que significa que los desarrolladores pueden confiar en la plataforma para mantener sus datos seguros y accesibles.

Google Cloud SQL también proporciona herramientas de seguridad avanzadas, como autenticación basada en contraseña y claves SSL para ayudar a proteger los datos y garantizar la privacidad. Además, proporciona una interfaz intuitiva y fácil de usar, lo que significa que los desarrolladores no necesitan aprender lenguajes de programación complejos para crear y administrar bases de datos.


Licenciamiento

Google Cloud SQL es una base de datos en la nube que se licencia a través de un modelo de suscripción mensual o anual. El costo depende del tamaño de la base de datos y el uso de recursos, así como de la cantidad de transacciones y consultas realizadas. Los clientes pueden elegir entre las versiones de MySQL o PostgreSQL y también pueden optar por una versión de pago o una versión de código abierto gratuita. Además, Google ofrece precios de descuento por adelantado para los clientes que pagan por un año o más en un solo pago.


Casa matriz

Google Cloud es la división de Google que ofrece soluciones en la nube, incluyendo el almacenamiento y gestión de bases de datos. La casa matriz de Google Cloud es Google LLC, una empresa multinacional estadounidense con sede en Mountain View, California.

 

Tipo de SGBD

Google Cloud alberga varios sistemas de gestión de bases de datos, incluidas bases de datos relacionales y NoSQL.

Google Cloud SQL es un sistema de gestión de bases de datos relacional, que permite almacenar y consultar datos en tablas con filas y columnas.

Google Cloud Firestore es una base de datos NoSQL orientada a documentos, que permite almacenar y consultar documentos con estructuras no estrictamente definidas.

Además, Google Cloud ofrece otras opciones de bases de datos, como Google Cloud Bigtable, que es una base de datos NoSQL distribuida para grandes volúmenes de datos, y Google Cloud Datastore, que es una base de datos NoSQL orientada a entidades.


Transacciones ACID

Para poder interactuar con la mayoría de bases de datos relacionales se usa el lenguaje SQL, este ofrece lo que es el ACID para los datos, su siglas significan atómico, consistente, aislada, duradera.

Por estas características las bases de datos relacionales se utilizan en aplicaciones que necesitan de una buena precisión, como sistemas de registro, aplicaciones bancarias y sistemas de facturación.

En Google cloud tenemos tres opciones principales para bases de datos relacionales:

·         Cloud SQL: Este reduce el costo de mantenimiento y hace automático el abastecimiento de la base de datos, gestiona el almacenamiento, copias de seguridad y la recuperación de la información. Esta opción nos puede proporcionar bases de datos MySQL, SQL Server y PostgreSQL que se administran en Google Cloud. Esta es una de las mejores opciones para uso web en general, CRM, ERP, SaaS y aplicaciones de comercio.

·         Cloud Spanner: esta es una base de datos de nivel empresarial, fue desarrollada para obtener los beneficios de una base de datos relacional combinada con la escala horizontal de una base de datos no relacional, también incluye lo que son transacciones ACID y consultas SQL. Esta es la mejor opción cuando utilizamos nuestra base de datos para juegos, libros contables financieros globales, la banca minorista, soluciones de pago y la gestión de inventario requieren escalabilidad ilimitada, alta consistencia y alta disponibilidad.

·         Bare Metal Solution: Nos proporciona hardware para efectuar cargas de trabajo específicas con baja latencia. Para las bases de datos Oracle es ideal esta opción si queremos levantar una bases de datos con este sistema y luego trasladarlo a Google Cloud. Esto permite el desmantelamiento de los centros de datos y allana el camino para la actualización de aplicaciones heredadas.


Tipos de datos

  • String: Datos de caracteres de longitud variable (UTF-8)
  • Bytes: Datos binarios de longitud variable Los datos BYTES importados deben estar codificados en base64, excepto los datos BYTES de Avro, que BigQuery puede leer y convertir.
  • Float: Formato de coma flotante de doble precisión
  • Numeric: SQL heredado tiene asistencia limitada para NUMERIC.
  • Bignumeric: SQL heredado tiene asistencia limitada para BIGNUMERIC.
  • Boolean: Formato CSV: 1 o 0, true o false, t o f, yes o no, o y o n (con distinción entre mayúsculas y minúsculas).
  • Record: Una colección de uno o más campos
  • Marca de tiempo: Puedes describir los tipos de datos de MARCA DE TIEMPO como marcas de tiempo de UNIX o fechas de calendario.
  • Date: SQL heredado tiene asistencia limitada para FECHA.
  • Time: SQL heredado tiene asistencia limitada para HORA.
  • Datetime: SQL heredado tiene asistencia limitada para DATETIME. 

Programación

La programación en Google Cloud SQL se basa en SQL, el lenguaje estándar para bases de datos relacionales. Los desarrolladores pueden crear y gestionar bases de datos relacionales utilizando SQL y crear procedimientos almacenados, funciones y vistas para implementar funcionalidades específicas en la base de datos. Se puede usar Cloud SQL con aplicaciones de App Engine que se ejecutan en el entorno flexible y que están escritas en los siguientes lenguajes de programación: C#, Go, Java, Node.js, Python, Ruby, entre otros.

SP en Google Cloud SQL

Los procedimientos almacenados (SP) en Google Cloud SQL son un tipo de rutina que se ejecuta en la base de datos y puede ser invocada desde otras consultas SQL. Los procedimientos almacenados se crean mediante SQL y pueden aceptar parámetros y devolver resultados. Los SP son útiles para implementar lógica compleja en la base de datos que se puede reutilizar en varias consultas SQL. Por ejemplo, un procedimiento almacenado puede realizar una operación que involucra varias tablas y devolver un resultado, en lugar de tener que escribir la misma lógica en varias consultas SQL diferentes. Para crear un procedimiento almacenado en Google Cloud SQL, se crea un bloque de código SQL que contiene la lógica y se guarda en la base de datos. Los procedimientos almacenados se pueden invocar desde otras consultas SQL, proporcionando parámetros y recibiendo resultados.

Triggers en Google Cloud SQL

Los triggers en Google Cloud SQL son un tipo de rutina que se ejecuta automáticamente en la base de datos cuando se realiza una operación en una tabla específica. Por ejemplo, un trigger puede ser activado cuando se inserta un registro en una tabla, o cuando se actualiza o elimina un registro. Los triggers se pueden crear en Google Cloud SQL mediante la creación de un bloque de código SQL que contiene la lógica del trigger y la asociación con una tabla específica. Una vez creado, el trigger se activará automáticamente cada vez que se realice una operación en la tabla asociada.

Funciones en Google Cloud SQL

Las funciones en Google Cloud SQL se crean mediante SQL y pueden aceptar uno o más argumentos como entrada. El cuerpo de la función contiene el código que se ejecutará cuando se llame a la función y puede realizar una variedad de operaciones, como realizar cálculos, manipular datos y llamar a otros procedimientos almacenados. Una vez creada, una función en Google Cloud SQL se puede llamar desde cualquier consulta SQL y se ejecutará en tiempo real. Esto permite a los desarrolladores encapsular lógica compleja en una sola ubicación y reutilizarla en múltiples lugares en la aplicación.

Google Cloud SQL ofrece una amplia gama de opciones de programación para bases de datos relacionales, incluyendo procedimientos almacenados, funciones, triggers y trabajos, para que los desarrolladores puedan implementar funcionalidades específicas en sus aplicaciones de bases de datos.


Referencias

MongoDB. (s.f.). MongoDB Licensing. Recuperado el 5 de febrero de 2023, de https://docs.mongodb.com/manual/faq/licensing/

MongoDB. (n.d.). Documentación oficial de MongoDB. Recuperado el 5 de febrero de 2023, de https://docs.mongodb.com/

MongoDB. (n.d.). Página principal de MongoDB. Recuperado el 5 de febrero de 2023, de https://www.mongodb.com/

MongoDB. (n.d.). Artículo de Wikipedia sobre MongoDB. Recuperado el 5 de febrero de 2023, de https://es.wikipedia.org/wiki/MongoDB

MongoDB. (n.d.). Blog de MongoDB. Recuperado el 5 de febrero de 2023, de https://blog.mongodb.com/

Google Cloud SQL. (n.d.). Google Cloud. Recuperado el 5 de febrero de 2023, de https://cloud.google.com/sql/

Google Cloud. (s.f.). Cloud SQL pricing. Recuperado el 5 de febrero de 2023, de https://cloud.google.com/sql/pricing.

ACID Properties In DBMS Explained. (s.f.). Obtenido de MongoDB: https://www.mongodb.com/basics/acid-transactions  


Vergadia, P. (24 de Agosto de 2021). Your Google Cloud database options, explained. Recuperado el 3 de Febrero de 2023, de Google Cloud: https://cloud.google.com/blog/topics/developers-practitioners/your-google-cloud-database-options-explained


Tipos de datos de SQL heredado. (17 de Enero de 2023). Recuperado el 5 de Febrero de 2023, de Google Cloud: https://cloud.google.com/bigquery/docs/data-types?hl=es-419


Tutor. (24 de Octubre de 2018). Tipos de Datos en MongoDB. Recuperado el 5 de Febrero de 2023, de Código Fuente: https://www.codigofuente.org/tipos-datos-mongodb/


Características de Cloud SQL. (4 de Febrero de 2023). Obtenido de Google Cloud: https://cloud.google.com/sql/docs/features?hl=es-419


MongoDB Arquitectura y modelo de datos. (27 de Diciembre de 2017). Recuperado el 5 de Febrero de 2023, de sitiobigdata.com: https://sitiobigdata.com/2017/12/27/mongodb-arquitectura-y-modelo-de-datos/#


Welcome to the MongoDB Documentation. (s.f.). Recuperado el 5 de Febrero de 2023, de MongoDB Documentation: https://www.mongodb.com/docs/


  


Comentarios

Entradas más populares de este blog