Sei sulla pagina 1di 29

Ttulo: NoSQL

Numero: Investigacin 2 PROFESOR: Murillo Ruiz Juan Pablo MATERIA: Tpicos Selectos TI
MATRCULA

FABIAN QUIROGA MUOZ 07000671 JIMNEZ MATA JOS IVN 07001360 GARCA CASILLAS JOS DE JESS 07000561 ANDRADE MEDINA JUAN MIGUEL 05309014 VALTIERRA REINOSO ANGEL 06309289 Carrera: Tecnologas de la informacin Grupo: 1004 Periodo: Septiembre-Diciembre
25/10/2011

Pgina |2

NDICE
Contenido
OBJETIVO ...................................................................................................................................................................... 3 INTRODUCCIN .......................................................................................................................................................... 4 ANTECEDES DE LAS BASES NoSQL .................................................................................................. 5 QU ES NoSQL? ................................................................................................................................. 7 QU SON LAS BASES DE DATOS NoSQL? ........................................................................................ 7 CARACTERSTICAS DE LAS BASES NoSQL ....................................................................................... 8 CUNDO UTILIZAR UNA BASE DE DATOS NoSQL? ..................................................................... 10 TIPOS DE BASES NoSQL ................................................................................................................... 11 DESVENTAJAS DE NOSQL ................................................................................................................ 26 REFLEXIN PERSONAL ................................................................................................................... 28 BIBLIOGRAFIA .................................................................................................................................. 29

3|Pgina

OBJETIVO

Esta investigacin tiene como objetivo dar a conocer informacin sobre las bases de datos NoSQL, una nueva tendencia que ha surgido desde el 2009 hasta la fecha y que han sido utilizadas por diversos sitios de gran influencia a nivel mundial como: Google, Last.fm, Facebook, Twitter, entre otras ms. Con esta investigacin no tratamos de decir que las bases NoSQL son mejores o que se tiene que olvidar el modelo entidad-relacin que desde hace tiempo sea utilizado, con buenos resultados, simplemente mostraremos que se pueden tener ms opciones al momento de crear bases de datos y elegir la adecuada para resolver la problemtica.

Pgina |4

INTRODUCCIN
A parte de las clsicas bases de datos SQL (RDBMS), aparecen y van tomando fuerza nuevos tipos de bases de datos. Su mayor ventaja es que estn preparados para ser muy rpidos. Mucho. Segn su tipo, cada una sigue una estrategia completamente diferente para persistir la informacin. Cabe destacar que normalmente no sustituyen a la base de datos clsica SQL, sino que surgen por otra necesidad. Una necesidad de rendimiento extremo. Si se utilizan de una manera nica, o se combinan con una base de datos SQL es una decisin de arquitectura del sistema. Algunas de ellas pueden ser accedidas mediante SQL, pero normalmente no ser as, puesto que cada una tendr una API exclusiva. Existen proyectos como Spring Data que pretenden abstraernos de dicha complejidad. Siendo posible cambiar de un tipo de base de datos a otra de una manera directa, segn nos convenga.

5|Pgina

ANTECEDES DE LAS BASES NoSQL


Es interesante destacar que las NoSQL existen desde hace muchos aos (1970), con experimentos en universidades europeas y norteamericanas, sobre sistemas de almacenamiento abiertos. Los almacenamientos de par Clave/Valor, vieron la luz en 1979 con el proyecto DBM, y ms tarde BerkeleyDB (1986). Si consideramos que LotusDB es una base de datos orientada a documentos, tenemos que la empresa Lotus dio a luz este proyecto en 1989. Las venerables y poco conocidas ODB Si a esto agregamos que el trmino "bases de datos orientadas a objetos" (ODB), fue acuado a partir de 1985 (aunque nacieron informalmente una dcada antes), en proyectos de investigacin tales como los de la Universidad de Brown, la de Winscosin-Madison, en IRIS en Hewlett Packard, y en los laboratorios Bell o en los de Texas Instrument, en Alemania, no es extrao pensar que NoSQL existe desde antes que SQL (quin arranc en 1977 de la mano de IBM, que no lo hizo comercial sino hasta 1983 con DB2 y el ANSI no lo hizo estndar sino hasta 1986). Volviendo a las ltimas (las ODB), luego algunos intentos comerciales, con suficiente xito, se encargaron de difundir el concepto (Gemstone, GBase, VBase, ITASCA, Jasmine de Fujitsu, Matisse, Objectivity/DB, Object Store de Progress Software, O2 adquirida por Informix y luego por IBM, POET, Versant, VOSS y JADE). Algunos de estos pioneros, que agregaron el concepto de "persistencia" al mundo OO, an siguen en el mercado y muchos de estos proyectos se han convertido en proyectos open source. Las ODB (Object Databases) adquirieron un nicho de aplicaciones en reas como la ingeniera y bases de datos geogrficas (en GIS), telecomunicaciones, y reas cientficas como fsica, biologa molecular y determinados nichos de servicios financieros, siendo de poco uso generalizado la mayora de las reas comerciales. Algunos fabricantes las han utilizado en sistemas embebidos en dispositivos, soluciones "llave-enmano" y sistemas en tiempo real.

