Diferencia entre SQL y NoSQL

Anuncio
2015
Herramientas SQL vs NoSQL
Peña Contreras Daniel
Administración de Base de Datos
27/09/2015
Peña Contreras Daniel
Herramientas SQL vs No SQL
Administración de Base de Datos
MITO: NoSQL reemplaza SQL
Eso sería como decir que los barcos fueron reemplazados por los coches
porque son una tecnología más nueva. SQL y NoSQL hacer lo mismo:
almacenar datos. Ellos toman diferentes enfoques, que pueden ayudar u
obstaculizar su proyecto. A pesar de sentirse más reciente y el
acaparamiento de los titulares recientes, NoSQL no es un reemplazo para SQL
- es una alternativa.
MITO: NoSQL es mejor / peor que SQL
Algunos proyectos se adaptan mejor a la utilización de una base de datos
SQL. Algunos son más adecuados para NoSQL. Algunos pueden utilizar
indistintamente. Este artículo nunca podría ser un SitePoint Smackdown,
porque no se puede aplicar las mismas suposiciones generales en todas
partes.
MITO: SQL vs NoSQL es una clara distinción
Esto no es necesariamente cierto. Algunas bases de datos SQL están
adoptando características NoSQL y viceversa. Las opciones pueden llegar a
ser cada vez más difusa, y las bases de datos híbridos NewSQL podrían
proporcionar algunas opciones interesantes en el futuro.
MITO: el lenguaje / marcó determina la base de datos
Hemos crecido acostumbrar a pilas de tecnología, tales como  LAMP: Linux, Apache, MySQL (SQL), PHP
 Decir: MongoDB (NoSQL), Express, angulares, Node.js
 .NET, IIS y SQL Server
 Java, Apache y Oracle.
Hay razones prácticas, históricas y comerciales por qué estas pilas
evolucionaron - pero no presumen que son reglas. Puede usar una base de
datos MongoDB NoSQL en tu PHP o .NET proyecto. Puede conectarse
a MySQL o SQL Server en Node.js. Usted no puede encontrar la mayor
cantidad de tutoriales y recursos, pero sus necesidades debe determinar el
tipo de base de datos - no el lenguaje.
2
Peña Contreras Daniel
Herramientas SQL vs No SQL
Administración de Base de Datos
SQL
El lenguaje de consulta estructurado o SQL (por sus siglas en inglés Structured
Query Language) es un lenguaje declarativo de acceso a bases de
datos relacionales que permite especificar diversos tipos de operaciones en
ellas. Una de sus características es el manejo del álgebra y el cálculo
relacional que permiten efectuar consultas con el fin de recuperar, de forma
sencilla, información de bases de datos, así como hacer cambios en ellas.
NoSQL
En informática, NoSQL es una amplia clase de sistemas de gestión de bases
de datos que difieren del modelo clásico del sistema de gestión de bases de
datos relacionales (RDBMS) en aspectos importantes, el más destacado es
que no usan SQL como el principal lenguaje de consultas. Los datos
almacenados no requieren estructuras fijas como tablas, normalmente no
soportan operaciones JOIN, ni garantizan completamente ACID (atomicidad,
consistencia, aislamiento y durabilidad), y habitualmente escalan bien
horizontalmente. Los sistemas NoSQL se denominan a veces "no sólo SQL"
para subrayar el hecho de que también pueden soportar lenguajes de
consulta de tipo SQL.
¿Cuál es el mejor?
Antes de la aparición del concepto de Base de datos relacional en el año de
1970, se utilizaban técnicas de manipulación de ficheros para guardar y
gestionar la información que generaba una aplicación, trayendo consigo la
necesidad de comprender a cabalidad temas como el acceso a memoria, el
manejo de punteros y puertos, etc. (¡Que caos!). Con la aparición de
conceptos como tablas, relaciones, claves y la unificación de los términos fila
y dato toda ésta engorrosa tarea se convirtió en más que un objeto de
estudio y trajo alegrías y colores a muchos programadores de la época. Salir
de esa zona de confort, implica – implícitamente – la necesidad de expresar
esos miedos a temas tan oscuros en la programación y la preocupación de
complicar más la profesión del desarrollo y la gestión de datos.
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,
3
Peña Contreras Daniel
Herramientas SQL vs No SQL
Administración de Base de Datos
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 SQL?
Si buscamos en Google no encontraremos una respuesta concreta, porque se
intuye que cualquier cosa que se deba guardar debe ser en una base de datos
relacional. Si preguntamos a cualquier programador, seguramente su
respuesta sería algo como: “en prácticamente cualquier caso. De pronto no
es necesario en desarrollos de animación o cosas por el estilo.”.
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.
4
Peña Contreras Daniel
Herramientas SQL vs No SQL
Administración de Base de Datos
¿Cuándo usar NoSQL?
Si realizamos el ejercicio en Google, encontramos un poco más de
información al respecto y es más sencillo orientarse en ésta nueva
tecnología.
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.
Beneficios de NoSQL
 Escalamiento elástico
 Mayor capacidad de manejo de datos
 El mantenimiento de los servidores NoSQL es más barato
 Menor Costo Servidor
 No esquema o modelo de datos fijos
 Integrated Facility Caching
