Sei sulla pagina 1di 11

UNIVERSIDAD TECNOLOGICA DEL PERU FILIAL

AREQUIPA

TRABAJO AUTONOMO 2
NOSQL

Curso:
Base de Datos I

AREQUIPA PER
2016

ndice

NOSQL..............................................................................................................................3
1.

Ventajas......................................................................................................................5

2.

Inconvenientes NoSQL..............................................................................................5

3.

Tipo de base de datos NOSQL...................................................................................6

4.

Taxonoma..................................................................................................................8

Investigue que tipo de bases de datos usan las redes sociales.........................................10


Bibliografa......................................................................................................................11

NOSQL
Las bases de datos NoSQL son sistemas de almacenamiento de informacin que no
cumplen con el esquema entidad-relacin. Mientras que las tradicionales bases de datos
relacionales basan su funcionamiento en tablas, joins y transacciones.
Las bases de datos NoSQL no imponen una estructura de datos en forma de tablas y
relaciones entre ellas sino que proveen un esquema mucho ms flexible. Las bases
NoSQL son adecuadas para una escalabilidad realmente enorme, y tienden a utilizar
modelos de consistencia relajados, no garantizando la consistencia de los datos, con el
fin de lograr una mayor performance y disponibilidad. A esto se agrega el inconveniente
de que no tienen un lenguaje de consulta declarativo, por lo que requiere de mayor
programacin para la manipulacin de los datos.
En general se pueden mencionar Sistemas NoSQL clasificados en cuatro categoras:
Framework Map-Reduce (usado por aplicaciones que hacen procesamiento analtico
online - OLAP), Por ejemplo Hadoop.
Almacenamiento Clave-Valor (sistemas que tienden al procesamiento de transacciones
online - OLTP), Por ejemplo: Google BigTable, Amazon Dynamo, Cassandra,
Voldemort, HBase.
Almacenamiento de Documentos Por ejemplo: CouchDB, MongoDDB, SimpleDB
Sistemas de base de datos Grficas.Por ejemplo: Neo4j, FlockDB, Pregel. Con respecto
al almacenamiento en Columnas que en general son tratados como Sistemas NoSQL,
no son ms que una forma de organizacin de un sistema de base de datos relacional.
Sin embargo por la alta performance para cierto tipo de aplicaciones son considerados
como del tipo almacenamiento Clave-Valor.
En s, para manipular enormes cantidades de informacin de manera muy rpida los
Sistemas NoSQL trabajan mejor que los sistemas de base de datos tradicionales, sin
embargo para muchsimas aplicaciones la solucin est en las bases de datos
tradicionales.
Ahora una estructura de un sistema de informacin tpico actual consta, en general, de
programas de aplicacin distribuidos, un Sistema de Gestin de Base de Datos (SGBD)
y una red que permite entregar la informacin desde y hacia los distintos usuarios.
Dentro de los SGBD actuales han surgido las bases de datos NOSQL (Not Only SQL) y
los Sistemas de Almacenamiento de Datos Masivos (Big Data Storage Systems), que
almacenan la informacin en forma distribuida y permiten una mayor escalabilidad.
Las redes de computadoras y las bases de datos son utilizadas masivamente por las
aplicaciones de hoy en da, dado que la disponibilidad y acceso a la informacin se ha
convertido en una herramienta indispensable para la toma de decisiones. La estructura
de un sistema de informacin tpico actual consta, en general, de programas de
aplicacin distribuidos, un SGBD y una red que permite entregar la informacin desde y
hacia los distintos usuarios. Dentro de los SGBD, el modelo relacional ha sido el ms
utilizado, a pesar de ciertas limitaciones. En la actualidad, existen extensiones de estos
3

sistemas que incorporan los conceptos de tipos complejos y orientacin a objetos


