Bases de datos relacionales
En esta guía esencial sobre bases de datos, aprenderá cómo funcionan las bases de datos relacionales y cómo se comparan con otras opciones de bases de datos.
Por: IBM Cloud Education
En una pantalla con fondo azul hay números y letras, que representan una base de datos engorrosa
¿Qué es una base de datos relacional?

Una base de datos relacional organiza los datos en tablas que se pueden vincular,  o relacionales, basándose en datos comunes a cada uno. Esta capacidad le permite recuperar una tabla completamente nueva a partir de los datos de una o más tablas con una sola consulta. También le permite a usted y a su empresa comprender mejor las relaciones entre todos los datos disponibles y obtener nuevos conocimientos para tomar mejores decisiones o identificar nuevas oportunidades.

Por ejemplo, imagine que su empresa mantiene una tabla de clientes que contiene datos de la empresa sobre cada cuenta de cliente y una o más tablas de transacciones que contienen datos que describen transacciones individuales.

Las columnas (o campos) de la tabla de clientes pueden ser  Identificación del cliente,  Nombre de la empresa,  Dirección de la empresa, etc; las columnas de una tabla de transacciones pueden ser  Fecha de Transacción,  Identificación del cliente,  Cantidad de la transacción,  Método de pago, etc. Las tablas se pueden relacionar en función de los campos de  Identificación del cliente  en común. Por lo tanto, puede consultar la tabla para producir informes valiosos, como un estado de cuenta consolidado del cliente.

Los generadores de informes toman estas consultas y las ejecutan a pedido para crear informes formales. Muchos de los documentos que las empresas ejecutan para realizar un seguimiento del inventario, las ventas, las finanzas o incluso realizar proyecciones financieras provienen de una base de datos relacional que opera entre bastidores.

Productos destacados

Db2 on Cloud

IBM Cloud Databases for PostgreSQL

IBM Cloud Hyper Protect DBaaS


¿Qué es SQL?

Puede comunicarse con bases de datos relacionales utilizando Structured Query Language (SQL), el lenguaje estándar para interactuar con sistemas de gestión. SQL permite la unión de tablas usando unas pocas líneas de código, con una estructura que la mayoría de los empleados sin conocimientos técnicos pueden aprender rápidamente.

Con SQL, los analistas no necesitan saber dónde reside la tabla de pedidos en el disco, cómo realizar la búsqueda para encontrar un pedido específico o cómo conectar las tablas de pedidos y clientes. La base de datos compila la consulta y determina los puntos de datos correctos.


Beneficios

El principal beneficio del enfoque de base de datos relacional es la capacidad de crear información significativa uniendo las tablas. Unir tablas le permite comprender las  relaciones  entre los datos o cómo se conectan las tablas. SQL incluye la capacidad de contar, agregar, agrupar y también combinar consultas. SQL puede realizar funciones matemáticas básicas y subtotales y transformaciones lógicas. Los analistas pueden ordenar los resultados por fecha, nombre o cualquier columna.

Esas características hacen del enfoque relacional la herramienta de consulta más popular en los negocios hoy en día.

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

Flexibilidad 

Flexibilidad SQL tiene un lenguaje integrado para crear tablas llamado lenguaje de definición de datos (DDL). DDL le permite agregar nuevas columnas, agregar nuevas tablas, cambiar el nombre de las relaciones y realizar otros cambios incluso mientras la base de datos se está ejecutando y mientras se realizan las consultas. Esto le permite cambiar el esquema o cómo modela los datos sobre la marcha.

Redundancia reducida 

Las bases de datos relacionales eliminan la redundancia de los datos. La información de un solo cliente aparece en un solo lugar: una sola entrada en la tabla de clientes. La tabla de pedidos solo necesita almacenar un enlace a la tabla de clientes. La práctica de separar los datos para evitar la redundancia se denomina normalización. Los diseñadores de bases de datos progresistas se aseguran de que las tablas se normalicen durante el proceso de diseño.

IBM para copia de seguridad y recuperación ante desastres 

Las bases de datos relacionales son transaccionales: garantizan que el estado de todo el sistema sea consistente en cualquier 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 ocurrir incluso mientras la base de datos se está ejecutando, lo que facilita la restauración en caso de falla. 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 durante la restauración se mida en segundos o menos. La mayoría de los servicios administrados en la nube le permiten crear réplicas de lectura, como en  Bases de datos de IBM Cloud para 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 se pueden promover a instancias de lectura/escritura para  recuperación de desastres  también.