5
Peña Contreras Daniel
Herramientas SQL vs No SQL
Administración de Base de Datos
Beneficios de SQL
 Es un estándar para el manejo de datos en un Manejador de Base de
Datos Relacional.
 Es no sensitivo, esto quiere decir que no importa si pones en
mayúsculas o minúsculas el comando o instrucción te lo reconocerá.
 Es imperativo, no necesariamente secuencial aunque tenga un
ordenamiento.
 Es de fácil comprensión.
 Es un lenguaje de alto nivel para datos, esto es con una sola instrucción
afectas a varios registros en tiempo real.
Diferencia entre SQL y NoSQL: Comparación
Este artículo sobre SQL y NoSQL comparación arrojará luz sobre el debate
sobre las ventajas y limitaciones de cada uno. Desde que el zumbido de la
base de datos NoSQL evolucionó en el almacenamiento de datos en las bases
de datos NoSQL, pensé en la exploración de ambos conceptos para llegar a su
profundidad. Y me tomó un tiempo para averiguar lo que realmente
conducen a la evolución de la base de datos NoSQL.
Bueno, todo se reduce a la búsqueda de proporcionar mejor experiencia
posible a los usuarios finales en forma rápida, real y conectado. Los
desarrolladores de bases de datos están tratando de optimizar las cosas para
producir un mejor rendimiento ya que la tecnología en el departamento de
almacenamiento está cambiando drásticamente.
NoSQL vs SQL – ¿Tiempo para un Cambio?
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.
Obtener una sólida.
6
Peña Contreras Daniel
Herramientas SQL vs No SQL
Administración de Base de Datos
Existe un intenso debate entre los desarrolladores en cuanto a los méritos
de cada sistema, incluso en Google I/O 2012, se realizó un debate titulado
SQL vs NoSQL: Batalla de los Backends. Cada uno tiene sus propias
fortalezas y debilidades, pero algunos predicen que NoSQL puede
eventualmente reemplazar a SQL.
Así que, ¿cuáles son esas diferencias? Echemos un vistazo a algunas de las
características clave de NoSQL y cómo se diferencia de SQL.
¿Por qué podría NoSQL funcionar mejor que SQL?
Hay varias razones para creer que las bases de datos no relacionales son
más adecuadas para la actualidad que las bases de datos relacionales.
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.
Además, los proyectos de programación a gran escala que utilizan tipos de
datos complejos y jerarquías, como XML, son difíciles de incorporar en SQL.
Estos tipos de datos, que pueden contener objetos, listas y otros tipos de
datos propios, no se correlacionan bien con las tablas que consisten en sólo
las filas y columnas.
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.
Con esto en mente, echemos un vistazo a algunas características de NoSQL,
diseñadas para evitar algunos de los inconvenientes de SQL.
7
Peña Contreras Daniel
Herramientas SQL vs No SQL
Administración de Base de Datos
Bases de Datos NoSQL: Tipos de datos y funciones
La mayoría de las bases de datos NoSQL contienen los cuatro tipos de datos
siguientes:
 Bases de datos documentales, que permiten que una clave sea
emparejada con un documento. Los documentos pueden contener
una gran variedad de objetos como claves en arreglos y pares clavevalor, así como otros documentos.
 Key-value stores, bases de datos simples que almacenan información
