{"id":7502,"date":"2014-12-18T21:43:37","date_gmt":"2014-12-18T20:43:37","guid":{"rendered":"http:\/\/www.palentino.es\/blog\/?p=7502"},"modified":"2014-12-18T22:09:57","modified_gmt":"2014-12-18T21:09:57","slug":"bases-de-datos-basadas-en-sql-parte","status":"publish","type":"post","link":"https:\/\/www.palentino.es\/blog\/bases-de-datos-basadas-en-sql-parte\/","title":{"rendered":"Bases de datos NO basadas en SQL. NoSQL."},"content":{"rendered":"<p style=\"text-align: justify;\">Dentro de los Sistemas Gestores de Bases de Datos (SGBD o DBMS), los motores m\u00e1s importantes y conocidos poseen arquitectura relacional. El modelo SQL es un est\u00e1ndar desde hace tiempo.<\/p>\n<p style=\"text-align: justify;\">Los sistemas de bases de datos SQL se basan principalmente en las Relacionales, con SQL como lenguaje de consulta y manipulaci\u00f3n (DML y DDL).<\/p>\n<p style=\"text-align: justify;\">Las bases NoSQL ofrecen algo a mayores, es una alternativa, simplemente otra v\u00eda de realizar las cosas.<\/p>\n<p style=\"text-align: justify;\">Es por ello, que el significado No, se atribuye a\u00a0<strong>Not Only<\/strong>, es no s\u00f3lo SQL, sino algo a mayores.<\/p>\n<p style=\"text-align: justify;\">En los \u00faltimos a\u00f1os, este tipo de base de datos, ha crecido de forma considerable en las necesidades empresariales. En estos momentos son sistemas capaces de almacenar gran cantidad de datos que se generan en Internet y acceder a los mismos con mucha velocidad. Han sido creadas para almacenar mucha informaci\u00f3n y consulta r\u00e1pida.<\/p>\n<p><!--more--><\/p>\n<p>La mejor base de datos <strong>NoSQL<\/strong> entre los profesionales del sector es <a href=\"http:\/\/www.mongodb.org\/\" target=\"_blank\"><strong>MongoDB<\/strong><\/a>.<\/p>\n<p>El esquema de las No SQL se encuentra <strong>orientado\/basado en documentos<\/strong> en formato <a href=\"http:\/\/www.palentino.es\/blog\/json-el-sistema-mas-popular-de-intercambio-de-datos\/\" target=\"_blank\"><strong>JSON<\/strong><\/a>.<\/p>\n<p>Para gestionar JSON usamos notaci\u00f3n javascript con pares de clave:valor con sus respectivas llaves.<\/p>\n<p><strong>{<\/strong><br \/>\n<strong> MiNombre: \u201cOscar\u201d,<\/strong><br \/>\n<strong> MiApellido: \u201cde la Cuesta\u201d}<\/strong><\/p>\n<p>En las bases de datos no relacionales NoSQL entra en juego un nuevo tipo llamado <strong>BSON<\/strong> o JSON Binario, para realizar b\u00fasquedas m\u00e1s r\u00e1pidamente. En el modelado de datos, dependeremos de la forma de consultar, no sus limitaciones. Los diversos documentos en formato BSON (binario), almacena las longitudes de los campos e \u00edndices de los arrays. El documento almacenara algo m\u00e1s espacio, porque contiene metadatos.<\/p>\n<p><strong>BSON<\/strong> permite la serializaci\u00f3n de <strong>JSON<\/strong> en formato binario. Adem\u00e1s de los ya conocidos formatos de tipos de datos en JSON, tendremos m\u00e1s tipos en BSON. Es decir, existe mas variadad de formatos para los datos (cadenas, n\u00fameros, documentos embebidos, punteros a archivos, etc).<\/p>\n<p>Las bases de datos relacionales cumplen un papel muy importante, y siguen siendo muy \u00fatiles para much\u00edsimas necesidades, pero son complejas de manejar.<\/p>\n<p>Un modelo relacional puede adaptarse para ser escalable, pero suele ser m\u00e1s complejo y poco eficiente. Los sistemas NoSQL intentan simplifican la forma de actuar, a costa de perder funcionalidad (ejemplo en los JOINS).<\/p>\n<p>Actualmente existen varios tipos de gestores NoSQL.<\/p>\n<p><a href=\"http:\/\/www.mongodb.org\/\" target=\"_blank\"><strong>MongoDB <\/strong><\/a>(hablar\u00e9 de ella y de su uso en otra entrada)\u00a0es seleccionada por su buen comportamiento y selecci\u00f3n por parte de los expertos.<\/p>\n<p>No obstante existen otras <strong>alternativas<\/strong> que mencionar\u00e9 a continuaci\u00f3n:<\/p>\n<ul>\n<li><a href=\"http:\/\/aws.amazon.com\/es\/dynamodb\/\" target=\"_blank\">Dynamo<\/a>.<\/li>\n<li><a href=\"http:\/\/couchdb.apache.org\/\" target=\"_blank\">CouchDB<\/a><\/li>\n<li><a href=\"http:\/\/ravendb.net\/\" target=\"_blank\">RavenDB<\/a><\/li>\n<li><a href=\"http:\/\/hadoop.apache.org\/\" target=\"_blank\">Hadoop<\/a><\/li>\n<li><a href=\"http:\/\/basho.com\/riak\/\" target=\"_blank\">Riak<\/a><\/li>\n<li><a href=\"http:\/\/projects.spring.io\/spring-data-neo4j\/\" target=\"_blank\">Neo4j<\/a><\/li>\n<li><a href=\"http:\/\/www.nosql.es\/blog\/nosql\/google-bigtable.html\" target=\"_blank\">Bigtable<\/a><\/li>\n<\/ul>\n<p><strong>Las caracter\u00edsticas generales de una base NoSQL pueden ser:<\/strong><\/p>\n<ul>\n<li>No es una base relacional sino es base de datos orientada a documentos.<\/li>\n<li>Es <strong>indexable<\/strong>. Permite realizar \u00edndices hasta geospaciales (search por cercan\u00eda).<\/li>\n<li>Es muy <strong>escalable<\/strong> y se realiza de forma sencilla. Es uno de sus puntos fuertes.<\/li>\n<li>Los procedimientos almacenados pueden ser substituidos por javascript.<\/li>\n<li>Son muy <strong>r\u00e1pidas<\/strong> en el acceso y modificaci\u00f3n de datos.<\/li>\n<li>Los datos son manejados como si fuesen colecciones (repositorio).<\/li>\n<\/ul>\n<p>Cada \u201c<strong>documento<\/strong>\u201d (en vez de registro) en NoSQL puede contener informaci\u00f3n de diverso tipo. Existe ausencia de esquema, por lo que permite polimorfismo.<br \/>\nPor ejemplo, todas las entradas de un blog pueden ser tratadas como un \u00fanico bloque no con varias tablas. No necesitaremos joins\u00a0para obtener datos.<\/p>\n<p>La <strong>velocidad<\/strong> NoSQL es mucho mayor, para funciones de lectura. Pero claro todo para cada necesidad. Existe gran <strong>escalabilidad<\/strong> horizontal. Mediante javascript podremos incorporar el <a href=\"http:\/\/es.slideshare.net\/j_singh\/nosql-and-mapreduce\" target=\"_blank\">MapReduce<\/a>. Empresas que necesitan manejar muchos datos (<strong>BigData<\/strong>), \u00a0pueden realizar consultas sobre partes o porciones de los datos. Esto es debido a que es muy r\u00e1pida.<\/p>\n<p><strong>En los tiempos que corren, donde el BigData (<a href=\"http:\/\/www.palentino.es\/blog\/big-data-herramientas-para-el-analisis-de-datos-y-aplicaciones-distribuidas\/\" target=\"_blank\">ver art\u00edculo<\/a>) est\u00e1 cobrando mucha importancia, este tipo de bases de datos y su velocidad de acceso son bastante relevantes.<br \/>\nSu velocidad, escalabilidad y la ausencia de un esquema fijo son ideales para las grandes compa\u00f1\u00edas. <\/strong><\/p>\n<p>Pero existen otro tipo de <strong>usos aplicables<\/strong> a las NoSQL:<\/p>\n<p>Soluciones B2B, aplicaciones m\u00f3viles, registro de usuarios, redes sociales, juegos on-line.<\/p>\n<p><strong> Manejo de estad\u00edsticas en tiempo real<\/strong>. Gesti\u00f3n de documentos y contenido, etc.<\/p>\n<p>En la pr\u00f3xima entrada intentar\u00e9 mostrar como trabajar con una base de datos de este tipo. En concreto MongoDB.<\/p>\n<p>&nbsp;<\/p>\n<p>Contenido relacionado:<\/p>\n<h2 class=\"posts_title\"><a href=\"http:\/\/www.palentino.es\/blog\/json-el-sistema-mas-popular-de-intercambio-de-datos\/\" target=\"_blank\">JSON, el sistema m\u00e1s popular de intercambio de datos.<\/a><\/h2>\n","protected":false},"excerpt":{"rendered":"<p>Dentro de los Sistemas Gestores de Bases de Datos (SGBD o DBMS), los motores m\u00e1s importantes y conocidos poseen arquitectura relacional. El modelo SQL es un est\u00e1ndar desde hace tiempo. Los sistemas de bases de datos SQL se basan principalmente en las Relacionales, con SQL como lenguaje de consulta y manipulaci\u00f3n (DML y DDL). Las bases NoSQL ofrecen algo a mayores, es una alternativa, simplemente otra v\u00eda de realizar las cosas. Es por ello, que el significado No, se atribuye a\u00a0Not Only, es no s\u00f3lo SQL, sino algo a mayores. En los \u00faltimos a\u00f1os, este tipo de base de datos, ha crecido de forma considerable en las necesidades empresariales. En estos momentos son sistemas capaces de almacenar gran cantidad de datos que se generan en Internet y acceder a los mismos con mucha velocidad. Han sido creadas para almacenar mucha informaci\u00f3n y consulta r\u00e1pida.<\/p>\n","protected":false},"author":1,"featured_media":7503,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[40],"tags":[604],"class_list":["post-7502","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-bases-de-datos","tag-nosql"],"_links":{"self":[{"href":"https:\/\/www.palentino.es\/blog\/wp-json\/wp\/v2\/posts\/7502","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.palentino.es\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.palentino.es\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.palentino.es\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.palentino.es\/blog\/wp-json\/wp\/v2\/comments?post=7502"}],"version-history":[{"count":13,"href":"https:\/\/www.palentino.es\/blog\/wp-json\/wp\/v2\/posts\/7502\/revisions"}],"predecessor-version":[{"id":7516,"href":"https:\/\/www.palentino.es\/blog\/wp-json\/wp\/v2\/posts\/7502\/revisions\/7516"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.palentino.es\/blog\/wp-json\/wp\/v2\/media\/7503"}],"wp:attachment":[{"href":"https:\/\/www.palentino.es\/blog\/wp-json\/wp\/v2\/media?parent=7502"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.palentino.es\/blog\/wp-json\/wp\/v2\/categories?post=7502"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.palentino.es\/blog\/wp-json\/wp\/v2\/tags?post=7502"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}