数据建模语言Information Engineering - IE模型

Information Engineering采用Crow‘s Foot表示法(也有叫做James Martin表示法的),中文翻译中对使用了Crow‘s Foot表示法的模型也有笼统的称做鸭掌模型的(关联关系的关联基数中采用到了一个鸭掌形的三叉线来表示)。他由Clive Finkelstein发明,与James Martin一起推广,后来两人各自做了些修正形成两份版本

前面示例模型的Information Engineering表示如下:

图:Information Engineering - IE模型 - Crow‘s Foot Model - 鸭掌模型图:Information Engineering - IE模型

注意IE模型与ER模型的区别。Purchase Order与Party是多对一 n:1 的关联关系,在ER模型中n被放置在了Party的左边,而IE模型中n被放置在了Purchase Order的右边。两种表示法的形式(相当于语法)不一样,但语义是一致的。这一点也只有ER模型是特殊的,其他模型表示法中都与IE 模型一致
Entity & Attribute:实体属性并不出现在IE模型中,而是单独使用另外的文档记录
Relationship
Crow‘s Foot的可选项optionality和关联基数cardinality 表示法:

图:Crow‘s Foot的可选项optionality和关联基数cardinality 表示法图:Crow‘s Foot的可选项optionality和关联基数cardinality 表示法

Optionality 可选项:用来表示该关联关系是可选的,还是必须的。对于可选的关联关系,通常表现为用于关联的外键字段允许为null值,或者对于使用中间关联关系表的情况下可以不出现关联数据,而必须的关联关系则不允许外键为null或者必须存在关联数据
Cardinality 关联基数:用来表示关联实体的数量上限,为1、n等
图中右边部分表示的意义如下:1个A必须关联到1个或多个B,一个B可以关联0个或1个A

关联的约束如图所示,Product和Service通过一个圆连接到Order Line。如果是实心圆则表示Product和Service是exclusive or;如果是空心圆则表示Product和Service是inclusive or(相容的,conjunctive),表示可以是其中之一或者多个
在上面IE模型图中,Order Line右侧是Finkelstein的一个特殊符号,表示一个Purchase Order初始时有0或n个Order Line,但最终必须有1或n个Order Line
Martin以动词命名关联关系,只命名一个方向(遵循从左到右、从上往下的方式),而Finkelstein不对关联关系命名

Sub-type:图中Party子类的表示方法由Martin采用,Finkelstein则对每个子类使用单独的实体,使用ISA关联关系(关联关系名称为ISA,也有采用类似UML继承的三角形符合,在关联线上使用一个三角形的)表示其为子类

时间: 2024-08-09 10:44:46

数据建模语言Information Engineering - IE模型的相关文章

YANG 1.1 数据建模语言

RFC7950 (The YANG 1.1 Data Modeling Language) 中文翻译版本 链接: https://tonydeng.github.io/rfc7950-zh/#yang-11-%E6%95%B0%E6%8D%AE%E5%BB%BA%E6%A8%A1%E8%AF%AD%E8%A8%80 原文地址:https://www.cnblogs.com/collapsar/p/10699448.html

《Entity Framework 6 Recipes》翻译系列 (3) -----第二章 实体数据建模基础之创建一个简单的模型 (转)

第二章 实体数据建模基础 很有可能,你才开始探索实体框架,你可能会问“我们怎么开始?”,如果你真是这样的话,那么本章就是一个很好的开始.如果不是,你已经建模,并在实体分裂和继承方面感觉良好,那么你可以跳过本章. 本章将带你漫游使用实体框架建模的基本实例,建模是实体框架的核心特性,同时也是区别实体框架和微软早期的数据访问平台的特性.一旦建好模,你就可以面向模型编写代码,而不用面向关系数据库中的行和列. 本章以创建一个简单概念模型的实例开始,然后让实体框架创建底层的数据库,剩下的实例,将向你展示,如

MongoDB实战-面向文档的数据(找到最合适的数据建模方式)

