Document related concepts
Transcript
Comparativa entre herramientas SQL y NOSQL Un poco de historia SQL (Structured Query Language) fue creado en la década de 1970 para dar a las bases de datos relacionales una manera de almacenar datos y comunicarse, y es muy popular en todo el mundo. NoSQL, en contraste, se refiere a un nuevo tipo de bases de datos no relacionales que no utilizan SQL y están ganando popularidad. Las relaciones y las tablas que conforman las bases de datos SQL pueden funcionar para las grandes organizaciones, que cuentan con millones. Combine esto con millones de usuarios que realizan búsquedas en estas tablas y el sistema puede sufrir grandes problemas de rendimiento, como descubrieron Google y Amazon de la manera más dura antes de cambiar a sistemas no relacionales. Por otro lado, los proyectos y las organizaciones más pequeñas normalmente funcionan muy bien con SQL. Si bien puede ser difícil en algunos casos, el mapeo de objetos complejos utilizando tablas se puede hacer y hay poderosas herramientas disponibles, tales como el sistema de base de datos Oracle, que son muy eficaces. Los sistemas SQL y NoSQL pueden ambos funcionar bien cuando son manejados por administradores competentes, pero la mejor opción dependerá de cómo se va a utilizar y las habilidades de las personas que van a utilizarlas. Características SQL Características NOSQL Un solo tipo (base de datos sql) con pocas variaciones. MySQL, postgres, Oracle Database Vertical (un solo servidor dedicado) Combinación de software libre y de paga Soporta transacciones Manipulación de datos en un lenguaje específico Gran consistencia Muchos tipos diferentes incluyendo bases de datos orientada a grafos. MongoDB, Cassandra, Hbase, Neo4j Horizontal (esparce los datos) Totalmente software libre En ciertas circunstancias soporta transacciones Manipulación de datos a través de APIs orientadas a objetos Depende del producto, algunos son consistentes. Esquemas dinámicos Sacrifica ACID para mejor rendimiento Cada registro forman un esquema La gran mayoría tienen ACID Usos SQL Usos NOSQL Usado mayormente en ámbitos educativo para conocer la estructura de la información Desarrollo web, al tener una misma jerarquía se obtiene mayor consistencia Rama de negocios, se puede usar la minería de datos para identificar patrones Redes sociales, es obligatoria dado que se manejan muchos datos no estructurados Desarrollo web, conveniente cuando hay poca uniformidad de la información Desarrollo móvil, ya que la información recolectada usualmente es diferente, no es posible estructurarla ni mantenerla estática. Es por eso que NOSQL es la solución. BigData, al no ser SQL se pueden manejar enormes cantidades de información Empresarial, ya que es a la medida y de escritorio se obtiene una estructura consistente.