Bases de Datos NoSQL de Código abierto Mongo DB 001

in #spanish6 years ago (edited)

MiniaturaNOSQLfinal.png

Las Bases de datos SQL se caracterizan por su integridad en la información, sin embargo,
la forma de sus estructuras puede dar como resultado ciertas dificultades al momento de su escalabilidad, haciéndolas limitadas (altos costes, altos requerimientos de hardware ) en estructuras con grandes flujos de escritura y lectura.

Las bases de datos NoSQL en teoría son más fáciles de ampliar de forma descentralizada y son consideradas idóneas para tratamientos de grandes volúmenes de información y transacciones.

Existen diferentes tipos de almacenamientos en las NoSQL como son:

  • Bases de Datos Documentales
  • Bases de Datos de Grafo
  • Bases de Datos Clave Valor
  • Bases de Datos Multivalor
  • Bases de Datos Orientada a Objetos
  • Bases de Datos Tabular
  • Bases de Datos de Arrays

Una base de datos relacional ofrecen integridad en su información, mientras que las bases de datos NoSQL ofrecen velocidad al momento de insertar y extraer datos, son bases de datos no estructuradas, debido a que sus tablas no requieren ser tablas fijas. En las formadas por Key-Values-pairs por ejemplo:

KeyValues
nombrePedro
apellidoPerez
edad50
ciudadMaracaibo

El Key (Llaves) es un valor de referencia que se repite, mientras Values (valores) es la información que es identificada.

Si bien su uso puede ayudar a incrementar los tiempos de respuestas en los procesos de entrada y lectura de datos, además de escalar de forma más sencilla las NoSQL tienen ciertos inconvenientes.

Sus diferentes tipos no comparten normas, e incluso las del mismo tipo son desarrolladas por separado, al no existir un estándar la sintaxis de trabajo de cada una varía dificultando la migración de proyectos de un manejador a otro.

Las NoSQL de código abierto permiten a una empresa adaptar el producto a sus necesidades, lo cual ha sido útil para almacenamientos de empresas con grandes volúmenes, Google (BigTable) y Amazon(SimpleDB y Dynamo).

En otros casos utilizar Bases de Datos NoSQL ya existentes como MongoDB, con experiencias exitosas como el de Bosh Group y la Ciudad de Chicago, esta última ultima desarrolla una plataforma de operaciones inteligentes de nombre WindyGrid

Para este curso de bases realizaremos pruebas con MongoDB una base de Datos NoSQL basada en estructuras documentales, en MongoDB cada registro es un documento, y cada registro es una estructura compuesta por pares de campo y valor.

MongoDB permite un alto rendimiento usando consultas rápidas en sus indices y permitiendo arreglos de claves.

RQL Rich Query Lenguage, un lenguaje de consultas optimizado para procesos de lectura y escritura.

Una alta disponibilidad, mediante un sistema de failover automático y redundancia de datos, permitiendo réplicas de los datos en diferentes servidores

Los datos se pueden dividir en Shard, estos se pueden alojar en equipos diferentes permitiendo así escalar la estructura de forma rápida y a bajos costes.

Sus creadores tienen una versión de acceso a la comunidad y aparte existen versiones con funciones avanzadas para las cuales se deberá pagar, esto permite a desarrolladores y empresas comenzar proyectos e ir adquiriendo las funciones a medida que el proyecto crezca, con un soporte a gran cantidad de sistemas Linux (con un enfoque a distribuciones de ámbito empresarial como Amazon Linux, Red Hat), sistemas Solaris, Windows e incluso Mac. Puede verse incluso una versión para s309x bajo RHEL y CentOS.

La versión de la comunidad permitirá instalarse en cualquier equipo y crear estructuras desde un inicio, sin embargo, para funciones de cluster y nube de gran escala deberemos usar la versión Enterprise donde también se obtiene un soporte valioso.

Si vemos las versiones tenemos :

  • MongoDB Comunity
  • MongoDB Enterprise (Standalone)
  • MongoDB Enterprise (Replica Set)
  • MongoDB Enterprise (Shared Cluster)

MongoDB permite datos de documentos tipo JSON que son a sus vez un subconjunto BSON, incluyendo además dos adicionales propios del motor de Base de Datos Mongo.

En este curso empezaremos por configurar la plataforma para las practica sobre un sistema operativo virtualizado se instalará MongoDB y una herramienta de trabajo llamada Robot 3T una GUI que ayuda a ver de forma visual las estructura de nuestro servidor Mongo, sin embargo, mucho del trabajo será por medio de la shell y seguramente se deberán hacer pequeñas pruebas a nivel de algún lenguaje. Recordando que Mongo DB tiene soporte para una gran cantidad de lenguajes de programación:

C
C++
C# / .Net
Erlang
Haskell
J#
JAVA
JAvaScript
LISP
NODE.js
Perl
PHP
Phyton
Ruby
Delphi
Scala

Tomando en consideración que MongoDB es una Base de Datos NoSQL y que estas son diferentes entre sí, al no poseer un standart de trabajo como en las bases de datos relacionales, donde el Transact es el mismo con pequeñas variables de una implementación a otra, consideraremos que con estas prácticas se podrá entender el uso de MongoDB como NoSQL más no así todas las NoSQL. Ni siquiera todas las documentales, pues sus formas de lectura y escritura son diferentes entre ellas, así como sus arquitecturas. Siendo esto posiblemente uno de sus mayores problemas al requerirse un estudio específico para cada una.

Practica


Referencias

Wikipedia NoSQL Link
Proyecto MongoDB Link
Manual MongoDB Link

Imágenes

La imagen de la miniatura fue compuesta con Gimp 2.10 utilizando la siguiente Fuente, de PixBay

Sort:  

Ya estaba esperando el momento en que empezaras a hablar de NoSQL

Este post fue votado por la comunidad y trail @developspanish, comunidad encargada de curar a los programadores, traductores de software y bloggers de informática y tecnología de habla hispana.

¿Quieres recibir mejores recompensas en tus post de informática, tecnología o programación, ayúdanos delegando algo de SP:
1 SP, 5 SP, 10 SP

Interesante informacion @ubaldonet.

Me alegra le guste



This post has been voted on by the steemstem curation team and voting trail.

There is more to SteemSTEM than just writing posts, check here for some more tips on being a community member. You can also join our discord here to get to know the rest of the community!

Gracias por el apoyo

Hi @ubaldonet!

Your post was upvoted by utopian.io in cooperation with steemstem - supporting knowledge, innovation and technological advancement on the Steem Blockchain.

Contribute to Open Source with utopian.io

Learn how to contribute on our website and join the new open source economy.

Want to chat? Join the Utopian Community on Discord https://discord.gg/h52nFrV

Congratulations @ubaldonet! You have completed the following achievement on the Steem blockchain and have been rewarded with new badge(s) :

Award for the number of upvotes

Click on the badge to view your Board of Honor.
If you no longer want to receive notifications, reply to this comment with the word STOP

You can upvote this notification to help all Steemit users. Learn why here!

Recibe nuestro voto por parte del equipo de curación data-usb






Puedes chequear nuestro reporte diario haciendo click Aquí

Unete a nuestro servidor de discord para pertenecer a nuestra comunidad haciendo click Aquí

Saludos, excelente post amigo.. muy instructivo.

Coin Marketplace

STEEM 0.28
TRX 0.11
JST 0.034
BTC 66137.63
ETH 3161.38
USDT 1.00
SBD 4.13