信息建模集成定义(IDEF1X)是开发的数据建模语言。IDEF1X被用来产生一个图形信息模型,它表示在环境或系统中的信息的结构和语义 。
IDEF1X允许的语义模型构造,足以支持管理数据为资源,信息系统集成,和建造计算机数据库。这个标准是软件工程领域的IDEF建模语言家族的一部份。
概述
数据建模技术用来以标准的、一致的和可预测的方式来建模数据,从而将它作为资源来管理。它在一个机构内可以用于要求定义和分析数据资源的标准手段的项目中。这种项目包括将数据建模技术结合入方法论,管理数据为资源,集成信息系统,或设计计算机数据库。IDEF1X的根本目标是支持集成。集成的方法聚焦于捕获、管理和使用被称为的一个数据资源的单一语义定义。
在1980年代早期开发最初的IDEF1X的时候,主导系统开发的世界观(view of the world)是以数据和过程作为框架。这种数据/过程(D/P)范型(paradigm)的建模方法被归结为:
*世界由活动和事物构成。
*事物是集成的。活动是独存的(free-standing)。
*活动操作在事物上。
在这种方法中,信息建模技术的主要目标是:
*提供理解和分析一个机构内数据资源的方式。
*提供表示和推理数据的通用方式。
*提供体现运行一个企业所需数据的总体视图的方法。
*提供定义可被用户检验并转化成物理数据库设计的不依赖于应用的数据视图的方式。
*提供从现存数据资源导出集成数据定义的方法。
D/P范型对信息技术的所有方面施加了强大和普遍的影响。对于IDEF的结果是产生了两种不同的技术:IDEF0用于过程而IDEF1X用于数据。使用D/P世界观已经开发出了数以千计的成功系统,很多开发者继续成功的采用着这种技术。IDEF1X97(IDEFobject)采用了面向对象(OO)的世界观。
历史
在1970年代中期美国空军在(ICAM)规划中认识到了对的需要。这个规划的目标是通过计算机技术的系统应用增进制造生产力。ICAM规划确认了在增进制造生产力中所涉及到的人们需要更好的分析和交流技术。作为结果,ICAM规划开发了叫作IDEF(ICAM定义)方法的一系列技术,包括如下。这种方法的理论根源来自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的关键评论和影响。
IEEE Std 1320.2-1998继续了IDEF1X语言的演化。最初的工作由DBDG的Robert G. Brown在1994年和1995年早期为NIST完成,对IDEF1X向完全覆盖的对象建模的优雅进化,提供了所需要的基本元素。这个标准描述了IDEF1X97(IDEFobject)的语法和语义,它由两个概念建模语言组成:一个“键风格”语言后向兼容FIPS 184,它支持关系数据库和,和新的“标识风格”语言,它适合于对象数据库和。
在2008年9月2日,有关的NIST标准FIPS 183和FIPS 184被撤销。自从2012年9月,IDEF0和IDEF1X97(IDEFobject)一起成为ISO/IEC/IEEE国际标准,在2019年二者被确认仍是当前标准。
IDEF1X语法和语义
File:1 Entity Syntax.svg|实体语法
File:2 Example of a Domain Hierarchy.svg|域层级
File:4 Relationship Cardinality Syntax.jpg|联系的势语法
File:9 Non-Specific Relationship Syntax.jpg|未明确联系语法
; 实体(entity): 实体表示真实或抽象的事物(人、物体、处所、事件、想法、事物的组合等)的集合,这些事物由于共享着相同的特征并可以参与相同的联系,从而被识别为同一类的实例。
一个实体是“独立标识符”(identifier-independent)实体,如果这个实体的每个实例都可以唯一的标识出来,不用确定它的到其他实体的联系。一个实体是“依赖标识符”(identifier-dependent)实体,如果这个实体的实例要唯一的标识出来,得依赖于它的到其他实体的联系。
在实体联系模型中,将不能单独用自身特性唯一的标识出来的实体称为;有两种类型的弱实体:关联实体和子类型实体,子类型实体基于超类型实体的(discriminator)的值来继承它的特性。
; 类(class): 人们在心智上将在某种意义上类似的事物归类(classify)入一个类,以此意义(sense)命名并表示所有这种类似的事物。所有人都做这种归类,这是常理的一部份。以这种方式归类的事物是个体的事物,每个都明显不同(distinct)于所有其他事物。
在IDEF1X97中,一个类是一组类似事物的知识(数据)和行为(过程)的抽象。状态类表示具有可变更的状态的那些实例。实体对应于只有特性属性的状态类。依赖状态类是其实例就本性而言,内在的有关于特定的其他状态类的实例的状态类。独自拥有一个依赖状态类的实例而无关于另一个状态类的一个实例是不适当的,进一步的说,更换与其有关的实例是没有意义的。独立状态类是并非依赖状态类的状态类。
归类入一个类的任何事物都被称为这个类的一个实例。每个实例都被认为有一个唯一的、内在(intrinsic)的标识(identity),无关于它的属性(property)值或它所归属的类。一个实例的唯一标识将它区分于所有其他实例。
在IDEF1X97中,对于状态类,对象标识符(oid)表示了标识的概念。就一个表示系统(例如例子、形式化或软件)而言,oid代表了实例。在状态类实例的样本实例表中,每一行都有一个关联的oid。注意oid不是特性,oid对客户总是隐藏的。数据库中的(surrogate key)是在所建模世界中实体实例亦或数据库中对象的唯一标识符。代理键不导出自应用数据,而导出自应用数据的键称为自然键。
; (domain): 域是具有相同数据类型的(固定的或可能无限数目的)数据值的命名集合,特性实例从其中取得实际值。域可被当作不可变值的类,它包含的值不随时间改变。在IDEF1X97中,域被称为值类。
所有特性都必须恰好的定义在一个底层域之上。多个特性可以基于相同的底层域之上。类型(typed)域是基础类型或其他类型域的子类型,它可以进一步的约束这个域的可接受的值。一个类型域存在,如果它具有数据类型,并且满足它的超类型域的域规则。可以按这种方式定义域的层级,从层级自上而下具有更加紧缩的域规则。域层级是泛化层级,不同于实体的分类结构,这里不含摄域子类型要相互排斥。
在关系数据库中,要求各种表的所有列都声明在一个定义了的域之上被称为约束。关系模型中的主要数据单元即数据项是不可分解或原子性的。
框图中的一个一对三联系、一个一对二联系和两个实体之间的一个联系集合]]
; 联系(relationship): 联系是在两个实体的实例之间或相同实体的实例之间的关联(association)。联系的势(cardinality)是在一个联系中一个实体的可以相互关联的实例数目。在联系上可以指明特定的,实体的实例在一个联系中通常有四种类型中的一种势:极小0极大1,极小0极大不限,极小1极大1,极小1极大不限。
在实体联系模型中,实体的一个或多个实例参与(participate)一个单一的联系,联系对应于这些实体的数学关系,最常见的是两个实体间的二元关系,例如一个实体的一个实例和另一个实体的n个实例参与的一个单一的联系,对应n个有序对构成的二元关系。对于在集合X和集合Y上的二元关系R:
:*左唯一(left-unique)也称为(injective):对于所有y∈Y存在最多一个x∈X使得xRy。这等价于:对于所有x∈X,所有z∈X,所有y∈Y,如果xRy且zRy,则x=z。这里的集合Y叫作二元关系R的主键。
:*右唯一(right-unique)也称为(functional):对于所有x∈X存在最多一个y∈Y使得xRy。这等价于:对于所有x∈X,所有y∈Y,所有z∈Y,如果xRy且xRz,则y=z。这里的集合X叫作二元关系R的主键,这个规则叫做两个表之间的参照完整性约束。在参照或子表中的多个行可以涉及在被参照或父表中的相同行。在这种情况下,在被参照表和参照表之间的联系是联系。
; 标识符依赖(identifier dependency): 标识符依赖是在两个有关的实体之间的约束,要求一个实体(子实体)中的主键包含另一个实体(父实体)的整个主键。下述联系类型中,标识联系和分类联系体现了标识符依赖。
File:5 Identifying Relationship Syntax.jpg|标识联系语法
File:6 Mandatory Non-Identifying Relationship Syntax.jpg|强制非标识联系语法
File:7 Optional Non-Identifying Relationship Syntax.jpg|可选非标识联系语法
File:8 Categorization Relationship Syntax.svg|分类联系语法
; 联结(connection)联系: 联结联系也叫做父子联系,有明确的定义。它是在两个实体之间的关联或联结,其中被称为父实体的一个实体的每个实例,都关联于被称为子实体的另一个实体的零个、一个或多个实例。
联结联系分为子实体为“依赖标识符”实体的标识(identifying)联系,和子实体为“独立标识符”实体的非标识(non-identifying)联系。在强制(mandatory)非标识联系中,子实体的每个实例都恰好的关联于父实体的一个实例。在可选(optional)非标识联系中,子实体的每个实例关联于父实体的零个或一个实例。
在标识联系和强制非标识联系中,子实体总是存在依赖于父实体。可选非标识联系表示有条件的存在依赖。其中此联系的每个外键特性都有一个值的子实体的实例,必须有关联的父实体实例,其中此父实体实例的主键特性在值上等于子实体实例的外键特性。
; 分类(categorization)联系: 分类联系是其中两个实体的实例表示相同的真实或抽象事物的联系。一个实体(总属实体)表示这个事物完全集合,另一个实体(分属实体)表示这种事物的一个子类型或子分类。分属实体可以有一个或多个特征,或与其他实体的实例的联系,不共享于所有的总属实体实例。
分类簇(category cluster)是一个或多个分类联系的集合。总属实体的一个实例可以关联于这个簇里分属实体中只有一个实体的实例,而分属实体的每个实例都恰好的关联于总属实体的一个实例。因为总属实体的一个实例在分类簇中不能关联于多于一个分属实体的一个实例,分属实体是相互排斥的。在总属实体或它的一个前辈实体中的一个特性,可以被指派为这个实体的特定分类簇的。
在完备(complete)分类簇中,总属实体的所有实例都关联于一个分属实体的一个实例,也就是说所有可能的分类都出现了。在不完备(incomplete)分类簇中,总属实体的一个实例可以存在却不关联于任何分属实体的一个实例,也就是说某些分类被省略了。
分类结构是广泛化/特殊化构造。在中,子类型实体和超类型实体之间是一种Is-a联系。在IDEF1X中,子类型联系按分类实体集合是否完备而分为完备子类型联系和不完备子类型联系。
; 视图(view): 视图是为了某种用途而组装的实体和指定的特性(域)的一个搜集。IDEF1X中定义了三种层次的视图:实体联系(ER)、基于键(KB)和全特性(FA)。它们在抽象层次上有所不同。ER层次是最抽象的,它建模主题领域中最基础元素,即实体和它们的联系,它在作用范围上比其他层次要更宽广。KB层次增加键,而FA层次增加所有特性。
功能视图是构造用来显示所建模企业某方面功能有关的数据结构的视图框图。
IDEF1基本概念回顾
IDEF1X使用的术语非常类似于IDEF1,二者采用的理论基础和概念却有着根本的差异。实体在IDEF1中表示在一个特定机构内维持的关于物理或概念对象(比如人、处所、事物或想法)的信息。术语实体类在IDEF1中指称实体的搜集,或保管的关于真实世界中对象的信息的类。实体类可以被想象为是存放3英寸×5英寸卡片的盒子,每个卡片都是实际的实体。盒子外面标记着:⑴描述盒子中有何种类型的卡片的一个实体类名字,⑵向最终放进来的单个卡片提供的一个模板(template)。
实体拥有关联的特征特性,用来记录真实世界中对象的属性。使用卡片档案(card file)模型,特性类是向在这些单个档案卡片中找到的特性-值对提供的模板。术语特性类指称特性-值对的集合,这是通过将在档案盒子外面找到的特性的名字,和列出在这些单个卡片自身上的、对于单个实体类成员(实体)的这个特性的值,组合起来形成的。键类是一个或多个特性的一个搜集,凭借它就可将卡片或实体类成员相互区分开来。键类通过放置到模板的左上角并加以下划线来指示。
关系(relation)在IDEF1中是在两个单个的信息映像(image)之间的关联。这种参照的存在,是通过注意到一个实体类的这些特性类,包含了被参照的实体类成员的键类的那些特性类而发现(或验证)的。一个关系类可以被想象为是向实体类之间存在的关联提供的模板。需要注意到一个要点,如果关于两个或多个真实世界中对象之间的关联没有保管信息,那么从IDEF1的视角看来就不存在关系。关系类在IDEF1框图中表示为在实体类盒子之间的链接(link)。在链接端部的菱形和在链接中部的半菱形,编码了关于关系类的额外信息(就是势和依赖)。这些链接经常指示出一个机构的业务规则的存在。
同IDEF1X有关的底层概念,意图将关于真实世界事物的自然语言事实的建模,桥接于逻辑数据结构的建模。这相当不同于IDEF1的目标,它严格关注于真实世界事物的信息映像(不是事物自身,也不是表示关于事物的信息的数据结构)。
来自最初ICAM工作的概念和过程
三模式方法
在软件工程中,是建造信息系统和系统信息管理的方法,提倡概念模型作为完成数据集成的关键。
模式(schema)是一种模型,通常描绘为并且有时还结合语言描述。这个方法用的三个模式是:
- 用于用户视图的外部模式。
- 集成外部模式的。
- 定义物理存储结构的内部模式。
位于中心的概念模式,定义用户所思考和谈论的概念的本体。物理模式描述在数据库中存储的数据的内部格式,而外部模式定义应用程序表现出的数据的视图。这个框架尝试将多个数据模型用于外部模式。
概念模式提供一个企业内数据的一种单一的集成定义,它不偏向于数据的任何单一应用,并且不依赖于数据在物理上如何存储和访问。概念模式的主要目标是提供对数据的含义和相互关系的一种一致性定义,它可以被用于集成、共享和管理数据的完整性。概念模式必须有三个重要特征。
引用
延伸阅读
- Thomas A. Bruce (1992). Designing Quality Databases With Idef1X Information Models. Dorset House Publishing.
- Y. Tina Lee & Shigeki Umeda (2000). [https://www.nist.gov/publications/idef1x-information-model-supply-chain-simulation "An IDEF1x Information Model for a Supply Chain Simulation"].
外部链接
- [https://www.iso.org/standard/60614.html ISO/IEC/IEEE 31320-2:2012]
- [https://web.archive.org/web/20131203223034/http://www.itl.nist.gov/fipspubs/idef1x.doc FIPS Publication 184] Announcing the IDEF1X Standard December 1993 by the Computer Systems Laboratory of the National Institute of Standards and Technology (NIST). (Withdrawn by NIST 08 Sep 02 see [https://web.archive.org/web/20100801020458/http://www.itl.nist.gov/fipspubs/withdraw.htm Withdrawn FIPS by Numerical Order Index])
- [https://www.gpo.gov/fdsys/pkg/FR-2008-09-02/pdf/E8-20138.pdf Federal Register vol. 73 / page 51276] withdrawal decision
- [http://www.idef.com/idef1X.htm Overview of IDEF1X] at www.idef.com
- [http://www.essentialstrategies.com/publications/modeling/idef1x.htm IDEF1X] Overview from Essential Strategies, Inc.
评论 (0)