conformando los SGBDOR (Sistemas de Gestin de Base de Datos Objeto
Relacionales) y los Sistemas de Gestin de Base de Datos Orientados a Objetos
(SGBDOO). Tambin han surgido las bases de datos NOSQL (Not Only SQL) , las
cuales permiten mayor escalabilidad que los sistemas tradicionales , y los Sistemas de
Almacenamiento de Datos Masivos (Big Data Storage Systems). Estos sistemas han
emergido en compaas y organizaciones que almacenan grandes cantidades de
informacin en forma distribuida, entre las cuales podemos citar Google, Yahoo,
Amazon, Facebook, etc.
Por ejemplo, en una base de datos relacional tradicional, las relaciones se pueden
fragmentar horizontalmente (por tuplas), verticalmente (a travs de la descomposicin
en subesquemas), y combinado. En particular, las bases de datos NOSQL permiten una
replicacin entre nodos ms simple que la de las bases de datos relacionales, utilizando
principalmente dos tcnicas (replicacin y sharding), de las que derivan otros modelos
de distribucin. La replicacin duplica los datos en mltiples nodos, utilizando el
modelo maestro-esclavo o el modelo peer-to-peer, mientras que sharding divide
(fragmenta) la informacin en varios nodos. Estas tcnicas, con sus ventajas y
desventajas, tambin pueden combinarse entre s, generando un esquema ms complejo.
Las Bases de Datos NoSQL llenan una importante carencia de las bases de datos
relacionales en cuanto a la capacidad que estas tienen en escalabilidad, distribucin y
manejo de datos no estructurados. Estas 3 caractersticas son cada da ms relevantes
debido precisamente al avance de Cloud Computing, y a los mltiples y diversos
servicios cuyo crecimiento y replicacin distribuida son extremadamente necesarios.
La computacin distribuida es un modelo destinado a resolver problemas de cmputo
masivo utilizando un gran nmero de computadoras organizadas sobre una
infraestructura de telecomunicaciones distribuida. El objetivo principal de la
computacin distribuida es contar con un entorno de entidades distribuidas que
cooperen para resolver un problema que no puede ser resuelto individualmente. La
variedad de estos sistemas pueden incluir servidores de aplicaciones, cloud privados,
pequeos centros de datos, cluster de cmputo y cluster para almacenamiento y
bsqueda de datos. Tambin es posible la construccin de arquitecturas hbridas que
permitan montar cluster como servicio (CaaS), facilitando hacer el mejor
aprovechamiento de los recursos virtualizados en el cloud, con el objeto de utilizar
ecosistemas, tales como: Hadoop MapReduce para realizar un procesamiento
distribuido de grandes volmenes de datos. Con el fin de gestionar estas grandes
cantidades de datos, que no tienen en general una estructura determinada, surgen las
Bases de Datos NoSQL.
Apache Cassandra es una base de datos NoSQL distribuida y de cdigo abierto, cuya
principal caracterstica es que fusiona Dynamo, de Amazon con BigTabla, de Google,
siendo ambas implementaciones de cdigo cerrado. Est basada en un modelo de
almacenamiento de clave-valor, escrita en Java. Permite almacenar grandes
4

volmenes de datos en forma distribuida. Su objetivo principal es la escalabilidad lineal


y la disponibilidad.
Apache Cassandra se ha convertido en una de las bases de datos NoSQL ms utilizados
del mundo y sirve como columna vertebral de algunas aplicaciones muy populares hoy
en da, Por ejemplo, lo usa Twitter para su plataforma. Su objetivo principal es la
escalabilidad lineal y la disponibilidad Permite el uso de Hadoop para implementar
Map-Reduce, ya que Hadoop puede trabajar directamente con cualquier sistema de
archivos distribuido.
Est disponible en Linux rpm, Deb, y tambin existe, un instalador MSI de Windows, y
Mac OS X binary.
MapReduce es fundamental en las bases de datos NoSQL para permitir la utilizacin de
funciones de agregacin de datos, ya que al carecer de esquema son mucho ms
complicadas que en las bases de datos relacionales clsicas RDBMS (Relational
Database Management System).
1. Ventajas
Mejor escalado horizontal, permite procesamiento paralelo: refirindose a la facilidad
aadir, eliminar o realizar operaciones con elementos (hardware) del sistema, sin afectar
el rendimiento.
o Consideran la agregacin de nuevos recursos de computacin en caliente
(autosharding, replicacin).
No es necesario definir esquemas (tipos de datos), se pueden mezclar dinmicamente
nuevos datos con los ya existentes (con limitaciones).
Habilidad de distribucin: tiene que ver con las escalabilidad horizontal, pero haciendo
nfasis en su soporte e; para ello se tiene en cuenta la habilidad de replicar y distribuir
los datos sobre los servidores.
Uso eficiente de recursos: aprovecha las nuevas tecnologas, como los discos en estado
slido, el uso eficiente de recursos como la memoria RAM y los sistemas distribuidos
en general.
Libertad de esquema: al no tener un esquema rgido se permite mayor libertad para
modelar los datos; adems facilita la integracin con los lenguajes de programacin
orientados a objetos, lo que evita el proceso de mapeado.
Consultas simples: las consultas requieren menos operaciones y son ms naturales, por
la tanto, se gana en simplicidad y eficiencia.
2. Inconvenientes NoSQL
Requieren importantes conocimentos tcnicos para su instalacin, correcta
configuracin y administracin (recordemos importancia del rendimiento).
Todava escasa madurez en comparacin con RDBMS.
Mltiples estndares de programacin y APIs, incompatibles entre s en muchos casos
(necesidad de soporte de comunicacin).
3. Tipo de base de datos NOSQL
Afortunadamente existen varias bases de datos NoSql conocidas. Mientras todas
ellas comparten muchas caractersticas, tambin hay algunas diferencias
significativas.
5