Pgina |6

Hasta aqu, podramos justificar el movimiento NoSQL desde aproximadamente 1979, pero las ODB tambin incorporaron su propio lenguaje de consultas el OQL (Object Query Language). El principal speech de los vendedores de estas bases (o evangelistas) era que los desarrolladores OO no tenan que aprender SQL para usarlas (y qu tendr de malo aprender los dos conceptos? Aprender OQL tiene una curva de aprendizaje menor?). Una de las destacadas en los ltimos aos es Twig de Google, Zope (ZODB) que persiste objetos en Python y viene como parte del Zope Application Server, db4o de la casa Versant, que persiste objetos Java y .NET, y hasta un proyecto singular llamado StupidDB, para persistir objetos.Todos estos ltimos tienen alguna forma de licencia open source derivada de GPL.

7|Pgina

QU ES NoSQL?
La Originalmente el trmino NoSQL, que fue acuado en 1998, se refera a una base de datos relacional de cdigo abierto que no usaba un lenguaje de consultas SQL (Structured Query Language). Hasta 2009 estas cinco letras cayeron en el olvido, pero fue Johan Oskarsson, entonces empleado de Last.fm, quien organiz un evento para tratar las bases de datos distribuidas de cdigo abierto no relacionales, llamndolas NOSQL, Not-Only SQL.

QU SON LAS BASES DE DATOS NoSQL?


Las bases de datos NoSQL son sistemas de almacenamiento de informacin que no cumplen con el esquema entidad-relacin al que todos nos acostumbramos desde las primeras asignaturas de bases de datos en las carreras de informtica. Mientras que las tradicionales bases

Pgina |8

de datos relacionales basan su funcionamiento en tablas, joins y transacciones ACID, las bases de datos NoSQL no imponen una estructura de datos en forma de tablas y relaciones entre ellas (no imponen un esquema pre-fijado de tablas), en ese sentido son ms flexibles, ya que suelen permitir almacenar informacin en otros formatos como clavevalor (similar a tablas Hash), Mapeo de Columnas, Documentos o Grafos.

CARACTERSTICAS DE LAS BASES NoSQL


Pueden manejar enormes cantidades de datos. Hypertable, una implementacin de cdigo abierto basada en BigTable, se usa dentro del motor de bsqueda Zvents para escribir 1000 millones de celdas de datos por da, segn cuenta el ingeniero Doug Judd en su presentacin. A su vez, BigTable, en conjunto con su tecnologa hermana MapReduce, procesa hasta 20 petabytes de datos por da. "Definitivamente la cantidad de datos es tan grande que las personas estn buscando otras tecnologas", dice Travis de SpringSource, que con su tecnologa VPork ayuda a los usuarios de NoSQL a realizar benchmarks de rendimiento de sus bases de datos alternativas. Se ejecutan en clusters de servidores de PC baratas. Los clusters de PC se pueden expandir de forma facil y barata sin la complejidad y el costo del "data sharding", que involucra recortar una base de datos en mltiples tablas para ejecutarse en grandes clusters o grillas. Google cuenta que uno de sus clusters de BigTable ms grande gestiona 6 petabytes de datos sobre miles de servidores.

9|Pgina

"Oracle te va a decir que con el hardware y la configuracin adecuada de Oracle RAC (Real Application Clusters) y algn otro software mgico pueden lograr la misma escalabilidad. Pero a qu costo?", pregunta Javier Soltero, CTO de SpringSource. Superan los cuellos de botella de rendimiento. Al no tener que realizar la traduccin de datos hacia un formato amigable para SQL, las arquitecturas NoSQL son mucho ms rpidas. "SQL es un enfoque extrao para el cdigo procedural, y casi todo el cdigo es procedural", dice Curt Monash, un analista independiente de bases de datos y blogger. "El costo de mapear los datos a SQL puede valer la pena para los casos en que estos datos tengan que manipularse extensivamente... pero cuando la estructura de la base de datos es muy simple, SQL no parece ayudar". Raffaele Sena, de Adobe Systems, dice que Adobe relanz su servicio colaborativo ConnectNow Web hace un ao y medio, y decidi no usar una base de datos por los motivos explicados por Monash. Adobe usa Terracotta, un software Java para clustering, para gestionar los datos en formato Java. Sena explica que este enfoque es la clave por la cual el rendimiento de ConnectNow es dos a tres veces superior a la versin anterior. "El sistema hubiera sido mucho ms complejo y dificil de desarrollar con una base de datos", dice. Otro proyecto, MongoDB, se llama a si mismo "base de datos orientada a documentos" por su almacenamiento nativo de datos de tipo objeto. Slo lo necesario. Quienes impulsan NoSQL admiten que las bases de datos tienen caractersticas nicas y una reputacin slida para la integridad de datos, pero explican que todo esto puede resultar demasiado para sus necesidades. Tomemos por ejemplo a ConnectNow que, incluso sin una base de datos, hace tres copias de los datos de la sesin del usuario mientras est online

