Regístrate para acceder a más de 15 cursos gratuitos de programación con un simulador

Modelo relacional de datos Diseño de bases de datos

La lógica de trabajo en las bases de datos relacionales se basa en el álgebra relacional. Por eso, a estos sistemas se les agrega el prefijo "relacional". No es necesario que el programador de aplicaciones entienda esta área de álgebra, pero es útil conocer los fundamentos.

En esta lección, veremos formas de representar datos y explicaremos por qué el modelo relacional es la mejor opción para esta tarea.

Formas de representar datos

La forma en que los datos se almacenan en disco es distinta de los datos en sí. La responsabilidad de gestionar la ubicación física de los datos en los medios de almacenamiento recae en las bases de datos específicas, las cuales compiten por ser las más rápidas y eficientes.

La representación externa es lo que ve el usuario. Esto afecta la forma en que interactúas con los datos. Por lo tanto, las diferentes formas de representación de los datos se llaman modelos.

Estos modelos no reflejan lo que ocurre a nivel físico. Describen cómo están estructurados los datos y cómo interactuar con ellos. Los modelos de datos son muy similares a los tipos de datos abstractos, que definen la interfaz de interacción con el tipo y no definen su implementación interna.

Existen muchas formas diferentes de representar los mismos datos. En esta lección, veremos las tres formas más populares:

  • Modelo jerárquico.
  • Modelo de red.
  • Modelo relacional.

Exploraremos cada forma en detalle.

Modelo jerárquico

En el modelo jerárquico los datos se presentan en forma de árbol, donde los elementos hijos dependen de los padres:

Modelo jerárquico de datos

Con el modelo jerárquico es posible representar no solo una universidad, sino también partes de un negocio. Por ejemplo, un servicio de taxi tiene conceptos como usuario y pedido. Un usuario puede tener múltiples pedidos. Esto define inmediatamente la estructura del árbol:

  • Elemento padre: usuario.
  • Elementos hijos: pedidos.

Se estructuran todas las demás partes de la misma manera.

Los problemas comienzan cuando un elemento hijo puede tener varios padres. Imagina que el servicio de taxi añade esta función: se puede pagar la cuenta conjuntamente. Esto significa que un pedido puede tener varios clientes a la vez.

En este caso, el modelo jerárquico no puede ofrecer una buena solución a este problema. Será necesario crear árboles paralelos, en los que habrá duplicación de datos. Este problema se resuelve en el modelo de red de datos, que veremos a continuación.

Modelo de red

El modelo de red de los datos amplía el modelo jerárquico y permite tener múltiples padres. El modelo de red es un grafo con muchos vértices y conexiones entre ellos:

Modelo de red de datos

En la estructura de la red, cada elemento puede estar asociado con cualquier otro elemento.

La desventaja del modelo de red de datos radica en la alta complejidad y rigidez del esquema de la base de datos en el que se basa. Como la lógica para seleccionar datos depende de su organización física, este modelo no es completamente independiente de la aplicación. Si es necesario cambiar la estructura de los datos, también tendrás que modificar la aplicación.

Para no enfrentar otro problema, los programadores usan el modelo relacional.

Modelo relacional

El modelo relacional de los datos ha ganado la mayor popularidad. Las bases de datos relacionales se basan en él. En el modelo relacional, los datos son un conjunto de relaciones. En álgebra, el concepto de relación suena así:

Supongamos que tenemos un conjunto de tipos de datos T1, T2, ..., Tn, también llamados dominios, no necesariamente diferentes. Entonces se llama relación R de n-argumentos, o relación R de grado n, al subconjunto del producto cartesiano de los conjuntos T1, T2,..., Tn."

Desglosaremos esta definición para entenderla mejor.

¿Qué es una relación en el modelo relacional?

La relación no tiene representación física. La base de datos relacional es un intento de reflejar el modelo relacional, no una copia exacta de él.

