设计制造数据库的六个技巧

设计和维护制造数据库是一项复杂的任务。在采用和部署解决方案之前,需要考虑许多问题。您不希望在将4000万条记录记录到在线生产数据库之后重新考虑您的数据库策略!以下是在规划数据库策略时需要考虑的部分建议列表。

通过Jeff Buck,系统架构师,罗克韦尔自动化,宾夕法尼亚州Canonsburg 二二年八月十五日

在达到4000万条记录之前弄清楚它....这是一篇关于数据库设计的实用建议,刊载于2002年6月《控制工程在线教程》的文章“如何充分利用数据库”。点击这里阅读全文“如何从数据库中获得最大收益”。

侧边栏:Rockwell Software FactoryTalk为集成提供了一种通用语言

设计和维护制造数据库是一项复杂的任务。在采用和部署解决方案之前,需要考虑许多问题。您不希望在将4000万条记录记录到在线生产数据库之后重新考虑您的数据库策略!

以下是在规划数据库策略时需要考虑的部分建议列表。

  • 最小化你的数据孤岛

  • 规范化数据

  • 反规范化你的数据

  • 使用声明性引用完整性

  • 避免“智能”主键

  • 尽早计划存档

下面将对每一项进行简要审查。

1.最小化数据孤岛。

被妥善管理和保护的机会。其次,你将知道你的数据在哪里,而不必在不同的计算机和应用程序中搜索。最后,您很可能能够采用新的业务规则和数据分析工具,这些规则和工具可以跨越曾经是不同的数据集。

2.规范化数据。

规范化数据是数据建模工程师所熟悉的一个术语。规范化是一组规则,可在关系模型中实现高效和非冗余的数据存储。许多数据库设计人员的共同目标是实现“第三范式”,这需要三个主要步骤:

A.第一范式-消除表中的重复列并分配主键。主键是表中唯一标识单个记录的一列或一组列。

B.第二范式删除应用于表中多行数据的子集,并将这些数据集放入链接到原始表的单独表中。

C.第三范式-删除任何不依赖于表主键的数据。虽然存在其他规范化级别,但这三个级别通常被认为是良好数据库设计的基础。

3.反规范化你的数据。

这不是与上面的步骤直接矛盾吗?是的。你什么时候,为什么想这么做?在数据库设计中,有时需要在数据的有效存储和数据的有效访问之间进行权衡。例如,针对高度规范化的数据库运行的某些报告可能在计算上很昂贵,因为许多规范化的数据表需要连接在一起以生成最终报告。实际上,数据仓库技术通常涉及某种程度的数据反规范化,以实现更有效的报告和分析。

您还应该考虑历史上准确的数据。以非规范化形式存储数据的一个原因是为了捕获相关数据的完整和准确的快照,而不必担心某个规范化数据集可能在将来的某个时候更改派生数据。例如,当你在网上买了一件东西,以后回头看你的账户时,你不会看到你的账户对账单被修改了,因为你买了这件东西后,它的价格发生了变化。

规范化和非规范化数据集可以在数据模型中和平共存。这两种技术通常适用于系统中的不同数据集。

4.使用声明性引用完整性

数据库引擎是一个功能强大的软件,它包含许多有助于保持数据安全和一致的特性。大多数企业数据库引擎提供声明性引用完整性作为这些功能之一。声明性引用完整性允许您指定关于各种表中数据之间关系的规则。例如,您可以声明一个规则,该规则将防止删除特定表中的记录,如果其他表中有记录依赖于该记录。这就是所谓的限制。另一种选择是,当删除表中的一条记录时,删除依赖于被删除的主记录的任何相关表中的记录(例如,如果删除订单,删除其所有行项)。这被称为级联。

许多软件系统会将这些类型的验证检查直接构建到代码中,但是声明性引用完整性将确保您的数据在数据库级别是安全的,即使您的软件忘记检查其中一条规则。

5.避免“智能”主键

创建关系数据库的一个重要部分是定义系统中不同表之间的关系。这些步骤通常作为上述规范化过程的一部分完成,并涉及定义主键和外键。同样,主键是表中唯一标识一条记录的一列或一组列。外键是表中的一列或一组列,它们“指向”另一个表中的唯一记录。

存储有关单元的特定信息的模型,例如其当前状态、模型类型、操作历史、测试结果等。一个可能的主键是单元的型号类型和序列号的连接。这将在一个字段中提供关于单元(其模型类型)的惟一性和附加信息。虽然这似乎是一件直观的事情,但它可能会在以后的一致性和性能方面造成问题。首先,它可能违反了第三范式。但更重要的是,如果在生产过程中设备的型号发生了变化,该怎么办?然后需要重新生成主键,这可能是一项麻烦且计算代价高昂的操作。

假设你从主键中删除了模型类型信息。如果序列号改变了怎么办?您仍然需要返回并更改主键以及从属表中对它的所有引用。在这种情况下,最好的方法是为单元使用一个内部任意唯一的编号,并将序列号仅仅视为单元的一个属性。所有外键引用都将使用内部唯一编号链接到主表,并且对序列号、型号类型或单元的任何其他属性的更改漠不关心。

