IT Explained

IT Explained:

Bases de datos




¿Qué es una base de datos?



Una base de datos es una colección de información (datos), generalmente relacionada, que se almacena electrónicamente y en la que se puede buscar. La función de una base de datos no es únicamente la de almacenar datos, sino que también debe hacerlo en un formato que permita una búsqueda eficiente y una recuperación rápida de la información, además de garantizar su seguridad.

Las funciones en sí de la base de datos son procedimientos que realizan operaciones particulares sobre los datos contenidos. Las funciones de la base de datos incluyen operaciones básicas de CRUD, que es un acrónimo para las siglas en inglés de crear, leer, actualizar y eliminar datos. En diferentes lenguajes de consulta, estas operaciones básicas pueden tener nombres diferentes; por ejemplo, insert en lugar de create para introducir un registro en el sistema.

Una base de datos se gestiona por medio de un sistema de administración de bases de datos que puede ser normal (DBMS) o relacional (RDBMS).

Los sistemas de bases de datos son una combinación de hardware físico que almacena datos, un software complejo DBMS o RDBMS y diferentes lenguajes informáticos para acceder y manipular la información.

¿Dónde se utilizan las bases de datos?

 

Historia

Antes de la primera base de datos electrónica, las bases de datos de la época eran aquellos típicos archivadores que almacenaban y organizaban información en forma de documentos en papel, y que podían indexarse y buscarse de manera eficiente.

Charles Bachman diseñó la primera base de datos computarizada a principios de la década de 1960 y la bautizó como Integrated Data Store (IDS). IDS introdujo el concepto de una base de datos por la que se podía navegar y que constaba de dos modelos, jerárquico y de red, aunque no se podía realizar búsquedas en ninguno de ellos. Las bases de datos electrónicas de búsqueda se introdujeron en la década de 1970 junto con el lenguaje de consulta estructurado (SQL), que proporcionó una forma de realizar búsquedas. En la década de 2000, se desarrolló NoSQL para trabajar con la gran cantidad de datos no estructurados de internet. Hacia 2010, bajo la influencia de la creciente corriente del big data y la globalización del internet de las cosas (IoT), se desarrolló un modelo de base de datos distribuida para permitir el almacenamiento de datos en múltiples ubicaciones físicas.

  

Aplicaciones de base de datos

Se utilizan bases de datos en cualquier lugar donde sea necesario almacenar información. Los ejemplos más comunes de uso de las bases de datos incluyen sistemas bancarios, aplicaciones industriales, registros gubernamentales, comercio minorista, comercio electrónico, finanzas personales y la mayoría de las aplicaciones en línea. Los usos modernos de las bases de datos abarcan redes sociales, computación móvil, aplicaciones de análisis de datos y la nube. Estos tipos de aplicaciones han influido en el crecimiento de nuevos tipos de bases de datos y en el uso de frameworks y sistemas de bases de datos combinados.

Las bases de datos se caracterizan por el tipo de datos que almacenan, la forma en que lo hacen y el método utilizado para acceder a su información. Entre todos los tipos, tenemos bases de datos relacionales, en memoria, jerárquicas, virtualizadas, en columnas, gráficas, de objetos, distribuidas, de transmisión, de series de tiempo y en la nube. Las bases de datos también pueden clasificarse por su función o el sector donde se usan, y podemos tener bases de datos personales, comerciales, de usuario final, cadenas de bloques, operacionales y de red.

 

Datos estructurados y no estructurados

Las características de los datos que se deben almacenar y recuperar en una aplicación determina qué tipo de base de datos hay que utilizar. Hay dos tipos de datos almacenados por las bases de datos: estructurados y no estructurados. Los datos estructurados tienen una longitud y un formato definidos; por ejemplo, números, fechas y cadenas de texto. Se almacenan en una base de datos relacional y se recuperan mediante un software llamado SQL. Los datos no estructurados incluyen colecciones de documentos y multimedia. Se almacenan en bases de datos no relacionales y se acceden principalmente mediante NoSQL. La principal diferencia entre la base de datos relacional y la no relacional es que la primera define explícitamente las relaciones entre los objetos de datos.

Bases de datos relacionales



