IDEF1X

维基百科,自由的百科全书
跳到导航 跳到搜索
作为例子的IDEF1X元模型框图

信息建模集成定义IDEF1X)是语义数据模型英语Semantic data model开发的数据建模语言。IDEF1X被用来产生一个图形信息模型,它表示在环境或系统中的信息的结构和语义[1]

IDEF1X允许的语义模型构造,足以支持管理数据为资源,信息系统集成,和建造计算机数据库。这个标准是软件工程领域的IDEF建模语言家族的一部份。

概述[编辑]

数据建模技术用来以标准的、一致的和可预测的方式来建模数据,从而将它作为资源来管理。它可以用在组织内要求定义和分析数据资源的标准手段的项目中。这种项目包括将数据建模技术结合入方法论,管理数据为资源,集成信息系统,或设计计算机数据库。IDEF1X的根本目标是支持集成

DBeaver实体联系图缺省使用IDEF1X表示法[2]

历史[编辑]

IDEF信息建模(IDEF1)的最初方法由美国空军集成计算机辅助制造英语Integrated Computer-Aided Manufacturing(ICAM)规划在1981年发表,基于了当年的研究和工业需求[3]。这种方法的理论根源来自Edgar F. Codd关系模型理论上和Peter Chen实体联系模型上的早先工作。最初的IDEF1技术基于了休斯飞机公司的Dr R. R. Brown和Mr T. L. Ramey和D. Appleton公司(DACOM)的Mr D. S. Coleman的工作,有着Charles Bachman、Peter Chen、Dr M. A. Melkanoff和Dr G.M. Nijssen的关键评论和影响[1]

在1983年,美国空军发起了在ICAM规划之下的集成信息支持系统(I2S2)计划。这个计划的目标是提供一种技术,能够在逻辑上和物理上集成异构计算机硬件和软件的网络。这个计划和工业实验的结果是,认识到了对信息建模的增强技术的需求[1]

从空军IDEF规划的合同管理的视角看来,IDEF1X是ICAM IISS-6201计划的结果并由IISS-6202计划进一步的扩展了。为了满足IISS-6202计划确定的数据建模增强要求,子承包商DACOM,获取了逻辑数据库设计技术(LDDT)和它的支持软件(ADAM)的许可证。从建模技术的技术内容视角看来,IDEF1X是重命名了的LDDT。

LDDT是数据库设计组(DBDG)的Robert G. Brown在1982年设计的,他完全在IDEF规划之外并且不知情IDEF1。然而IDEF1和LDDT的中心目标是一致的。LDDT基于了关系模型实体联系模型和J. M. Smith与D. C. P. Smith的数据泛化(generalization)概念。LDDT的图形语法不同于IDEF1,并且更加重要的是,LDDT包含很多不出现于IDEF1的相互联系的建模概念。因此不再扩展IDEF1,DACOM的E. Loomis使用尽可能兼容于IDEF1的术语,写了一份LDDT的实质子集的语法和语义的简要总结。DACOM将结果标记为IDEF1X并提交给了ICAM规划,它在1985年将其发表[4][1]

在1993年12月,美国政府发行了IDEF0标准(联邦信息处理标准刊物183即FIPS 183)和IDEF1X标准(FIPS 184),并由国家标准技术研究所(NIST)来维护[5]IEEE Std 1320.2-1998继续了IDEF1X语言的演化。最初的工作由DBDG的Robert G. Brown在1994年和1995年早期为NIST完成,对IDEF1X向完全覆盖的对象建模的优雅进化,提供了所需要的基本元素。这个标准描述了IDEF1X97(IDEFobject)的语法和语义,它由两个概念建模语言组成:一个“键风格”语言后向兼容FIPS 184,它支持关系数据库和扩展关系数据库,和新的“唯一标识风格”语言,它适合于对象数据库面向对象建模英语Object-oriented modeling[6]

在2008年9月2日,有关的NIST标准FIPS 183和FIPS 184被撤销。自从2012年9月,IDEF1X97(IDEFobject)成为国际标准ISO/IEC/IEEE 31320-2:2012的一部份[7]

IDEF1X语法和语义[编辑]

