Una base de datos relacional es un tipo de base de datos que almacena y proporciona acceso a puntos de datos relacionados entre sí. Las bases de datos relacionales se basan en el modelo relacional, una forma intuitiva y directa de representar datos en tablas. En una base de datos relacional, cada fila de la tabla es un registro con un ID único llamado clave. Las columnas de la tabla contienen atributos de los datos, y cada registro generalmente tiene un valor para cada atributo, lo que facilita el establecimiento de las relaciones entre los puntos de datos.
A continuación, se muestra un ejemplo simple de dos tablas que una pequeña empresa podría utilizar para procesar pedidos de sus productos. La primera tabla es una tabla de información del cliente, por lo que cada registro incluye el nombre, la dirección, la información de envío y facturación, el número de teléfono y otra información de contacto. Cada bit de información (cada atributo) está en su propia columna, y la base de datos asigna un ID único (una clave) a cada fila. En la segunda tabla, una tabla del pedido del cliente, cada registro incluye el ID del cliente que realizó el pedido, el producto solicitado, la cantidad, el tamaño y el color seleccionados, etcétera, pero no el nombre o la información de contacto del cliente.
Estas dos tablas tienen solo una cosa en común: la columna de ID (la clave). Gracias esa columna en común, la base de datos relacional puede crear una relación entre las dos tablas. Entonces, cuando la aplicación de procesamiento de pedidos de la empresa envía un pedido a la base de datos, la base de datos puede ir a la tabla de pedidos del cliente, extraer la información correcta sobre el pedido del producto y usar el ID del cliente de esa tabla para buscar la información de facturación y envío en la tabla de información del cliente. Entonces, el almacén puede extraer el producto correcto, el cliente puede recibir la entrega del pedido a tiempo y la empresa puede recibir el pago.
El modelo relacional significa que las estructuras lógicas de datos (las tablas de datos, las vistas y los índices) están separadas de las estructuras físicas de almacenamiento. Esta separación significa que los administradores de bases de datos pueden administrar el almacenamiento físico de datos sin afectar el acceso a esos datos como una estructura lógica. Por ejemplo, cambiar el nombre de un archivo de base de datos no cambia el nombre de las tablas almacenadas en él.
La distinción entre lógica y física también se aplica a las operaciones de la base de datos, que son acciones claramente definidas que permiten a las aplicaciones manipular los datos y las estructuras de la base de datos. Las operaciones lógicas permiten que una aplicación especifique el contenido que necesita, mientras que las operaciones físicas determinan cómo se debe acceder a esos datos y luego realizan la tarea.
Para garantizar que los datos sean siempre precisos y accesibles, las bases de datos relacionales siguen ciertas reglas de integridad. Por ejemplo, una regla de integridad puede especificar que no se permitan filas duplicadas en una tabla, para eliminar la posibilidad de que ingrese información errónea en la base de datos.
En los primeros años de las bases de datos, cada aplicación almacenaba datos en su propia estructura única. Cuando los desarrolladores querían crear aplicaciones para usar esos datos, tenían que saber mucho sobre la estructura de datos particular para encontrar los datos que necesitaban. Estas estructuras de datos eran ineficientes, difíciles de mantener y difíciles de optimizar para ofrecer un buen rendimiento de la aplicación. El modelo de base de datos relacional se diseñó para resolver el problema de varias estructuras de datos arbitrarias.
El modelo de datos relacionales proporcionó una forma estándar de representar y consultar datos que cualquier aplicación podría utilizar. Desde el principio, los desarrolladores reconocieron que la principal fortaleza del modelo de base de datos relacional estaba en el uso de tablas, que eran una forma intuitiva, eficiente y flexible de almacenar y acceder a información estructurada.
Con el tiempo, cuando los desarrolladores comenzaron a utilizar el lenguaje de consulta estructurado (SQL) para escribir y consultar datos en una base de datos, surgió otra fortaleza del modelo relacional. Durante muchos años, se utilizó ampliamente el SQL como lenguaje para consultas de bases de datos. El SQL, que se basa en el álgebra relacional, proporciona un lenguaje matemático internamente consistente que facilita la mejora del rendimiento de todas las consultas de la base de datos. En comparación, otros enfoques deben definir consultas individuales.
Las organizaciones de todo tipo y tamaño utilizan el modelo relacional simple pero poderoso para una amplia variedad de necesidades de información. Las bases de datos relacionales se utilizan para hacer seguimiento de los inventarios, procesar transacciones de comercio electrónico, administrar grandes cantidades de información de clientes de misión crítica y mucho más. Se puede considerar una base de datos relacional para cualquier necesidad de información en la que los puntos de datos se relacionen entre sí y se deban administrar de una manera segura, consistente y basada en reglas.
Las bases de datos relacionales existen desde la década de 1970. Actualmente, las ventajas del modelo relacional continúan convirtiéndolo en el modelo más aceptado para bases de datos.
El modelo relacional es el mejor para mantener la consistencia de los datos en todas las aplicaciones y copias de la base de datos (denominadas instancias). Por ejemplo, cuando un cliente deposita dinero en un cajero automático y, luego, mira el saldo de la cuenta en un teléfono móvil, el cliente espera ver que ese depósito se refleje inmediatamente en un saldo de cuenta actualizado. Las bases de datos relacionales se destacan en este tipo de consistencia de datos, lo que garantiza que múltiples instancias de una base de datos tengan los mismos datos todo el tiempo.
Es difícil para otros tipos de bases de datos mantener este nivel de coherencia oportuna con grandes cantidades de datos. Algunas bases de datos recientes, como NoSQL, solo pueden proporcionar “coherencia eventual”. Según este principio, cuando se escala la base de datos o cuando varios usuarios acceden a los mismos datos al mismo tiempo, los datos necesitan algo de tiempo para “ponerse al día”. La coherencia eventual es aceptable para algunos usos, como mantener listados en un catálogo de productos, pero para operaciones comerciales críticas, como transacciones de carrito de compras, la base de datos relacional sigue siendo lo ideal.
Las bases de datos relacionales manejan las reglas y políticas comerciales en un nivel muy detallado, con políticas estrictas sobre el compromiso (es decir, hacer un cambio permanente en la base de datos). Por ejemplo, considere una base de datos de inventario que hace seguimiento de tres partes que siempre se usan juntas. Cuando se extrae una parte del inventario, las otras dos también se deben extraer. Si una de las tres partes no está disponible, ninguna de las partes debe extraerse; las tres partes deben estar disponibles antes de que la base de datos realice algún compromiso. Una base de datos relacional no se comprometerá por una parte hasta que sepa que puede comprometerse por las tres. Esta capacidad de compromiso multifacética se llama atomicidad. La atomicidad es la clave para mantener la precisión de los datos en la base de datos y garantizar que cumpla con las reglas, regulaciones y políticas de la empresa.
Las transacciones de bases de datos relacionales se definen mediante cuatro propiedades cruciales: Atomicidad, coherencia, aislamiento y durabilidad, conocidos como ACID.
El acceso a los datos implica muchas acciones repetitivas. Por ejemplo, una consulta simple para obtener información de una tabla de datos puede necesitar repetirse cientos o miles de veces para producir el resultado deseado. Estas funciones de acceso a los datos requieren algún tipo de código para acceder a la base de datos. Los desarrolladores de aplicaciones no desean escribir un código nuevo para estas funciones en cada aplicación nueva. Afortunadamente, las bases de datos relacionales permiten procedimientos almacenados, que son bloques de código a los que se puede acceder con una simple llamada de aplicación. Por ejemplo, un solo procedimiento almacenado puede proporcionar un etiquetado de registro consistente para usuarios de varias aplicaciones. Los procedimientos almacenados también pueden ayudar a los desarrolladores a garantizar que ciertas funciones de datos en la aplicación se implementen de una manera específica.
Pueden surgir conflictos en una base de datos cuando varios usuarios o aplicaciones intentan cambiar los mismos datos al mismo tiempo. Las técnicas de bloqueo y concurrencia reducen la posibilidad de conflictos mientras mantienen la integridad de los datos.
El bloqueo evita que otros usuarios y aplicaciones accedan a los datos mientras se actualizan. En algunas bases de datos, el bloqueo se aplica a toda la tabla, lo que crea un impacto negativo en el rendimiento de la aplicación. Otras bases de datos, como las bases de datos relacionales de Oracle, aplican bloqueos a nivel de registro, lo que deja disponibles los otros registros dentro de la tabla, lo que ayuda a garantizar un mejor rendimiento de la aplicación.
La concurrencia gestiona la actividad cuando varios usuarios o aplicaciones realizan consultas al mismo tiempo en la misma base de datos. Esta capacidad proporciona el acceso correcto a los usuarios y las aplicaciones de acuerdo con las políticas definidas para el control de datos.
El software que se utiliza para almacenar, administrar, consultar y recuperar datos almacenados en una base de datos relacional se denomina sistema de administración de bases de datos relacionales (RDBMS). El RDBMS proporciona una interfaz entre usuarios y aplicaciones y la base de datos, así como funciones administrativas para administrar el almacenamiento, el acceso y el rendimiento de los datos.
Varios factores pueden guiar su decisión al momento de elegir entre tipos de bases de datos y productos de bases de datos relacionales. El RDBMS que elija dependerá de las necesidades de su negocio. Hágase las siguientes preguntas:
A lo largo de los años, las bases de datos relacionales se han vuelto mejores, más rápidas, más fuertes y más fáciles de trabajar. Pero también se han vuelto más complejas, y administrar la base de datos se convirtió hace mucho tiempo en un trabajo de tiempo completo. En lugar de utilizar su experiencia para centrarse en el desarrollo de aplicaciones innovadoras que aporten valor al negocio, los desarrolladores han tenido que dedicar la mayor parte de su tiempo a la actividad de gestión necesaria para optimizar el rendimiento de la base de datos.
Actualmente, la tecnología autónoma se basa en las fortalezas del modelo relacional, la tecnología de base de datos en la nube y el aprendizaje automático para ofrecer un nuevo tipo de base de datos relacional. La base de datos independiente (también conocida como la base de datos autónoma) mantiene el poder y las ventajas del modelo relacional, pero utiliza la inteligencia artificial (IA), el aprendizaje automático y la automatización para supervisar y mejorar el rendimiento de las consultas y las tareas de gestión. Por ejemplo, para mejorar el rendimiento de las consultas, la base de datos independiente puede formular hipótesis y probar índices para hacer que las consultas sean más rápidas y, luego, enviar las mejores a la producción, todo por su cuenta. La base de datos independiente realiza estas mejoras de forma continua, sin la necesidad de involucrar a los humanos.
La tecnología autónoma libera a los desarrolladores de las tareas rutinarias de administrar la base de datos. Por ejemplo, ya no tienen que determinar los requisitos de infraestructura por adelantado. En cambio, con una base de datos independiente, pueden agregar recursos de almacenamiento y cálculo según sea necesario para admitir el crecimiento de la base de datos. Con solo unos pocos pasos, los desarrolladores pueden crear una base de datos relacional autónoma de forma sencilla, lo que acelera el tiempo para el desarrollo de aplicaciones.