Los diagramas relacionales, también son conocidos como diagramas de entidad-relación (ER), son representaciones visuales de las estructuras de las bases de datos relacionales. Estos diagramas ayudan a diseñar y entender la organización de los datos y las relaciones entre las distintas entidades (tablas) en una base de datos. Un diagrama relacional consta de entidades, atributos y relaciones.
- Entidades: Las entidades son objetos o conceptos que tienen importancia en el dominio del problema que estamos modelando. En una base de datos, las entidades se representan como tablas. En un diagrama relacional, las entidades se representan como rectángulos con el nombre de la entidad.
- Atributos: Los atributos son características o propiedades que describen a una entidad. En una base de datos, los atributos se representan como columnas de una tabla. En un diagrama relacional, los atributos se enumeran dentro de los rectángulos de las entidades.
- Relaciones: Las relaciones describen cómo las entidades están asociadas entre sí. En una base de datos, las relaciones se representan a través de claves primarias y claves foráneas. En un diagrama relacional, las relaciones se representan como líneas que conectan las entidades.
Ejemplo usando tablas de Excel:
Imagina una base de datos simple para una librería. Tendría al menos dos entidades (tablas): Libros y Autores.
- La entidad «Libros» tendría atributos como ID_Libro, Título, Género y ID_Autor.
- La entidad «Autores» tendría atributos como ID_Autor, Nombre y Nacionalidad.
En Excel, tendrías dos hojas separadas para representar estas dos tablas:
Hoja «Libros»:
ID_Libro | Título | Género | ID_Autor |
---|---|---|---|
1 | El principito | Fábula | 1 |
2 | 1984 | Novela | 2 |
3 | Un mundo feliz | Novela | 3 |
Hoja «Autores»:
ID_Autor | Nombre | Nacionalidad |
---|---|---|
1 | Antoine de Saint-Exupéry | Francia |
2 | George Orwell | Reino Unido |
3 | Aldous Huxley | Reino Unido |
La relación entre «Libros» y «Autores» se establece mediante el atributo «ID_Autor». En el diagrama relacional, se dibujaría una línea entre las entidades «Libros» y «Autores», indicando que un autor puede tener varios libros, y un libro está escrito por un autor.
Al diseñar bases de datos y sus relaciones mediante diagramas relacionales, facilitamos la comprensión y comunicación de la estructura de datos entre los desarrolladores y otras partes interesadas, asegurando así un diseño sólido y eficiente.
Existen programas de software que facilitan la creación de diagramas relacionales sin mucha complejidad, una vez que se comprende cómo crear las tablas y las relaciones entre ellas. Estos diagramas son útiles para diseñar y planificar la estructura de una base de datos antes de su creación. Es importante mencionar que en las tablas no se incluyen las operaciones relacionadas con los datos, ya sean de entrada, salida o cálculos para modificarlos. El software que recomiendo para diseñar y visualizar diagramas relacionales de bases de datos es dbdiagram.io, que se puede encontrar en https://dbdiagram.io/
Table Libro {
ID_Libro int [pk]
Titulo varchar
Genero varchar
ID_Autor int [ref: > Autor.ID_Autor]
}Table Autor {
ID_Autor int [pk]
Nombre varchar
Nacionalidad varchar
}
Utilizando ese código en dbdiagram.io nos genere el diagrama de la base de datos que antes mencionamos.
La sintaxis utilizada en el código para dbdiagram.io es específica de esta plataforma y sigue ciertas reglas y convenciones para definir tablas, atributos y relaciones. A continuación, se explica la sintaxis del código proporcionado anteriormente:
Definición de tabla (entidad): La palabra clave Table
seguida del nombre de la tabla (entidad) y un par de llaves {}
. Dentro de las llaves, se definen los atributos de la tabla.
Ejemplo: Table Libro { … }

Definición de atributo: Dentro de las llaves de la tabla, se definen los atributos de la tabla en líneas separadas. Cada atributo se define especificando el nombre del atributo, seguido del tipo de dato y, opcionalmente, restricciones como [pk]
para la clave primaria.
Ejemplo: ID_Libro int [pk] Titulo varchar Genero varchar