这种方法还可以帮助降低存储需求和整体数据库性能。存储唯一整数(4字节)的外键比存储32个字符的序列号(32字节)要高效得多。此外,当将相关表连接在一起时,出于同样的原因,用于查找匹配键的比较可能会执行得更好。

6.尽早计划存档

您可能无法永远保持所有的生产数据在线。规划需要在线保存多少数据对于维护性能良好的数据库至关重要。此外,了解数据库引擎的功能可以帮助您规划策略。例如,Oracle提供了一个强大的特性,允许您将表的一部分脱机以进行备份、归档或删除,而表的其余部分在生产环境中处于联机状态。这对于保持最近的数据窗口在线,同时将旧数据清除到另一个系统非常有用。

总而言之,在设计数据模型时花一些时间提前计划可以为您省去许多麻烦。重要的是在理解应用程序将如何使用数据的基础上定义一致的模型。

更多访问罗克韦尔自动化

评论?电子邮件MHoske@cfemedia.com

罗克韦尔软件工厂/对话为集成提供了一种通用语言

Rockwell Software FactoryTalk是一种通用语言,可以使制造应用程序在整个企业中无缝集成,它提供了一组跨越制造企业的许多功能和技术领域的功能。FactoryTalk数据模型提供了一个健壮且一致的数据模型,可以作为制造数据的存储库主干。该模型允许应用程序建立在标准数据实体之上,并消除了数据孤岛的重复配置和存储。它还使用户能够一致地应用跨应用程序边界的业务规则,确保一个应用程序不会违反系统另一部分定义的约束。FactoryTalk数据模型也是可扩展的,因此订阅应用程序可以独立地添加特定于领域的实体和属性,同时保持核心实体的一致性。

FactoryTalk数据模型的另一个定义特征是它对标准的遵守。在适用的情况下,该模型建立在S95标准之上,该标准描述了企业控制系统集成的一组通用实体。这不仅加强了数据模型的健壮性,而且还使用户和外部应用程序更容易与系统集成。

创建数据模型是构建健壮的存储库的重要一步。然而,如果没有领域应用程序和工具来与数据模型进行交互,那么构建解决方案仍然需要集成商和用户进行大量的工作。罗克韦尔自动化提供了一套模块化解决方案,在FactoryTalk数据模型之上提供应用程序功能。这些解决方案分为三类:

1.提供开箱即用功能的应用程序产品
2.允许用户构建自定义解决方案的产品工具
3.允许用户构建广泛的自定义解决方案和扩展的集成工具。

像RSBizWare PlantMetrics这样的产品提供了开箱即用的应用程序功能,这些功能使用并构建在FactoryTalk数据模型之上,而不需要用户理解,甚至不需要知道后端数据模型。已安装的产品在FactoryTalk数据模型中注册,并可以立即共享可能与其他罗克韦尔软件产品创建的信息。

对于定制的数据收集解决方案,RSBizWare RSSql提供了强大的事务功能,允许用户将控制系统连接到关系数据库和其他企业系统。自定义数据收集应用程序通常涉及编写至少三个模块。首先,必须从控制设备(如OPC服务器)收集数据。接下来,需要将原始数据捆绑到事务中,这通常需要额外的数据处理,例如平均或其他数学或逻辑操作。此外,还需要定义触发逻辑,以指定如何以及何时发生此收集。最后,需要为正在使用的数据库引擎生成适当的SQL代码,从而将事务发送到数据库。

RSSql通过提供一组服务来提供灵活的数据绑定机制,从而消除了编写上述代码的需要,该机制允许用户将来自控制系统的源数据绑定到数据库实体(如表、视图或存储过程)中的字段。这一切都是通过图形用户界面完成的,该界面对用户隐藏了后端数据库连接和SQL。

因为它是双向的,所以RSSql还可以将数据从数据库实体写入控制系统。这对于根据控制系统中可能产生的事件将配方或设定值下载到控制器非常有用。用户还可以跨多台计算机分发RSSql组件,以实现高性能应用程序。RSSql还使用数据缓存机制来防止在计算机、数据库或网络不可用时数据丢失。RSSql支持多种数据库方言,并附带通用ODBC、OLE-DB和Oracle连接,以在高事务解决方案中实现最大性能。

展望未来,目前正在构建的FactoryTalk数据模型的下一个集成层将提供开发与FactoryTalk数据模型交互的高度定制的应用程序和扩展的能力。RSBizWare的下一个版本将提供一组Web服务,这些服务将FactoryTalk数据模型与附加的应用程序和系统逻辑包装在一个安全的环境中。这将成为工厂数据模型的编程接口,可以从任何平台和工具集使用标准的基于WSDL和soap的Web服务。这将使构建的应用程序能够在一系列设备上运行,从支持web的手持设备到服务器级业务系统