jueves, 21 de febrero de 2019

Usos y aplicaciones de las bases de datos documentales

La necesidad de usar una base de datos documental u otro tipo de base de datos para administrar los datos dependerá del caso de uso. Las bases de datos documentales son útiles para cargas de trabajo que requieren un esquema flexible que permita un desarrollo rápido e iterativo.

Usos

Perfiles de usuario
Como las bases de datos documentales tienen un esquema flexible, pueden almacenar documentos que tengan atributos y valores de datos diferentes. Las bases de datos documentales son una solución práctica para los perfiles online en los que diferentes usuarios proporcionan diferentes tipos de información. Mediante una base de datos documental, puede almacenar cada perfil de usuario de forma eficaz almacenando solo los atributos que son específicos de cada usuario.
Las bases de datos documentales administran fácilmente este nivel de detalle y fluidez.


Big data en tiempo real
Históricamente, la capacidad de extraer información de datos operativos se ha visto obstaculizada por el hecho de que las bases de datos operativas y las bases de datos de análisis se mantenían en diferentes entornos: informes operativos y de negocio, respectivamente. Ser capaces de extraer información operativa en tiempo real es fundamental en un entorno empresarial altamente competitivo. Mediante el uso de bases de datos documentales, una empresa puede almacenar y administrar datos operativos de cualquier origen e incluir los datos de forma simultánea en el motor de BI elegido para su análisis. 

Administración de contenido
Para administrar eficazmente el contenido, debe poder recopilar y agrupar contenido de una variedad de orígenes y enviárselo al cliente. Debido a su esquema flexible, las bases de datos documentales son perfectas para recopilar y almacenar cualquier tipo de datos. Puede utilizarlas para crear e incorporar nuevos tipos de contenido, incluido el contenido generado por el usuario, como imágenes, comentarios, y vídeos.


Aplicaciones

Es importante mencionar los casos de éxito en la utilización de bases de datos NoSQL documentales por parte de las compañías, debido al prestigio de dichas compañías y los beneficios obtenidos gracias a la implementación de soluciones NoSQL documentales.

Foursquare
Es una red social cuya actividad consiste en permitir a sus usuarios realizar check-in en lugares concretos (marcar lugares como visitados a medida que el usuario los visita y compartir la localización con amigos y contactos). Debido al crecimiento exponencial que experimentó desde su creación en 2009 hasta pocos años después, los ingenieros de Foursquare decidieron evaluar, entre otras soluciones, bases de datos NoSQL. 

MTV Networks
Aparte del canal de TV y de las webs de cada país (mtv.com, mtv.es, etc) es propietaria de un conjunto de sitios tales como spike.tv, gametrailers.com, entre otros, los cuales tienen unas estadísticas de tráfico y accesos incluso mayores que la web de la propia MTV. El equipo de la web de MTV evaluó migrar su base de datos relacional a un modelo NoSQL de cara a facilitar el escalado y un posible cambio de modelo de datos rápido de cara a cambiar ciertos aspectos del desarrollo de la web.



Disney
Con la implementación de MongoDB 10gen, por parte de Disney, se obtuvo la independencia en el almacenamiento de la información y el desarrollo de las aplicaciones lo cual proporciona un mayor control sobre los datos.



Referencias:
  • AWS. (23 de enero del 2019). Amazon Web Services. Obtenido de: Amazon Web Services: https://docs.aws.amazon.com/es_es/documentdb/latest/developerguide/document-database-use-cases.html
  • Gomez R. (27 de Junio de 2017).Universidad Carlos 3 de Madrid. Obtenido de Universidad Carlos 3  de Madrid:  https://core.ac.uk/download/pdf/44310803.pdf 
  • Mancilla S. Universidad de San Carlos. (Agosto 2017). .Obtenido de Universidad de San Carlos: http://biblioteca.usac.edu.gt/tesis/08/08_0709_CS.pdf

Manejadores de las bases de datos documentales

MongoDB es una base de datos libre de esquemas, orientada a documentos, escrita en C ++. La base de datos está basada en el almacén de documentos, lo que significa que almacena valores (denominados documentos) en forma de datos codificados.
La elección del formato codificado en MongoDB es JSON. Es muy potente, porque incluso si los datos están anidados dentro de los documentos JSON, seguirá siendo consultable e indexable.
Tiene un sistema flexible de almacenamiento de esquemas. Lo que significa que los objetos almacenados no tienen que tener la misma estructura o los mismos campos.
MongoDB también tiene algunas características de optimización, que distribuye las colecciones de datos, mejorando el rendimiento y consiguiendo un sistema más equilibrado.
Acciones
En MongoDB, hay un grupo de servidores llamados enrutadores. Cada uno actúa como un servidor para uno o más clientes. Del mismo modo, el clúster contiene un grupo de servidores denominados servidores de configuración. Cada uno contiene una copia de los metadatos que indican qué fragmento contiene qué datos. Las acciones de lectura o escritura se envían desde los clientes a uno de los servidores de enrutador del clúster y son encaminadas automáticamente por ese servidor, a los fragmentos adecuados que contienen los datos con la ayuda de los servidores de configuración.