En las bases de datos relacionales, los datos se organizan en filas y columnas en tablas diferenciadas. La estructura de datos está separada de la estructura física y los datos se pueden ubicar utilizando un algoritmo de búsqueda basado en identificadores de relación únicos, que se denominan claves. Las bases de datos relacionales utilizan esquemas, que son como planos que describen la forma en que se organiza la información. Las bases de datos relacionales están diseñadas para permitir la normalización, es decir, que cualquier dato se almacene en un sólo lugar. Una base de datos relacional es casi el polo opuesto de una base de datos jerárquica, y utiliza un modelo de relación de muchos a muchos. Las bases de datos relacionales están orientadas a filas, mientras que las bases de datos no relacionales están orientadas a columnas.

Lenguaje de consulta SQL

Una base de datos relacional también se denomina base de datos SQL porque utiliza el lenguaje de consulta computerizado SQL para buscar, recuperar, modificar y eliminar información.

Los lenguajes de base de datos se dividen entre lenguajes de definición y lenguajes de manipulación de datos. Los lenguajes de manipulación de datos incluyen los de consulta y los procedurales. Los lenguajes procedurales permiten implementar estrategias de programación como iteraciones y recursividad.

SQL es un lenguaje de definición de datos, no un lenguaje procedural. SQL suele estar integrado en un lenguaje host de propósito general como Cobol, C++, Python o Java, que sí puede realizar funciones de iteración y recursividad. 

Los ejemplos más populares de bases de datos relacionales incluyen Microsoft SQL Server, MySQL, Oracle Database e IBM DB2.

 

Monitoreo de bases de datos en 3 minutos con PRTG

Bases de datos no relacionales

 


El uso de grandes volúmenes de datos no estructurados en las aplicaciones modernas desencadenó el desarrollo de las bases de datos no relacionales. Las bases de datos no relacionales están diseñadas para abordar los requisitos de una mayor escalabilidad. Para distinguirlas de las bases de datos SQL o relacionales, y puesto que no utilizan el lenguaje de consulta SQL, las bases de datos no relacionales se denominan NoSQL. NoSQL es un acrónimo de “no SQL”, pero también puede significar “no sólo SQL”.

 

Lenguajes NoSQL

Los diferentes tipos de bases de datos NoSQL tienen sus propios lenguajes de consulta, muchos de los cuales se basan libremente en SQL. Cassandra Query Language (CQL) se utiliza para consultar bases de datos de Cassandra. MongoDB tiene controladores que permiten interactuar con diferentes lenguajes, como Java o C#, y cuenta con su propio lenguaje de shell interno, MongoDB Query Language (MQL), basado en JavaScript.

 

Modelos de almacén de datos NoSQL

El término “almacén de datos” se refiere al modelo de almacenamiento que se emplea en una base de datos no relacional. Por ejemplo, los datos pueden almacenarse como documentos, imágenes o gráficos. Las bases de datos NoSQL se basan en cuatro modelos principales de almacén de datos: almacén de clave-valor, almacén de documentos, almacén orientado a columnas y almacén de gráficos. Los modelos menos comunes y más especializados son los almacenes de índices externos, de objetos y de series de tiempo.

Almacén de clave-valor

Un par clave-valor, o nombre-valor, es una unidad de datos que se identifica mediante una etiqueta y el dato que contiene; por ejemplo, clave = país y valor = Bolivia. Utilizando pares clave-valor, los desarrolladores pueden crear estructuras de datos abiertas y altamente escalables que no se encuentran limitadas por el tamaño o el tipo y que se pueden dividir fácilmente para permitir consultas más rápidas. Las bases de datos que se basan en el modelo clave-valor se consideran la versión más simple de las bases de datos NoSQL. Ejemplos de bases de datos de clave-valor son Redis y Amazon DynamoDB. 

Una base de datos NoSQL a menudo se denomina genéricamente una base de datos de clave-valor. Algunas bases de datos NoSQL pueden considerarse bases de datos híbridas de clave-valor, como por ejemplo Cassandra de Facebook, que es una base de datos de clave-valor y que también está orientada a columnas. La base de datos Oracle NoSQL es una base de datos de clave-valor distribuida.

Almacén de documentos

