Contenidos
Bases de datos relacionales y no relacionales
Mysql
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.
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.
Base de datos gráfica
Una base de datos no relacional es una base de datos que no utiliza el esquema tabular de filas y columnas que se encuentra en la mayoría de los sistemas de bases de datos tradicionales. En su lugar, las bases de datos no relacionales utilizan un modelo de almacenamiento optimizado para los requisitos específicos del tipo de datos que se almacenan. Por ejemplo, los datos pueden almacenarse como simples pares clave/valor, como documentos JSON o como un gráfico formado por aristas y vértices.
Lo que todos estos almacenes de datos tienen en común es que no utilizan un modelo relacional. Además, tienden a ser más específicos en cuanto al tipo de datos que admiten y a la forma de consultarlos. Por ejemplo, los almacenes de datos de series temporales están optimizados para realizar consultas sobre secuencias de datos basadas en el tiempo, mientras que los almacenes de datos de gráficos están optimizados para explorar relaciones ponderadas entre entidades. Ninguno de los dos formatos se adapta bien a la tarea de gestionar datos transaccionales.
El término NoSQL se refiere a los almacenes de datos que no utilizan SQL para las consultas, y en su lugar utilizan otros lenguajes de programación y construcciones para consultar los datos. En la práctica, “NoSQL” significa “base de datos no relacional”, aunque muchas de estas bases de datos admiten consultas compatibles con SQL. Sin embargo, la estrategia de ejecución de consultas subyacente suele ser muy diferente de la forma en que un RDBMS tradicional ejecutaría la misma consulta SQL.
Cosmos db
Las bases de datos NoSQL están construidas a propósito para modelos de datos específicos y tienen esquemas flexibles para construir aplicaciones modernas. Las bases de datos NoSQL son ampliamente reconocidas por su facilidad de desarrollo, funcionalidad y rendimiento a escala. Esta página incluye recursos que le ayudarán a entender mejor las bases de datos NoSQL y a iniciarse en ellas.
Las bases de datos NoSQL utilizan una variedad de modelos de datos para acceder y gestionar los datos. Estos tipos de bases de datos están optimizados específicamente para aplicaciones que requieren un gran volumen de datos, baja latencia y modelos de datos flexibles, que se consiguen relajando algunas de las restricciones de consistencia de datos de otras bases de datos.
Las bases de datos NoSQL encajan perfectamente en muchas aplicaciones modernas, como las móviles, la web y los juegos, que requieren bases de datos flexibles, escalables, de alto rendimiento y muy funcionales para ofrecer grandes experiencias a los usuarios.
Durante décadas, el modelo de datos predominante que se utilizaba para el desarrollo de aplicaciones era el modelo de datos relacional utilizado por bases de datos relacionales como Oracle, DB2, SQL Server, MySQL y PostgreSQL. No fue hasta mediados o finales de la década de 2000 cuando otros modelos de datos empezaron a ganar en adopción y uso. Para diferenciar y categorizar estas nuevas clases de bases de datos y modelos de datos, se acuñó el término “NoSQL”. A menudo el término “NoSQL” se utiliza indistintamente con “no relacional”.
Cuándo utilizar una base de datos relacional o no relacional
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.