Qué es NoSQL

June 23, 2018 | Author: Luis Enrique Mtz | Category: No Sql, Mongo Db, Databases, Relational Database, Distributed Computing Architecture
Share Embed Donate


Short Description

Download Qué es NoSQL...

Description

Qué es NoSQL? Originalmente el término NoSQL, que fue acuñado en 1998, se refería a una base de datos relacional de código abierto que no usaba un lenguaje de consultas SQL (Structured Query Language)). Language Hasta 2009 estas cinco letras cayeron en el olvido, pero fue Johan Oskarsson, Oskarsson , entonces empleado de Last.fm Last.fm,, quien organizó un evento para tratar las bases de datos distribuidas de código abierto no relacionales, llamándolas “NOSQL”, Not-Only Not-Only SQL. Las características comunes entre todas las implementaciones de bases de datos distribuidas no relacionales, propietarias o no, suelen ser las siguientes: 







Consistencia Eventual: Eventual: No se implementan mecanismos rígidos de consistencia como los presentes en las bases de datos relacionales, donde la confirmación de un cambio implica una comunicación del mismo a todos los nodos que lo repliquen. Esta flexibilidad hace que la consistencia se dé, eventualmente, cuando no se hayan modificado los datos durante un periodo de tiempo. Esto se conoce también como BASE (Basically Available Soft-state Eventual Consistency, o coherencia eventual flexible básicamente disponible), en contraposición a ACID ACID,, su analogía en las bases de datos relacionales. Estructura distribuida: distribuida: Generalmente se distribuyen los datos mediante mecanismos de tablas de hash distribuidas (DHT DHT)) ya que realmente se trata, según las distintas implementaciones, de redes p2p. Escalabilidad horizontal: horizontal : La implementación típica se realiza en muchos nodos de capacidad de procesado limitado, en vez de utilizar grandes Mainframes. Tolerancia a fallos y Redundancia Redundancia..

De entre todas las implementaciones de bases de datos NoSQL, hay muchas que no utilizan el lenguaje de consultas SQL (por ejemplo, MongoDB usa JSON JSON)), pero hay algunas que siguen usándolo, como por ejemplo BigTable (GQL GQL)), que lo ha transformado manteniendo su estructura básica. Definitivamente, con el término NoSQL nos referimos a una multitud de bases de datos que intentan solventar las limitaciones que el modelo relacional se encuentra en entornos de almacenamiento masivo de datos, y concretamente en las que tiene en el momento de escalar, donde es necesario disponer de servidores muy potentes y de balanceo de carga.

NoSQL es un término usado en informática para agrupar una serie de almacenes de datos no

relacionales que no proporcionan garantías ACID ACID.. Normalmente no tienen esquemas fijos de 1 tablas ni sentencias "join". "join" .

Historia del término

El término NOSQL fue acuñado a principios de 1999 por un empleado de Rackspace, Eric Evans, cuando Johan Oskarsson de Last.fm quiso organizar un evento para discutir bases de datos distribuidas de código abierto. El nombre intenta describir el surgimiento de un número creciente de bases de datos no relacionales y distribuidas que no suelen proveer garantias ACID. El término ACID hace referencia a un conjunto de características necesarias para que una serie de instrucciones puedan ser consideradas como una transacción.

Bases de datos NoSQL Enviado por Felipe Piccolini el 27/01/2011 a las 01:20 PM Etiquetas: bigtable db cassandra hbase nosql database mongodb hadoop