Una base de datos que se basa en el modelo de almacenamiento de documentos está diseñada para almacenar documentos de manera eficiente como una sola instancia. Las empresas de medios, como las casas de noticias y los sistemas de base de conocimientos, utilizan bases de datos de almacenamiento de documentos para guardar artículos, sinopsis, blogs y publicaciones. Una base de datos de almacén de documentos conserva los documentos en su totalidad, lo que hace que cada uno de ellos sea fácilmente accesible. Si los documentos se almacenasen en una base de datos relacional, un artículo típico tendría que dividirse en partes lógicas compuestas (por ejemplo: información del autor, contenido y comentarios de los lectores) y, luego, hacer una referencia cruzada en una clave como autor. Ejemplos de bases de datos de almacenamiento de documentos son MongoDB y Elasticsearch.

Almacén orientado a columnas

Las bases de datos relacionales están orientadas a filas, mientras que las bases de datos no relacionales están orientadas a columnas. Las bases de datos que se basan en el modelo orientado a columnas almacenan las múltiples columnas que se encuentran en las filas de una base de datos relacional por separado con ID individuales. Durante la búsqueda de información, una base de datos orientada a columnas puede examinar sólo las columnas que le interesan, mientras que las bases de datos orientadas a filas deben escanear todas las columnas de un registro al filtrar datos en una columna específica. Un ejemplo de una base de datos orientada a columnas es Cassandra, de Facebook. 

Almacén de gráficos

Los almacenes de gráficos se refieren a colecciones de relaciones. Las plataformas de redes sociales utilizan ampliamente bases de datos basadas en el modelo de almacén de gráficos, ya que están diseñadas para conectar nodos con múltiples extremos para conformar grupos de información relacionada. En una base de datos de gráficos, un nodo es una entidad de datos primaria, como sería una persona o una empresa. Los extremos describen las relaciones que un nodo tiene con otros nodos y extremos, como podrían ser los clientes, las sucursales, el personal, los productos de una empresa, etc. Los extremos en una base de datos de gráficos son, en sí mismos, nodos conectados a diferentes extremos. Un ejemplo de una base de datos de gráficos es Neo4j.

Bases de datos NoSQL

Base de datos centralizada

Una base de datos centralizada funciona en una única ubicación, como la base de datos de un campus universitario. Una base de datos centralizada no es lo mismo que un administrador de base de datos centralizado. Las empresas modernas utilizan sistemas de administración de bases de datos centralizados, que constan de múltiples bases de datos para almacenar y administrar todo tipo de información. La administración centralizada de bases de datos ayuda a las organizaciones a garantizar la seguridad, la integridad, la coherencia y la eficiencia operativa de los datos.

Base de datos en la nube

Una base de datos en la nube es un servicio de base de datos. En este caso, una empresa puede comprar espacio virtual de un proveedor de la nube para implementar allí su base de datos. Alternativamente, esa misma empresa puede adquirir una suscripción para una oferta de base de datos como servicio (DBaaS) que comprendería la administración, el mantenimiento y los servicios operativos de la base de datos (en bases de datos, DBaaS es el equivalente al software como servicio SaaS). Las bases de datos en la nube suelen ser empleadas por organizaciones que manejan grandes volúmenes de tráfico y cuyos clientes están distribuidos geográficamente. Los ejemplos de bases de datos en la nube incluyen MySQL, IBM Db2 y Microsoft SQL Server.

Base de datos orientada a columnas

Una base de datos orientada a columnas es un DBMS que almacena la información en columnas en lugar de filas. Gracias a su capacidad de acceder a los datos muy rápidamente, las bases de datos en columnas se utilizan principalmente en aplicaciones analíticas y en almacenes de datos. En las bases de datos orientadas a filas, estas se almacenan en bloques contiguos en un disco, mientras que, en las bases de datos orientadas a columnas, son las columnas las que se almacenan en bloques contiguos. Cuando una empresa necesita recuperar y analizar datos únicamente para una columna o grupo de columnas específico, ignorando todos los demás datos en un registro, las bases de datos en columnas son más eficientes. Ejemplos de DBMS orientados a columnas incluyen ClickHouse, MariaDB y Apache Cassandra.

Base de datos distribuida

En una base de datos distribuida, los datos se almacenan en varias ubicaciones físicas o bien en diferentes computadoras en la misma ubicación física. Para los usuarios, se ve como una única base de datos.

