¿Qué es una base de datos relacional?


Es una base de datos que almacena y proporciona un punto de acceso a los datos entre sí, conectándolos a través de tablas: hablamos pues del modelo relacional.

relational_databases_hero

Definición de la base de datos relacional

El sistema de gestión de bases de datos relacionales (SGBDR o RDBMS, por sus siglas en inglés) constituye un modelo mayoritario en el mercado. Numerosos servicios web o aplicaciones empresariales funcionan gracias a este tipo de bases de datos para poder estructurar y extraer la información esencial de los mismos. Algunas grandes empresas del cloud han desarrollado sus propios modelos (por ejemplo, Db2 que pertenece a IBM, Oracle Database y Microsoft SQL Server). No obstante, muchos proyectos SGBDR son open source:

  • MySQL es el sistema más utilizado en el mundo. Aunque lo adquirió Oracle en 2009, su base se fundamenta sobre un proyecto libre y gratuito. En respuesta a la adquisición, los desarrolladores crearon su sucesor, siempre en open source: MariaDB;
  • PostgreSQL es también una solución de acceso libre. Un equipo de desarrolladores independientes se encarga de su evolución. Su funcionamiento difiere ligeramente de MySQL, ya que es un modelo relacional-objeto (SGBDRO);
  • SQLite es una biblioteca pública cuya particularidad es estar alojada directamente en un programa, y no en modo cliente-servidor.

El acrónimo SQL corresponde al lenguaje del mismo nombre: Structured Query Language. Se trata de la interfaz estándar para una base de datos relacional, cuyas instrucciones se utilizan para estructurar los datos y organizar la información que queremos extraer de ellos.

La arquitectura de la base de datos relacional

La organización de estas bases de datos se basa en el teorema de Edgar F. Codd en 1971: el modelo relacional que establece que cualquier petición «natural» puede traducirse en álgebra relacional y, por tanto, en un lenguaje de consulta inteligible por un ordenador (mediante SQL). En este modelo, una relación (o tabla) está formada por varios atributos organizados en varias filas y columnas, llamadas tuplas. La tabla entera se ve como un conjunto de tuplas. Tomemos el siguiente ejemplo:

schema_relational_databases

Cada elemento de la relación está asociado a un tipo de datos (valor) por un esquema de relación de la siguiente forma:

Relación = (Atributo1: Tipo1, Atributo2: Tipo2,.. , Atributon: Tipon)

De este modo, podemos definir un elemento preciso y asignarle los datos del valor de una tupla para crear nuestra tabla. Así pues, una base de datos relacional es solo un conjunto de distintas tablas conectadas entre sí.

¿Cómo funciona una base de datos relacional?

Para administrar sus bases de datos, los usuarios podrán comunicarse con la interfaz de gestión a través de un lenguaje: el SQL, basado en el álgebra relacional. Todos los comandos se expresan en SQL y detallan cada etapa de desarrollo de la base de datos. Este lenguaje permite seleccionar información específica, indicar su ubicación en la base de datos, hacerla interactuar, etc.

No obstante, hay que tener en cuenta ciertas particularidades.

Las claves

Consiste en un conjunto de atributos que permiten identificar un conjunto preciso de datos. Por ejemplo, utilizando la tabla anterior: A1 + A2 puede definir los clientes que han comprado un automóvil nuevo en el segundo semestre, donde A1 define la compra del vehículo y A2 el período de compra. Sin embargo, ninguno de los atributos seleccionados puede tener como valor cero. De lo contrario, el conjunto en realidad no existe. Cada tabla tiene una clave primaria que se puede exportar a otra tabla (como clave externa) con el fin de vincular conjuntos de datos.

Sin embargo, cuando dos tablas están unidas por claves externas, solo pueden responder a una única consulta. Para poder determinar información que implique varias tablas, se debe usar una función JOIN.

JOIN

Son operaciones que permiten interrogar varias tablas simultáneamente. Los datos seleccionados se agrupan y filtran en función de las condiciones definidas por el usuario.

La función SQL JOIN es un elemento fundamental en las bases de datos multitabla para poder generar información explotable y de calidad.

Existen tres tipos de JOIN importantes:

  • INNER JOIN;
  • OUTER JOIN;
  • SELF JOIN.

En raras ocasiones se estudian las tablas de datos por separado. En general, nos interesan los conjuntos de datos con un significado preciso, repartido en distintas tablas. Para ello, hay que normalizar previamente los datos.

Normalización

Si se desea extraer los datos de las tablas, es necesario realizar varias consultas a las distintas tablas. Sin embargo, esta operación requiere tiempo, es poco práctica y puede dar lugar a duplicaciones, lo que puede alterar el tratamiento de los datos.

