Bases de datos relacionales y no relacionales

Clave extranjera

Una base de datos NoSQL (originalmente referida a «no-SQL» o «no relacional»)[1] proporciona un mecanismo para el almacenamiento y la recuperación de datos que se modela en medios distintos a las relaciones tabulares utilizadas en las bases de datos relacionales. Este tipo de bases de datos existen desde finales de la década de 1960, pero el nombre «NoSQL» no se acuñó hasta principios del siglo XXI,[2] provocado por las necesidades de las empresas de la Web 2.0.[3][4] Las bases de datos NoSQL se utilizan cada vez más en aplicaciones web de big data y en tiempo real[5] Los sistemas NoSQL también se denominan a veces «No sólo SQL» para destacar que pueden soportar lenguajes de consulta similares a SQL o sentarse junto a bases de datos SQL en arquitecturas políglota-persistentes[6][7].

Las motivaciones para este enfoque incluyen la simplicidad del diseño, un escalado «horizontal» más sencillo a clusters de máquinas (lo cual es un problema para las bases de datos relacionales),[2] un control más fino sobre la disponibilidad y la limitación del desajuste de impedancia objeto-relacional[8] Las estructuras de datos utilizadas por las bases de datos NoSQL (por ejemplo, par clave-valor, columna ancha, gráfico o documento) son diferentes de las utilizadas por defecto en las bases de datos relacionales, lo que hace que algunas operaciones sean más rápidas en NoSQL. La idoneidad particular de una determinada base de datos NoSQL depende del problema que deba resolver. A veces, las estructuras de datos utilizadas por las bases de datos NoSQL también se consideran «más flexibles» que las tablas de las bases de datos relacionales[9].

Mongodb

Tanto las bases de datos relacionales como las no relacionales representan una gran variedad de posibilidades e implementaciones, pero me centraré en las principales diferencias entre ambas. En primer lugar, se trata de cómo se gestionan los datos. En las bases de datos relacionales se puede utilizar SQL, que es un lenguaje sencillo y ligero para escribir scripts de bases de datos. Las bases de datos no relacionales no lo soportan, por lo que se pueden denominar bases de datos NoSQL.

->  Idioms and phrasal verbs

La segunda gran diferencia es la estructura de cómo se almacenan los datos. En las bases de datos relacionales los datos se dividen en tablas, que pueden tener relaciones entre ellas. Con el apoyo de claves primarias, desencadenantes y funciones se pueden crear dependencias complejas entre las tablas. Lo más probable es que esto represente el modelo de negocio y la lógica dentro de la base de datos. Las bases de datos NoSQL se basan en estructuras muy simples, como el almacenamiento de valores clave o un gráfico, que no admite tales relaciones.

Si estás empezando con un nuevo proyecto y te preguntas qué usar, es una buena oportunidad para considerar el uso de la base de datos NoSQL. Te animo especialmente a que lo pruebes para proyectos pequeños y de mascotas, porque las más conocidas como MongoDB y Couchbase funcionan como SaaS. NoSQL también es relevante para grandes proyectos porque ofrece un gran escalado y es muy fácil de configurar. Por otro lado, las bases de datos no relacionales pueden parecer demasiado simples o incluso limitadas, por la falta de triggers, procedimientos almacenados y joins. También puede ser una amenaza utilizar otro sistema de gestión de datos, porque supone una sobrecarga para el equipo, para acostumbrarse a él. Sin embargo, recomiendo encarecidamente probarlo.

->  Quien fue el creador de excel

Base de datos de documentos

Relacional y NoSQL son dos tipos de sistemas de bases de datos comúnmente implementados en aplicaciones nativas de la nube. Se construyen de forma diferente, almacenan los datos de forma diferente y se accede a ellos de forma diferente. En esta sección, veremos ambos. Más adelante en este capítulo, veremos una tecnología de base de datos emergente llamada NewSQL.

Las bases de datos relacionales han sido una tecnología predominante durante décadas. Están maduras, probadas y ampliamente implementadas. Los productos de bases de datos de la competencia, las herramientas y la experiencia abundan. Las bases de datos relacionales proporcionan un almacén de tablas de datos relacionadas. Estas tablas tienen un esquema fijo, utilizan SQL (Structured Query Language) para gestionar los datos y admiten garantías ACID.

Las bases de datos No-SQL son almacenes de datos no relacionales de alto rendimiento. Destacan por sus características de facilidad de uso, escalabilidad, resistencia y disponibilidad. En lugar de unir tablas de datos normalizados, NoSQL almacena datos no estructurados o semiestructurados, a menudo en pares clave-valor o documentos JSON. Las bases de datos No-SQL no suelen ofrecer garantías ACID más allá del ámbito de una única partición de la base de datos. Los servicios de gran volumen que requieren un tiempo de respuesta inferior a un segundo favorecen los almacenes de datos NoSQL.

Apache cassandra

Las bases de datos relacionales han sido un elemento básico de la informática moderna desde su concepción en 1970. Oracle, MySQL, SQL Server y SQLite son sólo algunos ejemplos del tipo de bases de datos que han dominado la industria durante décadas.

Sin embargo, con el auge de la Web 2.0 y el Big Data, la cantidad, la escala y la naturaleza rápidamente cambiante de los datos que se almacenan han mostrado las debilidades de las bases de datos tradicionales. Las bases de datos relacionales, bien adaptadas a las tareas para las que fueron diseñadas originalmente, han tenido dificultades para hacer frente a las realidades de la informática moderna y a su elevado volumen de datos.

->  Mantra para la abundancia

Por ello, las bases de datos NoSQL (Not Only SQL) han ido sustituyendo a las bases de datos relacionales en muchas aplicaciones modernas. El diseño de las bases de datos NoSQL hace hincapié en el almacenamiento de datos no relacionales. En otras palabras, en lugar de almacenar los datos en un diseño de tabla rígidamente estructurado, NoSQL utiliza cualquier número de métodos -o en algunos casos una combinación de métodos- para almacenar los datos de forma descentralizada, en comparación con las bases de datos relacionales.

Si su organización está en proceso de implementar una nueva solución de base de datos, ¿cuándo debería considerar NoSQL en lugar de RDMS (sistema de gestión de bases de datos relacionales) tradicional? Veamos varios escenarios en los que una base de datos NoSQL puede ser una mejor opción.

Esta web utiliza cookies propias para su correcto funcionamiento. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Más información
Privacidad