Archivos planos

Los archivos planos son archivos de texto en los que las entradas de datos suelen estar separadas por delimitadores (comas, tabulaciones, etc.). Los archivos planos son un sistema de almacenamiento de datos no relacionales cuyos datos se pueden integrar con los de otras bases de datos relacionales utilizando aplicaciones de administración de bases de datos como Microsoft Access. Un ejemplo típico de un archivo plano es un archivo de valores separados por comas (CSV). 

Base de datos jerárquica

En una base de datos jerárquica, los datos se almacenan en una estructura de tipo árbol. Los datos se recuperan de una base de datos jerárquica atravesando la estructura del árbol de arriba hacia abajo, haciendo uso de punteros. 

Una base de datos jerárquica utiliza un modelo de relación de uno a muchos, donde un nodo principal puede tener varios nodos secundarios. Un ejemplo de un modelo de almacenamiento de datos jerárquico es la forma en que se presentan las carpetas y los archivos en los administradores de archivos, como el explorador de Windows. 

Base de datos en memoria

Una base de datos en memoria (IMDB) almacena datos en dispositivos de memoria volátiles o en la memoria a corto plazo (RAM) de una computadora, lo que permite un acceso más rápido a la información. Tradicionalmente, si se corta la energía, se pierden los datos; sin embargo, en los sistemas modernos, la tecnología de memoria no volátil de acceso aleatorio permite conservar los datos incluso aunque se produzca un corte de energía. Una de las formas en que se consigue esto es mediante el failover o conmutación por error automática.

En la década de 1970, cuando se crearon las bases de datos relacionales, la memoria era un elemento muy costoso. Hoy en día, las aplicaciones pueden ejecutarse de manera eficiente utilizando IMDB sin perder información en caso de que se produzca un corte de energía. Las aplicaciones que requieren alto rendimiento y baja latencia, como los juegos en línea, el procesamiento geoespacial, el procesamiento de aprendizaje automático o el análisis de dispositivos médicos pueden usar IMDB no volátiles junto con bases de datos basadas en disco.

Muchas bases de datos incluyen opciones en memoria, como memcached y Redis. La plataforma Apache Ignite crea una capa en memoria sobre cualquier base de datos existente. Ejemplos de IMDB “puros” serían SQLite, Exasol, SAP HANA e IBM solidDB.

Base de datos JSON

Al igual que XML, JavaScript Object Notation (JSON) sirve para crear una especie de base de datos rudimentaria. JSON es un formato de intercambio de datos abierto que se utiliza para describir la información, y también es un tipo de base de datos de documentos que se puede utilizar para almacenar catálogos en sitios de comercio electrónico y proporcionar actualizaciones en vivo en sitios web.

TaffyDB es un sistema de base de datos de archivos planos que usa JSON para almacenar la información.

Base de datos de red

Una base de datos de red permite que los registros de varias tablas se asocien con un registro individual de otra tabla. A diferencia de una base de datos relacional tradicional basada en claves, una base de datos de red se basa en punteros.

Un modelo de base de datos de red se considera una versión avanzada de un modelo de datos jerárquico, ya que utiliza una estructura de grafo en lugar de una de árbol. En las bases de datos de red, los nodos principales se denominan ocupantes, y los nodos secundarios, miembros. En una base de datos de red, un nodo miembro puede tener más de un nodo ocupante. Los nodos ocupante y miembro forman un conjunto. Las entidades de este modelo tienen una relación de varios a varios.

Base de datos orientada a objetos

Una base de datos orientada a objetos almacena datos en forma de objetos, al igual que en la programación del mismo nombre. En los sistemas orientados a objetos, estos últimos pueden persistir. Los datos persistentes son aquellos que se guardan durante un período más largo del planteado inicialmente para ellos, y se almacenan en dispositivos de almacenamiento no volátiles. Una base de datos orientada a objetos utiliza un modelo de relación de varios a varios y, para el acceso a los datos, se emplean punteros. Ejemplos de bases de datos orientadas a objetos son las bases de datos móviles Magma y Realm.

Base de datos relacional de objetos

