¿Qué es una base de datos relacionales?
Explore la solución de base de datos relacional de IBM Suscríbase a las actualizaciones sobre el tema en torno a la IA
Ilustración con collage de pictogramas de nubes, gráfico circular y pictogramas gráficos sobre lo siguiente
¿Qué es una base de datos relacionales?

Una base de datos relacional es un tipo de base de datos que organiza los datos en filas y columnas, que colectivamente forman una tabla donde los puntos de datos están relacionados entre sí.

Por lo general, los datos se estructuran en varias tablas, que se pueden unir a través de una clave principal o externa. Estos identificadores únicos muestran las diferentes relaciones que existen entre las tablas, y estas relaciones se ilustran, por lo general, a través de diferentes tipos de modelos de datos. Los analistas utilizan consultas SQL para combinar diferentes puntos de datos y resumir el rendimiento empresarial, lo que permite a las organizaciones obtener información, optimizar los flujos de trabajo e identificar nuevas oportunidades.

Por ejemplo, imagine que su empresa tiene una tabla de base de datos con información de clientes, donde se incluyen datos de la empresa a nivel de cuenta. También puede haber una tabla diferente, que describe todas las distintas transacciones que se alinean con esa cuenta. Juntas, estas tablas proporcionan información sobre los diferentes sectores que compran un producto de software específico.

Las columnas (o campos) de la tabla de clientes pueden ser ID de clienteNombre de la empresaDirección de la empresaSector, etc.; las columnas de una tabla de transacciones pueden ser Fecha de transacciónID de clienteImporte de la transacciónMétodo de pago, etc. Las tablas se pueden unir con el campo ID de cliente común. Por lo tanto, puede consultar la tabla para generar informes valiosos, como informes de ventas por sector o empresa, que pueden servir de base para enviar mensajes a los posibles clientes.

Las bases de datos relacionales también suelen estar asociadas a bases de datos transaccionales, que ejecutan comandos o transacciones de forma colectiva. El mejor ejemplo para ilustrar este concepto es una transferencia bancaria. Se retira una cantidad definida de una cuenta y luego se deposita en otra. La cantidad total de dinero se retira y deposita, y esta transacción no puede ocurrir en ningún sentido parcial. Las transacciones tienen propiedades específicas. Representadas por el acrónimo ACID, las propiedades ACID se definen como:

  • Atomicidad: todos los cambios en los datos se realizan como si fueran una sola operación. Es decir, se realizan todos los cambios o no se realiza ninguno.
  • Consistencia: los datos permanecen en un estado invariable de principio a fin, lo que refuerza la integridad de los datos.
  • Aislamiento: el estado intermedio de una transacción no es visible para otras transacciones y, como resultado, las transacciones que se ejecutan simultáneamente parecen estar serializadas.
  • Durabilidad: después de completar con éxito una transacción, los cambios en los datos persisten y no se deshacen, incluso en el caso de un error del sistema.

Estas propiedades permiten procesar las transacciones de manera fiable.

Base de datos relacional vs. sistema de gestión de bases de datos relacionales

Mientras que una base de datos relacional organiza los datos en función de un modelo de datos relacional, un sistema de gestión de bases de datos relacionales (RDBMS) hace referencia al software de base de datos subyacente que permite a los usuarios mantenerla. Estos programas permiten a los usuarios crear, actualizar, insertar o eliminar datos en el sistema y proporcionan:

  • estructura de datos
  • Acceso multiusuario
  • Control de privilegios
  • Acceso de red

Algunos sistemas RDBMS conocidos son MySQL, PostgreSQL e IBM DB2. Además, un sistema de base de datos relacional difiere de un sistema básico de gestión de bases de datos (DBMS) en que almacena datos en tablas, mientras que un DBMS almacena información como archivos.

IA generativa y ML para la empresa

Conozca los beneficios clave de la IA generativa y cómo las organizaciones pueden incorporar la IA generativa y el machine learning en su negocio.

Contenido relacionado

Lea la guía para líderes de datos

Configure, opere y escale una base de datos Db2 en Amazon RDS con tan solo unos clics
¿Qué es SQL?