P g i n a | 10

- datos que luego son borrados cuando el usuario se desconecta, dice Sena. "No necesitamos una base de datos, ya que la mejor representacin de los datos ya estn en memoria", dice.

CUNDO UTILIZAR UNA BASE DE DATOS NoSQL?

Si pretendemos desarrollar una aplicacin que requiera la lectura/escritura de cantidades ingentes 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. Se puede utilizar una base de datos NoSQL para almacenar toda la informacin de una aplicacin, aunque en la mayora de los casos se recurre a sistemas mixtos que combinan los clsicos sistemas relacionales (fcilmente manipulables e interrogables con el lenguaje SQL) con soluciones NoSQL para aquellas funcionalidades que requieren millones de consultas en tiempo real.

11 | P g i n a

TIPOS DE BASES NoSQL


Sistemas de Almacenamiento de Columna Amplia El almacenamiento bsico es la columna: Nombre, valor. Una familia de columnas es una clave seguida de un nmero variable de columnas. Su equivalente relacional sera una tabla. Cassandra y otras incluyen implcitamente el timestamp en cada columna para manejar versiones de los datos.
Producto/ API Proy Concurren Comentarios cia 101 usuarios famosos, entre los que se destacan Google, Apache MapReduce IBM, Facebook y Twitter. Hadoop/H Java/any writer /Java any HDFS Java ? Cloudera es una empresa Base exec que da soporte comercial de este proyecto open source. Digg, Facebook, Twitter, Reddit, Rackspace, Eventual Cloudkick, Cisco, Varios Apache mente SimpleGeo, Ooyala, lenguages Thrif MapReduce ? Java Cassandra consistent OpenX, y muchos mas. Es t e como el servicio "BigTable" de Amazon y fue comenzado por Facebook. Baid (el buscador chino, LenguajesThrift Totalment a.k.a. el Google con HQL, Hypertabl (Java, PHP, e censura), rediff.com, native Thrif HDFS C++ e Perl, Python, consistent zevents. Posee soporte tAPI Ruby, etc.) e comercial. Es como "BigTable" de Google. Microsoft, Universidad Orientado a Brown, Cisco, Estado de arreglos y Portland (USA), simil LINQ campos Universidad de Washington SciDB ? C++ ? .NET definidos (USA), Universidad de por el Winscosing (USA). usuario Orientado a arreglos (Arrays) SingleRow, Totalment Java y C Open MultipleRo e Es una implementacin de Java Tablets mayorm Neptune w, consistent BigTable de Google. ente DataUpload e Mtodo de Replica Escrito Consultas cin en

P g i n a | 12 er, NQL, MapReduce Es una implementacin de SingleRow, BigTable de Google. MultipleRo Totalment Trabaja sobre KFS w, C, C++, e (Kosmos File System, un C, C++, Python Tablets DataUpload Python consistent sistema de archivos er, NQL, e distribuido que corre sobre MapReduce el file system de cada mquina).

KDI

Tambin existen otras tales como: Qbase, de las que no tenemos mayor informacin.

Almacenamiento de Documentos La informacin se almacena en objetos xml, json, etc. Renuncian a la estructura fija de datos usual en RDBMS. Almacenan informacin semiestructurada. Documentos con nueva estructura puede ser adicionados sin afectar la estructura de los documentos ya existentes.
Producto/P API roy Protocol Mtodo de Replicaci Escrito Concurren Comentarios o Consultas n en cia MapReduc HTTP eR of Master/Ma CouchDB JSON Erlang MVCC Guia de uso on line. REST Javascript ster Funcs Lenguaje varios Actualizac basado en Master/Sla MongoDB BSON lenguaje C++ in en el Notas sobre el proyecto. objetos ve s lugar dinmicos Soporte uno o mltiples clusters. Construido sobre Terracota. Puede Java Particionad Consultas agregar y quitar nodos Java & (prox. o con Read TerraStore de rangos, Java dinmicamente. HTTP memcac hashing committed Predicados Balanceo de carga he) consistente. transparente y automtico. Terracota y el teorema CAP Utiliza Thrift para integrar varias bases de A travs de C++ y ThruDB Thrift ? Thrucene ? datos (BerkeleyDB, Spread Java Disk, MySQL, S3), Memcach y Spread. OrientDB Java ? Lenguaje Master/Sla Java 5 Actualizac OrientTechnologies