Se trata de una base de datos multirregión y multimaestro completamente administrada, con seguridad integrada, copia de seguridad y restauración, y almacenamiento de caché en memoria para aplicaciones a escala de Internet. DynamoDB puede gestionar más de 10 billones de solicitudes por día y admite picos de más de 20 millones de solicitudes por segundo.
Beneficios
  • Rendimiento a escala: DynamoDB admite algunas de las aplicaciones de escala más grandes del mundo y proporciona tiempos de respuesta en milisegundos de un solo dígito a cualquier escala. Puede crear aplicaciones con capacidad de almacenamiento y procesamiento prácticamente ilimitada.
  • Sin servidor: La disponibilidad y la tolerancia a errores están integradas, por lo que no es necesario estructurar sus aplicaciones para estas capacidades.
  • Listo para el uso empresarial: DynamoDB admite las transacciones ACID para que pueda crear aplicaciones de vital importancia para el negocio a escala. DynamoDB también cuenta con el respaldo de un acuerdo de nivel de servicio para garantizar la disponibilidad.



Casos prácticos
  • Nike: Migró sus clústeres de gran tamaño de Cassandra a una base de datos Amazon DynamoDB completamente administrada, lo que permite una mayor disponibilidad de recursos para mejorar la experiencia del cliente.
  • Samsung: Usa DynamoDB para realizar copias de seguridad de aplicaciones móviles de tamaño de petabytes, lo que permite ahorrar costos y generar un rendimiento alto.
  • Netflix: Usa DynamoDB para ejecutar pruebas A/B que crean experiencias de streaming personalizadas para sus más de 125 millones de clientes.
  • Snapchat: Migró su carga de trabajo de almacenamiento más grande, Snapchat Stories, a DynamoDB, lo que le permitió mejorar el rendimiento y reducir costos
  • GE Aviation: GE Aviation rediseñó su aplicación de esquematización y consulta de datos para el ahorro de costos, el escalado y el rendimiento con Amazon DynamoDB.

CouchDB

Se trata de una base de datos NoSQL que emplea JSON para almacenar los datos, JavaScript como lenguaje de consulta por medio de MapReduce y HTTP como API
CouchDB fue liberada por primera vez en 2005, transformándose en un proyecto Apache en 2008.
Características principales
  • Almacenamiento de documentos: Almacena los datos como "documentos", esto es, uno o más pares campo/valor expresados en JSON. Los valores de los campos pueden ser datos simples como cadenas de caracteres, números o fechas.
  • Semántica ACID: Provee una semántica de atomicidad, consistencia, aislamiento y durabilidad.
  • Arquitectura distribuida con replicación: Múltiples réplicas pueden tener cada una sus propias copias de los mismos datos, modificarlas y luego sincronizar esos cambios en un momento posterior.
  • Consistencia Eventual: Garantiza consistencia eventual para poder ofrecer tanto disponibilidad como tolerancia a las particiones.

Referencias:
  • Martin S. (20 de abril del 2017). PandoraFms. Obtenido de PandoraFms: https://blog.pandorafms.org/es/bases-de-datos-nosql/
  • (2019). Amazon Web Services. Obtenido de Amazon Web Services: https://aws.amazon.com/es/dynamodb/
  • (06 de Diciembre del 2018). Apache CouchDB. Obtenido de Apache CouchDB: http://couchdb.apache.org/

¿Qué son las bases de datos documentales?

Una base de datos documental, también llamada una base de datos orientada a documentos u tienda de documentos, es un subconjunto de un tipo de base de datos NoSQL.

Algunos almacenes de documentos también pueden ser bases de datos de valores clave. Una base de datos de documentos se utiliza para almacenar, recuperar y administrar datos semi estructurados.