实体(entity)
实体表示真实或抽象的事物(人、物体、位置、事件、想法、事物的组合等)的集合,这些事物由于共享着相同的特征并可以参与相同的联系,从而被识别为同一实例
一个实体是“独立标识符”(identifier-independent)实体,如果这个实体的每个实例都可以唯一的标识出来,不用确定它的到其他实体的联系。一个实体是“依赖标识符”(identifier-dependent)实体,如果这个实体的实例要唯一的标识出来,得依赖于它的到其他实体的联系。
实体联系模型中,将不能单独用自身特性唯一的标识出来的实体称为弱实体英语weak entity;有两种类型的弱实体:关联实体英语Associative entity子类型实体,子类型实体基于超类型(super-type)实体的鉴别器英语Discriminator(discriminator)的值来继承它的特性。
英语Data domain(domain)
域是具有相同数据类型的(固定的或可能无限数目的)数据值的命名集合,特性实例从其中取得实际值。域可被当作不可变,它的值不随时间改变。所有特性都必须恰好的定义在一个底层域之上。多个特性可以基于相同的底层域之上。
类型(typed)域是基础类型或其他类型域的子类型,它可以进一步的约束这个域的可接受的值。一个类型域存在,如果它具有数据类型,并且满足它的超类型(supertype)域的域规则。可以按这种方式定义域的层级,从层级自上而下具有更加紧缩的域规则。域层级是泛化层级,不同于实体的分类结构,这里不含摄域子类型要相互排斥。
关系数据库中,要求各种表的所有列都声明在一个定义了的域之上被称为域完整性英语Data_integrity#Databases约束。
特性英语Attribute (computing)(attribute)
特性是共同于一个实体的某些或所有实例的一个属性英语Property (programming)(property)或特征。特性表示域在一个实体的上下文中的使用。
实体的成立条件是它的特性要满足关系模型中的一组规范化理论约束,即第一范式第二范式第三范式。实体的实例对这个实体的相关特性不可给与多于一个的值,这个规则被称为不重复(no-repeat)规则。
英语Unique key(key)
键是一个实体的一个特性或特性的组合,它的值唯一的标识出每个实体实例。每个这种集合构成一个候选键(candidate key)。
主键(primary key)
主键是已选择为一个实体的唯一性标识的候选键。其他候选键则成为替代键(alternate key)。主键特性不能有空值。主键和替代键必须只包含对唯一性标识作出贡献的那些特性,具有复合英语Composite key主键的实体必须不能够拆分成具有更简单主键的多个实体,这个规则叫做最小键规则。
函数依赖是其应用局限在一个单一实体之内的一种特殊的完整性约束,这个实体的特性“X”的每个值都有与之相关联的最多一个它的特性“Y”的值(在任何一个时刻),特性“X”和“Y”可以是复合的,特性“Y”函数英语Partial function(functional)依赖于特性“X”。如果主键由多于一个特性组成,则每个非键(nonkey)特性的值必须函数依赖于整个主键,这个规则叫做完全函数依赖规则。不是主键或替代键的一部份的所有特性,必须只函数依赖于主键和每个替代键,这个规则叫做无传递依赖英语Transitive dependency规则。
关系数据库中,要求确保表的每行都有唯一且非空的主键值被称为实体完整性约束。每个替代键都可以指定唯一约束。
外键(foreign key)
外键是子或分属(category)实体实例的一个特性或特性组合,它的值匹配于有关的父或总属(generic)实体实例的主键中的值。
外键可以被看作父或总属实体的主键通过明确(specific)连接联系或分类联系“迁移”而来的结果。在外键中的特性或特性组合可以指派一个角色(role)名字,反映在子或分属实体中它的角色。
关系数据库中,通常要求外键等于主表中的某行的候选键,或者没有值即有空值[8],这个规则叫做两个表之间的参照完整性约束。在参照或子表中的多个行可以涉及在被参照或父表中的相同行。在这种情况下,在被参照表和参照表之间的联系是一对多英语One-to-many (data model)联系。
标识符依赖(identifier dependency)
标识符依赖是在两个有关的实体之间的约束,要求一个实体(子实体)中的主键包含另一个实体(父实体)的整个主键。下述联系类型中,标识联系和分类联系体现了标识符依赖。
存在依赖(existence dependency)
存在依赖是在两个有关的实体之间的约束,指出一个实体(子实体)的实例不能存在却无关于另一个实体(父实体)的实例。下述联系类型中,标识联系、强制非标识联系和分类联系体现了存在依赖。
Bachman框图中的一个一对三联系、一个一对二联系和两个实体之间的一个联系集合
联系(relationship)
联系是在两个实体的实例之间或相同实体的实例之间的关联(association)。
实体联系模型中,实体的一个或多个实例参与(participate)一个单一的联系,联系对应于这些实体的数学关系,最常见的是两个实体间的二元关系,例如一个实体的一个实例和另一个实体的n个实例参与的一个单一的联系,对应n个有序对构成的二元关系。在联系上可以指明特定的势约束英语cardinality (data modeling),实体的实例在一个联系中通常有四种类型中的一种:极小0极大1,极小0极大不限,极小1极大1,极小1极大不限。对于在集合X和集合Y上的二元关系R[9]
  • 左唯一(left-unique)也称为内射英语Binary_relation#Special_types_of_binary_relations(injective):对于所有y∈Y存在最多一个x∈X使得xRy。这等价于:对于所有x∈X,所有z∈X,所有y∈Y,如果xRy且zRy,则x=z。这里的集合Y叫作二元关系R的主键[10]
  • 右唯一(right-unique)也称为泛函英语Partial function(functional):对于所有x∈X存在最多一个y∈Y使得xRy。这等价于:对于所有x∈X,所有y∈Y,所有z∈Y,如果xRy且xRz,则y=z。这里的集合X叫作二元关系R的主键[10]
  • 左全体(left-total)也称为连续英语Serial relation(serial):对于所有x∈X存在最少一个y∈Y使得xRy。
  • 右全体(right-total)也称为满射英语Binary_relation#Special_types_of_binary_relations(surjective):对于所有y∈Y存在最少一个x∈X使得xRy。
