重复上面的步骤指定下面的候选键:
Order Detail: Order Detail Id Product: Product Id
你能够在任何非空标记的实体上产生一些或者所有的属性。
实体关系:强关联你现在有了具有完整属性的实体了,并通过代理键和候选键分配了主键的值。然而,超市数据库的设计还不是非常完整。你还没有引入任何在实体之间的关联 - 在实体关系图中你有责任产生的实体之间的"关系"。为了完成这个,在 Toolbox 视图中从 UML Class 面板中使用各种关联。
首先,看一下在 Order 和 Order Detail 之间的关联。这是一个典型的父-子关系:如果没有父 Order,将不会有 Order Detail 的存在。在 Data Modeler 中,这是一个强关联。使用工具栏中的 Composition Association 关联来表示它。
1. 选择逻辑数据模型图。
2. 在 UML Class 面板上点击一下 Composition Association 。
3. 在图中的 Order 实体上点击一下。
4. 在图中的 Order Detail 实体上点击一下。
一个关联被画在了两个实体之间。这是在 Properties 视图中使用它的可见的特性被自动选择的。如下调整特性:
1. 改变 End1Name 为 _Child Order Lines 。
2. 改变 End2Name 为 _Parent Order 。
3. 改变 End2Multiplicity 为 1 。
逻辑数据图中的结果看起来应该如下图:
关系的命名在实体关系建模中是被鼓励的,虽然有时你也许会争论关系是如此的明显,命名是没有必要的。
多样性确认:
一个 Order 的实例能够为一个 Order Detail 而存在(甚至虽然你还没有到物理这一级)。
为一个 Order 视图能够有零个和任何数量的 Order Detail 实体存在。这是由星号对面的被命名为 _Child Order Lines 的关系决定的。
当在 Data Modeler 的结构化的模型中处理多样性时, Data Modeler 再一次的提供了图形化显示关系的优点。
实体关系:弱关联一个 Order Detail 的实例需要一个 Order 实例的存在,因为在他们之间存在着强关联。然而, Order 和 Supplier 实体能够很好的独立存在 - 每一方都不一定需要对方的存在(因为是弱关联)。这种关联并不是至关重要的:一个 Order 实体的创建包含了选择适合他们的供应商。这就是一个弱关联。
你可以使用正规的 UML 关联建模它。
1. 选择逻辑数据模型图。
2. 从 Toolbox 视图中的 UML Class 面板点击一下 Association 。
3. 在图中的 Order 实体上点击一下。
4. 在图中的 Supplier 实体上点击一下。
一个关联被画在了两个实体之间。适当的调整这个关联。
1. 将 End1Multiplicity 改为 1 (一个 Order 实例必须有一个并只能有一个相关联的 Supplier 实例)。
2. 将 End2Multiplicity 改成 * (一个 Supplier 实例可以与零个、一个或者很多个 Order 实例相关联)。
3. 可选的,为关系的两端指定名字(End1Name 和 End2Name 特性)。
结果应该象下图所示:
在 Order Detail 和 Product 之间添加一个关联,使用与上面相同的步骤。End1Multiplicity 还是 1 并且 End2Multiplicity 是星号(*)(一个 Order Detail 实例能够引用一个并只能引用一个 Product 的实例;然而,相同的 Product 实例能够在多个 Order Detail 实例中存在)。
实体关系:一般化的角色两个实体被剩下还没有任何关联:Garment 和 Food Item 。他们是典型的实体子类型。现在你能够看到 Data Modeler 如何能够简单并自然的建模这个概念。对任何产品(不论是衣服还是食品)的可应用的属性都在 Product 实体中被保存。属性被指定的类型分别保存在 Garment 或者 Food Item 中。
如果父 Product 实例不存在的话,Garment 或者 Food Item 的实例也就不会存在,因此乍一看一个强关联应该是合适的(使用面板中的 composition 关联)。然而,Data Modeler 为这类关心开发了一般化(generalization )关联。将它引入到你的图中:
1. 选择逻辑数据模型图。
2. 在 UML Class 面板中点击一下 Generalization 。
3. 在图中的 Garment 实体上点击一下。
4. 在图中的 Product 实体上点击一下。
5. 在 UML Class 面板中再点击一下 Generalization
6. 在图中的 Food Item 实体上点击一下。
7. 在图中的 Product 实体上点击一下。
结果应该如下图所示:
文章来源于领测软件测试网 https://www.ltesting.net/