13 | P g i n a smil SQL, ve soporta (v0.9.23) JSON y XML nativos RavenDB RESTf MapReduc HTTP ul e (Tiene su propio mtodo) in en el tambin tiene un lugar producto Par/Valor, llamado OrientKV.

Persevere

JSON

RQL / JSONPath REST / JSONQuer y

Tiene caractersticas de Read una ODB, DocumentDB, .NET committed GraphDB o Base de datos Par-Valor Soporta Comet para que los clientes actualicen su Java, sistema por medio de JSON Javascri eventos. Est basado en Schema pt el estndarCommonJS (Jav ascript outside browser)

CloudKit y Jackrabbit entraran tambin dentro de esta clasificacin.

Almacenamiento de Clave/Valor Como su nombre lo indica la estructura bsica del almacenamiento es una clave, que permite recuperar un valor, donde valor representa el objeto guardado. Son almacenamientos distribuidos optimizados para el escalamiento horizontal.
Producto/Pro y Amazon SimpleDB API Protocol Mtodo de Replicaci Escri Concurre o Consultas n to en ncia Es entorno Cloud Comentarios No es Open Source pero puede usarse gratis sacando una cuenta en Amazon.com Coleccin de entidades de forma libre, (valor clave de fila, clave de particin, timestamp). Tambien apta para BLOBS

A travs de Webserv SOAP 1 mtodos de ice y2 Webservice

Azure Table Storage

REST o REST o ATOM ATOM

REST o ATOM

triple redundanc ? ia

Riak Basho

JSON

REST

Eventualm MapReduce Multiple Erlan ente term Masters g consistent matching e

P g i n a | 14 La mayora de los berkeley Berkeley DB lenguajes db conocido s

API

Master/Sl ave

Ahora de Oracle, MVCC pero sigue siendo open source.

Berkeley DB Java Edition

Java

berkeley db

API

Chordless

Java & RPC simple con valores

interno

M/R dentro de objetos valor

Redis

Muchos lenguajes

en memoria, y guarda asincrnicam ente a disco cada X tiempo

Scalaris

Java, Erlang, JSON

HTTP

APIs, JSON RPC

Aislamien to de Master/Sl transaccio Java ave nes serializabl e Cada Aislamien nodo es to de master en transaccio Java su nes "namespa serializabl ce" es Solo disponible en modo Master/M "agregar". ? aster diferentes tipos de polticas fsync Consisten Algoritmo cia fuerte Erlan "Non sobre g blocking rplicas Paxos"

Una versin de la conocida base de datos, escrita en Java.

Buenos "Slides" , hoja de datos, Redis Admin UI. Proyecto patrocinado por VMWare. No maneja persistencia a discos. Solo lo hace a travs de TokioCabinet.

Tokyo Cabinet / Tyrant

C, Perl, Ruby, Java, Lua.

Kyoto Cabinet C++, C,

On-memory hash database API, the onmemory tree database API, Master/M the hash aster API, C Master/Sl the B+ tree ave database API, the fixedlength database API, and the table database API on-memory Master/M C++

Multithrea d-safe Read/Writ e locking by record

Desarrollado como sucesor de GDBM yQDBM. Es una BD embebida y almacena par de valores en rboles B+ y arrays fijos. Casi no existen lmites para el tamao de la BD (8 exabytes). Insertar 1 milln de registros toma 0.4 segundos. Lo usan Scribd.com y mixi.jp

Multithrea Beneficios respecto

15 | P g i n a Perl, Ruby, Java, Lu a. hash aster database Master/Sl API, the onave memory tree database API, the hash API, the B+ tree database API, the fixed-length database API, and the table database API de Tokyo: almacenamiento ms eficiente, +performance en ambientes multithreaded, mejor portabilidad, mejor usabilidad ya que fue diseada OO. Autotransaction y Autorecovery. Las contras es que se han descartado caractersticas como BD de tamao fijo y bases de datos tablas. Otra contra es la eficiencia por thread.Presentacin Basado en Memcached (no C, MemcacheDB!), le C++, provee de un ? Pyth ? framework de on, persistencia que Perl adems es escalable, dinmico, seguro y replicable. Conozca los benchmarks (med Read/Writ iciones) de su Master/Sl C, e locking rendimiento, as ave C++ by record como su gua del usuario. Funciona con BerkeleyDB. d-safe Read/Writ e locking by record

MEMBASE

Java, Python, Erlang, Perl, C++

API

Perl, C, memcac MemcacheDB Python, he Java protocol

API

Keyspace

Python, HTTP, Java, C#, memcac C, PHP, h, Ruby, Keypace Perl

API