通过唯一性性质,可以定义出特殊类型的二元关系:一对多英语One-to-many (data model),内射且非泛函;多对一,泛函且非内射;一对一英语One-to-one (data model),内射且泛函;多对多英语Many-to-many (data model),非泛函且非内射。通过唯一性和全体性性质,可以定义函数为泛函且连续的二元关系,进一步的定义出内射函数、满射函数和双射(bijective)函数。
连接(connection)联系
连接联系也叫做父子联系,有明确的英语cardinality (data modeling)定义。它是在链个实体之间的关联或连接,其中被称为父实体的一个实体的每个实例,都关联于被称为子实体的另一个实体的零个、一个或多个实例。
连接联系分为子实体为“依赖标识符”实体的标识(identifying)联系,和子实体为“独立标识符”实体的非标识(non-identifying)联系。在强制(mandatory)非标识联系中,子实体的每个实例都恰好的关联于父实体的一个实例。在可选(optional)非标识联系中,子实体的每个实例关联于父实体的零个或一个实例。
在标识联系和强制非标识联系中,子实体总是存在依赖于父实体。可选非标识联系表示有条件的存在依赖。其中此联系的每个外键特性都有一个值的子实体的实例,必须有关联的父实体实例,其中此父实体实例的主键特性在值上等于子实体实例的外键特性。
分类(categorization)联系
分类联系是其中两个实体的实例表示相同的真实或抽象事物的联系。一个实体(总属实体)表示这个事物完全集合,另一个实体(分属实体)表示这种事物的一个子类型或子分类。分属实体可以有一个或多个特征,或与其他实体的实例的联系,不共享于所有的总属实体实例。
分类簇(category cluster)是一个或多个分类联系的集合。总属实体的一个实例可以关联于这个簇里分属实体中只有一个实体的实例,而分属实体的每个实例都恰好的关联于总属实体的一个实例。在总属实体或它的一个前辈实体中的一个特性,可以被指派为这个实体的特定分类簇的鉴别器英语Discriminator。在完备(complete)分类簇中,总属实体的所有实例都关联于一个分属实体的一个实例,也就是说所有可能的分类都出现了。在不完备(incomplete)分类簇中,总属实体的一个实例可以存在却不关联于任何分属实体的一个实例,也就是说某些分类被省略了。
增强实体联系模型英语Enhanced entity–relationship model中,子类型实体和超类型实体之间是一种Is-a联系。在IDEF1X中,子类型联系按分类实体集合是否完备而分为完备子类型联系和不完备子类型联系。
未明确(non-specific)联系
未明确联系表示两个实体之间的多对多英语Many-to-many (data model)联系,其中任何一个实体的实例都可以关联于另一个实体的任何数目的实例。为了解决未明确联系而介入的实体有时叫做交叉(intersection)实体或关联实体英语Associative entity
视图(view)层次
视图是为了某种用途而组装的实体和指定的特性(域)的一个搜集。IDEF1X中定义了三种层次的视图:实体联系(ER)、基于键(KB)和全特性(FA)。它们在抽象层次上有所不同。ER层次是最抽象的。它建模主题领域种最基础元素,即实体和它们的联系。它在作用范围上比其他层次要更宽广。KB层次增加键而FA层次增加所有特性。

