Curso Almacén de Datos NoSQL MongoDB y PHP
Una reunión en San Francisco fue la inauguración de la comunidad de NoSQL, un grupo de personas que comparten la idea de destronar la tiranía de las bases de datos relaciones, costosas y lentas, en favor de una alternativa mucho más eficiente y barata para manipular datos. Las bases de datos relacionales nos ofrecen demasiado. Nos fuerzan a adaptar nuestros objetos para adaptarlos a una RDBMS (sistema de gestión de bases de datos relacional), dice Jon Travis, uno de los principales ingenieros en SpringSource, y uno de los 10 presentadores en la reunión de NoSQL. Las alternativas basadas en NoSQL te ofrecen sólo lo que necesitás, dice Travis. [Referencias: dosideas.com]
El curso MongoDB es un ámbito alternativo, de investigación, de descubrimientos, de máxima libertad, donde quienes puedan codearse con lo mencionado estarán a gusto. Los colosales volúmenes de datos que controla la Web 2.0, que son la puerta de entrada a fabulosos negocios, son ámbitos poco propicios para las bases de datos relacionales.
Algunas Características de MongoDB
MongoDB es una solución escalable y de alto rendimiento, es una base de datos NoSQL de código abierto, escrita en C++:
MongoDB es un sistema de base de datos multiplataforma orientado a documentos, de esquema libre. Esto significa que cada entrada o registro puede tener un esquema de datos diferente, con atributos o columnas que no tienen por qué repetirse de un registro a otro. Está escrito en C++, lo que le confiere cierta cercanía al bare metal, o recursos de hardware de la máquina, de modo que es bastante rápido a la hora de ejecutar sus tareas. Está licenciado como GNU AGPL 3.0, de modo que se trata de un software de licencia libre. Funciona en sistemas operativos Windows, Linux, OS X y Solaris.
Las características más destacadas de MongoDB son su velocidad y su rico pero sencillo sistema de consulta de los contenidos de la base de datos. Se podría decir que alcanza un balance perfecto entre rendimiento y funcionalidad, incorporando muchos de los tipos de consulta que utilizaríamos en nuestro sistema relacional preferido, pero sin sacrificar en rendimiento.
MongoDB permite utilizar funciones Map y Reduce escritas en Javascript para seleccionar los atributos que nos interesan de los datos, y agregarlos (unificarlos, simplificarlos), etc..
La meta de MongoDB es unir la brecha entre los almacenamientos clave-valor, los cuales son rápidos y escalables, y los motores relacionales tradicionales, los cuales proveen de consultas ricas y funcionalidades avanzadas. El motor está designado para resolver problemas que no tienen una solución fácil mediante motores relacionales, como por ejemplo bases de datos distribuidas.
La base de datos es orientada a documentos, de modo que trabaja de una forma diferente a los DBMS relacionales. MongoDB maneja colecciones de documentos similares a JSON. Esto permite a muchas aplicaciones modelar los datos de una manera más natural, siendo posible anidar los datos en jerarquías complejas y que estos sigan siendo consultables e indizables.
- Están basadas en código abierto
- Soportan la escritura de un gran volumen de datos simultáneamente
- Orientada al almacenamiento de Documentos
- Auto-Sharding, escalado horizontal sin compromiso de la funcionalidad
- Puede trabajar con las siguientes tecnologías: C, C++, Erlang, Haskell, Java, Javascript, Perl, PHP, Python, Ruby, etc..
Los conceptos teóricos iniciales dan paso al proceso de instalación y puesta en marcha de MongoDB, en este caso se hará sobre una plataforma Debian GNU/Linux, que además de sus cualidades operativas, nos propone un escenario de máxima libertad.
I. Inicialmente el trabajo estará centrado en la interacción desde una consola Linux contra la base de datos, alli podremos comprender la forma de operación de éste sistema de almacenamiento, por supuesto, no usaremos el lenguaje SQL.
II. Cuando tengamos una idea interesante sobre su funcionamiento, la segunda etapa estará centrada en la instalación de diversos software y su configuración para poder llevar la operación contra el sistema de almacenamiento desde PHP.
III. Una tercera etapa, es la operación contra MongoDB desde Java, también en un ambiente Linux. Además de las consideraciones teóricas, se desarrollarán dos proyectos simples para poder apreciar el funcionamiento conjunto de ambas tecnologías.
http://www.usabilidadweb.com.ar/mongoDB.php
http://twitter.com/#!/@w3codigo


