原文:在PowerDesigner中设计概念模型

在概念模型中主要有以下几个操作和设置的对象:实体(Entity)、实体属性 (Attribute)、实体标识(Identifiers)、关系(Relationship)、继承(Inheritance)、关联 (Association)、关联连接(Association Link)。

实体

实 体就是我们抽象出的对象,比如:一个选课系统中,学生、教师、班级、课程等等都是实体。实体属性就是一个实体中所包含的简单属性,比如学生实体,具有学 号、姓名、生日、性别等属性。另外实体还有个标识用于唯一的标识出每个实体实例,比如学生实体中就可用将学生的学号作为该实体的标识。标识可用是一个实体 属性也可以是多个属性的结合。在PD中新建一个新的概念模型,系统将出现一个工具栏如下,用于在设计面板中设计模型。

单击Entity图标,然后在设计主面板中单击一次便可添加一个实体。再单击鼠标图标,即可切换回一般鼠标的模式。双击已经添加的实体,弹出实体属性设置对话框,在General中可以设置实体的Name和Code等属性,如图所示:

切 换到Attributes选项卡可以设置实体的属性Name、Code、DataType等,右边还有3个复选框,M表示不能为空,P表示是标识属性,D 表示在模型图中是否显示,如果在设置属性时直接选中StudentID的P复选框,系统将会自动生成该Student实体的一个Identifier。

如 果不希望系统自动生成而是手动设置的话,那么切换到Identifiers选项卡,添加一行Identifier,然后单击左上角的“属性”按钮,然后弹 出的标识属性设置对话框中单击“添加行”按钮,选择该标识中使用的属性。例如将学号设置为学生实体的标识,具体操作如图所示:

整个设置好的实体如图所示:

关系

关系用于表示一个实体与另外一个实体之间的对应关系,分为一对一(1:1),一对多(1:n),多对一(n:1),多对多(m:n)4种对应关系,一对多和多对一其实就是方向相反,所以实际上就是一对一、一对多和多对多。

最 最常用的就是一对多,比如班级实体和学生实体就是一对多关系,一个班级有多个学生,一个学生只会属于一个班级。在设计面板中添加一个Class实体,然后 单击工具栏的Relationship按钮,然后在Class实体上单击一下,再到Student上单击一下,就可以在Class和Student之间建 立一对多关系,如图:

系统默认会给该关系一个命名Relationship_1,切换到鼠标指针模式,双击Relationship_1,即可打开关系的属性窗口,可以在General选项卡中修改该关系的Name、Code等,如图:

切 换到Cardinalities选项卡,上面可以修改是一对多还是多对多之类的关系,下面的Role name没有多大的意义,就是在模型中显示文字,多的一方有0,n和1,n两种,也就是说一个班级可以对应多个学生,那么一个班级中最少是没有学生还是要 至少存在一个学生,同样的一的一方有0,1和1,1两种,就是说一个学生是可以不属于任何班级呢还是必须属于某一个存在的班级,这里我们都选至少是1,所 以最终的设置界面如图:

继承

在概念模型中的继承与在OO模型中的继承是一回事,就是要抽象出一个实体,其他实体继承该实体后就拥有该实体的属性。

同样以选课系统为例,现在有学生实体,有教师实体,其他他们都是人,具有人的属性,所以我们可以抽象出一个人的实体,人具有性别、生日、名字等属性,教师具有职称、工号等属性这是学生没有的,所以不能放在人实体中,学生具有学号属性是教师没有的。

这里只是概念模型,在DBMS中是没有继承这种说法的,所以在接下来的逻辑模型和物理模型中,系统就会将继承转换为实际的实体和表。这里只是概念模型,所以才有继承的说法。

关联(Association)我也不知道这个翻译成中文用哪个词比较好,就暂且用“关联”吧。

Association也是一种实体间的连接,在Merise模型方法学理论中,Association是一种用于连接分别代表明确定义的对象的不同实体,这种连接仅仅通过另一个实体不能很明确地表达,而通过“事件(Event)”连接来表示。

也就是说,实体和实体之间存在着关系(多对多),但是这种关系还存在其他的属性,这些属性如果如果作为一个明确的实体的实体来表示又不是很合适,所以就使用了Association来表达,这种关系之间一般是一个“事件”虚实体,也就是说是一个动词对应的实体。

前面说的可能还是太抽象,以实际的例子来说明:现在有了学生实体,有课程实体,一个学生可以选择多门课程,一门课程有多个学生来上课,所以之间就存在一个“选课”的Association,其中记录了学生选课的时间、选课的状态:

一 个学生会对应多个选课结果选择多门课程,一个课程对应多个选课学生选课,所以学生实体和课程实体与选课的关系都是一对多,添加关联连接,一门课程可能太枯 燥了,没有学生来选,所以课程对应选课可能是0,n,一个学生可能学分够了这学期一门课都不选,所以学生对应选课也可能是0,n的关系,所以我们最终形成 的概念模型如图所示:

这就是一个完整的概念模型。接下来就是要根据概念模型生成逻辑模型或者物理模型。

