Pregunta

¿Hay una notación estándar (no gráfica) para relaciones de entidades?

ahora mismo estoy usando mi propia notación janky:

  • Foto usuario >>, (1-muchos)
  • usuario> Perfil, (1-1 hasOne)
  • Perfil
  • Foto << usuario, (muchos-1 belongsTo)
  • Foto <> Tag, (muchos-muchos)
¿Fue útil?

Solución

¿Por qué no utilizar la misma que en ER-Diagramas:

  • Usuario 1-n Fotos
  • Usuario 1-1 Perfil
  • Foto n-1 usuario

y así sucesivamente. Pero nunca oído hablar de un standart oficial de texto plano.

Otros consejos

Casi 10 años más tarde y también he tenido dificultades para encontrar los estándares de texto plano. Esto es lo que he encontrado hasta ahora (advertencia justa sin embargo, es en su mayoría las normas gráficas que pasan a trabajar bien en el texto).

Primero, el término común para describir la cardinalidad de una relación entre los objetos es "multiplicidad".

  

Esta relación de asociación indica que (al menos) una de las dos clases relacionadas hacen referencia a la otra. Esta relación se describe generalmente como "A tiene un B" (un gato de la madre tiene gatitos, gatitos tienen un gato de la madre).

     

A pesar de un número considerable de fuentes también se utiliza el término "cardinalidad".  Hay algunas buenas respuestas acerca de la diferencia en este SO pregunta sobre multiplicidad vs cardinalidad . Me pareció que éste era ser bastante sucinta:

  

... una multiplicidad se compone de una cardinalidad una inferior y otra superior. Una cardinalidad es cuántos elementos hay en un conjunto. Por lo tanto, una multiplicidad le indica el mínimo y el máximo permitido miembros del conjunto.

     

Multiplicidad de UML notación

notación multiplicidad funciona bien en el texto.

+--------------+--------+-----------------------------------------+
| Multiplicity | Option |               Cardinality               |
+--------------+--------+-----------------------------------------+
| 0..0         | 0      | Collection must be empty                |
| 0..1         |        | No instances or one instance            |
| 1..1         | 1      | Exactly one instance                    |
| 0..*         | *      | Zero or more instances                  |
| 1..*         |        | At least one instance                   |
| 5..5         | 5      | Exactly 5 instances                     |
| m..n         |        | At least m but no more than n instances |
+--------------+--------+-----------------------------------------+

Parece que hay algunas variaciones de esto:

  • Relational Notación

    +---------------------------------+---------------------+
    |          Multiplicity           |     Cardinality     |
    +---------------------------------+---------------------+
    | *                               | One to zero or more |
    | 1..*                            | One to one or more  |
    | 0..1                            | One to zero or one  |
    | 1                               | Exactly one         |
    | Two numbers separated by a dash | a range             |
    +---------------------------------+---------------------+
    
  • de IBM

    +------+--------------------+-------------------------------+
    | Rose | Software Architect |          Description          |
    +------+--------------------+-------------------------------+
    | n    | *                  | Unlimited number of instances |
    | 1    | 1                  | Exactly 1 instance            |
    | 0..n | *                  | 0 or more instances           |
    | 1..n | 1,,*               | 1 or more instances           |
    | 0..1 | 0..1               | 0 or 1 instances              |
    +------+--------------------+-------------------------------+
    
  • Martin Estilo

Estilo Chen

lo que he leído estilo Chen es el "formato original". I comúnmente ver este expresa en texto como:

+----------+--------------+
| Notation | Description  |
+----------+--------------+
| 1:1      | One to One   |
| 1:N      | One to Many  |
| N:1      | Many to One  |
| M:N      | Many to Many |
+----------+--------------+

IDEF1X y otros

Hay IDEF1X (un estándar NIST):

  

IDEF1X es un método para el diseño de bases de datos relacionales con una sintaxis diseñada para soportar las construcciones semánticas necesarias para desarrollar un esquema conceptual.

Esto parece describir la Min-Max / ISO notación (la Inglés enlace está roto, pero aquí hay un artículo alemán) referenciado por Wikipedia de modelo Entidad-relación artículo que también incluye algunos otros estilos de gráfica anotaciones, algunas de las cuales son de texto para los niños.

introducir descripción de la imagen aquí

El idioma alemán artículo sobre (, min max) notación también tiene una mesa de útil comparar UML, Chen, (min, max) y MC (Modificado Chen) :

+----------------------+-----------------+---------------------------------+-------------+-----------------+----------------------+
| (min,max) [Entity 1] | [UML, Entity 1] |          Chen-Notation          | MC-Notation | [UML, Entity 2] | (min,max) [Entity 2] |
+----------------------+-----------------+---------------------------------+-------------+-----------------+----------------------+
| (0,1)                | 0..1            | 1:1                             | c:c         | 0..1            | (0,1)                |
| (0,N)                | 0..1            | 1:N                             | c:mc        | 0..*            | (0,1)                |
| (0,N)                | 1..1            | 1:N + total participation       | 1:mc        | 0..*            | (1,1)                |
| (0,N)                | 0..*            | M:N                             | mc:mc       | 0..*            | (0,N)                |
| (1,1)                | 0..1            | total participation + 1:1       | c:1         | 1..1            | (0,1)                |
| (1,N)                | 0..1            | total participation + 1:N       | c:m         | 1..*            | (0,1)                |
| (1,1)                | 1..1            | total part. + 1:1 + total part. | 1:1         | 1..1            | (1,1)                |
| (1,N)                | 1..1            | total part. + 1:N + total part. | 1:m         | 1..*            | (1,1)                |
| (1,N)                | 0..*            | total participation + M:N       | mc:m        | 1..*            | (0,N)                |
| (1,N)                | 1..*            | total part. + M:N + total part. | m:m         | 1..*            | (1,N)                |
+----------------------+-----------------+---------------------------------+-------------+-----------------+----------------------+
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top