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”
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
Publicar un comentario