car*_*per 2 erd entity-relationship notation relationship
实体关系是否有标准(非图形)表示法?
现在我正在使用我自己的janky表示法:
差不多 10 年后,我也很难找到明文标准。这是我到目前为止所发现的(尽管有公平的警告,它主要是碰巧在文本中运行良好的图形标准)。
首先,描述对象之间关系的基数的常用术语是“多重性”。
这种关联关系表明(至少)两个相关类中的一个引用了另一个。这种关系通常被描述为“A 有 B”(母猫有小猫,小猫有母猫)。
尽管相当多的资料来源也使用“基数”一词。关于Multiplicity vs Cardinality这个 SO question 上的差异有一些很好的答案。我发现这个非常简洁:
...多重性由低基数和高基数组成。基数是一个集合中有多少个元素。因此,多重性告诉您集合中允许的最小和最大成员。
UML 的多重性表示法在文本中运行良好。
+--------------+--------+-----------------------------------------+
| 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 |
+--------------+--------+-----------------------------------------+
Run Code Online (Sandbox Code Playgroud)
这似乎有一些变化:
微软的关系符号
+---------------------------------+---------------------+
| 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 |
+---------------------------------+---------------------+
Run Code Online (Sandbox Code Playgroud)+------+--------------------+-------------------------------+
| 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 |
+------+--------------------+-------------------------------+
Run Code Online (Sandbox Code Playgroud)Smartdraw 的马丁风格
从我所读到的陈风格是“原始格式”。我通常认为这在文本中表示为:
+----------+--------------+
| Notation | Description |
+----------+--------------+
| 1:1 | One to One |
| 1:N | One to Many |
| N:1 | Many to One |
| M:N | Many to Many |
+----------+--------------+
Run Code Online (Sandbox Code Playgroud)
有IDEF1x(NIST 标准):
IDEF1X 是一种设计关系数据库的方法,其语法旨在支持开发概念模式所需的语义构造。
这似乎描述了维基百科实体关系模型文章中引用的Min-Max / ISO 符号(英文链接目前已断开,但这里是一篇德语文章),该文章还列出了一些其他样式的图形符号,其中一些是文本友好的.
关于 (min,max) 符号的德语文章也有一个比较 UML, Chen, (min,max) 和MC (Modified 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) |
+----------------------+-----------------+---------------------------------+-------------+-----------------+----------------------+
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1849 次 |
| 最近记录: |