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 una clave externa. Estos identificadores únicos demuestran las diferentes relaciones que existen entre las tablas y estas relaciones generalmente se ilustran 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 insights, optimizar los flujos de trabajo e identificar nuevas oportunidades.
Por ejemplo, imagine que su empresa mantiene una tabla de base de datos con información de clientes, que contiene datos de la empresa a nivel de cuenta. También puede haber una tabla diferente, que describe todas las transacciones individuales que se alinean con esa cuenta. Juntas, estas tablas pueden proporcionar información sobre las diferentes industrias que adquieren un producto de software específico.
Las columnas (o campos) de la tabla de clientes pueden ser ID de cliente, Nombre de la empresa, Dirección de la empresa, Sector, etc. Las columnas de una tabla de transacciones pueden ser Fecha de la transacción, ID de cliente, Monto de la transacción, Método de pago, etc. Las tablas se pueden unir con el campo común ID de cliente . Por lo tanto, puede consultar la tabla para elaborar informes valiosos, por ejemplo, informes de ventas por industria o empresa, que pueden informar los mensajes para clientes potenciales.
Las bases de datos relacionales también suelen estar asociadas a bases de datos transaccionales, que ejecutan comandos o transacciones de forma colectiva. Un ejemplo popular que se utiliza para ilustrar esto es una transferencia bancaria. Se retira un monto determinado de una cuenta y luego se deposita en otra. La cantidad total de dinero se retira y se deposita; no hay posibilidad de que la transacción se realice de forma parcial. Las transacciones tienen propiedades específicas. Representadas por el acrónimo, ACID, las propiedades de ACID se definen de la siguiente manera:
Estas propiedades permiten que el procesamiento de las transacciones sea confiable.
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) es una referencia más específica 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:
Algunos ejemplos de sistemas RDBMS populares son MySQL, PostgreSQL e IBM DB2. Además, un sistema de base de datos relacional se diferencia 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.
Inventado por Don Chamberlin y Ray Boyce en IBM, el lenguaje de consulta estructurado (SQL) es el lenguaje de programación estándar para interactuar con los sistemas de gestión de bases de datos relacionales, lo que permite al administrador de bases de datos agregar, actualizar o eliminar filas de datos con facilidad. Originalmente conocido como SEQUEL, se simplificó a SQL debido a un problema de marca registrada. Las consultas SQL también permiten a los usuarios recuperar datos de bases de datos utilizando solo unas pocas líneas de código. Dada esta relación, es fácil comprender por qué a veces se denominan "bases de datos SQL" a las bases de datos relacionales.
Usando el ejemplo anterior, puede crear una consulta para encontrar las diez transacciones principales por empresa para un año específico con el siguiente código:
SELECT COMPANY_NAME, SUM(TRANSACTION_AMOUNT)
FROM TRANSACTION_TABLE A
LEFT JOIN CUSTOMER_TABLE 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. Para obtener más información, Don detalla más sobre la historia de SQL en su artículo aquí.
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) permitieron a los usuarios organizar grandes cantidades de datos. Sin embargo, eran complejos, a menudo registrados para una aplicación en particular, y limitados en las formas en que podían descubrir dentro de los datos. Estas limitaciones finalmente llevaron al investigador de IBM, Edgar F. Codd, a publicar un artículo en 1970, titulado "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 de atributo-valor. Los conjuntos de tuplas se denominaron relaciones, lo que finalmente permitió la fusión de datos en tablas.
En 1973, el San Jose Research Laboratory, ahora conocido como Almaden Research Center, inició un programa llamado System R (R de relacional) para probar esta teoría relacional con lo que llamó "una implementación de fuerza industrial". En última instancia, también se convirtió en un campo de pruebas para SQL, lo que permitió que se adoptara con mayor amplitud en un corto período de tiempo. Sin embargo, la adopción de SQL por parte de Oracle tampoco perjudicó su popularidad entre los administradores 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 manejando miles de millones de transacciones todos los días en la infraestructura de la nube y establece la capa fundamental para las aplicaciones de aprendizaje automático.
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 ellas pretenden 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:
Las bases de datos NoSQL también priorizan la disponibilidad sobre la coherencia.
Cuando las computadoras se ejecutan en una red, invariablemente deben decidir priorizar resultados coherentes (donde cada respuesta es siempre la misma) o un tiempo de actividad elevado, llamado "disponibilidad". Esto se denomina "Teoría CAP", que significa coherencia, disponibilidad o tolerancia de partición. 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. Eso 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, esto significa ver una foto de perfil antigua cuando la más nueva tiene solo unos minutos. La alternativa podría ser un tiempo de espera o un error. Por otro lado, en las transacciones bancarias y financieras, un error y volver a hacer el envío puede ser mejor que la información antigua e incorrecta.
Para obtener un resumen completo de las diferencias entre SQL y NoSQL, consulte "Bases de datos SQL vs NoSQL: ¿Cuál es la diferencia?"
La principal ventaja del enfoque de base de datos relacional es la posibilidad de crear información significativa uniendo las tablas. Unir tablas permite comprender las relaciones entre los datos, o cómo se conectan las tablas. SQL incluye la capacidad de contar, sumar, agrupar y también combinar consultas. SQL puede realizar funciones matemáticas básicas y subtotales, además de transformaciones lógicas. Los analistas pueden ordenar los resultados por fecha, nombre o cualquier otra columna. Estas características convierten al enfoque relacional en la herramienta de consulta más popular de la actualidad.
Las bases de datos relacionales tienen varias ventajas en comparación con otros formatos de bases de datos:
En virtud de la vida útil de su producto, existe más 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 simples, como el filtrado y la agregación. El uso de índices dentro de bases de datos relacionales también les permite localizar esta información con rapidez, sin buscar en cada fila de la tabla seleccionada.
Si bien las bases de datos relacionales históricamente se han visto como una opción de almacenamiento de datos más rígida e inflexible, los avances en tecnología y las opciones de DBaaS están cambiando esa percepción. Aunque todavía hay más gastos generales para desarrollar esquemas en comparación con las ofertas de bases de datos NoSQL, las bases de datos relacionales son cada vez más flexibles a medida que migran a entornos en la nube.
Las bases de datos relacionales pueden eliminar la redundancia de dos maneras. El modelo relacional en sí reduce la redundancia de datos a través de un proceso conocido como normalización. Como se señaló anteriormente, una tabla de clientes solo debe registrar registros únicos de información del cliente en lugar de duplicar esta información para múltiples 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 ciertos roles, funciones o equipos, un procedimiento almacenado puede ayudar a administrar el control de acceso. Estas funciones reutilizables liberan el codiciado tiempo de los desarrolladores de aplicaciones para abordar trabajos de alto impacto.
Las bases de datos relacionales son transaccionales: garantizan que el estado de todo el sistema sea coherente en todo momento. La mayoría de las bases de datos relacionales ofrecen opciones fáciles de exportar e importar, lo que hace que hacer copias de seguridad y la recuperación sean triviales. Estas exportaciones pueden ocurrir incluso mientras la base de datos se está ejecutando, lo que facilita la recuperación en caso de falla. Las bases de datos relacionales modernas basadas en la nube pueden crear reflejos de las bases de datos de forma 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 promover a instancias de lectura/escritura para recuperación ante desastres.
Utilice las soluciones de bases de datos de IBM para satisfacer las distintas necesidades de carga de trabajo en la nube híbrida.
Explore IBM Db2, una base de datos relacional que ofrece alto rendimiento, escalabilidad y fiabilidad para almacenar y gestionar datos estructurados. Está disponible como SaaS en IBM Cloud o para autoalojamiento.
Desbloquee el valor de los datos empresariales con IBM Consulting y cree una organización impulsada por insights que ofrezca ventajas empresariales.