Hay relaciones o no en las Bases de Datos (parte 2)!

Después del pasado artículo sobre “El ABC de las Bases de Datos”, creo que es importante ampliar estos conceptos un poco más hacia las llamadas Base de Datos no relacionales (“NoSQL”) y las “Relacionales”.

Según Wikipedia, el concepto de Bases de Datos no relacionales se refiere a aquellas que no usan el lenguaje de programación SQL para correr las búsquedas (o los llamados Query en inglés). Este tipo de sistemas normalmente no usan esquemas de tablas para guardar los datos. En lugar de estas se usan esquemas estructurados como por ejemplo los llamados key-value stores, implementaciones del tipo BigTable, bodegas de almacenamiento (document store DB) y graph databases.

Es posible que hasta el momento para el lector esto parezca escrito en un lenguaje incomprensible como el “arameo antiguo”, así que vamos a empezar por describir lo que es una base de datos relacional para que, fácilmente, pueda diferenciar el concepto de lo que es una Base de Datos relacional de una no relacional.

via GIPHY

Las Bases de Datos relacionales permiten establecer interconexiones o, como su nombre lo indica, relaciones entre los datos que se encuentran guardados en objetos llamados tablas, los cuales, a su vez almacenan la información en una unidad más pequeña llamada registros. Dichos registros se organizan por columnas que tienen su propio identificador (ubicación espacial o campo de base de datos). A través de todas estas conexiones se establecen relaciones entre tablas que procesan los datos de una manera organizada. Las bases de datos relacionales son muy consistentes y precisas a la hora de transmitir y entregar datos gracias a la estructura de tablas que poseen.

Por su parte, las DB no relacionales suelen tener la habilidad de procesar datos a una gran velocidad (casi en tiempo real) pero de una manera asincrónica, ya que no poseen un esquema de tablas sino de lectura de diversos archivos. Estas tienen la capacidad de organizar diversos tipos de archivos (como por ejemplo imágenes, videos, audio, etc…) en estructuras de base de datos e incluso en diversos servidores de manera redundante, con la finalidad de poder escalar o agrandar la infraestructura según las necesidades del cliente y, sobre todo, para lograr soportar la caída de cualquier servidor sin afectar la manera en la cual se presta el servicio (funciona como nodos o partes independientes que se comunican con el núcleo sólo cuando es necesario, de tal manera que pueden realizar varios procesos de manera independiente cada uno de los demás).

Con el auge de las redes sociales y otros sistemas que necesitan procesar millones de datos de manera inmediata, las bases de datos NOSQL empezaron a volverse más populares hasta estar presentes en sistemas usados por Google, Amazon, Twitter, Facebook y similares que, lentamente, han ido estableciendo el concepto de la web en tiempo real.

En la siguiente parte del artículo sobre este tema, se va a ampliar un poco más el concepto y las aplicaciones practicas de las DB en la vida diaria.