Las bases de datos relacionales de objetos son bases de datos híbridas que combinan las características de las bases de datos relacionales y las orientadas a objetos. La característica distintiva de las bases de datos relacionales de objetos es que admiten tipos agregados, como son las listas y los conjuntos. Un ejemplo de esto es una columna llamada dirección en una base de datos relacional que puede incluir una lista de información relacionada, como residencia, casa de vacaciones, etc. Ejemplos de sistemas de administración de bases de datos relacionales de objetos (ORDBMS) son PostgreSQL y Oracle.  

Base de datos de procesamiento de transacciones en línea (OLTP)

Un sistema de base de datos OLTP se ocupa de múltiples transacciones realizadas simultáneamente por parte de múltiples usuarios, como en aplicaciones de comercio electrónico. Una base de datos OLTP generalmente administra pequeñas cantidades de datos a la vez, como podría ser realizar una transacción bancaria en línea, pero debe admitir un gran volumen de usuarios. Las bases de datos que se utilizan a menudo para OLTP son MySQL, InterSystems Caché y VoltDB, que es una base de datos NewSQL que cumple con los principios de atomicidad, consistencia, aislamiento y durabilidad (ACID).

Base de datos personal

Cualquier medio físico que pueda almacenar datos es una base de datos, hasta un disco duro en una computadora. Sin embargo, las bases de datos que se usan y consideran como tales en informática suelen ser modelos de almacenamiento de datos complejos.

Un ejemplo de base de datos personal son los datos almacenados en dispositivos de uso individual, como computadoras personales, teléfonos móviles, tabletas y discos duros externos. El acceso y gestión de esta información se realiza mediante aplicaciones como Microsoft Office, software de sistemas para almacenar datos de configuración y de usuarios y aplicaciones funcionales.

Los dispositivos personales también utilizan IMDB como la RAM para mejorar el rendimiento del dispositivo.

Base de datos XML

Al igual que JSON, una base de datos XML (Extensible Markup Language) es como una base de datos rudimentaria. XML es un tipo de base de datos documental en el sentido de que los archivos se guardan con la extensión .xml, pueden almacenar datos que cumplen con el formato XML y pueden consultarse utilizando una herramienta de consulta de lenguaje como XQuery.

 

Sistemas de bases de datos híbridas

Las características únicas de las bases de datos relacionales y no relacionales en las aplicaciones modernas se han fusionado en algunas implementaciones para crear sistemas de bases de datos de modelo múltiple. Por ejemplo, OrientDB es una base de datos de gráficos NoSQL cuyos nodos son documentos.

Una base de datos que integra características de las bases de datos relacionales y no relacionales es otro tipo de base de datos híbrida. En este caso tenemos a NewSQL. 

Un tercer tipo de base de datos híbrida es una combinación de IMDB y una base de datos en disco. En este tipo de base de datos híbrida, los datos se pueden almacenar en la memoria principal, en un disco o en ambos mecanismos a la vez. Un ejemplo de este tipo de base de datos híbrida es Altibase.

 

 

PRTG, su monitor de base de datos, de un vistazo
 

DBMSs

 


Las funciones DBMS son componentes de software que administran grupos de tareas relacionadas. Las funciones DBMS incluyen diccionarios, almacenamiento, transformación, presentación, seguridad, control de acceso, copia de seguridad y recuperación, integridad de datos, acceso, interfaz, simultaneidad y módulos de administración de transacciones.

Por ejemplo, un DBMS almacena elementos de datos y metadatos en un diccionario de datos (DD). Un DBMS no sólo permite almacenar datos, sino también elementos relacionados con los mismos, como reglas de validación, formularios y definiciones de informes, así como esquemas que describan la estructura de la base de datos. Las funciones del DBMS están interrelacionadas. Por ejemplo, un módulo de control de acceso gestiona el acceso a los datos, mientras que el control de acceso múltiple permite que varios usuarios accedan a la base de datos sin comprometer la integridad de la información contenida.

El almacenamiento, acceso y gestión de los datos se efectúa de manera diferente en RDBMS y DBMS. En RDBMS, los datos se almacenan en filas dentro de tablas y se accede a ellos mediante un identificador de fila único llamado clave principal. Un RDBMS admite la normalización y las bases de datos distribuidas, amén de varios usuarios. En un DBMS, por otro lado, los datos se almacenan en forma jerárquica o de navegación. Un DBMS no admite la normalización ni las bases de datos distribuidas y sólo permite el acceso de usuarios individuales.

 