El modelo relacional se basa en la teoría matemática de conjuntos, que necesitas conocer al menos un poco. Un conjunto es una colección de elementos arbitrarios unidos por alguna característica. Por ejemplo, un conjunto de números naturales o un conjunto de estudiantes de una clase.

De cualquier conjunto se puede seleccionar un subconjunto, un conjunto de elementos, todos los elementos de los cuales están incluidos en el conjunto original. Un subconjunto es una parte del conjunto. Por ejemplo, el conjunto de números naturales es un subconjunto con respecto al conjunto de números enteros, que a su vez es un subconjunto de los números racionales. De esto se deduce que los números naturales son un subconjunto de los números racionales.

Otro concepto importante es la tupla. Se trata de un conjunto de datos ordenado de longitud fija. Cualquier cosa puede ser un elemento de una tupla. Es una forma matemática de representar algún conjunto de datos relacionados.

En base a estos conceptos, podemos formular una definición más comprensible de relación. Una relación es un conjunto de tuplas, conocidas como el cuerpo de la relación, donde cada tupla corresponde a un esquema.

Un esquema es la cabecera de la relación. Describe la estructura general de las tuplas, la cantidad de elementos dentro de ellas y sus tipos. Cada uno de estos elementos se llama atributo:

Relación

Una relación parece visualmente a una tabla, pero tiene diferencias significativas:

  • No hay dos elementos (tuplas) iguales.
  • El orden de las tuplas no está definido.
  • El orden de los atributos en la cabecera no está definido.

Por esta razón, la tabla no es adecuada para describir una relación de manera precisa. En cualquier tabla, el orden de las columnas (atributos del esquema) y las filas (tuplas) está estrictamente definido. Aunque en la práctica operamos tablas y no podemos ignorarlas.

En todas las bases de datos relacionales, las columnas se colocan en un orden específico y los datos también se agregan de una manera estrictamente definida. Sin embargo, este orden depende de la implementación de la base de datos y no puede ser determinado previamente, sino solo al momento de realizar la selección.

El modelo relacional es una buena elección en la mayoría de las situaciones. No tiene las desventajas que tienen otros modelos. Pero se necesita tiempo para dominarlo, ya que tendrás que aprender a descomponer los datos en tablas de la manera correcta. Para interactuar con los datos, que están descritos por el modelo relacional, se utiliza el álgebra relacional. Veremos sus elementos más adelante.

Los datos representados en el modelo relacional deben llevarse a la forma normal: estos son los requisitos que debe cumplir una relación para minimizar la redundancia de datos, que puede llevar a errores lógicos.

Conclusiones

En las siguientes lecciones, nos familiarizaremos con las tres formas normales, ya que son las más comúnmente utilizadas en el desarrollo real. De hecho, los programadores que trabajan con bases de datos a menudo ni siquiera recuerdan la teoría relacionada con las formas.

Entendiendo cómo se estructuran los datos en el modelo relacional, el cerebro propone de forma autónoma las soluciones correctas para descomponer los datos.


Materiales adicionales

  1. Modelo relacional / Wikipedia

Para acceder completo a curso necesitas un plan básico

El plan básico te dará acceso completo a todos los cursos, ejercicios y lecciones de Códica, proyectos y acceso de por vida a la teoría de las lecciones completadas. La suscripción se puede cancelar en cualquier momento.

Obtener acceso
130
cursos
1000
ejercicios
2000+
horas de teoría
3200
test

Obtén acceso

Cursos de programación para principiantes y desarrolladores experimentados. Comienza tu aprendizaje de forma gratuita

  • 130 cursos, 2000+ horas de teoría
  • 1000 ejercicios prácticos en el navegador
  • 360 000 estudiantes
Al enviar el formulario, aceptas el «Política de privacidad» y los términos de la «Oferta», y también aceptas los «Términos y condiciones de uso»

Nuestros graduados trabajan en empresas como:

Bookmate
Health Samurai
Dualboot
ABBYY