前一段时间一直研究通过Ruby操作MongoDB数据库,在学习的过程中也分享了自己学习成长的过程,撰写了包含两篇入门操作文章和十二篇进阶文章.本篇文章开始,我们将进入MongoDB的实战操作流程,MongoDB这一非关系型数据库-是一个文档型数据库,存储的是面向文档的数据. 如何在MongoDB数据库中使用schema 设计数据库schema是在已知数据库系统特性.数据本质以及应用程序需求的情况下为数据集选择最佳表述的过程.传统的关系型数据库RDBMS中鼓励使用正规化的数据模型,从而确保数据的可

R语言解读多元线性回归模型

转载:http://blog.fens.me/r-multi-linear-regression/ 前言 本文接上一篇R语言解读一元线性回归模型.在许多生活和工作的实际问题中,影响因变量的因素可能不止一个,比如对于知识水平越高的人,收入水平也越高,这样的一个结论.这其中可能包括了因为更好的家庭条件,所以有了更好的教育:因为在一线城市发展,所以有了更好的工作机会:所处的行业赶上了大的经济上行周期等.要想解读这些规律,是复杂的.多维度的,多元回归分析方法更适合解读生活的规律. 由于本文为非统计的专业

统一建模语言UML整理之开篇

引言: 这段时间将致力于写UML方面的博客,由于个人能力的有限,如果博客中出现错误的地方还请广大博友批评指正.为了更好地了解一个过程或者事物,人们通常根据所研究对象的某些特征(形状.结构.或行为等)建立相关的模型(Model).模型是从一个特定的视点对系统进行的抽象,它可以是实物模型,例如建筑模型,教学模型.玩具等,也可以是抽象数字或图示模型,例如数学公式或图形等.模型建立的目的不是复制真实的原物,而是帮助人们更好的理解复杂的事物本质,反应过程或事物内部各种因素执念的相互关系.下面就让我们进入U

DataUML 数据建模 介绍

DataUml Design 是面向开发人员使用的一个永久免费的软件,提高软件的开发效率和代码的规范度.它主要包括三大功能,数据模型.代码生成和UML建模,数据模型功能类似于PowerDesigner软件,代码生成类似于动软的代码生成器. 1.什么是DataUml Design     DataUml Design是采用WPF开发的一款软件,该软件功能包括实体类建模.数据库设计.模型与数据库同步.数据库与模型同步.代码生成.文档生成.数据库生成 实体模型等功能.以往的软件修改模型之后还得修改数据

Hive 官方手册翻译 -- Hive DDL(数据定义语言)

Hive DDL(数据定义语言) Confluence Administrator创建, Janaki Lahorani修改于 2018年9月19日 原文链接 https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DDL 翻译:Google Google翻译,金山软件 金山词霸 校对:南大通用 范振勇 (2018.9.26) 一.概述 这里是HiveQL DDL语句的文档,其中包括: CREATE 数据库/SCHEMA,表

Django博客开发-数据建模与样式设定

开发流程介绍 之前Django的学习过程当中已经把基本Django开发学完了,现在以Django 的博客项目完成一遍课程的回顾和总结.同时来一次完整开发的Django体验. 一个产品从研究到编码我们要经历以下的过程: 博客开发需求分析与建模 需求分析 本次项目完成的是一个博客的项目,博客主要目的是为了分享个人的技术,进行技术积累. 主要是发布文章日志.但是也需要有评论和互动.需要完成以下功能点: 1.文章的发布.展示.修改.删除. 2.文章评论 3.读者互动 4.图片管理 概要设计 我们对上面的

数据建模浅析(一)

数据建模的功能 一个概念或者一个工具的诞生是因为问题的出现,并且该问题应用现存的方法不能有效的解决. 在问题涉及多个领域时,则必然要求攻坚团队由对应领域人才组成.那么如何保证团队内部交流畅通?.数据模型就能应对该问题.(本人认为类比学习是能快速建立认知的方法) 直接上实例: 假设,现在需要你向一位语言不通的人指路.怎么办?(有纸笔). 一分钟考虑................. 很容易想到 画简略地图 上述地图就是一个实际道路模型,该地图是对实际地理景观的简化.同理数据模型就是对复杂信息景观的