Para los que saben de desarrollo de software o alguna vez han tenido que construir un sitio web, saben que a parte del la interfaz espectacular y buenas funcionalidades que cumplan con lo esperado por el cliente/negocio, siempre hay que -de una manera u otra- guardar datos en alguna parte, persistirlos... para que la proxima vez que alguien use la aplicacion, no sea empezar todo de nuevo... a esto se le llama persistencia y normalmente (desde los 70's mas o menos) se hace usando bases de datos relacionales (RDBS). La tipica base de datos relacional (como Oracle, DB2 y MySQL) utiliza tablas y esquemas (agrupaciones de tablas), donde cada tabla es eso... una tabla con filas y columnas, donde las columnas son el tipo de dato que se quiere guardar y las filas son en si cada conjunto de datos, por ejemplo, los datos de alguien en una tabla Persona se podrian guardar en columnas como Id, Rut, Nombre, Apellido, FechaNaciemiento, etc., y la forma de consultar los datos es un lenguaje llamado SQL. Antes que nada, quiero aclarar que NoSQL (Not Only SQL) es un movimiento, no una base de datos en si, y como movimiento, muchas bases de datos caen en esta categoria. Las bases de datos NoSQL parten de la base en la que las "tablas" no existen como tal, sino que la informacion se almacena de forma distinta, generalmente como llave-valor, como una tabla en la que las columnas son dinamicas, pueden cambiar sin perder la agrupacion de la informacion, asi es que puedo tener 'Personas' con mas atributos que otras, puedo cambiar la estructura de mi informacion dinamicamente sin tener que re-diseñar todo de nuevo. Una de las gracias de estas bases de datos es que permiten almacenar gran candidad de datos y escalar linealmente, sin afectar el performance y ademas son extremadamente rapidas. Es cierto que para una aplicacion normal que no almacena muchos datos quizas esto no sea necesario y con MySQL sea suficiente, pero si se necesita almacenar muchisima informacion, una base de datos como MySQL no podra escalar bien, incluso con clusters, asi es que es una buena idea echarle un vistazo a estas soluciones, aunque debo decir que NoSQL no es para todo, cada base de datos tiene su aplicacion y tienes que ver cual es la que mas te sirve antes de implementar tu aplicacion.

En general hay 4 tipos de bases de datos NoSQL, dependiendo de como almacenan la informacion: * Key-Value: llave-valor es la forma mas tipica, como un HashMap donde cada elemento esta identificado por una llave unica, lo que permite la recuperacion de la informacion de manera muy rapida. Muchas de ellas estan basadas en la publicacion de Google acerca de su BigTable y de Amazon. Dentro de estas bases de datos podemos encontrar a BigTable de Google, SimpleDB de Amazon, Cassandra, HBase (Hadoop), Riak, Voldemort, TokioCabbinet y MemcacheDB entre otras. * Document based: estas almacenan la informacion como un documento (generalmente con una estructura simple como JSON o BSON) y con una llave unica. Podemos encontrar a MongoDB y CouchDB entre las mas importantes de este tipo. * Graph db: Hay otras bases de datos que almacenan la informacion como grafos donde las relaciones entre los nodos son lo mas importante. Son muy utiles para representar informacion de redes sociales. Encontramos a neo4j entre otras. Si quieren mas informacion al respecto les recomiendo buscar en google, ir a wikipedia y al sitio de nosql, hay mucha informacion, videos, documentacion y ejemplos. En estos momentos hay muchas empresas usando estas soluciones para almacenar gran cantidad de datos como Google, Amazon, Twiter, Facebook, SourceForge, etc. http://www.nosql.es/blog/nosql/que-es-nosql.html

1.- Es de código abierto - Sobre todas las cosas buenas Los productos de código abierto proporcionan a los desarrolladores grandes beneficios, sobre todo por su estado sin costo alguno. Otros beneficios: el software de código abierto tiende a ser más confiable, seguro y rápido de implementar que las alternativas propietarias. Gestores NoSQL populares son Cassandra, CouchDB, Hbase, MongoDB y Redis.

2.- Escalamiento sencillo. NoSQL sustituye a la antiguo "escalar" el mantra de los gestores de las bases de datos con una nueva: "manera" en lugar de añadir más servidores para manejar más carga de datos, una base de datos NoSQL permite a una empresa distribuir la carga entre varios hosts a medida que aumenta la carga.

3.- Diferentes DBs NoSQL para diferentes proyectos MongoDB y Redis son buenas opciones para el almacenamiento de escritura con alta frecuencia, rara vez leen los datos estadísticos, tales como web, contador de visitas.

Hadoop, una libre, DB distribuida que hace un buen trabajo almacenando grandes de datos tales como estadísticas del tiempo o el trabajo de análisis de negocio. Memcache, una db transeúnte, destaca en la web, el almacenamiento de sesiones, y las estadísticas a corto plazo. Cassandra y Riak (clusters automáticos, tiendas redundantes) un buen rendimiento en entornos con aplicaciones de alta disponibilidad, donde el tiempo de funcionamiento máximo es de vital importancia. Impresionante implementaciones NoSQL de Empresas como Amazon, Facebook, la BBC, y Google se basan en DB NoSQL. NoSQL vuela alto en la Nube

4.- NoSQL y la nube es un ajuste natural . Los servidores de hoy en día son de bajo costo y fácilmente pueden ser ampliados a petición mediante un servicio como Amazon EC2. Al igual que toda la tecnología de la nube, EC2 se basa en la virtualización. El eslabón débil de la virtualización es la E/S, la memoria y CPU que deben ser ágiles 5.- Las bases de datos NoSQL utilizan sobre todo el uso de memoria en vez del disco como la principal ubicación de escritura - lo que impide inconsistente rendimiento I/O. Y como los almacenes de datos NoSQL aprovechan típicamente particiones horizontales, son capaces de tomar ventaja en la nube de la elástica del aprovisionamiento. http://www.linux-party.com/modules.php?name=News&file=article&sid=6599

View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF