notación Entidad Relación en el texto
-
20-09-2019 - |
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)
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:
-
+---------------------------------+---------------------+ | 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 | +---------------------------------+---------------------+
-
+------+--------------------+-------------------------------+ | 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 | +------+--------------------+-------------------------------+
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.
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) |
+----------------------+-----------------+---------------------------------+-------------+-----------------+----------------------+