19 sept 2013

Qué es una base de datos NoSQL

Por William Díaz Sepúlveda

Resumen: Las bases de datos NOSQL aparecieron como una necesidad para el manejo de información voluminosa y distribuida en los grandes sitios web pero serán soluciones para las grandes empresas y las medianas empresas? solucionan los problemas que las bases de datos Relacionales solucionan?. Que tipo de problemas solucionan? Este artículo presenta este modelo y sus actuales logros y resultados.

Las bases de datos (BD) tradicionales son las relacionales que usan un lenguaje Estándar para su manipulación y gestión , el SQL que nace en 1974 basado en Modelo de EF COD. SQL tiene más de 37 años de vida. Son ejemplos de bases de datos relacionales: ORACLE, MYSQL, SQL Server, POTGRESS, DB2, etc..Su éxito se basó en que son una solución para los problemas de gestión y estructuración de la información de las organizaciones, con un fundamento matemático muy fuerte, lenguaje estandarizado (aceptado y adoptado) para su gestión (SQL) , con metodologías estructuradas formales para el diseño de los sistemas de información de las organizaciones y con principios de diseño como la regla ACID (atómica consistente aislada y Durable) . estas plataformas tienen muchas herramientas desarrolladas.

Las bases de datos NOSQL son un conjunto de bases de datos que no se ajustan al modelo de bases de datos relacionales y sus características, estas no tienen esquemas , no usan SQL ni permiten joins, no garantizan la propiedad ACID, escalan horizontalmente, hacen uso amplio de la memoria principal del computador, resuelven el problema de los altos volúmenes de información y la inmensa cantidad de consultas y transacciones diarias, en resumen no son relacionales.

Pero ¿en qué consisten? ¿Por  qué surgieron? ¿cuál es la mejor solución para un problema determinado? ¿para qué tipo de problemas se debe considerar las alternativas NoSQL? ¿Se debería usar una Solución NoSQL para un problema que tradicionalmente se ha resuelto con bases de datos relacionales? ¿Qué se debe tener en cuenta? ¿Reemplazarán las bases de datos relacionales?

A continuación se muestra cómo instalar MongoDB, una de las bases de datos NoSQL más reconocidas sería la siguiente:

$ sudo pecl install mongo
$ sudo apt-get install pecl
$ sudo apt-get install php5-dev php5-cli php-pear
$ pecl install mongo
 

$ nano /etc/php5/apache2/php.ini
  - extension=mongo.so


Una aplicación en PHP sobre MongoDB, sería la siguiente:

//Conecta Mongo
$m = new MongoClient();

//Selecciona la DB [comedy]
$db = $m->comedy;

//Selecciona una Coleccion [cartoons]
$collection = $db->cartoons;

//Agrega un registro
$document = array( "title" => "Calvin and Hobbes", "author" => "Bill Watterson" );
$collection->insert( $document );

//Agrega otro registro con formato distinto
$document = array( "title" => "XKCD", "online" => true );
$collection->insert( $document );

//Busca todas las colecciones
$cursor = $collection->find( );

//Busca una coleccion especifica [XKCD]
$query = array( 'title' => 'XKCD' );
$cursor = $collection->find( $query );

//Escribe cada uno de los titulos encontrados
foreach ( $cursor as $document ) {

    echo $document["title"] . " - ";
}

?>


Este trabajo pretende dar algunas respuestas a estas inquietudes que genera la tecnología de bases de datos NOSQL que vienen en vertiginoso desarrollo , especialmente desde el 2009.

Contenido completo en fuente original el Blog de William Díaz Sepúlveda y en el Blog de Manuel Pereira Gonzalez

Suscríbete a nuestro Boletín

3 comentarios:

  1. Desde mi ignorancia más absoluta, creía que NoSql venía de 'Not only SQL'. ¿Significa esto que puede existir cierta compatibilidad entre ambos sistemas,o que por así decirlo no se trata de una ruptura, sino de una evolución natural? Muchas gracias.

    ResponderBorrar
  2. Hola Bartolome,

    NoSQL no es una evolucuón de SQL, son cosas distintas utilizadas para objetivos distintos. Te recomiendo leer todo el art. en donde encontraras q los objetivos principales de NoSQL son grandes almacenes de datos con estructuras no necesariamente iguales y con velocidad de acceso.
    FB, Twt, Google, Y! entre otros utilizan estas BD por la gran cant. de datos y velocidad q necesitan.

    Cristian

    ResponderBorrar
  3. es necesario que todo profesional de sistemas o personas relacionadas con las tecnologias conozcan estas bases de datos

    ResponderBorrar

Gracias por dejar un comentario en Segu-Info.

Gracias por comentar!