1、1第5章 逻辑数据模型 PowerDesigner的数据模型包括概念数据模型CDM、逻辑数据模型LDM和物理数据模型PDM。逻辑数据模型LDM是概念数据模型CDM的延伸,较概念数据模型更易于理解,同时又不依赖于具体的数据库。本章将详细介绍逻辑数据模型LDM的设计过程。25.1 什么是逻辑数据模型什么是逻辑数据模型 逻辑数据模型(LDM)介于概念数据模型(CDM)和物理数据模型(PDM)之间,表示概念之间的逻辑次序,是一个属于方法层次的模型。逻辑数据模型一方面描述了实体、实体属性以及实体之间关系,另一方面又将继承、实体关系中的引用等在实体的属性中进行展示。逻辑数据模型使得整个概念数据模型更易于理
2、解,同时又不依赖于具体的数据库实现,使用逻辑数据模型可以生成针对具体数据库管理系统的物理数据模型。采用PowerDesigner完成数据建模,逻辑数据模型设计不是必须的,可以由概念数据模型直接生成物理数据模型。35.2 创建创建LDM 在创建LDM之前,与CDM类似,首先要根据需求分析结果,从中提取系统需要处理的数据。包括实体、联系、特殊的业务规则等等,为创建LDM奠定基础。45.2.1 创建创建LDM的方法的方法建立LDM可以采用下面几种方法:新建LDM。从已有LDM生成新的LDM。从CDM生成LDM。通过逆向工程由PDM生成LDM。本章主要叙述新建LDM以及从已有LDM生成新的LDM的方法
3、;从CDM生成LDM的方法已在第4章介绍;由PDM生成LDM的方法将在第6章中讲解。55.2.2 创建创建LDM(续续)LDM创建过程具体操作步骤如下:1.建立LDM模型 选择FileNew Model菜单项,打开新建模型窗口,如图5.1所示。在新建模型窗口中选择Logical Data Model,即逻辑数据模型LDM。在Model Name处输入模型名称,然后单击“Ok”按钮,创建一个LDM模型。默认情况下新建模型将出现在PowerDesigner浏览器窗口中,同时打开用于设计选定图形对象的工具箱。LDM工具箱中特有工具选项含义如表5-1所示。65.2.2 创建创建LDM(续续)75.2.
4、2 创建创建LDM(续续)2.定义实体 选择工具箱中的Entity图标,光标形状由指针状态变为选定图标的形状;在图形设计工作区适当位置单击鼠标左键放置实体。可以连续放置多个实体;在LDM工作区空白处单击鼠标右键,结束实体定义工作。3.设置实体属性 双击实体符号,打开实体属性窗口,如图5.2所示。属性窗口中各选项卡的参数含义同CDM。85.2.2 创建创建LDM(续续)图5.4 设置主键95.2.2 创建创建LDM(续续)4.定义联系 在逻辑数据模型中联系有一般联系(Relationship)、多对多联系(n-n Relationship)和继承联系(Inheritance)三种类型。(1)定义
5、一般联系 一般联系用于定义“1:1”、“1:n”、“n:1”联系以及基数为“1:1”、“1:n”、“n:1”的递归联系和多元联系。具体操作步骤如下:105.2.2 创建创建LDM(续续)单击工具箱中的Relationship工具选项,在两个实体之间创建联系。鼠标双击联系图形符号,打开联系属性窗口。其中,General选项卡用于设置联系的基本信息;Cardinalities选项卡用于设置联系基数信息;Joins选项卡用于设置联系两端实体属性链接信息,如图5.5所示。设置结束后,单击“确定”按钮,结果如图5.6所示。115.2.2 创建创建LDM(续续)图5.5联系属性设置窗口(Joins选项卡)
6、图6.2 新建Java类 125.2.2 创建创建LDM(续续)联系两端链接的属性可以是主键、候选建、外键属性,也可以是其他属性,但通常情况下设置的是两端实体的外键关联信息。具体设置方法如下:首先在Parent下拉列表框中选择父实体主键,即根据父实体主键属性建立链接;然后在Child Attribute列表中设置子实体的链接属性。子实体属性可以选择子实体中已有属性(通过下拉列表选择),也可以设置为父实体属性。另外,也可以在Parent列表中选择None,直接在Parent Attribute列表中设置父实体链接属性;然后在Child Attribute 列表中设置子实体链接属性。135.2.2
7、 创建创建LDM(续续)子实体属性设置过程中可以辅助使用(Reuse Attributes)、(Migrate Attributes)(Cancel Migrate)几个工具。其中,表示重用子实体已有属性;表示迁移父实体属性到子实体;表示取消迁移。注意:针对“1:1”联系,Parent列表中出现的主键与Cardinalities选项卡中Dominant role参数设置相关,如果Dominant role参数设置为None,则不可以设置Joins选项卡信息;如果Dominant role参数已设置,则选择Dominant role参数指定角色左端实体为父实体。例如:Dominant role参
8、数设置为“职工仓库”,则父实体为“职工”,在Parent列表中列出的是“职工”实体的主键。145.2.2 创建创建LDM(续续)针对“1:n”联系,则父实体为1端实体。图图5.65.6职工职工-仓库仓库“1 1:1 1”联系联系155.2.2 创建创建LDM(续续)(2)定义“m:n”联系单击工具箱中的n-n Relationship工具选项,在两个实体之间创建联系。在LDM模型中,如果在模型选项设置中允许多对多联系,则工具选项 将创建一个多对多联系,其中,Joins选项卡信息不设置,其余选项卡参数设置方法同CDM;如果不允许多对多联系,则多对多联系直接被两个一对多联系替换。如图5.7所示。1
9、65.2.2 创建创建LDM(续续)图5.7 LDM“m:n”联系175.2.2 创建创建LDM(续续)鼠标双击新增实体,打开该实体属性窗口,添加“m:n”联系属性。鼠标双击联系符号,打开联系属性窗口,设置联系属性。在General选项卡中设置联系的基本信息;在Cardinalities选项卡中设置联系基数信息;在Joins选项卡中设置联系两端实体属性链接信息。设置方法同一般联系。上述“m:n”联系定义结果如图5.8所示。注意:LDM中可以定义域,定义方法与CDM相同;LDM中不存在数据项以及关联。185.2.2 创建创建LDM 图5.8 商品-供应商“m:n”联系195.2.3 设置设置LD
10、M模型选项模型选项(续续)LDM的显示参数及模型选项的设置方法与CDM类似。这里主要叙述LDM模型选项中属性迁移的设置,LDM模型显示参数的设置方法请读者参考第4章。设置方法如下:打开LDM模型,选择Tools Model Options菜单,打开模型选项设置窗口,如图5.9-5.10所示。205.2.3 设置设置LDM模型选项模型选项(续续)图5.9 模型选项设置窗口(Model Settings节点)215.2.3 设置设置LDM模型选项模型选项(续续)其中,Allow n-n relationships:参数用于设置LDM模型中是否允许多对多联系。其余参数同CDM。图5.10 模型选项设
11、置窗口(MigrationSettings节点)225.2.3 设置设置LDM模型选项模型选项其中:Migration Setting节点用于设置属性迁移时包括的内容,主要有域(Domain)、检查性约束(Check)、业务规则(Rules)、以及外键属性的命名模版样式和规则。其中命名模版在下拉列表中选择,可以全部采用模版(Always use template)命名,也可以仅在命名冲突时(Only use template in case of conflict)采用模版命名。235.3 管理管理LDM 在LDM模型设计过程中,同样要以规范化理论做指导,每个对象也要符合一定的规范,以保证LD
12、M模型的有效性。与CDM模型检查功能类似,PowerDesigner 提供了LDM模型检查功能,用于检查LDM模型中存在的错误。245.3.1 LDM有效性检查有效性检查 LDM模型有效性检查包括:包检查、业务规则检查、域检查、实体检查、实体属性检查、实体标识符检查、联系检查、继承联系检查、文件对象检查以及数据格式检查等等。LDM 模型检查具体操作过程以及能够进行检查的选项与CDM基本相同,这里不再赘述。255.3.2 LDM模型转换模型转换(续续)LDM模型转换主要包括由已有LDM生成新的LDM;由LDM生成CDM;由LDM生成PDM。具体转换过程如下:1.打开LDM模型。2.选择Tools
13、Generate菜单项,如图5.11所示,打开生成新模型窗口。3.设置各选项卡参数。由已有LDM生成新的LDM模型时:General 选项卡主要用于设置新模型名称、代码,或者选择需要更新的模型;Detail选项卡主要用于设置操作选项;Selection选项卡主要用于选择实体、联系、继承和域。265.3.2 LDM模型转换模型转换(续续)由LDM生成CDM模型时:General 选项卡主要用于设置新模型名称、代码,或者选择需要更新的模型;Detail选项卡主要用于设置操作选项;Selection选项卡主要用于选择实体。由LDM生成PDM模型时:General 选项卡主要用于设置DBMS类型,新模
14、型名称、代码,或者选择需要更新的模型;Detail选项卡主要用于设置操作选项,表名、索引名、外键名称定义规则以及参照完整性更新和删除规则。Selection选项卡主要用于选择实体。275.3.2 LDM模型转换模型转换4.单击“确定”按钮生成新模型。图5.11由 LDM模型生成其他模型285.4 本章小结本章小结 本章首先叙述了逻辑数据模型的概念,和概念数据模型以及物理数据模型之间的关系;接着叙述了创建逻辑数据模型的方法以及采用PowerDesigner完成逻辑数据模型创建的详细过程;最后,简要叙述了逻辑数据模型的有效性检查以及与其他模型的转换问题。通过本章的学习,读者应该掌握和了解以下内容:1.掌握逻辑数据模型的概念和作用。2.了解逻辑数据模型与概念数据模型和物理数据模型之间的关系。3.掌握采用PowerDesigner创建逻辑数据模型的方法和具体实现过程。4.了解逻辑数据模型与其他模型的转换方法。图6.9 property=*的使用 29习题五习题五1.简述LDM模型的功能。2.简述CDM、LDM和PDM之间的关系。3.在PowerDesigner中可以采用哪些方法创建LDM模型?4.简述新建LDM模型的过程?5.如何设置LDM模型中联系的Joins属性?