数据库设计教程——E-R实体联系图

2014-09-26 08:34:36

请关注唯心的个人微信公众号:craft6-cn(中划线,也可以搜索:领域驱动业务建模)

一、E-R图定义

   英文:E 为Entity,即实体;R为 Relationship,即联系。

   E-R图全称实体联系图。

   该图对需求分析、数据流图和数据字典阶段所得到数据进行更高层的抽象描述,将系统涉及的实体和

实体之间的联系通过图形描绘出来,以便从整体的角度来把握设计。

数据库设计教程——E-R实体联系图

二、E-R图基本要素(陈氏表示法)

    传统的E-R图包含实体、联系和属性三种基本成分,通常表示方式:

  • 用矩形代表实体,矩形中写实体名称;

  • 用连接实体的菱形框表示联系,菱形框内写联系名称,连接线写关系;

  • 用椭圆型表示实体或联系的属性;

  • 用直线把实体(或联系)与其属性连接起来。

  

    这种表示方法又称陈氏表示法,由1976年 Peter Chen首次提出。

    该表示法示例(使用Office Visio 2013 绘制):

    er图-自己画.jpg

   

    图中除了基本的陈氏表示法元素外,还增加了继承(从类图中取得该图形)和说明。

    继承表示两个实体之间的关系,说明则对图中元素进行一些附加描述。


    这种表示法有若干弊端:

  1. 对于一对多的关系不好处理。

    如图中,如果仅是希望表示谁下达了这张销售订单,通过菱形则需要附加不少说明才能表示,
    因为直线是没有箭头的,无法表示依赖。

  2. 无法解决子类型。

    比如参与者是一个抽象实体,下面可以衍生出人意、组织等,之间的关系是继承,但是陈氏
    表示法并没有提供继承的表示组件,所以我只能从类图中获得此组件的支持。

  3. 关系的约束。

    只能通过文字表达。


    陈氏表示法由于出现得比较早,局限于当时的软件理论的发展,的确存在一些不足。而且
在一张图中既关注整体(实体和实体间的联系),又关注细节(实体的属性),这显然不利于
建模。而且由于在数据字典环节,对属性已经做了分析,在这里又做分析,会增加项目分析阶段
的时间。

三、其它表示法

  • EER(Enhandced Entity-Relationship Model 扩展ER模型)

    eer.jpg

    基于陈氏表示法进行扩展,主要是针对实体联系类型的处理,在菱形两端增加联系的标示,如0、1、2、n之类。


  • IE(Information Engineering 信息模型)

    ie.jpg
    IE模型简化了联系的表示,采用了更加有效的三叉线的表示方式,并且大多忽略了属性的表示,有利于从高层建模。
    笔者使用的Visual Paradigm UML则是基本使用了IE模型来绘制ER图。
    在继承的处理,采用了在父实体矩形中嵌入矩形的方式。这点VP-UML中没有采用,所以我一般使用1对1或类图的
    继承来表示。

  • Oracle表示法
    oracle.jpg

    同样摒弃了菱形联系,换成三叉线。属性纳入到矩形中处理,这点VP-UML也是这样处理。
    继承关系采用矩形嵌套的方式。

  • IDEF1X模型(美国联邦政府广泛使用的一种模型)
    idef1x.jpg
    特点是:
    1、区分主码和普通属性;
    2、通过实现表示是外键关系,通过虚线表示业务上有联系,但并没有建外键。
    3、联系的表达和其它方式有所不同。

  • EXPRESS-G表示法

    express-g.jpg

    此种表达方式,笔者认为过于突出属性和数据类型,比如图中多处属性和STRING(字符串类型)关联。
    这样一下子就陷入细节了,不利于整体建模。


上面除传统的ER图陈氏表达法外,还介绍了5中表达方式,读者参考一下就可以了。

无论什么样的表示法,关键还是能满足我们的要求,方便理解和沟通。

笔者推荐Visual Paradigm UML,基于这款软件我们可以快速划出优美清晰的ER图,用于快速推进项目。

四、基于VP-UML画ER图

    下载VP-UML,百度云下载地址  (非正版,仅供学习使用)

    打开VP-UML,在左侧的目录树的数据库模型 --> 实体关系图中右键点击该节点,选择“新增实体关系图”。

    打开界面如下:

    产品目录ER图.jpg

 

  • 工具条

    显示可用的组件,一般我们用到的是实体、各种关系、注解和锚状物(即虚线,用于连接注解和注解对象)

  • 特性(左下)

    选择一个实体、关系或其它,在该栏会显示它的特性。我们可以更换颜色和字体等。

    笔者习惯将内部实体和外部实体(其它模块的)用颜色区分。

  • 共用

    如“包”比较适合表示某个实体和外部模块有关联情况,而不是单指和某个实体。

  • 往联系(即图中的关系组件)中加说明

    双击该关系线,就可以输入文字。

  • 往实体加属性

    右键点击实体,选择“开启规格说明”,在“栏”Tab中可以增加属性。
    注意只关注最核心的业务属性,公共的、通用的属性一般不在此图中添加。
    即有这些属性,有利于理解实体之间的联系和其它特定业务。


可通过扫描左侧二维码阅读本文。本站文章均为颜超敏原创,欢迎转载,请注明出处即可,转载可通过下面的社会化工具快速完成。

分享到:


为您推荐这些文章,如果感兴趣,请继续阅读吧:

数据库设计教程——E-R实体联系图

ER图,E-R图,实体联系图,陈氏模型,实体联系图陈氏表示法,

  英文:E 为Entity,即实体;R为 Relationship,即联系。 

  E-R图全称实体联系图。   该图对需求分析、数据流图和

数据字典阶段所得到数据进行更高层的抽象描述,将系统涉及

的实体和 实体之间的联系通过图形描绘出来,以便从整体的

角度来把握设计。

颜超敏,唯心六艺,Craft6.cn,电子商务博客,电子商务研发,电商研发,电子商务研究,电商研究,电子商务专家,电商专家,电子商务知识,电商知识,电子商务教程,电商教程,电子商务模式,电子商务平台,电子商务商业模式,电子商务数据库设计,电商数据库设计,电子商务系统分析,Java架构设计,Java软件架构,B2C,O2O,o2o模式,o2o电子商务,o2o电子商务平台,中国电子商务,电子商务平台建设方案
粤ICP备14060523号 Copyright @2014 -唯心六艺软件