Características fundamentales de una base de datos

 


No existe una especificación formal para lo que constituye una base de datos, pero sí varios estándares de facto que brindan pautas a la hora de diseñar bases de datos que cumplan con las regulaciones internacionales con respecto a la información.

Consistencia

Una de las características fundamentales de las bases de datos es la consistencia. Esta se basa en uno de dos modelos teóricos: el modelo ACID y el modelo BASE (básicamente disponible, estado blando y consistencia eventual).

Una base de datos que utiliza el modelo ACID garantiza que los datos se almacenen de forma segura y coherente; es decir, que cuando un proceso almacena datos e indica que estos se han almacenado, no hay posibilidad de que se hayan perdido en el camino. Las bases de datos relacionales siempre adoptan el modelo ACID y algunas bases de datos de gráficos NoSQL están diseñadas para cumplir con el modelo ACID.

Una base de datos que utiliza el modelo BASE se centra en que los datos estén altamente disponibles para fines de escalado. Las bases de datos no relacionales suelen estar diseñadas para cumplir con el modelo BASE.

Normalización

La normalización es el proceso de organizar la información en una base de datos. La normalización implica la creación de tablas y el mapeo de relaciones entre tablas de acuerdo con reglas específicas diseñadas para proteger los datos, eliminar la redundancia (duplicación) y garantizar la ausencia de anomalías. Un ejemplo de una anomalía típica que evita la normalización es la creación de información sobre una venta sin disponer primero de información sobre el producto que se venderá.

Persistencia

La persistencia de datos asegura que cualquier información que se guarde se pueda recuperar incluso aunque el medio de almacenamiento o el sistema que usa los datos estén desconectados. Un ejemplo de persistencia es la capacidad de un usuario de recuperar sus ventanas de navegación recientes después de que su ordenador se cuelgue.

Escalabilidad

La escalabilidad es la capacidad de una base de datos para gestionar su crecimiento, como mayores volúmenes de datos y más usuarios. Tenemos el ejemplo de las redes sociales, que deben ser muy escalables para administrar a las personas estableciendo constantemente relaciones con los nuevos usuarios, publicando mensajes y cargando datos.

Integridad de los datos

La integridad de los datos se refiere a la precisión, la integridad, la coherencia, la seguridad y la protección de los datos. La integridad de los datos es fundamental para el cumplimiento normativo, como el reglamento general de protección de datos (GDPR).

Cardinalidad

La cardinalidad se refiere a la relación de los datos en una tabla de base de datos con respecto a otra tabla y está relacionada con el concepto de integridad de los datos. Un ejemplo de cardinalidad es la especificación de si la relación entre los valores de los datos es de muchos a muchos, de uno a uno o de muchos a uno; por ejemplo, una persona sólo puede tener un número de seguridad social. La cardinalidad es importante porque afecta a la eficiencia con que se realizan las consultas en las bases de datos a la hora de recuperar información.

Ventajas de las bases de datos

 

Bases de datos relacionales

Las bases de datos relacionales ofrecen mayor consistencia y fiabilidad que las bases de datos no relacionales, además de mitigar la redundancia de los datos. Las bases de datos relacionales proporcionan un fácil acceso a la información a través de un modelo de consulta simple y probado, alta seguridad, integridad de los datos y normalización.

Las bases de datos relacionales admiten propiedades ACID, lo que garantiza transacciones de base de datos fiables. También permiten el uso de consultas complejas y ofrecen indexación ilimitada.

 

Bases de datos no relacionales

Las bases de datos no relacionales proporcionan un mejor rendimiento y procesan grandes volúmenes de datos más rápido que las bases de datos relacionales. Ofrecen alta disponibilidad y no requieren de un esquema.

Las bases de datos no relacionales usan una escalabilidad horizontal, lo que significa que se expanden añadiendo nodos adicionales. La escalabilidad en las bases de datos no relacionales es más rentable que en las relacionales.

Las bases de datos no relacionales pueden almacenar y administrar tipos dispares de datos como fuentes de noticias, transmisiones de audio y vídeo y datos de aplicaciones móviles, sin modificar su arquitectura.

Contras de las bases de datos

 