Inventado por Don Chamberlin y Ray Boyce en IBM, el lenguaje de consultas estructuradas (SQL) es el lenguaje de programación estándar que se utiliza para interactuar con los sistemas de gestión de bases de datos relacionales, lo que permite a los gestores de bases de datos añadir, actualizar o eliminar filas de datos fácilmente. Originalmente conocido como SEQUEL, se simplificó a SQL por una cuestión de derechos de marca. Las consultas SQL también permiten a los usuarios recuperar datos de bases de datos utilizando unas pocas líneas de código. Dada esta relación, es fácil entender por qué las bases de datos relacionales también se denominan a veces como "bases de datos SQL".  

Usando el ejemplo anterior, podría crear una consulta para buscar las 10 transacciones más importantes de una empresa en un año dado con el siguiente código:

SELECT COMPANY_NAME, SUM(TRANSACTION_AMOUNT)

FROM TRANSACTION_TABLE A

LEFT JOIN TABLA_CLIENTE B

ON A.CUSTOMER_ID = B.CUSTOMER_ID

WHERE YEAR(DATE) = 2022

GROUP BY 1

ORDER BY 2 DESC

LIMIT 10

La capacidad de unir datos de esta manera nos ayuda a reducir la redundancia dentro de nuestros sistemas de datos, lo que permite a los equipos de datos mantener una tabla maestra para los clientes en lugar de duplicar esta información si hubiera otra transacción en el futuro. Si desea saber más, consulte  este artículo (enlace externo a IBM), en el que Don profundiza sobre la historia de SQL.

Breve historia de las bases de datos relacionales

Antes de las bases de datos relacionales, las empresas utilizaban un sistema de base de datos jerárquico con una estructura en forma de árbol para las tablas de datos. Estos primeros sistemas de gestión de bases de datos (DBMS) permitían a los usuarios organizar grandes cantidades de datos. Sin embargo, eran complejos, a menudo propiedad de una aplicación en particular y con formas limitadas de extraer información de los datos. Estas limitaciones finalmente llevaron al investigador de IBM, Edgar F. Codd, a publicar un documento (enlace externo a IBM) (PDF, 1,5 MB) en 1970, titulado "A Relational Model of Data for Large Shared Data Banks" (Un modelo relacional de datos para grandes bancos de datos compartidos), que teorizó el modelo de base de datos relacional. En este modelo propuesto, la información podría recuperarse sin conocimientos informáticos especializados. Propuso organizar los datos en función de relaciones significativas como tuplas o pares atributo-valor. Los conjuntos de tuplas se denominaban relaciones y permitían, en última instancia, la fusión de datos entre tablas.

En 1973, el San Jose Research Laboratory, ahora conocido como Almaden Research Center, puso en marcha un programa llamado System R (R de relacional) para probar esta teoría relacional con lo que denominó "una implementación de fuerza industrial". Más tarde, se convirtió en un campo de pruebas para SQL, lo que permitió su adopción generalizada en poco tiempo. Sin embargo, la adopción de SQL por parte de Oracle tampoco perjudicó su popularidad entre los gestores de bases de datos.

En 1983, IBM introdujo la familia DB2 de bases de datos relacionales, llamada así porque era la segunda familia de software de gestión de bases de datos de IBM. Hoy en día, es uno de los productos más exitosos de IBM, que continúa gestionando miles de millones de transacciones todos los días en la infraestructura de la nube y sentando las bases de las aplicaciones de machine learning.

Bases de datos relacionales vs. no relacionales

