Ensayo NoSQL vs. SQL SQL vs. NoSQL ¿Por qué surge la pregunta: “¿cuál es el mejor?”? NoSQL facilita demasiado la gestión de la información en ciertos aspectos como la captura o el soporte de escalabilidad y acceso; facilita tanto la tarea, que en un futuro cercano estoy seguro que no nos preocuparemos si quiera de proporcionar una cadena de conexión como las engorrosas de SQL Server, sólo tendríamos que proporcionar un nombre y el mismo motor de base de datos realizará todo ese tedioso y aburrido procedimiento. Por lo anterior, no podemos temerle a la maravillosa tecnología del NoSQL y su gran utilidad en el nuevo mundo de la Internet - ni tan nuevo, de hecho -, porque se están solucionando grandes inconvenientes como la masiva concurrencia de acceso a una base de datos y el costoso mantenimiento de las mismas. Hay que aceptar de una vez por todas que NoSQL vino para quedarse y más importante, vino para facilitarnos la vida y quitarnos más de un dolor de cabeza para empresarios y desarrolladores. ¿Cuándo usar NoSQL? Yo considero que las tecnologías NoSQL pueden user usadas en los siguientes ámbitos: Redes sociales: Es obligatorio. Gracias a las redes sociales, ésta tecnología comenzó a despegar y mostrar utilidad en el campo de la informática y la estadística. Desarrollo Web: Considero más pertinente el uso de éstas tecnologías en ésta área, debido a la poca uniformidad de la información que encontramos en Internet, sin embargo, es posible realizar éstos desarrollos con SQL, como expuse anteriormente. Desarrollo Móvil: En éstos momentos, las empresas están lidiando con un problema grande conocido como Bring Your Own Device - en realidad no es un problema, es un fenómeno social -, por lo que la información que se recolecte siempre será diferente por más que uno desee estructurarla y mantenerla estática. BigData: Como podemos observar en Search Business Analytics, la administración de grandísimas cantidades de información y su evidente heterogeneida hace de NoSQL un excelente candidato en ésta área. Cloud (XaaS): el término XaaS (Everything as a service) que indica “Cualquier cosa como servicio (sic)” y todos los temas relacionados a la nube, con NoSQL pueden adaptarse casi a cualquier necesidad del cliente, que evidentemente son heterogéneos. ¿Cuándo usar SQL? Yo considero que una base de datos relacional puede ser usada estos ámbitos: Educativo: es importante conocer cómo estructurar información, además de aportar un gran conocimiento lógico al estudiante. Desarrollo web: es bueno tratar de mantener una misma jerarquía de los datos que llegan de la gran autopista, pero siempre y cuando la capacidad de concurrencia, almacenamiento y mantenimiento no sean de considerable dificultad y la información siempre sea consistente. Rama de negocios: inteligencia de negocios, análisis de negocios, bodegas de datos, minería de datos, minería de texto son temas que requieren el uso de SQL para facilitar el consumo de la información y la identificación de patrones en los datos. Empresarial: El software a la medida y el software empresarial, ambos de escritorio, poseen la característica de mantener información con una estructura consistente y SQL es ideal para ésta tarea. Los principales argumentos a favor de las bases de datos NoSQL, los argumentos anti modelo relacional Supongo que no serán los únicos, y que en este tema, como en todo, no hay una única respuesta, pero el argumento que yo más escucho a favor de las bases de datos NoSQL, contra las bases de datos relacionales, es el siguiente: Los “join” de las bases de datos relacionales ralentizan el sistema. Aquí te dejo algunas referencias con este argumento: una de slashdot, un debate en stackoverflow, y alguna más. Conviene decir que esto de ralentización aplicaría cuando millones de usuarios hacen búsquedas en tablas con millones de filas, como es el caso de Google o Amazon, que por ello desarrollaron sus propias bases de datos NoSQL. Luego hay otras críticas, como la de la difícil correlación, los mapeos, del modelo relacional con estructuras de datos jerárquicas, como XML, o con diseños de clases complejos. Los principales argumentos en contra de las bases de datos NoSQL Para los defensores de las bases de datos relacionales, los SGBDs potentes, como Oracle, son lo suficientemente potentes para optimizar “joins” complejos. Y como prueba, los bancos realizan miles de consultas, con miles de usuarios, y sobreviven utilizando SQL. Quien defiende el uso de bases de datos SQL, las relacionales de toda la vida, argumentan que “es raro es que vayas a necesitar bases de datos NoSQL, no vas a construir un Google”. Luego hay otros argumentos, como que prácticamente toda estructura de datos (como las de los XML y demás) se puede mapear al sistema relacional. Hay quien se atreve a decir que el problema viene de no entender el SQL. Bibliografía http://www.javiergarzas.com/2013/06/bases-de-datos-nosql.html http://estebanz01.wordpress.com/2013/04/04/sql-vs-nosql-cual-es-el-mejor/