Ejemplos de bases de datos relacionales

Muchos productos de bases de datos implementan el modelo de base de datos relacional. Utilizan una base de datos SQL para procesar o al menos pueden procesar declaraciones SQL para solicitudes y actualizaciones de la base de datos. Estas bases de datos van desde pequeños sistemas de escritorio hasta sistemas masivos basados en la nube. Pueden ser de código abierto y con soporte interno, de código abierto con soporte comercial o sistemas comerciales de código cerrado. Éstos son algunos de los más populares:

MySQL

MySQL es una base de datos común y fácil de iniciar con poca memoria/disco/CPU. Es compatible con todos los comandos SQL básicos, junto con transacciones y rendimiento de Atomicidad, Consistencia, Aislamiento, Durabilidad (ACID). MySQL es la base de datos más común integrada con los sitios web de  WordPress .

PostgreSQL

PostgreSQL  también es de código abierto. Proporciona funciones empresariales como seguridad, escalabilidad y soporte para una mayor automatización a través de una interfaz de línea de comandos, así como acceso directo a través de la web. PostgreSQL admite procedimientos almacenados, que es un lenguaje de programación más complejo construido sobre SQL. Los equipos pueden usar procedimientos almacenados para extraer, transformar y cargar datos entre sistemas. Los ejemplos de este caso de uso incluyen el procesamiento de reclamaciones para el procesamiento de seguros y el procesamiento de pedidos para pedidos complejos. Postgres también funciona con  qGIS  (enlace externo a ibm.com) o  Geo Server  (enlace externo a ibm.com) para almacenar y guardar información global.

Para conocer más, consulte también "Database Deep Dives: PostgreSQL".

Db2

Db2 es una base de datos relacional con soporte comercial de IBM que tiene una  versión alojada en la nube  y una  versión local


Relacional frente a NoSQL

Bases de datos NoSQL  proporcionan formas de almacenar, buscar y recuperar datos que no sean tablas con relaciones. Estas son algunas de las principales distinciones:

Emparejamiento de clave-valor

La forma más popular de base de datos NoSQL es un simple par clave-valor. Los pares clave-valor colocan todos los datos en una sola tabla. La clave es un elemento único. Para empleados o clientes, la clave puede ser una dirección de correo electrónico. Para pedidos, sería el número de pedido. Siempre que cada clave sea única, un par clave-valor puede almacenar todas las relaciones en una "tabla".

Disponibilidad en lugar de consistencia 

Cuando las computadoras funcionan sobre una  red, invariablemente necesitan decidir priorizar resultados consistentes (donde cada respuesta es siempre la misma) o un alto tiempo de actividad, llamado "disponibilidad". Esto se denomina "teoría CAP", que significa consistencia, disponibilidad o tolerancia de partición. Las bases de datos relacionales garantizan que la información esté siempre sincronizada y sea consistente. 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, quizás hasta medio minuto. En los sitios de redes sociales, esto significa ver una foto de perfil antigua cuando la más reciente fue actualizada hace solo un momento. 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 reenvío puede ser mejor que la información antigua e incorrecta.

Esquemas flexibles

Esquemas flexibles Mientras que las bases de datos relacionales tienen un conjunto predefinido de filas y columnas, las bases de datos NoSQL están estructuradas más como un documento. Si sabe dónde está la información en el documento, puede recuperarla. Si el material todavía está en el documento, puede agregar otra información estructurada, sin tener que cambiar las reglas. Si se hace correctamente, las consultas originales seguirán funcionando, lo que facilitará la ampliación de la base de datos sin actualizaciones formales.

Otros formatos de base de datos NoSQL incluyen historias de documentos, gráficos y bases de datos de objetos. Un término más amplio para las bases de datos NoSQL es no relacional.

Para obtener un resumen completo de las diferencias entre SQL y NoSQL, consulte "Bases de datos SQL vs.NoSQL: ¿Cuál es la diferencia?"


Bases de datos relacionales versus no relacionales

Algunos ejemplos de bases de datos no relacionales específicas incluyen lo siguiente:

Redis

