Ver Mensaje Individual
  #3 (permalink)  
Antiguo 15/12/2010, 15:19
Avatar de jam666
jam666
 
Fecha de Ingreso: septiembre-2009
Ubicación: Isla De Margarita - Venezuela
Mensajes: 428
Antigüedad: 14 años, 7 meses
Puntos: 39
Respuesta: Base de Datos NOSQL (MongoDB)

Una de las grandes ventajas que tienen las bases de datos NoSQL es la escalabilidad a bajo coste.. es mas esta es una de las razones por las cuales Facebook y Twitter cambiaron a NoSQL (al parecer les salia muy costoso las licencia de MySQL para escalar).

Para los usuarios novatos en BD la principal ventaja (al menos yo lo veo asi) es que al no contar con esquemas es mas facil crear/diseñar las bases de datos y almacenar los datos, ya que en las BD Relacionales habia que crear la correspondiente BD, diseñar las tablas que contendran la informacion (teniendo en cuenta que requieren de campos claves y posiblemente relaciones con otras tablas) y luego es que se almacenaban los datos.

En una BD NoSQL del tipo Documento basta con solo Crear la BD e inmediatamente comenzar a introducirle informacion sin importar mucho el campo clave (ya que se crear automaticamente y no es incremental), sin preocuparse por relaciones (ya que en NoSQL esto no existe) y sin importar que un documento tenga mas claves:valores que los demas (en las BD relacionales habia que regirse por el esquema de la tabla).


Aunque las Bd NoSQL mas usadas o mas conocidas son las de tipo documentos, existen otros tipos de BD NoSQL como por ejemplo Grafos, clave:valor almacenada en disco, multivalores, objetos, tabular, almacenamiento en tublas, entre otras mas...

Las BD NoSQL del tipo documentos mas conocidas o usadas son MongoDB y CouchDB, ambas se caracterizan por almacenar estos documentos en formatos del estilo JSON. si por ejemplo agarramos el Array PHP que nos coloca enridp y creamos a partir de alli un documento JSON perfectamente compatible con MongoDB o CouchDB, el documento se veria similar a esto:

Código Json:
Ver original
  1. {
  2.     "title" : "Hello World",
  3.     "authors": [ "John","Sally","Jim" ],
  4.     "body": "Hello world",
  5.     "tags": ["tag1","tag2","tag3"]
  6. }

Tanto en MongoDB como CouchDB se crean/realizan las consultas usando funciones en JavaScript por lo que si ya conoces este lenguaje, te sera muy facil diseñar consultas para tus aplicaciones. Por ejemplo, si quieieramos mostrar el valor de la clave authors y la clave tags de el documento anterior podriamos diseñar una consulta como esta:


Código Javascript:
Ver original
  1. function(doc) {
  2. if (doc.body == "Hello world")
  3.   emit(doc.tags, doc.authors);
  4. }

Esto nos devolvera algo como esto:

["tag1", "tag2", "tag3"] ["John", "Sally", "Jim"]


Yo llevo cerca de un mes probando CouchDB y me a parecido bastante buena... una de las ventajas que tiene CouchDB es que esta incluida en las Distribuciones Ubuntu e incluye una interfaz web llamada Futon la cual facilita la tarea de administrar tus bases de datos, debido a que CouchDB contiene un conjunto de metodos REST/HTTP es posible administrar nuestras bases de datos desde simples comandos con Curl.


Saludos,
__________________
J.A.M
Jam Blog

Última edición por jam666; 15/12/2010 a las 15:22 Razón: correciones menores