Aquí es donde entra en juego la normalización. Procesar los datos por relaciones buscando conjuntos de datos vinculados por claves externas vistas anteriormente permite realizar una única consulta.

La diferenciación con respecto a otros modelos de bases de datos

No todas las bases de datos se basan en este modelo de tabla. Pueden inspirarse en ellos, pero tienen sus propias particularidades. En los años 80, el modelo «orientado a objetos» surgió y reinventó la forma en que se almacenan los datos. En el nuevo milenio aparece el modelo «NoSQL», que cuestiona el modelo relacional de las bases de datos. El objetivo era desarrollar bases de datos más prácticas para análisis avanzados como el big data. Todos estos modelos tienen sus características y ventajas.

Base de datos orientada a objetos

Permite almacenar los datos en forma de objetos. Por «objeto» se entiende un grupo de datos en el que se define la interfaz para acceder a dicha información.

El sistema SGBDO asigna automáticamente un identificador (ID) a cada objeto, permitiendo acceder a él a través de distintos métodos. La principal diferencia con la base de datos relacional es la posibilidad de asignar un ID diferente a dos objetos distintos con los mismos valores. Y esto, a diferencia de la tupla, que sólo se puede identificar por un valor.

También tienen su propio lenguaje: el OQL (Object Query Language).

Base de datos orientada a documentos

El almacenamiento en estas bases de datos es completamente distinto del modelo relacional, ya que se basa en datos heterogéneos de documentos tratados individualmente (y no en tablas). Esto puede ir desde documentos de texto en JSON, YAML o XML, a datos no estructurados como archivos de imagen, vídeo o audio.

Estos documentos se guardan en combinaciones clave/valor. Tenga en cuenta que el término clave es el mismo que el de un atributo, por lo que no tiene nada que ver con las claves de la base de datos relacional.

Se pueden agrupar varios documentos para formar colecciones, permitiendo así clasificarlas. Las consultas para manipular la base de datos orientada a documentos se presentan como funciones, por ejemplo en JavaScript. Esta base de datos está especialmente adaptada a la gestión de grandes cantidades de información.

Ventajas y desventajas de las bases de datos relacionales

Aunque las bases de datos relacionales se han impuesto en gran medida, también tienen sus límites. La fuente de su fortaleza también puede ser su debilidad con ciertos tipos de datos (por ejemplo, grandes volúmenes, multimedia, objetos).

Ventajas

  • El modelo en tablas: es bastante sencillo de crear. Permite consultar datos de clientes o stocks sin dificultad y rápidamente.
     
  • Baja redundancia de los datos: gracias a la normalización, podrá evitar distorsionar la información que utiliza su base de datos y aumentar su coherencia.
     
  • Tratamiento de los datos cuantitativos: permite asociar valores a los atributos.
     
  • Lenguaje de consulta estándar (SQL): las aplicaciones pueden desarrollarse y ejecutarse en diversos proyectos web con una mayor compatibilidad.

Los inconvenientes

  • No todos los datos pueden mostrarse en tablas: los datos abstractos y los datos no estructurados no pueden funcionar en una base de datos relacional.
     
  • Los datos no pueden tener jerarquías: a diferencia de las bases de datos orientadas a objetos. Por lo tanto, no es posible realizar un análisis específico con subtuplas o clases de tuplas, por ejemplo.
     
  • La segmentación de datos: como resultado de la normalización, la solución permite separar los espacios de almacenamiento de los datos. Esto conlleva peticiones complejas en varias tablas a nivel de la aplicación. Este gran número de consultas simultáneas en varias tablas disminuye el rendimiento durante los análisis y aumenta el tiempo de cálculo.

En líneas generales, se trata de las bases de datos más populares del mundo. No están adaptadas a datos heterogéneos o a determinados casos de uso, como el big data.

Las bases de datos relacionales de OVHcloud

Ofrecemos una amplia gama de bases de datos, entre las cuales hay dos modelos relacionales a su disposición:

  • MySQL: líder de la base de datos relacional. Puede adquirir MySQUL en modo «administrado», ahorrando así la gestión de su base de datos y su monitorización.
  • PostgreSQL: es un modelo de base de datos relacional capaz de procesar grandes cargas de trabajo. También disponible en modo «administrado».
  • Además, ofrecemos bases de datos SQL privadas, como MariaDB para su web hosting.

Puede consultar todas nuestras bases de datos administradas, diseñadas para facilitar la gestión de sus datos con total seguridad. Todas estas bases de datos están alojadas en nuestros datacenters y están protegidas por normas de seguridad estrictas. De esta manera garantizamos la soberanía y la confidencialidad de sus datos.