Base
Datos

de

Caractersticas

Aplicabilidad

Mongo
DB

Escrito en C++Algunas caractersticas


SQL (Query, index)
Protocolo binario
Replicacin maestro-esclavo
Sharding
Permite ejecutar Javascript
Rendimiento sobre caractersticas
En 32bits slo 2.5 Gb
GridFS para almacenar BigData
Indexing geoespacial

Para queries dinmicasNo


para Map/Reduce Cuando
necesitas CouchDB con
muchos
cambios
Para
muchas cosas que ahora se
hacen con MySQL

Riak

Escrito en Erlang y CTolerancia a fallos


Protocolo binario o HTTP/REST
Pre y postcommits en JS y Erlang
Map/Reduce en JS o Erlang
Soporte objetos grandes
Versin opensource y Enterprise
Bsqueda Full text, indexing, con Riak
Search Server
Multireplicacin

Estilo Cassandra pero sin


su
complejidad
Escalabilidad,
disponibilidad y tolerancia
a fallos

CouchD B Escrito en ErlangProtocolo HTTP/REST


Replicacin bidireccional con deteccin de
conflictos
MVCC
Versiones
previas
de
documentos
disponibles
Necesita compactacin de vez en cuando
Soporta attachment
Incluye librera JQuery

Para acumular datos que


slo
cambian
ocasionalmente con queries
predefinidas Para sistemas
que necesitan versionado
Sistemas CRM Sistemas
con replicacin

Redis

Escrito en C++Muy rpida


Protocolo estilo Telnet
Bases de datos en memoria con backup en
disco
Sin disk-swap
Replicacin maestro-esclavo
Clave-Valor, pero valores pueden ser List,
Hashes, Sets,
Transacciones

Para datos cambiantes


almacenados en memoria
(no de gran tamao) Bases
de datos de tiempo real
Analticas Stock prices
Comunicacin en tiempo
real.

HBase

Escrito en JavaBillones de filas x millones


de columnas
Protocolo HTTP/REST y Thrift

Mejor
opcin
para
Map/ReduceAlm
acenamiento y anlisis

Basada en Google Big Table


Map/Reduce con Hadoop
Optimizaciones para queries en tiempo
real
Gateway Thrift de alto rendimiento
HTTP soporta XML, protobuf y binario
Mdulos para Cascading, Hive y Pig
Shell basada en JRuby
Rendimiento random-acces como MySQL

ficheros de log

Neo4J

Escrito en JavaBase de datos de grafos


Protocolo HTTP/REST o Java
Funcionamiento standalone o embebido
en Java
Full ACID
Lenguaje de queries patternmaching
Web de administracin incluida
Path-finding algoritmos
Indexado de claves y relaciones
Optimizado para lecturas
Transacciones en API Java
Scripts en Groovy
Backup online, monitorizacin y alta
disponibilidad en versin comercial AGPL

Para
datos
ricos
interconectados
estilo
grafosPara redes sociales,
topologas de red

Cassan
dra

Escrito en JavaLo mejor de BigTable y