Bases de datos relacionales

En comparación con otros tipos, las bases de datos relacionales son lentas y consumen más espacio en memoria debido a la forma en que almacenan datos físicamente. El proceso de normalización puede requerir muchas uniones (tablas de mapeo) lo que también ralentiza la velocidad de recuperación de los datos.

Las bases de datos relacionales utilizan escalabilidad vertical, lo que significa que se expanden aumentando la capacidad de los nodos existentes. La escalabilidad en las bases de datos relacionales resulta más costosa que en las no relacionales.

Las bases de datos relacionales pueden volverse complejas cuando tienen muchas tablas y resultar cada vez más complicado interactuar con otros sistemas igualmente complejos.

Las bases de datos relacionales son más costosas de mantener y no admiten datos no estructurados. También tienen límites en lo que respecta a la longitud de los campos.

 

Bases de datos no relacionales

Las bases de datos no relacionales no utilizan un lenguaje de consulta estandarizado y, por lo general, los lenguajes personalizados desarrollados por los proveedores de este tipo de tecnologías no son tan potentes como SQL. Tampoco tienen tantas herramientas a disposición de los usuarios como las bases de datos relacionales.

Las bases de datos no relacionales no son tan seguras como las relacionales. Carecen de integridad de datos incorporada y tampoco son compatibles con ACID; en cambio, se basan en la “consistencia eventual”.

Las bases de datos NoSQL practican un nivel más bajo de normalización que las sí SQL y, por lo tanto, pueden contener datos redundantes.

Existe poca uniformidad entre las bases de datos no relacionales o las interfaces estandarizadas para que se comuniquen entre sí.

Relacional + no relacional = NewSQL


Dos de las principales razones para utilizar una base de datos son el acceso rápido y eficiente a los datos y garantizar la persistencia de la información. Las aplicaciones modernas, desde redes sociales, sistemas de previsión meteorológica y programas de inteligencia artificial, requieren enormes cantidades de procesamiento de datos en tiempo real. A pesar de que, estadísticamente, las bases de datos relacionales siguen usándose en mayor proporción, los sistemas de bases de datos modernos a menudo integran diferentes bases de datos (tanto de código abierto como propietarias), DBMS, almacenamiento físico y virtual y frameworks de bases de datos.

NewSQL es un sistema de administración de bases de datos relacionales que tiene las propiedades escalables de una base de datos NoSQL. Las bases de datos NewSQL admiten ACID, OLTP, escalado vertical y horizontal, consultas complejas, múltiples tipos de almacenes y sistemas de bases de datos distribuidos.

Un ejemplo de un sistema de base de datos combinado moderno es Spanner de Google. Spanner es un servicio distribuido de almacenamiento y administración de bases de datos SQL, pero se le suele definir como una base de datos NewSQL alojada en la nube. Si bien las bases de datos relacionales admiten SQL y son más consistentes que las bases de datos NoSQL, no escalan tan bien como estas últimas. Aunque Spanner es una base de datos relacional, proporciona ciertas características para las que se diseñaron las bases de datos NoSQL, como escalabilidad global, rendimiento optimizado mediante fragmentación automática, alta disponibilidad y mínima latencia. La fragmentación es el proceso de distribuir la información contenida en una base de datos grande en varias bases de datos más pequeñas para distribuir su carga.

Otros ejemplos de productos y servicios de bases de datos NewSQL incluyen MemSQL, Infobright, ScaleBase y TransLattice. 

 

Monitoreo de bases de datos


El monitoreo de la base de datos garantiza un rendimiento óptimo de la información y un buen uso de los recursos. Por ejemplo, el rendimiento de SQL se mide por la rapidez y la eficacia con que se realizan las consultas de SQL, y la planificación del almacenamiento ayuda a estimar la capacidad real necesaria antes de que se alcancen los límites de espacio disponible.

El monitoreo proactivo de la base de datos identifica problemas potenciales de seguridad antes de que se conviertan en brechas importantes y es obligatorio para cumplir con las legislaciones de protección y privacidad de datos, como GDPR.

El rendimiento de la base de datos posee una influencia directa sobre el tiempo de actividad, la velocidad de carga de las páginas web, el rendimiento geográfico, la utilización eficiente del hardware y la experiencia del cliente.