en forma de atributos (teclas) y valores. En algunos casos, los valores
pueden tener tipos como cadena y número entero.
 El graph almacena datos sobre redes.
 Wide-column stores, están hechas para el manejo de grandes
cantidades de datos en forma de columnas.
Las bases de datos NoSQL escalan horizontalmente, añadiendo más
servidores para hacer frente a cargas más grandes. Por otro lado, las bases
de datos SQL, suelen escalar de forma vertical, añadiendo más y más
tráfico a un solo servidor. La función Auto-sharding permite a los sistemas
NoSQL compartir automáticamente los datos a través de servidores, sin
necesidad de realizar algunas maniobras complejas de codificación. Esto
equilibra la carga entre varios servidores, proporcionando un sistema más
robusto en caso de un accidente de un servidor en particular.
La programación de hoy en día se hace a menudo de forma iterativa, con
pequeños pasos, poco a poco que puede afectar a todo el proyecto. Esto
no se traduce bien a los servidores SQL, que le piden que defina sus
esquemas antes de agregar cualquier información. Añadir una nueva
categoría a una tabla, por ejemplo, puede llegar a ser un proceso que
consuma tiempo cuando se haga tarde en un proyecto de programación.
NoSQL es mucho más flexible, no utilizando esquemas definidos de
antemano. Esto permite a los usuarios añadir información y hacer cambios
en cualquier momento sin interrumpir el sistema o la necesidad de
transferir una gran cantidad de datos.
Una comparación de SQL y No-SQL Base de datos Sistemas de Gestión
Con el fin de llegar a una conclusión comprensible simple, vamos a analizar
las diferencias de los sistemas de gestión de SQL y No-SQL de base de datos':
8
Peña Contreras Daniel
Herramientas SQL vs No SQL
Administración de Base de Datos

Estructura y tipo de datos que se mantienen:
SQL / bases de datos relacionales requieren de una estructura con los
atributos definidos para contener los datos, a diferencia de las bases de datos
NoSQL que por lo general permiten las operaciones de flujo libre.

Consulta:
Independientemente de sus licencias, bases de datos relacionales todos
implementan el estándar SQL, hasta cierto punto y, por tanto, que se pueden
consultar mediante el Structured Query Language (SQL).Bases de datos
NoSQL, por el contrario, cada implementar una forma única de trabajar con
los datos que manejan.

Escala:
Ambas soluciones son fáciles de escalar verticalmente (es decir, mediante el
aumento de los recursos del sistema). Sin embargo, siendo las aplicaciones
más modernas (y más simples), soluciones NoSQL suelen ofrecer medios
mucho más fácil a escala horizontal (es decir, mediante la creación de un
grupo de varias máquinas).

Fiabilidad:
Cuando se trata de fiabilidad de los datos y la garantía de seguridad de las
transacciones realizadas, las bases de datos de SQL siguen siendo la mejor
apuesta.

Soporte:
Sistemas de gestión de bases de datos relacionales tienen décadas de
historia. Son muy populares y es muy fácil de encontrar tanto gratuitos y
pagados apoyo. Si surge un problema, por lo que es mucho más fácil de
resolver que las bases de datos recientemente populares NoSQL especialmente si dicha solución es compleja en la naturaleza (por ejemplo,
MongoDB).

Mantenimiento de datos complejos y las necesidades de consulta de:
Por naturaleza, las bases de datos relacionales son el go-to solución para
consultas complejas y los datos de mantenimiento de las necesidades. Ellos
son mucho más eficientes y sobresalir en este dominio.
9
Peña Contreras Daniel
Herramientas SQL vs No SQL
Administración de Base de Datos
https://estebanz01.wordpress.com/2013/04/04/sql-vs-nosql-cual-es-elmejor/
https://es.wikipedia.org/wiki/SQL
https://es.wikipedia.org/wiki/NoSQL
http://www.thewindowsclub.com/difference-sql-nosql-comparision
https://blog.udemy.com/es/nosql-vs-sql-tiempo-para-un-cambio/
http://www.sitepoint.com/sql-vs-nosql-differences/
https://www.digitalocean.com/community/tutorials/understanding-sql-andnosql-databases-and-different-database-models
10
Descargar