Introducción a Bases de Datos

Desde los orígenes de la comunicación humana, hemos tenido la necesidad de almacenar la información para la comunicación directa o indirecta. La llegada de nuevos métodos de procesamiento de la información siempre ha acarreado la aparición de nuevos métodos de almacenamiento de la misma.
Con el establecimiento de la escritura surgieron los libros que, con el paso del tiempo y el aumento de éstos, dieron lugar a las bibliotecas.

En 1946 con la aparición de las primeras computadoras se fueron generando nuevas necesidades de almacenamiento para la información procesada por las mismas. Al principio, la información era tratada secuencialmente por lotes y los requisitos eran mínimos. Estos primeros procesos creaban simples ficheros de texto almacenados en cinta y consultaban una serie de ficheros maestros, todo de forma secuencial.
El problema surgió con la llegada de las primeras redes de ordenadores, las cuales requerían un acceso compartido a los ficheros, sumado a que las distintas aplicaciones generaban mucha información redundante. De aquí surgió la necesidad de crear sistemas de ficheros relacionados entre sí, siendo dicha necesidad la que dio lugar a los primeros Datanbank y, más tarde, a las primeras Bases de datos, que eliminaban dicha redundancia y permitían el acceso compartido y concurrente a la información por varios terminales.
Con las bases de datos surgieron los DBMS, programas destinados a gestionar de manera eficiente del acceso compartido.

Podemos definir una base de datos como una colección de información organizada de forma que se garantiza su correcto procesamiento por cualquier red de ordenadores. El aumento masivo de los sistemas de información y el elevado volumen de la misma que se empezó a manejar promovió la especialización de las bases de datos. Según las distintas necesidades de almacenamiento y explotación de la información han surgido diferentes tipos.
A continuación, describiremos brevemente las principales bases de datos que se utilizan en la actualidad:

  • Bases de datos jerárquicas: La información se organiza en nodos jerárquicos. Desde un nodo raíz, cada nodo puede contener información de varios hijos y así sucesivamente. Son utilizadas en sistemas con gran volumen de datos y datos compartidos. Una evolución de este tipo de bases de datos son las bases de datos de red en las que cada nodo puede tener más de un nodo padre, formándose una red de nodos interconectados.
  • Transaccionales: El diseño de la base de datos está encaminado a recoger las diferentes transacciones que se producen en un sistema. El diseño e implementación están orientados a la rapidez y seguridad de las transacciones, y a la consistencia y durabilidad de los datos. Las propiedades de los sistemas transaccionales se definen por el acrónimo ACID, Atomicity, consistency, isolation and durability. Se deben crear sistemas totalmente fiables, que permitan la recuperación de los errores (revirtiendo los procesos que sean necesarios) y que aíslen las diferentes fuentes que acceden al programa para evitar errores e incoherencias.
  • Relacionales: Se basan en la relación de datos estructurados, fiables y homogéneos. Los datos están relacionados conceptualmente, no por su utilización y su implementación en máquina. Las diferentes entidades del sistema son accesibles en tiempo real y compartidas concurrentemente por los usuarios. El centro de los modelos relacionales son las entidades y las relaciones entre ellas, pudiendo haber relaciones normales, de herencia, composición… todas ellas basadas en las relaciones que se producen en el mundo real de las entidades lógicas.
  • Multidimensionales (BDMD): Son bases de datos optimizadas para su explotación en línea. La información de la base de datos puede verse contenida en una sola tabla. En las tablas multivaluadas se almacenan registros referidos a las dimensiones o métricas que se van a analizar. Estas tablas se asimilan a un hipercubo, las dimensiones de los cubos se corresponden con la tabla y el valor almacenado en cada celda equivale al de la métrica.
  • Orientadas a objetos: Están basadas en el concepto de objeto de programación. Tradicionalmente, las bases de datos almacenaban los datos y sus relaciones y los procedimientos se almacenaban en los programas de aplicación. En estas bases de datos, sin embargo, se combinan los procedimientos de una entidad con sus datos. Estas bases de datos también incluyen los conceptos clave de un modelo de objetos, se encapsula la información de cada objeto, se permite herencia entre los objetos y también polimorfismo.
  • Clave-valor: Basadas en el concepto de las tablas hash. Se basan en almacenar una serie de registros clave-valor. La clave es un string convencional mientras que los valores pueden ser desde un string hasta una lista o un conjunto. Está diseñada para almacenar grandes cantidades de información, que puede almacenarse en sesión o caché, para que ser compartida por varios servidores. Un ejemplo de este tipo de bases de datos es Redis.
  • Orientadas a columnas: La principal diferencia es que los registros no se organizan en filas sino en columnas. Todos el dominio de valores de un caso de uso, por ejemplo, “Nombre de persona”, se pueden acceder como si fueran una única unidad. Cambia totalmente el paradigma de la consulta. Tradicionalmente se recorrían todas las filas de una o varias tablas para devolver los campos seleccionados que cumplieran cierta selección, ahora se seleccionan unos pocos registros de los que nos traemos todo el dominio de valores que cumpla las condiciones. Esto tiene sentido en consultas analíticas.
  • Orientada a documentos: Cada registro corresponde a un documento. Estos documentos se diferencian de los registros de las bases de datos SQL en que se autodefinen ellos mismos, es decir, cada documento define el formato que va a tener, son libres de esquemas (diferente número de campos, campos de longitud variable, campos multivalor, etc.). Los documentos comparten entre sí una parte de información similar y otra muy diferente y se identifican por una clave única, que puede ser desde un string hasta una URI. Las consultas suelen ser dinámicas y muy dispares, normalmente, se dispone de un API o lenguaje de interrogación para las consultas de documentos según el contenido de los mismos. Este tipo de consultas son muy útiles de cara a los análisis estadísticos. Ejemplos de bases de batos documentales son MongoDB, CouchDB, ArangoDB…

En siguientes artículos podremos conocer en profundidad cada tipología, ver ventajas y desventajas de cada una, y analizar su posición y uso dentro del mercado actual de BI.

1 comentario

  1. Pingback: ¿Qué es una ETL?

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*
*

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.