Mientras que las bases de datos relacionales estructuran los datos en un formato tabular, las bases de datos no relacionales no tienen un esquema de base de datos tan rígido. De hecho, las bases de datos no relacionales organizan los datos de manera diferente según el tipo de base de datos. Independientemente del tipo de base de datos no relacional, todas tienen como objetivo resolver los problemas de flexibilidad y escalabilidad inherentes a los modelos relacionales que no son ideales para formatos de datos no estructurados, como texto, vídeo e imágenes. Estos tipos de bases de datos incluyen:

  • Almacén clave-valor: este modelo de datos sin esquema se organiza en un diccionario de pares clave-valor, donde cada elemento tiene una clave y un valor. La clave podría ser algo similar a lo que se encuentra en una base de datos SQL, como el ID de un carrito de la compra, mientras que el valor es una matriz de datos, como cada artículo del carrito de la compra de ese usuario. Se utiliza habitualmente para almacenar en caché la información de la sesión del usuario, como en el caso de los carritos de la compra. Sin embargo, no es lo ideal cuando se necesita extraer varios registros a la vez. Redis y Memcached son ejemplos de bases de datos de código abierto con este modelo de datos.
  • Almacén de documentos: como sugiere el nombre, las bases de datos de documentos almacenan datos como documentos. Pueden ser útiles en la gestión de datos semiestructurados y, por lo general, los datos se almacenan en los formatos JSON, XML o BSON. Esto mantiene los datos juntos cuando se utilizan en aplicaciones, lo que reduce la cantidad de traducción necesaria para utilizar los datos. Los desarrolladores también disfrutan de una mayor flexibilidad, ya que no es necesario que los esquemas de datos coincidan entre documentos (por ejemplo, name vs. first_name). Sin embargo, esto puede resultar problemático para transacciones complejas y corromper los datos. Los casos de uso más populares de las bases de datos de documentos son los sistemas de gestión de contenidos y los perfiles de usuario. Un ejemplo de una base de datos orientada a documentos es MongoDB, el componente de base de datos de la pila MEAN.
  • Almacén de columna ancha: estas bases de datos almacenan información en columnas, lo que permite a los usuarios acceder solo a las columnas que necesitan sin asignar memoria adicional a datos irrelevantes. Esta base de datos intenta resolver las deficiencias de los almacenes clave-valor y de documentos, pero dado que puede ser un sistema más complejo de administrar, no se recomienda su uso para equipos y proyectos más nuevos. Apache HBase y Apache Cassandra son ejemplos de bases de datos de columna ancha y código abierto. Apache HBase se basa en el sistema de ficheros distribuido de Hadoop que proporciona una forma de almacenar conjuntos de datos dispersos, de uso común en muchas aplicaciones de big data. Apache Cassandra, por otro lado, ha sido diseñado para administrar grandes cantidades de datos en múltiples servidores y clústeres que abarcan múltiples centros de datos. Se ha utilizado para una variedad de casos de uso, como sitios web de redes sociales y análisis de datos en tiempo real.
  • Almacén de gráficos: este tipo de base de datos suele albergar datos de un grafo de conocimiento. Los elementos de datos se almacenan como nodos, aristas y propiedades. Cualquier objeto, lugar o persona puede ser un nodo. Una arista define la relación entre los nodos. Las bases de datos de grafos se utilizan para almacenar y administrar una red de conexiones entre elementos dentro del grafo. Neo4j (enlace externo a IBM), un servicio de base de datos orientada a grafos basado en Java con una edición comunitaria de código abierto donde los usuarios pueden adquirir licencias para copias de seguridad en línea y extensiones de alta disponibilidad, o una versión con licencia preempaquetada con copia de seguridad y extensiones incluidas.

Las bases de datos NoSQL también dan prioridad a la disponibilidad sobre la coherencia.

Cuando los ordenadores se ejecutan a través de una red, siempre deben decidir si dan prioridad a resultados coherentes (donde cada respuesta es siempre la misma) o a un alto tiempo de actividad, llamado "disponibilidad". Es lo que se denomina "teoría CAP" (del acrónimo en inglés de Consistency, Availability, Partition tolerance). Las bases de datos relacionales garantizan que la información esté siempre sincronizada y sea coherente. Algunas bases de datos NoSQL, como Redis, prefieren proporcionar siempre una respuesta. Esto significa que la información que recibe de una consulta puede ser incorrecta por unos segundos, tal vez hasta medio minuto. En las redes sociales implica, por ejemplo, ver una foto de perfil antigua cuando la más reciente es de hace apenas unos instantes. La alternativa podría ser un tiempo de espera o un error. Por otro lado, en las transacciones bancarias y financieras, un error y un nuevo envío pueden ser preferibles a información antigua e incorrecta.

Para conocer las diferencias entre SQL y NoSQL, consulte "Bases de datos SQL vs. NoSQL: ¿en qué se diferencian?".

Beneficios de las bases de datos relacionales

El principal beneficio de las bases de datos relacionales es la capacidad de crear información significativa mediante la unión de tablas. La unión de tablas permite comprender las relaciones entre los datos o cómo se conectan las tablas. SQL incluye la capacidad de contar, agregar, agrupar y combinar consultas. SQL puede realizar funciones matemáticas y subtotales básicas, así como transformaciones lógicas. Los analistas pueden ordenar los resultados por fecha, nombre o cualquier columna. Estas características hacen que el método relacional sea la herramienta de consulta más popular entre las empresas.