在PowerDesigner中设计概念模型的更多相关文章

  1. 在PowerDesigner中设计物理模型1——表和主外键

    原文:在PowerDesigner中设计物理模型1--表和主外键 在PD中建立物理模型由以下几种办法: 直接新建物理模型. 设计好概念模型,然后由概念模型生成物理模型. 设计好逻辑模型,然后由逻辑模型 ...

  2. 在PowerDesigner中设计物理模型3——视图、存储过程和函数

    原文:在PowerDesigner中设计物理模型3--视图.存储过程和函数 视图 在SQL Server中视图定义了一个SQL查询,一个查询中可以查询一个表也可以查询多个表,在PD中定义视图与在SQL ...

  3. 在PowerDesigner中设计物理模型1——表和主外键(转)

    出处:http://www.cnblogs.com/studyzy/archive/2009/12/15/1624899.html 在PD中建立物理模型由以下几种办法: 直接新建物理模型. 设计好概念 ...

  4. 在PowerDesigner中设计物理模型2——约束

    唯一约束 唯一约束与创建唯一索引基本上是一回事,因为在创建唯一约束的时候,系统会创建对应的一个唯一索引,通过唯一索引来实现约束.不过唯一约束更直观的表达了对应列的唯一性,使得对应索引的目的更加清晰,所 ...

  5. 用PowerDesigner建立概念模型的问题:不能创建相同字段名的关键字段

    依次点击Tools--->Model Options->Model Settings,在Model Settings中有Data Item组框,取消里面的Unique Code,勾选All ...

  6. PowerDesigner使用常见问题

    1.在数据库生成表的时候,要求PowerDesigner中设计的表的Name的值要放到数据库中表的描述中,而不是PowerDesigner 中字段的Comment: 具体方法如下:首先将PowerDe ...

  7. Power Desginer系列03【转载】

    在PowerDesigner中设计物理模型1——表和主外键 在PD中建立物理模型由以下几种办法: 直接新建物理模型. 设计好概念模型,然后由概念模型生成物理模型. 设计好逻辑模型,然后由逻辑模型生成物 ...

  8. 17数据表&E-R模型&概念数据模型上-选学天轰穿大话数据库视频教程

    大纲:解剖“数据表”,戏说E-R模型,概念数据模型(E-R 到 CDM),使用PowerDesigner创建概念模型,生成逻辑数据模型 土豆超清地址: 腾讯超清地址: 百度云盘下载地址:上传ing,稍 ...

  9. oracle 问题若干 提醒注意

    1.Powerdesigner 里生成sql,在oracle中运行时报错:ORA-00907: 缺失右括号 解决:这样的问题很多时候是因为用了不正确的数据类型造成的.比如写作nvarchar(n),但 ...

随机推荐

  1. WCF 配置终结点并调用服务

    wcf通过xml文件配置终结点什么的感觉有点小麻烦,个人还是觉得用代码形式配置比较好,当然在发布的时候可能会比较麻烦,需要重新编译... 下面将wcf service寄宿在控制台应用程序中并配置终结点 ...

  2. 获取枚举Description的Name

    /// <summary> /// 获取枚举Description的Name /// </summary> /// <param name="enumName& ...

  3. mac eclipse 安装maven,svn插件

    Eclipse中m2eclipse插件的安装 Eclipse默认不支持Maven.需要给它添加m2eclipse插件,地址是:http://download.eclipse.org/technolog ...

  4. 转字符驱动实例gpio

    概述: 字符设备驱动程序: 是按照字符设备要求完成的由操作系统调用的代码. 重点理解以下内容:  1. 驱动是写给操作系统的代码,它不是直接给用户层程序调用的,而是给系统调用的  2. 所以驱动要向系 ...

  5. 扒一扒各大电商网站的m站都用的什么前端技术输入日志标题

    凡客首页使用Swiper和zepto,没有使用jquery , 静态首页+js交互,  资源加载使用 lazyLoad X-AspNet-Version: 4.0.30319 X-AspNetMvc- ...

  6. Sqlyog增加试用期

    win+r->输入regedit->进入注册表 在计算机->HKEY_CURRENT_USER->Software->{906D6D9F-AB51-429F……}中删除I ...

  7. ORA-06550:line 1,column 7;PLS-00201:indentifer '存储过程' must be declared;...PL/SQL Statement ignored 问题

    前段时间由于修改SMES系统,出现了一个问题. ORA-06550:line 1,column 7;PLS-00201:indentifer '存储过程' must be declared;...PL ...

  8. FACL的使用

    ACL的使用 ACL即Access Control List 主要的目的是提供传统的owner,group,others的read,write,execute权限之外的具体权限设置,ACL可以针对单一 ...

  9. Hbase的安装测试工作

    Hbase的安装测试工作: 安装:http://www.cnblogs.com/neverwinter/archive/2013/03/28/2985798.html 测试:http://www.cn ...

  10. 【BZOJ】【3398】【USACO 2009 Feb】Bullcow 牡牛和牝牛

    组合计数/乘法逆元 排列组合求总方案数 这个可以用一个一维的动态规划解决: f[i][0]表示第i头牛是牝牛的方案数 f[i][1]表示第i头牛是牡牛的方案数 则转移为:f[i][0]=f[i-1][ ...