Funcionamiento
Una base de datos de documentos utiliza documentos como la estructura para almacenamiento y consultas. En este caso, el término "documento" puede referirse a un documento de texto, pero comúnmente es un archivo de XML o JSON. En lugar de columnas con nombres y tipos de datos que se utilizan en una base de datos relacional, un documento contiene una descripción del tipo de datos y el valor de esa descripción.
Beneficios
  • Modelado flexible de datos:  Las bases de datos de documentos eliminan la necesidad de forzar modelos de datos relacionales para admitir nuevos tipos de modelos de datos de aplicaciones.
  • Rendimiento de escritura rápido: Esto garantiza que las escrituras siempre serán rápidas, incluso si una falla en una parte del hardware o de la red da como resultado un pequeño retraso en la replicación de datos y la coherencia en todo el entorno.
  • Rendimiento rápido de consultas: Muchas bases de datos de documentos tienen potentes motores de búsqueda y funciones de indexación que proporcionan capacidades de consulta rápidas y eficientes.
Ventajas de utilizar bases de datos documentales
  • Almacenar información como texto
  • Lenguaje de consulta fácil e intuitivo
  • Programa fácilmente copias de seguridad
  • Poseen un lenguaje de consulta fácil e intuitivo.
  • Escalabilidad.
  • Ahorra espacio
  • Programa fácilmente copias de seguridad.
  • Evita errores en la consulta de información
  • Capaces de almacenar cualquier tipo de información en forma de texto.
  • Facilidad de poder manejar una gran cantidad de información, de forma rápida y en muy poco tiempo

Referencia:
  • (14 de marzo del 2018). Tecnologías Información. Obtenido de Tecnologías Información: https://www.tecnologias-informacion.com/documentosbd.html
  • (30 de agosto de 2018). SoftDoit. Obtenido de SoftDoit: https://www.softwaredoit.es/software-gestion-documental-guias/que-son-las-bases-de-datos-documentales.html

¿Qué son las bases de datos NoSQL?

Bases de datos NoSQL

Historia
Carlo Strozzi usó el término NoSQL en 1998 para referirse a su base de datos. Era una base de datos open-source, ligera, que no ofrecía un interface SQL, pero sí seguía el modelo relacional (Strozzi sugiere que, ya que el actual movimiento NoSQL “Se sale completamente del modelo relacional, debería, por tanto, haberse llamado ‘NoREL’, o algo así.”)
Eric Evans, un empleado de Rackspace, reintrodujo el término NoSQL cuando Johan Oskarsson de Last.fm quiso organizar un evento para discutir bases de datos distribuidas de código abierto. El nombre intentaba recoger el número creciente de bases de datos no relacionales y distribuidas que no garantizaban ACID, atributo clave en las SGBDR clásicas.
Las bases de datos NoSQL han tenido un crecimiento exponencial en los últimos años, el uso acelerado por grandes empresas para escalar sus aplicaciones transaccionales demuestra que este tipo de tecnología se está convirtiendo en una excelente alternativa para almacenar información.

Algunos ejemplos:
  • Tesco: uno de los más grandes supermercados del mundo, utiliza base de datos NoSQL para soportar su catálogo de productos, precios, inventarios y sistemas de cupones.
  • Sky TV: una importante cadena de televisión satelital, utiliza base de datos NoSQL para administrar los perfiles de usuario de sus más de 20 millones de suscriptores.
  • Paypal: sistema de pagos en linea que opera en casi todo el mundo, utiliza base de datos NoSQL para monitorear en tiempo real el tráfico de visitas a su aplicación web

Ventajas
Las bases de datos de NoSQL presentan muchas ventajas en comparación con las bases de datos tradicionales.
  • A diferencia de las bases de datos relacionales, las bases de datos NoSQL están basadas en key-value pairs
  • Algunos tipos de almacén de bases de datos NoSQL incluyen diferentes tipos de almacenes.
  • Podría decirse que las bases de datos NoSQL de código abierto tienen una implementación rentable. Ya que no requieren las tarifas de licencia y pueden ejecutarse en hardware de precio bajo.
  • Cuando trabajamos con bases de datos NoSQL, ya sean de código abierto o tengan un propietario, la expansión es más fácil y más barata que cuando se trabaja con bases de datos relacionales. Esto se debe a que se realiza un escalado horizontal y se distribuye la carga por todos los nodos. En lugar de realizarse una escala vertical, más típica en los sistemas de bases de datos relacionales.

Referencias:
  • Chacaltana G. (22 de mayo del 2017). Solo código web. Obtenido de solo código web: http://www.solocodigoweb.com/blog/2017/05/22/el-poder-de-las-bases-de-datos-nosql/
  • (30 de octubre del 2017). Modelo de Red. Obtenido de Modelo de Red: https://modelodered.wordpress.com/2017/10/30/base-de-datos-nosql/