Algoritmo Master/Sla "Non C, ve con Whitepapers blocking C++ PaxosLeas Paxos" e

Faircom CTree

C, C++, C#, Java, PHP, Perl

SQL Access Existe desde 1979. (.NET, DBX, Es embebible y PHP, ODBC, soporta SQL (pero JDBC, iSQL, no en el core sino a DirectSQL), Configura C, Configura travs de Direct ble C++ ble extensiones). Existe Record para ms de 30 Access plataformas, es (Component rpido y es .NET y extremadamente

P g i n a | 16 VCL, DB C++, DB C, ISAM, lowlevel) configurable !

Mnesia(Earlan Erlang gDB)

lenguaje QLC (addon), Mnesia session

Multiple Erlan Masters g

LightCloud

Python, Ruby

Libreras Pyt Master/M hon y Ruby aster

Pincaster

HTTP/JS HTTP/JS API/Javascri ON ON pt

Actualme nte no soportada

GenieDB

mySQL plug-in, GenieDB Active Record RoR plug-in C, C++, Java, C#,

API

Multiple Masters

HamsterDB

API

No C, soportado C++

Desarrollada por Ericsson. Ideal para aplicaciones de telecomunicaciones y aplicaciones "realtime" blandas. No Multithrea usar con d-safe procesamiento Read/Writ pesado de texto y e locking BLOB, ni by record aplicaciones "realtime" exigentes. Soporta fragmentacin y reconfiguracin de tablas en "caliente". Basado en Tokyo Tyrant. Excelente performance. Se puede extender y ? configurar con scripts en Lua. Tambien incluye soporte para Redis. Usado generalmente para GIS (geographical information systems). ? Proximamente soportar replicacin. Libreras para Spidermonkey (Javascript). La filosofa de este producto es "NoSQL + SQL". Existe una Eventualm adaptacin ente "GenieDB for consistent mySQL" y otra para e integrar GenieDB en el paquete Active Record para Ruby on Rails. No Servidor de bases de soportado datos embebido.

17 | P g i n a VB.NET , Python Existen otras como KaTree, TomP2P, Kumofs, NMDB, Lux IO, OrientKV, actord, keyspace, flare, schema-free y RAMCloud.

Almacenamiento Clave/Valor Eventualmente Consistente


Las bases de datos de Clave/Valor eventualmente consistentes, ofrecen consistencia salvo en casos de cadas crticas y tienen un manejo de versiones de cada registro, y herramientas para solucionar los conflictos de versiones; todo a cambio de rapidez en lectura y escritura. En el caso de Dynamo, esta consistencia puede ajustarse: puede ajustarse la cantidad de servidores que reporten la escritura exitosa de un registro al coordinador (el que maneja la operacin) antes de asumir una escritura exitosa, y tiene varios mtodos de resolucin de conflictos de versiones.
Producto /Proy Amazon Dynamo API Mtodo Esc Replic Concurr de rito Comentarios acin encia Consultas en Eventual Any MapRedu mente Uno de sus autores expore algunos writer ce/Java HDFS Java Consiste de sus secretos arquitectnicos. call any exec nte Digg, Facebook,Twitter, Reddit, R Eventual ackspace, Cloudkick, Cisco, MapRedu mente SimpleGeo, Ooyala, OpenX, y ? ? Java ce consisten muchos mas. Es como el servicio te "BigTable" de Google y fue comenzado por Linkedin. Eventual Erla mente Basado en Amazon Dynamo con ? APIs ? ng consisten algunas caracteristicas ms. te Algorit mo de Eventual varios memcache Hashin Erla mente Tambin inspirado en Amazon propiet APIs g ng consisten Dynamo arios consist te ente Protoc olo

Java/any writer

Varios Voldemo lenguages rt Thrift

Varios Dynomit lenguages e Thrift

KAI

memcach e

Tambin existen otras tales como: SubRecord, Mo8onDb y Dovetaildb.

P g i n a | 18

Bases de datos de Grafos Fundamentados en la teora de grafos. La informacin se guarda en estructuras de nodos, arcos (conexiones) y propiedades ( de arcos y nodos). Estn orientados a manejos de datos muy complejos y con muchas relaciones. Problemas tpicos que enfrentan: Encontrar la mejor ruta en un mapa. Encontrar relaciones en una red social.
Producto/P roy API Replicaci Escri Concurrenci Comentarios n to en a Lecturas no bloqueantes, typical escritura Es posible Java SparQL, MySQL c/bloqueo tener las embedded nativeJavaAPI, style Java implica propiedades / REST JRuby master/slav nodos/relacio ACID. e nes hasta efectuar com mit. .NET Es una base embedded Graph Query de datos de Master/Ma , REST, Language, LIN C# MVCC grafos ster WebServi Q (M/R) Orientada a ces objetos. API + XPRISO, Web user Lectura OpenID, interface with concurrente RSS, html, RSS, Entre pares Java Bloqueo en Atom, Atom, JSON escritura con JSON, output, Java MeshBase Java native embedded Es open source, es especial para ? Java o P2P Entre pares Java STM Inteligencia Artificial y Web Semntica. Alto rendimiento. SparQL, ? ? Java MVCC Usada para nativeJavaAPI Web 3.0. Puede ser una Protocolo Mtodo de Consultas