Dinamo
Protocolo binario (Thrift)
Tuneable para distribucin o replicacin
Bsqueda por columnas o rango de claves
Caractersticas BigTable
Indices secundarios
Escrituras ms rpidas que lecturas
Map/Reduce con Hadoop

Mas escritura que lectura


(logging) Cuando todos los
componentes son Java
Anlisis tiempo real

Memba se

Escrito en Erlang y CCompatible


Memcached pero con persistencia y
clustering
Protocolo memcached
Acceso muy rpido por clave
Persistencia en disco
GUI para gestin del cluster
Actualizaciones de SW sin parar la BD

Aplicaciones con acceso


de
muy
baja
latenciaAplicacio nes con
alta concurrencia y alta
disponibilidad
Online
gaming (Zinga)

4. Taxonoma
Aunque existen muchas tecnologas en bases de datos NoSQL, cuando se habla de
categoras se pueden destacar cuatro:
7

A. Almacenamiento clave-valor De las bases de datos NoSQL, las de clave/valor


son las ms simples; en ellas se asigna una clave nica (llamada llave) a un valor
que es tpicamente una cadena arbitraria. La operacin de encontrar el valor
asociado a una clave se denomina lookup (indexacin), y la relacin entre una
clave y su valor se denomina correlacin (vinculante). La naturaleza poco
estructurada de las bases de datos de clave/valor asegura una buena
escalabilidad, sin embargo, es complejo crear un llave representativa para cada
registro; adems, hay que tener en cuenta que la novedad con este tipo de bases
de datos NoSQL es la posibilidad de tener los datos en un ambiente distribuido.
Se recomienda su uso en casos donde se necesita velocidad en las consultas o se
tienen muchos datos con estructura simple que requieren ser procesados una y
otra vez y tienen valores cambiantes, por ejemplo, listas de los ms vendidos,
carritos de la compra, las preferencias cliente, gestin de sesiones, rango de
venta y catlogo de productos. Ejemplo: Redis es una base de datos NoSQL de
clave-valor, donde los valores pueden contener tipos de datos ms complejos,
con operaciones atmicas definidas para ese tipo de datos. Los tipos de datos
Redis estn estrechamente relacionados con las estructuras de datos
fundamentales y se exponen al programador como tal, sin capas de abstraccin
adicionales.
Ejemplo prctico:
Set name Batman
Get name
lpush heroes Batman
lpush heroes Superman
lpush heroes Green Lanter
lrange heroes 0 -1 //Muestra los dos primeros
sort heroes alpha //los ordena alfabticamente
hset user name Batman
hset user tierra Tierra 1
En el ejemplo se aprecia cmo se asigna como valor los nombres de los hroes;
Redis se encarga se generar una clave nica para cada uno, lo que permite
facilitar su recuperacin; para ello existen diferentes funciones, como irange
y sort.
B. Un almacn de documentos gestiona los registros de datos estructurados
jerrquicamente y proporciona medios para recuperar registros en funcin de su
contenido real. Esta categora de bases de datos NoSQL proporciona la
capacidad de manejar millones de lecturas simultneas, puesto que ya tienen una
lectura simple (como tpicamente un documento que contiene toda la
informacin requerida). En el almacenamiento de documentos se mantiene toda
la informacin relacionada a una entidad en solo un documento . Ejemplo:
MongoDB (de humongous - descomunal-) es una base de datos NoSQL
escalable, de alto rendimiento y de cdigo abierto; guarda estructuras de datos
en documentos tipo JSON (JavaScript Object Notation) con un esquema
dinmico, haciendo que la integracin de los datos en ciertas aplicaciones sea
8

ms fcil y rpida. En este tipo de base de datos NoSQL se manejan cuatro


elementos:
Base de datos: contiene un conjunto de colecciones.
Coleccin: contiene un conjunto de documentos, puede relacionarse con las
tablas del modelo relacional, pero hay que tener en cuenta que ac se pueden
almacenar documentos con diferentes atributos.
Documento: es un conjunto de campos.
Campo: es una pareja compuesta por una Llave y un Valor, donde la llave es el
nombre del campo y el valor su contenido.

C. Almacenamiento de familias de columnas Una base de datos orientada a