Las bases de datos relacionales tienen varias ventajas en comparación con otros formatos de bases de datos:

Facilidad de uso

En virtud de la vida útil de sus productos, existe una mayor comunidad en torno a las bases de datos relacionales, lo que perpetúa parcialmente su uso continuo. SQL también facilita la recuperación de conjuntos de datos de varias tablas y la realización de transformaciones sencillas, como el filtrado y la agregación. El uso de índices en bases de datos relacionales también les permite localizar esta información rápidamente sin tener que buscar en cada fila de la tabla seleccionada.

Si bien las bases de datos relacionales se han considerado históricamente como una opción de almacenamiento de datos más rígida e inflexible, los avances en la tecnología y las opciones de DBaaS están cambiando esa percepción. Aunque sigue habiendo una mayor carga para desarrollar esquemas en comparación con las ofertas de bases de datos NoSQL, las bases de datos relacionales se están volviendo más flexibles a medida que migran a entornos en la nube.

Menor redundancia 

Las bases de datos relacionales eliminan la redundancia de dos maneras. El modelo relacional en sí mismo reduce la redundancia de datos a través de un proceso conocido como normalización. Como se indicó anteriormente, una tabla de clientes solo debe guardar registros únicos de información de clientes en lugar de duplicar esta información para varias transacciones.

Los procedimientos almacenados también ayudan a reducir el trabajo repetitivo. Por ejemplo, si el acceso a la base de datos está restringido a determinados roles, funciones o equipos, un procedimiento almacenado puede ayudar a administrar el control de acceso. Estas funciones reutilizables ahorran tiempo a los desarrolladores de aplicaciones, que pueden dedicarse a tareas de mayor impacto.

Facilidad para realizar copias de seguridad y recuperarse ante desastres 

Las bases de datos relacionales son transaccionales, es decir, garantizan que el estado de todo el sistema sea el mismo en todo momento. La mayoría de las bases de datos relacionales ofrecen opciones sencillas de exportación e importación, lo que hace que la copia de seguridad y la restauración sean triviales. Estas exportaciones pueden realizarse incluso mientras la base de datos se está ejecutando, lo que facilita la restauración en caso de error. Las bases de datos relacionales modernas, basadas en la nube, pueden realizar una duplicación continua, lo que hace que la pérdida de datos en la restauración se mida en segundos o menos. La mayoría de los servicios gestionados en la nube le permiten crear réplicas de lectura, como en IBM Cloud Databases for PostgreSQL. Estas réplicas de lectura le permiten almacenar una copia de solo lectura de sus datos en un centro de datos en la nube. Las réplicas también se pueden pasar a instancias de lectura/escritura para la recuperación ante desastres.

Soluciones relacionadas
IBM Db2

Descubra IBM Db2, la base de datos nativa de la nube diseñada para impulsar las transacciones de baja latencia y el análisis en tiempo real a escala. 

Explore IBM Db2
IBM Cloud Databases for PostgreSQL

Descubra PostgreSQL como servicio, creado para la empresa con integración nativa en IBM Cloud.

Explore IBM Cloud Databases for PostgreSQL
IBM Hyper Protect Virtual Servers for Virtual Private Cloud

Hyper Protect Virtual Servers for Virtual Private Cloud (VPC) es un tiempo de ejecución de contenedores informáticos confidenciales totalmente gestionado que permite la implementación de cargas de trabajo confidenciales en contenedores en un entorno altamente aislado con garantía técnica.

Explore IBM Hyper Protect Virtual Servers
EDB Postgres Enterprise y Standard con IBM

Desarrolle y ejecute aplicaciones en una base de datos empresarial rica en seguridad basada en PostgreSQL de código abierto.

Explore EDB Postgres Enterprise y Standard con IBM
Recursos Db2 y 50 años de diseño de bases de datos relacionales

Remontémonos a los inicios de Db2.

Dé el siguiente paso

Escale cargas de trabajo de IA, para todos sus datos, en cualquier lugar con IBM watsonx.data, un almacén de datos adaptado construido sobre una arquitectura de lakehouse de datos abierta.

Explore watsonx.data Reserve una demostración en directo