数据仓库专题19-数据建模语言Information Engineering - IE模型(转载)

简介: Information Engineering采用Crow's Foot表示法(也有叫做James Martin表示法的),中文翻译中对使用了Crow's Foot表示法的模型也有笼统的称做鸭掌模型的(关联关系的关联基数中采用到了一个鸭掌形的三叉线来表示)。
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 OrderParty是多对一 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
关联基数:用来表示关联实体的数量上限,为1n
图中右边部分表示的意义如下:1A必须关联到1个或多个B,一个B可以关联0个或1A

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

 

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

 

 

 

 


作者:张子良
出处:http://www.cnblogs.com/hadoopdev
本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

相关文章
|
大数据
阿里云EMR到底是什么?一图带你深入了解!
阿里云开源大数据平台E-MapReduce是运行在阿里云平台上的一种大数据处理的系统解决方案,那么它到底有着怎样的功能及优势呢?一起来看看吧!
3935 0
阿里云EMR到底是什么?一图带你深入了解!
|
关系型数据库 MySQL PostgreSQL
MySQL和PostgreSQL的常用语法差异
背景 在去年的DBMS评比中,PostgreSQL夺冠,PostgreSQL一直保持上升姿态,越来越多的客户选择使用PostgreSQL,还有一部分客户从MySQL迁往PostgreSQL,那PostgreSQL和MySQL对于开发者来说的差异在哪里呢?末学对比了下语法差异,不一样的地方用红色标记了出来,供大家参考。
14153 0
|
11月前
|
人工智能 安全 搜索推荐
《解锁鸿蒙系统AI能力,开启智能应用开发新时代》
鸿蒙系统凭借独特的分布式架构和强大的AI能力,为开发者提供了前所未有的机遇。系统内置15+系统级AI能力及14+AI控件,涵盖图像、语音、智能推荐等领域,支持低代码调用如文本识别、视觉输入等。开发者可借助DevEco CodeGenie助手实现代码生成补全、智能问答和万能卡片生成,大幅提升开发效率。同时,鸿蒙系统的多设备协同特性与AI结合,助力智能家居等场景的智能互联。开发者应注重用户数据安全与隐私保护,利用AI进行个性化推荐,提供更智能的服务,共同推动鸿蒙生态繁荣发展。
498 5
|
SQL 关系型数据库 MySQL
【Go语言专栏】使用Go语言连接MySQL数据库
【4月更文挑战第30天】本文介绍了如何使用Go语言连接和操作MySQL数据库,包括选择`go-sql-driver/mysql`驱动、安装导入、建立连接、执行SQL查询、插入/更新/删除操作、事务处理以及性能优化和最佳实践。通过示例代码,展示了连接数据库、使用连接池、事务管理和性能调优的方法,帮助开发者构建高效、稳定的Web应用。
2060 0
|
存储 小程序 API
深入调查研究Memos
【11月更文挑战第1天】
402 7
|
存储 Python
一文让你搞懂 Python 的 pyc 文件
一文让你搞懂 Python 的 pyc 文件
490 15
|
机器学习/深度学习 人工智能 自然语言处理
机器学习、深度学习和强化学习的关系和区别是什么?
众所周知,人工智能领域知识庞大且复杂,各种专业名词层出不穷,常常让初学者看得摸不着头脑。比如“机器学习”、“深度学习”、“强化学习”就属于这类名词。那么,针对这三者各自具体有哪些内容?三者是否有相关性?不同核心及侧重点是什么?以及各自的应用领域有哪些?应用的前景如何?等问题,本文根据百度百科等相关资料里的内容进行整理,形成了以下详细的阐述。
3135 0
|
Unix 索引
生信教程 | 基于PSMC估计有效群体大小
生信教程 | 基于PSMC估计有效群体大小
|
Java 数据库连接 图形学
JVM内存泄漏检测与处理
JVM内存泄漏检测与处理
153 0
|
SQL BI 数据库
Mac下安装与使用DbSchema
Mac下安装与使用DbSchema
366 0