Tipos de datos: Los tipos de datos en dbdiagram.io son similares a los utilizados en SQL, como int
, varchar
, date
, decimal
, etc. Estos tipos de datos definen el tipo de información que puede almacenarse en cada atributo.
Clave primaria: La restricción [pk]
indica que un atributo es una clave primaria, lo que significa que es un identificador único para cada fila de la tabla. En el ejemplo, ID_Libro
e ID_Autor
son claves primarias.
Clave foránea y relación: La sintaxis [ref: > NombreTablaReferenciada.ID_atributoReferenciado]
se utiliza para definir una clave foránea y una relación entre dos tablas. En este caso, ID_Autor
en la tabla «Libro» hace referencia a ID_Autor
en la tabla «Autor». La relación se indica mediante el símbolo >
que apunta hacia la tabla referenciada.
Ejemplo:csharpCopy codeID_Autor int [ref: > Autor.ID_Autor]

Al combinar estas reglas y convenciones de sintaxis, se crea un código que dbdiagram.io puede interpretar para generar automáticamente un diagrama relacional visual de la estructura de la base de datos y las relaciones entre las entidades.
Aqui te dejo el codigo, para otro ejemplo más complejo:
Table Departamento {
ID_Departamento int [pk]
Nombre varchar
}Table Estudiante {
ID_Estudiante int [pk]
Nombre varchar
Apellido varchar
Fecha_Nacimiento date
ID_Departamento int [ref: > Departamento.ID_Departamento]
}Table Asignatura {
ID_Asignatura int [pk]
Nombre varchar
Creditos int
ID_Departamento int [ref: > Departamento.ID_Departamento]
}Table Profesor {
ID_Profesor int [pk]
Nombre varchar
Apellido varchar
Fecha_Contratacion date
ID_Departamento int [ref: > Departamento.ID_Departamento]
}Table Inscripcion {
ID_Inscripcion int [pk]
ID_Estudiante int [ref: > Estudiante.ID_Estudiante]
ID_Asignatura int [ref: > Asignatura.ID_Asignatura]
Fecha_Inscripcion date
}Table Calificacion {
ID_Calificacion int [pk]
ID_Inscripcion int [ref: > Inscripcion.ID_Inscripcion]
Nota decimal
Fecha_Calificacion date
}Table Asignatura_Profesor {
ID_Asignatura_Profesor int [pk]
ID_Asignatura int [ref: > Asignatura.ID_Asignatura]
ID_Profesor int [ref: > Profesor.ID_Profesor]
}
Espero este contenido les ayude a hacer las tablas relacionales de forma más simple.
Nota:
En el contexto de las bases de datos, los tipos de datos se utilizan para especificar el tipo de información que se puede almacenar en un atributo (también conocido como columna) dentro de una tabla. Estos tipos de datos aseguran que los datos almacenados en la base de datos sean consistentes y sigan ciertas reglas.
Dbdiagram.io utiliza tipos de datos similares a los utilizados en lenguajes de consulta de bases de datos como SQL (Structured Query Language). Algunos de los tipos de datos comunes incluyen:
int
: Un número entero, que puede ser positivo, negativo o cero. Se utiliza para representar valores numéricos enteros, como la cantidad de productos en inventario o el número de visitantes en un sitio web.varchar
: Una cadena de caracteres de longitud variable. Se utiliza para almacenar texto, como nombres, direcciones de correo electrónico o descripciones de productos. El tamaño máximo de la cadena puede especificarse al definir el atributo, por ejemplo,varchar(255)
.date
: Una fecha en un formato específico (generalmente YYYY-MM-DD). Se utiliza para almacenar fechas sin información de hora, como fechas de nacimiento o fechas de vencimiento.decimal
: Un número decimal con una cantidad fija de dígitos a la derecha del punto decimal. Se utiliza para representar valores numéricos con decimales, como precios o porcentajes. Al definir este tipo de datos, puedes especificar el número total de dígitos y la cantidad de dígitos decimales, por ejemplo,decimal(10, 2)
.
Cuando creas un diagrama en dbdiagram.io, debes especificar el tipo de dato adecuado para cada atributo en tus tablas. Esto garantiza que la estructura de tu base de datos esté bien definida y que cada atributo pueda almacenar la información adecuada según su propósito.
Referencias.
Elmasri, R., & Navathe, S. B. (2016). Fundamentals of database systems (7th ed.). Pearson.
Garcia-Molina, H., Ullman, J. D., & Widom, J. (2009). Database systems: The complete book (2nd ed.). Prentice Hall.
Silberschatz, A., Korth, H. F., & Sudarshan, S. (2010). Database system concepts (6th ed.). McGraw-Hill.