Neo4J

Varios lenguajes conocidos

Sones

.NET

InfoGrid

Java, HTTP/RE ST

Java, HyperGraph Groovy y DB JRuby

Bigdata

Java, Servicio descubrim JINI

19 | P g i n a BD inmortal con vistas histricas. Utiliza Lucen e. Gratis para emprendimie ntos calificados, o para quienes adquieren un ambiente "cloud" en un proveedor determinado. Es open source. Soporta "automatic garbagecollection". Usa Tokyo Cabinet y libevent para sockets asincrnicos.

Infinite Graph

Java

API de Enlace navegacin de directo grafos, Califica con el cin de lenguaje predicados del lenguaje

Actualizaci n con bloqueo en Java, subgrafos, C++ concurrent non-blocking ingest

VertexDB

API en varios lenguajes conocidos

HTTP

JSON

Actualmente no soportado

Tambin estn en esta categora


AllegroGraph: Base de datos para almacenamiento de RDF para aplicaciones de Ingeniera del Conocimiento y redes semnticas (Web 3.0). Soporta SPARQL, RDFS++, y razonamientos del lenguaje Prolog. Herramientas como esta hay otras: Jeena (desarrollada por Hewlett Packard), Sesame, Filament, y OWLim. JUNG-Java Universal Framework: Para almacenamiento de informacin en forma de grafos o redes. Soporta una variedad importante de representaciones de entidades y sus relaciones, como grafos orientados, sin orientacin, grafos multimodales, grafos con bordes paralelos e hipergrafos. Facilita la creacin de herramientas de anlisis para conjuntos de datos complejos. Tambin puede guardarse informacin de metadatos sobre las entidades en cuestin. De este estilo tambin existe un proyecto open source llamado iGraph, otro para estudio de redes complejas llamado NetworkX y DEX, un proyecto desarrollado por la Universidad politcnica de Catalunya. Para finalizar en esta categora, tenemos a OpenLink Virtuoso, una rara mezcla hbrida de Relacional, BD documental, de Grafos y OO.

P g i n a | 20

Soluciones de bases de datos Grid


Producto/Proy API Java, .NET, C++ Mtodo de Consultas Escrito en Comentarios

GigaSpaces

Hazelcast

Java

Joafip

Java

GridGain

Java

Combina SQL y NoSQL en un ambiente virtualizado, Cloud o estndar. Provee datos ? Java en memoria entre varios servidores. Elastic Data Grid. Provee datos en memoria entre varios servidores. Una cach de segundo nivel para Hibernate y herramientas para clustering. java.util.{Queue, Set, Java Soporta sockets encriptados y es un solo Jar. List, Map} Se usa para web session sharing, cach distribuida, balanceo de carga en clusters. Soporta un subconjunto SQL. JOAFIP: java data object persistence in file. Garantiza propiedades ACID sin usar relaciones. Guarda grafos de objetos. Se Java API Java pueden guardar POJOS sin implementar Serializable. Soporta lazy-load de objetos. Detecta corrupcin de archivos. MapReduce, P2P Usa Functional Programming o OO. Class loading, SQL, Java Soporta nubes hbridas (compuesta de Texto y predicados, diversos entornos). APIs

Tambin existen las siguientes en esta categora: Coherence (Oracle), eXtremeScale (IBM), InfiniSpan

Bases de datos XML


Producto/ Protocol API Proy o Mtodo de Consultas Escr Replicaci Concurr ito n encia en Comentarios

Mark Logic Server

Java, .NET

HTTP, REST

XQuery, XSLT

Servidor XML escalable hasta el orden de Petabytes. Soporta ambiente Sharecloud. Combina un nothing servidor de C++ cluster aplicaciones, architectu almacenamiento re persistente transaccional, y un motor de bsquedas de texto. Sistema

