精华内容
下载资源
问答
  • 概念模型

    2016-01-09 12:26:29
    1、概念模型  当我们要完成一个软件系统时,需要把系统中的实体抽取出来,形成概念模型。概念模型在Java中称为实体类,实体类--是与数据库中的表对应的,一种orm(对象与关系的映射...概念模型中的实体最终会成为Ja

    1、概念模型

      当我们要完成一个软件系统时,需要把系统中的实体抽取出来,形成概念模型。概念模型在Java中称为实体类,实体类--是与数据库中的表对应的,一种orm(对象与关系的映射);实体类在Java中的体现形式就是javaBean(所以说javabean是实体类的一种)。
      类使用成员变量来完成关系,一般都是双向关联!例如部门、员工都是系统中的实体。概念模型中的实体最终会成为Java中的类、数据库中表。实体之间也存在着关系,关系有三种:一对多、多对多和一对一。

    2、Java中的概念模型


       一对多:


        例如每个员工都从属一个部门,而一个部门可以有多个员工,其中员工是多方,而部门是一方,如下:

    class Employee {//多方关联一方
         ...
         private Department department;
      }
      class Department {//一方关联多方
         ...
         private List<Employee> employees;
      }


      ● 一对一:


        例如丈夫和妻子就是一对一的关系,一个丈夫只能有一个妻子,而一个妻子只能有一个丈夫,如下:

      class Husband {
         ...
         private Wife wife;
      }
      class Wife {
         ...
         private Husband;
      }


      ● 多对多:


        老师与学生的关系就是多对多,一个老师可以有多个学生,一个学生可以有多个老师。

     class Student {
         ...
         private List<Teacher> teachers
      }
      class Teacher {
         ...
         private List<Student> students;
      }


    2、数据库中的概念模型


      数据库中的概念模型称为表,表之间的关系:


      ● 一对多:


        最为常见的就是一对多!一对多和多对一,这是从哪个角度去看得出来的。emp和dept的关系,从dept来看就是一对多,而从emp的角度来看就是多对一!这种情况都是在多方创建外键:

      /*部门表*/
      create table dept (
        deptno int  primary key,/*部门编号*/
        ...
      );
      /*员工表*/
      create talbe emp (
        empno int primary key,
        ...
        deptno int,
        CONSTRAINT fk_emp FOREIGN KEY(mgr) REFERENCES emp(empno)  
      );

       一对一:


        丈夫和妻子是一对一的关系,在表中建立一对一关系比较特殊,需要让其中一张表的主键,即是主键又是外键。如下:  

     create table husband(
        hid int PRIMARY KEY,
        ...
      );
      create table wife(
        wid int PRIMARY KEY,
        ...
        ADD CONSTRAINT fk_wife_wid FOREIGN KEY(wid) REFERENCES husband(hid)
      );

        其中wife表的wid即是主键,又是相对husband表的外键!husband.hid是主键,不能重复,wife.wid是主键,不能重复,又是外键,必须来自husband.hid。所以如果在wife表中有一条记录的wid为1,那么wife表中的其他记录的wid就不能再是1了,因为它是主键。同时在husband.hid中必须存在1这个值,因为wid是外键。这就完成了一对一关系。


      ● 多对多:


        例如t_stu和t_teacher表,即一个学生可以有多个老师,而一个老师也可以有多个学生。这种情况通常需要创建中间表来处理多对多关系,即需要三张表,在中间表中使用两个外键,分别引用其他两个表的主键:

      create table student(
        sid int PRIMARY KEY,
        ...
      );
    
      create table teacher(
        tid int PRIMARY KEY,
        ...
      );
    
      create table stu_tea(
        sid int,
        tid int,
        ADD CONSTRAINT fk_stu_tea_sid FOREIGN KEY(sid) REFERENCES student(sid),
        ADD CONSTRAINT fk_stu_tea_tid FOREIGN KEY(tid) REFERENCES teacher(tid)
      );

        这时在stu_tea这个中间表中的每条记录都是来说明student和teacher表的关系,而两个外键都是可以重复的,这样就完成了多对多:

      sid    tid
      101    201 /*编号为101的学生有一个编号为201的老师*/
      101    202 /*编号为101的学生有一个编号为202的老师*/
      102    201 /*编号为102的学生有一个编号为201的老师*/
    
    


      小结:概念模型是对真实世界中问题域内的事物的描述,可以发现表描述概念模型是没有javabean描述的清晰的,尤其是在多对多的描述上。


    展开全文
  • 在设计过程中,发现实体关系中的依赖关系较难把握,所以在这里我想把所学的有关依赖关系的知识与经验,与大家分享,以飨初学之者。 依赖(Dependency)表示在联系中一个实体的存在是否依赖于另一个实体。寄生实体...

      最近我在设计一个《品质管理系统》,要涉及到数据库的设计,因此我使用了PowerDesigner 10作为建立概念数据模型与物理数据模型的工具。

            在设计过程中,发现实体关系中的依赖关系较难把握,所以在这里我想把所学的有关依赖关系的知识与经验,与大家分享,以飨初学之者。

            依赖(Dependency)表示在联系中一个实体的存在是否依赖于另一个实体。寄生实体(Dependent Entity)是一种部分地被另一实体确定的实体。

            在依赖联系中,一个实体与另一实体通过标识符相联系,当一个实体的存在没有另一个实体的存在作为参考就不能唯一确定时,两个实体间就存在依赖联系。

            依赖联系用一个三角形表示,三角形的顶点指向非寄生实体。图1表示了定单(Order)依赖于商店(Store)的依赖联系。

    http://yuekin.blogbus.com/files/1129096720.emf

           定单和书店间存在一种依赖联系,一个定单必须来自于一个特定的商店。依赖联系的三角形顶点指向书店实体。对寄生实体定单来说,这种联系是强制的,但对非寄生实体书店来说,这种联系是可选的。

    • 一个书店可以有一个或多个定单;
    • 一个定单必须来自于一个书店,而且只能是一个书店;
    • 每个定单由定单号与书店唯一确定。

            反映在实际的数据表中,即导出物理数据模型如图2:

    http://yuekin.blogbus.com/files/1129096760.emf

            在表Order中,Store ID与Order Number共同标识一个定单。

            递归联系:当一个实体的实例之间存在自身联系时,就产生了递归或反身联系。图3中职工之间的递归联系反映了职工之间的一种管理关系。

    • 一个职工可以领导零个或多个职工;
    • 一个职工必须受一个职工的领导。

    http://yuekin.blogbus.com/files/1129096793.emf

            反映在实际的数据表,即导出物理数据模型如图4:

    http://yuekin.blogbus.com/files/1129096827.emf

          在表Employee中,有两个employee id属性,但这两个属性是不同的,employee id是强制的,而Emp_employee id是非强制的。

    展开全文
  • 领域模型中的实体

    千次阅读 2018-04-03 00:09:37
    《阿里巴巴Java开发手册》中提到的VO、DTO、DO、PO等概念的解释领域模型中的实体类VO(View Object):视图对象,用于展示层,它的作用是把某个指定页面(或组件)的所有数据封装起来。DTO(Data Transfer Object)...

    《阿里巴巴Java开发手册》中提到的VO、DTO、DO、PO等概念的解释

    领域模型中的实体类



    • VO(View Object):视图对象,用于展示层,它的作用是把某个指定页面(或组件)的所有数据封装起来。
    • DTO(Data Transfer Object):数据传输对象,这个概念来源于J2EE的设计模式,原来的目的是为了EJB的分布式应用提供粗粒度的数据实体,以减少分布式调用的次数,从而提高分布式调用的性能和降低网络负载,但在这里,我泛指用于展示层与服务层之间的数据传输对象。
    • DO(Domain Object):领域对象,就是从现实世界中抽象出来的有形或无形的业务实体。
    • PO(PersistentObject):持久化对象,它跟持久层(通常是关系型数据库)的数据结构形成一一对应的映射关系,如果持久层是关系型数据库,那么,数据表中的每个字段(或若干个)就对应PO的一个(或若干个)属性。

    模型

    下面以一个时序图建立简单模型来描述上述对象在三层架构应用中的位置
    1. 用户发出请求(可能是填写表单),表单的数据在展示层被匹配为VO。
    2. 展示层把VO转换为服务层对应方法所要求的DTO,传送给服务层。
    3. 服务层首先根据DTO的数据构造(或重建)一个DO,调用DO的业务方法完成具体业务。
    4. 服务层把DO转换为持久层对应的PO(可以使用ORM工具,也可以不用),调用持久层的持久化方法,把PO传递给它,完成持久化操作。

    项目中的实体类

    项目中常见的实体类有VO,DO和DTO,命名规则也常是以相应字符串结尾,如*VO.Java。但是DTO不总是遵循这个规则,而通常与他的用途有关,如写成*Query.java,表示存储了一个查询条件。

    项目中实体类出现的业务层次也没有这么严格,例如我们可以在视图层就组装一个DO,也可以将一个VO从持久层传出来,所以与业务分层相关联的划分方法显得有些冗余。

    从项目代码中抽象出的理解是:VO对应于页面上需要显示的数据,DO对应于数据库中存储的数据,DTO对应于除二者之外需要进行传递的数据。


    一方库、二方库、三方库

    一方库指的是本项目中的依赖

    二方库指的是公司内部其他项目提供的依赖

    三方库指的是其他组织、公司等来自第三方的依赖


    展开全文
  • ER模型中的实体和联系

    万次阅读 热门讨论 2015-07-21 16:10:05
    总是听说到ER模型这个概念,它在程序设计的概念模型中非常重要,还启下着逻辑模型建设。前两天画图用到它,就研究了下,下面把研究东西总结下。  【 ER概念:】  定义:ER模型又称实体联系模型(Entity-...

                      

            总是听说到ER模型这个概念,它在程序设计的概念模型中非常重要,还启下着逻辑模型的建设。前两天画图用到它,就研究了下,下面把研究的东西总结下。

           【 ER的概念:】

            定义:ER模型又称实体联系模型(Entity-Relationship).是设计数据库的一个重要分析模型。

            实体:是一个数据集对象,或数据集(上篇博客数据结构导论里有介绍)。应用中可以区别的客观存在的事物。实体可以是一个人、文件、课程,它是具有自己属性、一组有意义的数据组成的一个集合体。。

             联系:实体不是孤立的,实体之间是有联系的。例如学生和课程之间具有交叉属性,即分数;A实体和B实体之间交互产生的数据就是它们的属性。

           【实例分析:】

            从网搜到一张上机房收费的ER图:

     

               照着画的自己的ER图:

                 可以看出这个是将数据库中每一个关系模式都当成了一个实体,但是在数据库系统原理学习过却有和这个不同的地方。

               【  例如:数据库系统原理上的例题加ER图】

                 某个教学管理系统有三个实体、四个联系。

                 实体转换成三个模式:

                 系(系编号,系名,电话)

                教师(教工号,姓名)

                课程(课程号,课程)

                画ER模型,将ER模型装换成关系模式(数据库中的表):


                     系(系编号,系名,电话,主管号)

                     教师(教工号,姓名,系编号)

                     课程(课程号,课程,系编号)

                    任教(教工号,课程号,学分)

                    从中可以看出,并不是每一个关系模式都是实体,关系模式可能是实体之间的联系产生出来的。于是就对机房收费ER图做了新的改动。

     

                 【总结】

                   和旧的ER图相比,新的将原先的一些查询记录实体转换成了实体之间联系的属性。

                   随着学习的深入相信对ER模型的理解会越来越到位的

     

    展开全文
  • 在powerdesigner中设计数据库概念模型时,可能会有不同表中的属性名相同的问题,数据库不同表有相同的属性名没有问题,但是在powerdesigner概念模型转物理模型时会出现实体属性唯一性的错误; 只需要在转换时候选项...
  • 其中实体型对应到CDM中的Entity,属性对应到CDM中每个Entity的Attribute,在概念上基本上是一一对应的。 但在联系上,CDM有了比较大的扩展,除了保留ER图原有的RelationShip概念之外,还增加了...
  • CDM和PDM区别?... 信息系统的概念设计工具,即实体-联系图(E-R图),CDM就是以其自身方式来描述E-R图。此时不考虑物理实现细节, 只表示数据库整体逻辑结构,独立于任何软件和数据存储结构 ...
  • 其中实体型对应到CDM中的Entity,属性对应到CDM中每个Entity的Attribute,在概念上基本上是一一对应的。但在联系上,CDM有了比较大的扩展,除了保留ER图原有的RelationShip概念之外,还增加了As...
  • 在PowerDesigner的概念模型中实体之间关系是非常重要,也决定了从概念模型转化到物理模型时表现形式,所以有必须深究其中相关设置。做数据库重要就是表与表之间关系,而这个关系是连接所有数据库系统...
  • 在PowerDesigner的概念模型中实体之间关系是非常重要,也决定了从概念模型转化到物理模型时表现形式,所以有必须深究其中相关设置。做数据库重要就是表与表之间关系,而这个关系是连接所有数据库系统...
  • PowerDesigner概念模型的relationship 、inheritance、 association 从PowerDesigner概念设计模型(CDM)中的3种实体关系说起 转载于:https://www.cnblogs.com/apeway/p/10756497.html...
  • 领域模型中的实体类:VO、DTO、DO、PO 一、实体类 二、领域模型中的实体类 三、项目中的实体类 四、补充model类型 五、通俗解释 六、总结 领域模型中的实体类:VO、DTO、DO、PO 经常会接触到VO,DO,DTO的...
  • 在powerdesigner的概念模型中实体之间关系是非常重要,也决定了从概念模型转化到物理模型时表现形式,所以有必须深究其中相关设置。做数据库重要就是表与表之间关系,而这个关系是连接所有数据库系统...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 3,256
精华内容 1,302
关键字:

概念模型中的实体