来自最初ICAM工作的概念和过程[编辑]

三模式方法[编辑]

在软件工程中,三模式方法英语three-schema approach是建造信息系统和系统信息管理的方法,提倡概念模型作为完成数据集成的关键[12]

模式(schema)是一种模型,通常描绘为框图英语diagram并且有时还结合语言描述。这个方法用的三个模式是[13]

  • 用于用户视图的外部模式。
  • 集成外部模式的概念模式英语Conceptual schema
  • 定义物理存储结构的内部模式。

位于中心的概念模式,定义用户所思考和谈论的概念本体。物理模式描述在数据库种存储的数据的内部格式,而外部模式定义应用程序表现出的数据的视图[14]。这个框架尝试将多个数据模型用于外部模式[15]

建模指南[编辑]

在第一阶段综合一个实体 – 实体定义

建模过程可以分成模型开发的五个阶段。

零阶段 – 项目初始
项目初始阶段的目标包括:
  • 项目定义:一般陈述已经做了什么、为什么要做和怎样做。
  • 来源材料:获取来源材料的规划,包括索引和文件归档。
  • 作者约定:约定(和可选的方法)的基础声明,作者选择它们用来制作和管理这个模型。
第一阶段 – 实体定义
实体定义阶段的目标是标识和定义属于要建模的问题领域的实体。实体是从基本实体实例综合出来的结果,这些实例成为这个实体的成员。第一阶段的产出是:
  • 实体池。实体池包含在此刻已知模型的上下文内的所有实体的名字。在第四阶段结束时,这个列表中的一些名字很有可能不能存留为实体。此外随着建模的前进和信息理解的增进,一些新的实体将被增加到这个列表并成为这个信息模型的一部份。
  • 实体词汇表(glossary)。在这个阶段词汇表只是实体定义的一个搜集。一个实体定义的构件包括:实体名字,实体定义和实体别名。
第二阶段 – 联系定义
联系定义阶段的目标是标识和定义在实体之间的基本联系。在建模的这个阶段,一些联系可以是未明确的并且需要在后续阶段来精制。从这个阶段主要的输出是:
  • 联系矩阵。IDEF1X限制使用二元联系,因为它们比多元联系易于定义和理解。要识别在各种实体之间观察到联系,可能要求开发一个实体的联系矩阵来指示出所有可能的实体之间的联系。
  • 联系定义。这些定义包括:依赖的指示,联系名字,和关于联系的叙事陈述。作为规定联系的结果,可能还会抛弃一些联系和增加新的联系。
  • 实体层次框图。在建模的这个阶段,所有实体都展示为方框并允许未明确联系。
第三阶段 - 键定义
键定义阶段的目标是:
  • 精制来自第二阶段未明确联系。精制联系的过程将每个未明确联系转化或转换两个明确联系,为此演进出新的实体。
  • 定义每个实体的键特性。标识键的过程包括:标识出一个实体的候选键,选择一个候选键作为这个实体的主键,标记这个实体的替代键。本阶段结束时产出键特性定义。特性定义包含:特性名字,特性定义和特性别名。
  • 迁移主键来建立外键。有三个规则支配这个过程:在一个联系中迁移总是发生于从父或总属实体到子或分属实体,整个主键(就是这个主键的所有成员特性)对这个实体对共享的每个联系都必须被迁移一次,非键特性永不被迁移。
  • 验证联系和键。应用各种规则对模型进行精制。通过路径断定去除多余的联系。随着主键成员被标识出来,涉及过的特性形成一个特性池。使用实体/特性矩阵来标识整个模型中特性的分布和使用。