21 | P g i n a comercial (no open source). Lecturas concurren DOM totalmente lazy tes, transaccional. Soporta primary escrituras EMC Java, WebDA versionado, mltiples XQuery,XPath, copy con Document XQuer V, web Java tipos de ndices, XPointer replication bloqueo. um xDB y services metadatos y datos no (master/rep Aislamie XML. Escalado licas) nto horizontal ilimitado. transaccio nal DOM totalmente transaccional. Soporta webMetho XQuer HTTP, XQuery,XPath, versionado, mltiples ? ? ? ds Tamino y REST XPointer tipos de ndices, metadatos y datos no XML. HTTP/R XQuer Es open source. La EST, Lecturas y, versin 1.4 agrega WebDA concurren XML: soporte para bsquedas V, tes, eXist DB XQuery ? Java de texto full, basadas SOAP, bloqueo API, en Apache Lucene. XMLen DOM, Tambin agrega RPC, escritura. SAX soporte para XProc. Atom Java, Bsquedas de texto C, Lecturas full basadas PHP, concurren en dtSearch. Soporte Python tes, Lenguaje para XProc. ndices B, escrituras declarativo, de tree. Incremental hot Ruby, C/C con Sedna ? actualizacin a ? backup. Seguridad Perl, ++ bloqueo. nivel de nodos. basada en roles. Tiene Delphi Aislamie APIs. un mdulo de , C#, nto integracin con el XML: transaccio servidor Web Apache. DB, nal. Soporta ACID transac. XQJ Proyecto Apache, Lecturas donado en Diciembre concurren Java, de HTTP/R XQuery,XPath,X tes, Xindice XML? Java 2001.XindicePHPAdm EST ML:DB XUpdate bloqueo RPC in Soporta los en servidores web Jetty y escritura. Tomcat. XQuery,XPath, Permite almacenar HTTP/R XQuery Update otros documentos que QizX Java, ? Java ? EST c/bsquedas full no sean XML como text PDF, logs, emails, etc.

P g i n a | 22 Reduce los documentos a travs de la compresin. Soporta SAX y DOM via API. Soporta indexamiento automtico. Varios BerkeleyD HTTP/R lengua B XML EST jes XQuery Master/Sla C++ ve MVCC Soporta transacciones ACID.

Bases de datos Multivalores


Producto/Pr oy API Protoco lo Replicaci Escrit Concurren Comentario n o en cia s Soporta entidades en bucle y metadatos Bloqueo a virtuales. La mvQuery nativo nivel de Hot escalabilidad (Retrieve/UniQue C registro y a Standby est basada ry) y SQL nivel de en archivo alojamiento de tablespaces automticos. Bloqueo a Nativ nivel de e registro y a 4GL, Las filas y nivel de C, archivos RList, SQL & Hot archivo / C++, crecen XPath Standby opcionalme Basic dinmicamen nte basdado +, te. en .Net, transaccione Java s Mtodo de Consultas

Client Server, BASIC, SOA, U2 (Universe InterCall, Termina , UniData) Socket, .N l Line, ET y Java XOFF/XON

OpenInsight

Basic+, .Net, COM, Socket, ODBC

TCP/IP, Named Pipes, Telnet, VT100. HTTP/S

23 | P g i n a

Otras Bases de Datos


Replicaci Escri Concurren Comentario n to en cia s Almacenami ento de documentos. Lenguajes: Java, IBM Eventualm Java, HTTP, IIOP, C API, Master/Ma JavaScript, Lotus/Domi HTTP, NRPC C ente REST Web Services, DXL ster LotusScript, no consistente C, @Formulas Se escala a clusters de replicacin. Async+syn c 64 bits y Es un BD en eXtremeDB C/C++, SQL, JNI ? C (Master/Sl MVCC memoria. ave) Es una BD semiestructu rada desarrollada por la Visua UNESCO en l ISIS Family ? ? ? ? 1985. Basic XML2ISIS ? importa XML a bases ISIS. Usado por bibliotecas. Es una librera de persistencia Prevayler Java ? -Java -de objetos para Java (POJO). Es una BD clave/valor que usa Pytho Yserial Python HTTP/REST --SQlite3 para n serializar objetos. La clave API Protocolo Producto/P roy

P g i n a | 24 generalment e es: filename + table_name + primary_key + timestamp + notes Mantiene un esquema en memoria que se vuelca a disco y soporta "solo agregar". Est hecho en Clojure, un dialecto de Lisp para la mquina virtual de Java ideal para multithreadi ng. Open Source. Plataforma para manejar almacenamie nto de objetos en entornos con hardware de bajo costo, masivamente escalable en forma horizontal. Soporte "Multitenant". Soporta estandar XA M. y SOX (ley Sarbanes Oaxley). Provee "gobernabili

FleetDb

Ruby, Python,Clojure,Nod e.js, Perl

HTTP

--

Cloju re

--

Twisted Storage

Python

FTP, WebDAV, Master/Sla Pytho BitTorrent, ve n SOAP, XMLRPC

DataNucleu s

JDO, JPA, REST

JDOQL, JPQL,

--

--

25 | P g i n a SQL, db4o Native, NeoD atis Criteria,Neo Datis Native dad" sobre toda la infraestructu ra de datos. Soporta varios esquemas, productos y proyectos (RDBMS, db4o, LDAP, Excel (XLS/OOX ML), XML, NeoDatis, JSON, ODF, HBase, Amazon S3, GoogleStora ge). Open Src.