Redis Redis es una base de datos NoSQL común, que se usa con frecuencia para el tipo de almacenamiento de datos que discutimos anteriormente. Haciendo solo una búsqueda, sin uniones o relaciones, y luego moviendo el procesamiento al navegador web,  Redis  proporciona una respuesta rápida. El tiempo de respuesta puede ser fundamental para sitios web modernos altamente competitivos.

JanusGraph

JanusGraph  es una base de datos de gráficos diseñada para almacenar y procesar consultas para gráficos grandes. Estos grandes gráficos contienen cientos de miles de millones de aristas y vértices, almacenados en un grupo de varias máquinas. JanusGraph puede admitir miles de consultas simultáneas y escalar con nuevo hardware. El tipo de datos que almacena JanusGraph puede ser apropiado para la animación o el modelado aerodinámico.

MongoDB

MongoDB  es una base de datos de documentos que almacena registros como documentos poco estructurados. Eso podría ser perfecto para almacenar páginas web como documentos, para un catálogo de productos de comercio electrónico o aplicaciones de redes sociales. Al igual que Redis, MongoDB se diferencia de los modelos relacionales en que no requiere conformidad ACID.

Consulte también "Database Deep Dives: MongoDB".

etcd

etcd es otro almacén clave-valor, normalmente utilizado para datos de configuración para sistemas distribuidos. El caso de uso común de  etcd  son los servidores basados en la nube que se amplían con la demanda y necesitan una única base de datos para la información de configuración.

RabbitMQ

RabbitMQ es una fila de mensajería de código abierto. Un mensaje es típicamente una cierta cantidad de texto, con la estructura definida por el cliente. En lugar de registros con una vida útil permanente,  RabbitMQ  permite que un sistema envíe mensajes a la fila para que otras aplicaciones puedan extraer mensajes cuando lo deseen. Ese push/pull asincrónico habilita aplicaciones distribuidas con paso de mensajes.

Elasticsearch

Elasticsearch es un motor de búsqueda de texto completo que interactúa a través de API web. Eso significa que el valor principal es recuperar los resultados. Un sitio web completo puede almacenarse en  Elasticsearch. Busque el par clave-valor y obtendrá el texto del sitio web. El verdadero poder de Elasticsearch es la búsqueda que permite al sitio web agregar un botón de búsqueda rápido y preciso. Elasticsearch puede buscar rápida y eficazmente cualquier estructura de texto grande.

Para obtener un desglose completo de los diferentes tipos de bases de datos disponibles, consulte "Una breve descripción del panorama de las bases de datos".


Esquemas de base de datos

Un esquema de una base de datos es la estructura definida en un lenguaje formal. En SQL, hay dos lenguajes formales: Lenguaje de definición de datos (DDL) y Lenguaje de manipulación de datos (DML).

Para seleccionar datos de una tabla, actualizarlos o eliminarlos, los programadores usan DML. Para trabajar en la base de datos y crear y definir las tablas y relaciones, utilizan DDL o una herramienta para crear el DDL.

DDL incluye comandos como  CREAR,  SOLTAR,  ALTERAR,  COMENTAR y  REBAUTIZAR. El primer comando DDL es  CREAR MESA. Este comando define la clave principal (que debe ser única), los campos, cómo esos campos almacenan datos y cualquier otra restricción en la tabla. Una vez definida, puede establecer una base de datos como una combinación de su lenguaje de definición y el DML para  INSERTAR  las filas en las tablas.

A continuación, se muestra un ejemplo de un comando DDL para crear una tabla de empleados. Como verá, un esquema puede incluir qué columnas se requieren, cuáles deben ser únicas (una clave) y cuáles deben tener una referencia en otras tablas.

En este ejemplo, la tabla de trabajos describe cada título, descripción y nivel de trabajo. Una tabla separada, la tabla pay_grades, muestra el salario para cada nivel de trabajo. Los enteros son números enteros; (100) caracteres reserva hasta cien caracteres para el texto.

 

CREATE TABLE employees (

    employeeID integer UNIQUE NOT NULL,

    first_name char(100) NOT NULL,

    last_name char(100) NOT NULL,

    jobID int,   

    birthdate date NOT NULL,

    governmentID char(9),

    FOREIGN KEY(jobID) REFERENCES jobs(jobID)

);

¿Qué sucede cuando se elimina una fila de la tabla de trabajos? DDL permite al programador especificar qué hacer en el caso. La columna de empleados podría actualizarse automáticamente a  NULL, como será en este caso, o podría establecerse en  casecade eliminar. Por ejemplo, si se elimina una biblioteca sucursal debido a un cierre, los libros que no han transferido también se pueden eliminar.