第四阶段 - 特性定义
特性定义阶段的目标是:
  • 开发特性池。扩展第三阶段建立的特性池来包含非键特性。特性池是潜在可行的特性名字的一个搜集,是在这个模型中用到的特定名字的来源。
  • 确立特性从属。这一步为每个非键特性指定一个所属实体。
  • 定义非键特性。特性定义包含:特性名字,特性定义和特性别名/同义词。
  • 验证和精制数据结构。应用各种规则对模型进行精制。

参见[编辑]

引用[编辑]

  1. ^ 1.0 1.1 1.2 1.3 FIPS Publication 184 互联网档案馆存檔,存档日期2013-12-03. released of IDEF1X by the Computer Systems Laboratory of the National Institute of Standards and Technology (NIST). 21 December 1993.
  2. ^ DBeaver Documentation - ER Diagrams. 
  3. ^ IDEF1 Information Modeling - A Reconstruction of the Original Air Force Wright Aeronautical Laboratory Technical Report AFWAL-TR-81-4023 (PDF). 
  4. ^ IEEE 1998, p. iii
    Bruce 1992, p. xii
  5. ^ Systems Engineering Fundamentals. Defense Acquisition University Press, 2001.
  6. ^ IEEE Standard for Conceptual Modeling Language Syntax and Semantics for IDEF1X97(IDEFobject) (PDF). 
  7. ^ ISO/IEC/IEEE 31320-2:2012 Information technology — Modeling Languages — Part 2: Syntax and Semantics for IDEF1X97 (IDEFobject).
  8. ^ Elmasri, Ramez. Fundamentals of Database Systems. Addison-Wesley. 2011: 73–74. ISBN 978-0-13-608620-8. 
  9. ^ 这种对二元关系的类型的定义可见于如下:
    • Kilp, Mati; Knauer, Ulrich; Mikhalev, Alexander. Monoids, Acts and Categories: with Applications to Wreath Products and Graphs. Berlin: De Gruyter. 2000: 3. ISBN 978-3-11-015248-7. 
    • Peter J. Pahl; Rudolf Damrath. Mathematical Foundations of Computational Engineering: A Handbook. Springer Science & Business Media. 2001: 506. ISBN 978-3-540-67995-0. 
    • Eike Best. Semantics of Sequential and Parallel Programs. Prentice Hall. 1996: 19–21. ISBN 978-0-13-460643-9. 
    • Robert-Christoph Riemann. Modelling of Concurrent Systems: Structural and Semantical Methods in the High Level Petri Net Calculus. Herbert Utz Verlag. 1999: 21–22. ISBN 978-3-89675-629-9. 
  10. ^ 10.0 10.1 Codd, Edgar Frank. A Relational Model of Data for Large Shared Data Banks (PDF). Communications of the ACM. June 1970, 13 (6): 377–387 [2020-04-29]. doi:10.1145/362384.362685. 
  11. ^ itl.nist.gov (1993) Integration Definition for Information Modeling (IDEFIX) 互联网档案馆存檔,存档日期2013-12-03.. 21 Dec 1993.
  12. ^ STRAP SECTION 2 APPROACH. Retrieved 30 September 2008.
  13. ^ Mary E.S. Loomis (1987). The Database Book. p. 26.
  14. ^ John F. Sowa (2004). [ "The Challenge of Knowledge Soup"]. published in: Research Trends in Science, Technology and Mathematics Education. Edited by J. Ramadas & S. Chunawala, Homi Bhabha Centre, Mumbai, 2006.
  15. ^ Gad Ariav & James Clifford (1986). New Directions for Database Systems: Revised Versions of the Papers. New York University Graduate School of Business Administration. Center for Research on Information Systems, 1986.

延伸阅读[编辑]

外部链接[编辑]