Tambin existen en esta categora: Illuminate Correlation Database (BD para OLAP y BI y no necesita esquemas), FluidDb (Es una base de datos orientada a columnas, para entornos Cloud).

P g i n a | 26

DESVENTAJAS DE NOSQL
El cdigo abierto puede significar una "mancha" en el soporte para las empresas Mientras que los principales proveedores de RMBMS tales como Oracle, IBM y Sybase ofrecen buenos soportes a pequeas, medianas y grandes empresas y tpicamente start-ups, los vendedores de cdigo abierto esperan ofrecer un soporte comparable -con excepcin de un puado de clientes blue-chip. Generalmente un vendedor de cdigo abierto no tiene el alcance global, servicios de soporte, y la credibilidad de Oracle o IBM. No estn lo suficientemente maduros para algunas empresas A pesar de sus puestas en prctica en algunas grandes empresas, las bases de datos NoSQL an se enfrentan a un problema de credibilidad importante con muchas empresas. Los crticos sealan la falta de madurez de NoSQL y los posibles problemas de inestabilidad, mientras que citan la madurez, y una gran funcionalidad y estabilidad de los RDBMSes. Limitaciones de Inteligencia de Negocios Hay una o dos cuestiones acerca de las capacidades de BI de las bases de datos NoSQL. Pueden estas bases de datos proporcionar la clase de minera de datos rigurosos que las empresas se utilizan con las RDBMSes? Cuntos conocimientos de programacin se necesitan para hacer la consulta ad hoc y anlisis?

27 | P g i n a

Las respuestas no son precisamente positivas. Las bases de datos NoSQL no tienen muchos ganchos para el uso general de herramientas de BI, mientras que la ms simple consulta ad-hoc y anlisis implica conocimientos de programacin bastante buenos. Sin embargo, las soluciones estn disponibles. Quest Software, por ejemplo, ha creado Toad para bases de datos en la nube, que proporciona capacidades de consulta ad-hoc para algunas bases de datos NoSQL. La falta de experiencia La novedad de NoSQL significa que no hay una gran cantidad de desarrolladores y administradores que conocen la tecnologa -lo que hace difcil a las empresas encontrar personas con los conocimientos tcnicos apropiados. Por el contrario, el mundo RDBMS tiene miles de personas muy cualificadas. Problemas de compatibilidad A diferencia de las bases de datos relacionales, que comparten ciertos estndares, las bases de datos NoSQL tienen pocas normas en comn. Cada base de datos NoSQL tiene su propia API, las interfaces de consultas son nicas y tienen peculiaridades. Esta falta de normas significa que es imposible cambiar simplemente de un proveedor a otro, por si no quedara satisfecho con el servicio.

P g i n a | 28

REFLEXIN PERSONAL
Las Bases de datos NoSQL son herramientas en permanente evolucin. Es recomendable definir una capa de acceso a datos que permite aprovechar las ventajas de las bases de datos NoSQL sin generar dependencia de un producto especfico. Las bases de datos NoSQL son soluciones especializadas que atacan una problemtica muy especfica (escalamiento, concurrencia y grandes volmenes de datos), no son un remplazo natural a las bases de datos relacionales. El xito de una arquitectura implementada sobre NoSQL depende en gran medida del diseo de las estructuras de datos y la forma como estos son recuperados y procesados. Las bases de datos relacionales y las bases de datos NoSQL son tecnologas que pueden coexistir dentro de un mismo desarrollo/aplicacin aportando valor y llegando a ser tecnologas complementarias.

29 | P g i n a

BIBLIOGRAFIA

http://www.itescam.edu.mx/principal/sylabus/fpdb/recursos/r23897.PDF http://es.wikipedia.org/wiki/Web_3.0#Bases_de_datos http://pub.ermesconsulting.com/index.php?option=com_content&view= article&id=75%3Aart-sqlvsnosql&catid=58%3Asubmnubdnosql&Itemid=69 http://www.congdegnu.es/2011/01/31/nosql-no-es-oro-todo-lo-quereluce/ http://www.dosideas.com/noticias/base-de-datos/657-nosql-elmovimiento-en-contra-de-las-bases-de-datos.html http://manuelpereiragonzalez.blogspot.com/2011/05/que-son-las-basesde-datos-nosql.html http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=intro duccion_bases_de_datos_nosql http://www.linuxparty.com/modules.php?name=News&file=article&sid=6599 http://www.gestiopolis.com/administracion-estrategia/el-futuro-de-lasbases-de-datos.htm http://www.econectados.com/2009/02/el-futuro-de-las-bases-de-datos/

Potrebbero piacerti anche