ErdDocs

Símbolos del diagrama entidad relación

Los diagramas entidad relación usan tres familias de símbolos. La pata de gallo es la notación de las herramientas de bases de datos. Chen es la que se enseña en clase, y UML son los diagramas de clases aplicados a datos. En las tres, una tabla o entidad es un rectángulo y una relación es una línea entre rectángulos. Lo que cambia es cómo se escribe la cardinalidad, es decir, cuántas filas de un lado le corresponden a una fila del otro. La pata de gallo la marca en los extremos de la línea, y cada línea se lee dos veces, una hacia cada tabla. Abajo, cada símbolo aparece con su lectura. Lo dibuja ErdDocs con la misma notación que pone sobre tu propio esquema en la herramienta de abajo.

¿Qué significan los extremos de la pata de gallo?

En la pata de gallo todo ocurre en los extremos de la línea. Cada extremo apila hasta dos marcas. La más cercana a la tabla es el máximo, y la de fuera, el mínimo.

SímboloNombreCómo se leeEjemplo
Exactamente unoExactamente unoBarra + barra: al menos uno y como máximo unoun pedido pertenece a exactamente un cliente
Cero o unoCero o unoCírculo + barra: opcional, como máximo unoun cliente tiene como máximo una tarjeta de puntos
Uno o muchosUno o muchosBarra + pata de gallo: al menos unoun pedido tiene al menos una línea
Cero o muchosCero o muchosCírculo + pata de gallo: cualquier cantidad, incluso ningunaun cliente tiene cero o muchos pedidos
Hoja de referencia de la notación pata de gallo con los cuatro extremos de línea: exactamente uno (barra y barra), cero o uno (círculo y barra), uno o muchos (barra y pata de gallo), cero o muchos (círculo y pata de gallo)Hoja de referencia de la notación pata de gallo con los cuatro extremos de línea: exactamente uno (barra y barra), cero o uno (círculo y barra), uno o muchos (barra y pata de gallo), cero o muchos (círculo y pata de gallo)
Los mismos cuatro extremos en una sola tarjeta. Guárdala, o descarga el SVG en versión clara u oscura.

Cómo leer una línea completa

Una línea de relación se lee dos veces, una hacia cada tabla. El ejemplo clásico de una tienda:

Hacia orders: un cliente tiene cero o muchos pedidos. Hacia customers: un pedido pertenece a exactamente un cliente.customersorders
Hacia orders: un cliente tiene cero o muchos pedidos. Hacia customers: un pedido pertenece a exactamente un cliente.

Las reglas de lectura completas, incluido qué significan las marcas cuando el esquema solo se conoce a medias, están en la página de la notación pata de gallo. Qué combinación elegir es una cuestión de cardinalidad.

Chen, pata de gallo y UML

ConceptoChenPata de galloUML
Entidad / tablaRectánguloRectángulo con la lista de columnas dentroCaja de clase
AtributoÓvalo unido a la entidadUna fila dentro de la tablaUn campo en la caja de clase
RelaciónRombo entre entidadesUna línea con marcas de cardinalidad en cada extremoLínea de asociación
CardinalidadLetras 1, N, M junto al romboBarra, círculo y pata de gallo en los extremosMultiplicidades 1, 0..1, 1..*, *
Clave primariaAtributo subrayadoMarca de clave en la fila de la columnaEstereotipo o propiedad

Una regla práctica. Mientras el esquema es solo una idea, usa Chen. Si el diagrama vive junto al código de la aplicación, usa UML. Cuando ya es una base de datos, usa la pata de gallo. Esa es la que ErdDocs dibuja a partir del esquema que pegas.

Un símbolo que los libros no traen: la línea discontinua

A los volcados reales a menudo les faltan las claves foráneas. Las aplicaciones en Rails, Django y Laravel suelen controlar las relaciones en el código, así que la base no declara nada. Para ese caso, ErdDocs añade un símbolo propio. Una línea continua es una relación que declara la base. Una discontinua es una relación deducida del nombre de la columna, como user_id → users. La primera la garantiza una restricción, y la segunda es una suposición bien fundada.

La línea discontinua indica que no hay FOREIGN KEY en el volcado y que la relación sale de la convención de nombres.usersposts
La línea discontinua indica que no hay FOREIGN KEY en el volcado y que la relación sale de la convención de nombres.

Los símbolos sobre un esquema real

Pega tu SQL en la herramienta de abajo. Buscará las claves foráneas y las restricciones únicas, y con ellas marcará el lado «muchos» de cada línea.

Tu esquema

Preguntas frecuentes

¿Qué significan los símbolos de la pata de gallo?

Cada extremo de la línea apila hasta dos marcas. La más cercana a la tabla indica el máximo. Una barra es «como máximo uno» y la pata de tres puntas es «muchos». La de fuera indica el mínimo. Una barra es «al menos uno» y un círculo es «puede ser cero». Así, círculo + pata se lee «cero o muchos» y barra + barra, «exactamente uno».

¿Qué notación uso: Chen o pata de gallo?

Chen sirve para enseñar y para el modelo conceptual. Sus rombos convierten la relación en un elemento propio, y eso es lo que necesita una clase. La pata de gallo sirve para bases de datos reales. Dibuja un rectángulo por tabla con sus columnas dentro, que es la forma real de un esquema.

¿Cuál es el símbolo de una relación muchos a muchos?

Una pata de gallo en los dos extremos. En un esquema físico, el muchos a muchos se implementa con una tabla intermedia, como order_items entre orders y products. Por eso las herramientas que dibujan bases reales muestran dos relaciones uno a muchos que se juntan en esa tabla.

¿Por qué las herramientas de bases de datos no dibujan los rombos y óvalos de Chen?

Porque en una base de datos física lo que Chen dibuja por separado se reduce a tablas y columnas. Un óvalo de atributo es una fila dentro de la caja de la tabla. Un rombo de relación es una columna de clave foránea o una tabla intermedia. Dibujarlos como formas aparte duplicaría el tamaño del diagrama sin añadir ningún dato.

Relacionado