Algunas bases de datos relacionales ofrecen la posibilidad de tener múltiples esquemas, con diferentes tablas, junto con la capacidad de otorgarles permisos de lectura y escritura. Múltiples esquemas significan que un usuario de recursos humanos puede tener información de recursos humanos para los empleados, pero no información confidencial de los empleados (y viceversa), todo en la misma base de datos.


Licencias

Desde la perspectiva de las licencias, las bases de datos relacionales varían de una manera importante entre las bases de datos de código abierto y las bases de datos con soporte comercial:

  • Bases de datos de código abierto  no tienen ningún costo de instalación, pero no brindan soporte comercial "listo para usar".
  • Bases de datos con soporte comercial  incluyen algún nivel de soporte, pero no pueden solucionar problemas que son usos legítimos de la base de datos, como eliminaciones accidentales causadas por errores introducidos por los programadores.

Puede alojar bases de datos relacionales en la nube, en servidores locales, en máquinas de escritorio, en nubes privadas o incluso en dispositivos de Internet de las cosas (IoT) siempre que cumpla con la licencia.


Cómo crear una base de datos relacional

Una base de datos relacional necesita dos cosas para ejecutarse: el software de la base de datos en sí y el código del lenguaje de definición de datos (DDL) para crearla.

Para admitir una instalación local, los administradores deben analizar todas las posibilidades. Por ejemplo, si el sistema operativo subyacente en el que se ejecuta la base de datos necesita una actualización, eso podría hacer que el servidor caiga durante horas. Para una alta disponibilidad, la base de datos deberá replicarse, y una copia permanecerá activa mientras la principal no esté operativa. Las bases de datos locales deben considerar cómo escalar con varios usuarios, cómo realizar copias de seguridad y cómo restaurarlas.

La alternativa es ejecutar las bases de datos en la nube. Con bases de datos en la nube, la base de datos se configura automáticamente para alta disponibilidad, lo que significa que sus datos se replican en varios miembros y cada miembro se encuentra en zonas de disponibilidad separadas.

Si todo un centro de datos falla, la base de datos permanece activa. Los datos se replican en todas las zonas, por lo que puede mantener todos los datos y continuar las operaciones en caso de una interrupción. Además, el proveedor administrará las mejoras de seguridad y las actualizaciones del sistema operativo y la versión de la base de datos. Los usuarios acuden en masa a las bases de datos administradas en la nube para obtener seguridad empresarial lista para usar, alta disponibilidad, escalado en línea y copias de seguridad automáticas.


Bases de datos relacionales e IBM Cloud

IBM admite versiones alojadas en la nube de varias bases de datos relacionales.

  • IBM Db2 on Cloud  es una base de datos relacional comercial de primer nivel que está construida para un rendimiento sólido, proporcionando una opción de alta disponibilidad con un SLA de tiempo de actividad del 99,99 %.
  • IBM Cloud Databases for PostgreSQL  proporciona PostgreSQL totalmente gestionado y listo para la empresa, creado con integración nativa en IBM Cloud.
  • IBM Cloud Hyper Protect  DBaaS para PostgreSQL  es el siguiente nivel de evolución sobre cómo se almacenan los datos en un servicio en la nube empresarial altamente seguro, ideal para cargas de trabajo con datos confidenciales
  • Otra opción a considerar es IBM Data Management Platform for EDB Postgres Enterprise y Standard , una plataforma PostgreSQL integrada, basada en código abierto, disponible en una experiencia integral que incluye adquisición, implementación, uso, gestión y soporte.

Obtenga más información sobre la perspectiva de IBM sobre bases de datos relacionales.

Empiece con una cuenta de IBM Cloud sin costo.


Soluciones relacionadas

IBM Db2 on Cloud

Obtenga más información sobre Db2 on Cloud, una base de datos SQL en la nube completamente gestionada y optimizada para obtener excelentes resultados.


IBM Cloud Databases for PostgreSQL

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


IBM Cloud Hyper Protect DBaaS

IBM Cloud Hyper Protect DBaaS es un entorno de base de datos en la nube altamente seguro que le permite gestionar varios tipos de bases de datos a través de API estandarizadas.


EDB Postgres Enterprise y Standard con IBM

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