columnas almacena su contenido por columnas, en lugar de por filas. Las bases
de datos orientadas a columnas tienden a ser un hbrido de las clsicas bases de
datos relacionales y la tecnologa orientada a columna. La columna es la base, es
un elemento compuesto de un nombre, un valor y una marca de tiempo. La base
de datos almacena sus datos (fsicamente por familias de columna) de manera
que pueden ser rpidamente agregados, con menos actividad de entrada y salida.
Como los datos de la columna son de tipo uniforme, la optimizacin del tamao
de almacenamiento se logra mediante esquemas tales como algoritmos de
compresin. Una desventaja de almacenar los datos en columnas es que los
datos de una entidad se esparcen entre varias columnas; por lo tanto, la insercin
y la actualizacin o lectura del contenido completo de una entidad puede ser ms
lenta y compleja que en una base de datos relacional. Las bases de datos
orientadas a columnas se recomiendan para grandes almacenes de datos cuya
lectura es ms frecuente que su escritura, y es necesario realizar muchas
operaciones con los atributos de las entidades, como en el manejo de datos
estadsticos.
Ejemplo: HBase es una base de datos NoSQL de cdigo abierto inspirada en Big Table
de Google, la cual comprende un conjunto de tablas que contienen filas y columnas;
adems, debe tener un elemento definido, como una clave principal, y todos los intentos
de acceso a ella han de usar esta clave principal. Una columna representa un atributo de
un objeto; cada fila podra es una entrada de registro.
En HBase se permite que muchos atributos puedan ser agrupados juntos, en lo que se
conoce como familias de columna, de tal manera que los elementos de una familia
columna se almacenan todos juntos.
D. Almacenamiento de grafos Una base de datos de grafos utiliza estructuras grafos con
nodos (que vienen a ser objetos o entidades), bordes (relacin entre los objetos o
entidades) y propiedades para representar y almacenar informacin. Un grafo (o una
red) es una estructura de datos flexible y que se integra ms fcilmente con la estructura
de aplicaciones orientadas a objetos. Las bases de datos de grafos se pueden escalar de
forma ms natural a conjuntos de datos de gran tamao, y son ms adecuadas para la
gestin ad-hoc y el cambio de datos con esquemas cambiantes. Este tipo de bases de
datos se recomienda para estructuras dinmicas complejas, como las redes sociales,
como se aprecia en.
9

Ejemplo: Neo4j es una base de datos NoSQL basada en grafos de alto rendimiento, con
todas las caractersticas de una base de datos madura y robusta.
Investigue que tipo de bases de datos usan las redes sociales
Si pretendemos desarrollar una aplicacin que requiera la lectura/escritura de cantidades
de datos y pueda dar servicio a millones de usuarios sin perder rendimiento, entonces
debemos plantearnos el uso de una base de datos NoSQL. Las grandes redes sociales
como facebook y twitter o el propio Google las utilizan como medio fundamental de
almacenamiento de informacin.

Bibliografa

Carabio, A. l., Benedetto, M. G., & Falappa, M. A. (2016). Comportamiento de base de


datos no relacionales en entornos distribuidos. Recuperado el 05 de Julio de 2016, de
http://sedici.unlp.edu.ar/bitstream/handle/10915/52954/Documento_completo.pdfPDFA.pdf?sequence=1
Castro, A., Gonzales, J. S., & Callejas, M. (2012). Universidad Pedagogica y
Tecnologica de Colombia. Recuperado el 05 de Julio de 2016, de
http://www.redalyc.org/pdf/4139/413940772003.pdf
Javier. (18 de Noviembre de 2015). Tipo de base de datos y las mejores base de datos .
Recuperado el 05 de Julio de 2016, de http://blog.pandorafms.org/es/tipos-de-bases-dedatos-y-las-mejores-bases-de-datos-del-2016/
10

Martin, A., Chavez, S. B., Rodriguez, N., Valenzuela, A., & Murazzo, M. (2013). Base
de datos NOSQL en Cloud Computing. Recuperado el 05 de Julio de 2016, de
http://sedici.unlp.edu.ar/bitstream/handle/10915/27121/Documento_completo.pdf?
sequence=1
Ortega, F. (s.f.). BIg data I: Ingenieria de datos. Recuperado el 05 de Julio de 2016, de
Universidad Rey Juan Carlos: file:///D:/escritorio/Fresita/Downloads/cursoBigDataI.pdf

11

Potrebbero piacerti anche