概念模型ER图及概念模型转化成关系模型ppt课件

上传人:钟*** 文档编号:5875949 上传时间:2020-02-10 格式:PPT 页数:87 大小:478.39KB
返回 下载 相关 举报
概念模型ER图及概念模型转化成关系模型ppt课件_第1页
第1页 / 共87页
概念模型ER图及概念模型转化成关系模型ppt课件_第2页
第2页 / 共87页
概念模型ER图及概念模型转化成关系模型ppt课件_第3页
第3页 / 共87页
点击查看更多>>
资源描述
第二讲 概念模型ER图及概念模型转化成关系模型 概念模型和实体关系图概念模型转化成逻辑模型PowerDesigner建立概念模型CDM概念数据模型CDM转化成物理数据模型PDM建立数据库 1 一 概念模型和实体关系图 把用户需求抽象为概念模型即为概念结构设计 概念模型除了要求能反映客观世界并且易于理解外 还要求其易于向数据模型 如关系模型 转化 概念模型独立于具体的数据库系统 是整个数据库设计的基础 2 1 概念模型 概念模型的用途概念模型用于信息世界的建模是现实世界到机器世界的一个中间层次是数据库设计的有力工具数据库设计人员和用户之间进行交流的语言对概念模型的基本要求较强的语义表达能力 能够方便 直接地表达应用中的各种语义知识简单 清晰 易于用户理解 3 2 信息世界中的基本概念 1 实体 Entity 客观存在并可相互区别的事物称为实体 可以是具体的人 事 物或抽象的概念 2 属性 Attribute 实体所具有的某一特性称为属性 一个实体可以由若干个属性来刻画 3 码 Key 唯一标识实体的属性集称为码 4 信息世界中的基本概念 续 4 域 Domain 属性的取值范围称为该属性的域 5 实体型 EntityType 用实体名及其属性名集合来抽象和刻画同类实体称为实体型 6 实体集 EntitySet 同型实体的集合称为实体集 5 信息世界中的基本概念 续 7 联系 Relationship 现实世界中事物内部以及事物之间的联系在信息世界中反映为实体内部的联系和实体之间的联系实体型间联系两个实体型一对一联系 1 1 三个实体型一对多联系 1 n 一个实体型多对多联系 m n 6 两个实体型间的联系 两个实体型间的联系 一对一联系如果对于实体集A中的每一个实体 实体集B中至多有一个实体与之联系 反之亦然 则称实体集A与实体集B具有一对一联系 记为1 1 实例班级与班长之间的联系 一个班级只有一个正班长一个班长只在一个班中任职 8 两个实体型间的联系 续 一对多联系如果对于实体集A中的每一个实体 实体集B中有n个实体 n 0 与之联系 反之 对于实体集B中的每一个实体 实体集A中至多只有一个实体与之联系 则称实体集A与实体集B有一对多联系记为1 n实例班级与学生之间的联系 一个班级中有若干名学生 每个学生只在一个班级中学习 9 两个实体型间的联系 续 多对多联系 m n 如果对于实体集A中的每一个实体 实体集B中有n个实体 n 0 与之联系 反之 对于实体集B中的每一个实体 实体集A中也有m个实体 m 0 与之联系 则称实体集A与实体B具有多对多联系 记为m n实例课程与学生之间的联系 一门课程同时有若干个学生选修一个学生可以同时选修多门课程 10 3 概念模型的表示方法ER图 实体型用矩形表示 矩形框内写明实体名 学生 教师 11 E R图 续 属性用椭圆形表示 并用无向边将其与相应的实体连接起来 12 E R图 续 联系联系本身 用菱形表示 菱形框内写明联系名 并用无向边分别与有关实体连接起来 同时在无向边旁标上联系的类型 1 1 1 n或m n 联系的属性 联系本身也是一种实体型 也可以有属性 如果一个联系具有属性 则这些属性也要用无向边与该联系连接起来 13 联系的表示方法 联系的表示方法 续 联系的表示方法示例 联系的表示方法示例 续 联系属性的表示方法 E R图实例 学生 课程 班级 学生卡 学号 姓名 选课 办卡 属于 课程号 课程名 学分 卡号 余额 班号 辅导员 m n 1 1 n 1 成绩 二 概念模型转化成逻辑模型 将E R图转换为关系模型实际是将实体集 属性以及联系转换为相应的关系模式 1 实体集的转换规则 概念模型中的一个实体集转换为关系模型中的一个关系 实体的属性就是关系的属性 实体的码就是关系的码 关系的结构是关系模式 2 实体集间联系的转换规则 以下举例基于以下的E R图 学生 课程 班级 学生卡 学号 姓名 选课 办卡 属于 课程号 课程名 学分 卡号 余额 班号 辅导员 m n 1 1 n 1 成绩 21 1 1 1联系的转换方法 一个1 1联系可以转换为一个独立的关系 也可以与任意一端实体集所对应的关系合并 如学生与学生卡关系的处理可以有三种 一种把学生卡的卡号作为学生关系 表 的一个属性 字段 第二种方法是把学生编号作为学生卡关系 表 的一个属性 字段 第三种方法为是单独建立一个关系 表 属性 字段 为学生号和学生卡卡号 22 2 1 n联系的转换方法 实体间的1 n联系可以有两种转换方法 一种方法是将联系转换成一个独立的关系 另一种方法是在n端实体集中增加新属性 新属性由联系对应的1端实体集的码和联系自身的属性构成 新增属性后原关系的码不变 如学生与班级为1 n的关系 一种方法是单独建立一个关系 表 属性 字段 为学生号和班级代码 第二种方法为在学生的关系 表 中增加班级编号属性 字段 23 3 m n联系的转换方法 在向关系模型转换时 一个m n联系转换为一个关系 两个多对多实体的码组成关系的码或码的一部分 多对多关系本身可以包含属性 如学生与课程的关系为m n的关系 可以用一个独立的关系 表 表示 其属性 字段 为学生编号 课程编号和成绩 前两者是码且是外码 24 最后上述概念模型转成的逻辑模型为 学生 学号 姓名 班号 学生卡 卡号 余额 学号 班级 班号 辅导员 课程 课程号 课程名 学分 学生 课程 学号 课程号 成绩 表示为码 下划线表示为外码 25 三 PowerDesigner设计数据库的过程一 E R图 学生 课程 班级 校园卡 学号 姓名 选课 持有 属于 编号 名称 学分 卡号 余额 班号 班名 m n 1 1 n 1 成绩 班长 1 1 26 二 概念数据模型CDM 使用Powerdesigner描述E R图 TeachingCDM 27 三 生成的物理模型 根据CDM生成的物理模型PDM图 TeachingPDM 28 生成物理模型的警告 学生和课程之间的多对多关系生成物理模型时会有一个indexinclusion的警告原因是外码和主码生成pdm时会自动建立index 生成的学生 课程关系中 学号和课程同是为主码和外码 所以重复建立了以下索引 学号 课程号 学号 课程号 29 四 生成的DDL语句 部分 PDM包含了选择的DBMS的DDL语句 createtableStudents stdidchar 6 notnull classidchar 6 notnull nametitlenull constraintPK STUDENTSprimarykey stdid altertableStudentsaddconstraintFK STUDENTS STDBELONG CLASSESforeignkey classid referencesclasses classid 30 四 PowerDesigner的概念数据模型 ConceptualDataModel PD对概念数据模型定义主要的内容 设计数据库过程通常开始于概念级 在此级不需要考虑实际物理实现的细节 一个概念数据模型CDM代表了一个数据库的整体逻辑结构 它独立于任何软件或数据存储结构 31 1 基本概念 目标 使用PowerDesigner建立概念数据模型新建 选菜单New 然后选ConceptualDataModel 概念模型 在Browse窗口的根WorkSpace下产生一个概念模型的结点 使用弹出菜单更名为 TeachingCDM 在该结点下已自动加入一个Diagram 在概念模型中加入实体等元素 右击概念模型TeachingCDM 选择New Entity或其他菜单 设置元素的特性 右击元素 选择菜单Properties将出现特性设置的对话框 不同类型的元素由不同的页框组成 元素的Name用于图中显示 所以一般取中文 而Code用于生成物理模型的对象名 如表名 列名等 一般取英文字母 32 A 实体 Entity 实体特性窗口中主要包含下列页框 General 设置实体 Entity 的编码 Code 名称 Name 和发生的行数 Number Attributes 属性 设置实体的属性Identifiers 设置实体的标识 对应物理模型中码和唯一性约束 33 实体属性 Attributes 和数据项 DataItems 实体属性 在实体的特性窗口的Attributes页框中设置实体的属性属性设置内容 包括Code Name Comment Datatype Length Domain和StandardChecks Maximum Minimum和Default 等数据项DataItem 在Entity中加入的所有属性将被自动加入在DataItems结点下作为数据项进行集中管理 也可以直接在DataItems下增加数据项 实体属性通过使用相同的Code引用该数据项定义 属性和数据项关系 实体的属性可以看作是DataItems下数据项的组合 DataItems是所有实体属性的集合 34 数据项机制的意义 相同数据项目定义一次 节省了工作量保证不同实体相同属性的定义一致性保证相同性质的列名一致性后两条通常先定义数据项 然后在实体中引用该数据项前两条通过域也能实现相同含义不同定义的属性code名不要同名 如进价和售价等 35 属性的Code值 缺省情况下为DataItems的唯一性标识 不同实体相同Code属性被认为对应的是一个数据项定义 是以后生成建表SQL语句的列名 属性的M P和D M Mandatory 强制 选中表示属性非空 P PrimaryIdentifier 选中为主标识 D Displayed 选中在图中显示该属性 否则不显示 36 AttributeProperties 列约束 设置 双击某一属性 进入属性特性设置框 其中standardChecks页框中包含了下列常用设置 最大 最小 缺省值 格式以及所有合法值生成的物理模型中建表SQL语句示例 ageintnulldefault18constraintCKC AGE ENTITY 1check ageisnullor agebetween16and20andagein 17 18 19 20 16 37 行约束 进货价格必须小于销售价格 在概念模型中新建一个BusinessRules 在Expresion Server中输入 进货价格 销售价格 Client中只在文档中反应 而不会对物理模型产生影响 在实体的Properties中的Rules页框点击AddObjects 选择上面建立的rule 在生成的物理模型的建表的SQL语句中出现 constraintCKT ENTITY 1check age length 38 选作实体主码数据项的排它性 若一个数据项作为一个实体的主码 就不能再作为其他实体的属性 基于的理由是Powerdesigner假设与某一实体主码同名的属性必是外码 而外码是在生成物理模型时根据实体间关系自动生成 在概念模型中无需设置 39 引出的Code的取名 即表列名 问题 被选作主码属性的code不能被其他实体使用所有实体主码属性的Code取值必须不同名 如实体一般均有编号 并且通常为主码 为此我们必须在编号前加上前缀 如StdId 任一实体主码属性的Code值不能再被其他实体的属性使用Code 数据项定义 同时Code 列名 所以生成的物理模型中相同的列名必须具有相同的定义 在商场管理信息系统中 很多单据都有数量属性 若这些数量属性具有相同的长度和精度要求 则Code可相同 反之 则Code不能同名 如必须取名为OrderQty SaleQty等 40 突破限制的方法 如在上述Code不能同名情况下 要求生成的物理模型列名一定要同名 可在生成的物理模型时打开选项 ConvertNamesintoCodes 即把Name作为列名 但一般不建议这样做 选择菜单Tools ModelOptions 对Model设置中的DataItem中关闭UniqueCode选项 注意 进入ModelOptions对话框内容根据当前Diagram是概念模型还是物理模型而不同 41 判定实体属性合适的准则 在概念模型中 不要试图使用属性来反映两个实体的关系 这本身就包含了实现方法 而实现方法应该由物理模型完成 辅导员不应该作为班级的属性 而应该通过班级和辅导员的关系来反映 学号不应该作为校园卡的属性 而应该通过学生和校园卡的关系来反映校园卡和学号的对应关系 课程和学生的关系Association即 选课 中不应该包括教师属性 而应该通过课程 学生和教师三者之间的Association来反映学生所选课和教师关系 42 实体标识 Identifier 定义 实体的属性或属性组合 在非空情况下其值唯一地标识一个实体 可以为空 PrimaryIdentifier 一个实体可有多个Identifier 但只能指定一个为PrimaryIdentifier 一定非空 设置方法 在实体Propertise窗口的Identifier中设置 双击某个Identifier设置其对应属性 生成物理模型 PrimaryIdentifier对应属性即为主码 其他Identifier对应属性被定义为Unique约束 43 PrimaryIdentifier设置 在实体的Properties窗口的Attributes中指定一个实体的某些属性为PrimaryIdentifier后 该实体将自动产生一个Identifier 1 其对应属性即为所有指定为PrimaryIdentifier的属性 去除属性的PrimaryIdentifier标志 并不会自动删除Identifier 1 但对应属性被自动删除 反之 删除Identifier 1或去除对应属性或去除PrimaryIdentifier标志 则实体所有属性自动去除PrimaryIdentifier标志 44 域 Domain 定义域 即属性的取值类型和范围 所有实体属性的Domain可取已定义的域 其Datatype将被该域取值类型和范围所取代 例 定义一个名称域title 则学生姓名和课程名称的Domain取title 域定义保证了具有相同取值类型和范围的属性域的一致性 一旦域需要修改 不必再逐个对实体属性进行修改 而只要对定义的域作一次修改 45 图 Diagram 以图形化的方式显示概念模型 一个概念模型下至少有一个Diagram 自动显示概念模型下的实体等元素 打开Palette窗口 右击工具栏 在弹出式菜单中打开Palette选项 在Palette窗口中包含了图形化方式显示的概念模型中的元素 可选中需要的元素加入Diagram中 46 关系 Powerdesigner提供了两种方法建立实体之间关系 Relationships 为ER模型表示法Associations 为Merise表示法 Merise为信息系统设计和开发方法 类似UML 在一个概念数据模型中 可以只使用relationship或只使用Association 也可以两者同时使用 47 关系 Relationship 建立实体之间的关系 在其Properties的Detail中设置关系的不同类型 在生成物理模型 Table 时 将根据两个实体的不同的关系 作不同处理 one one 双方或单方产生外码 one many或many one many方产生外码 many many 产生新表 属性由两者的主码属性构成 Relationship不能包含属性 48 Relationship的Details 主导作用 Dominantrole 在OnetoOne情况下可选 None 双方产生外码实体Ato实体B 仅在实体B产生外码实体Ato实体B 基数 Cardinality n m表示一个实体A可对应n m个实体B 可选0 1 1 1 0 n和1 n依赖关系 Dependent 含义 A的每个实例被B的一个实例所标识对物理模型影响 B的主码将成为A的主码一部分同时为B的外码强制关系 Mandatary 含义 A的每个实例需要一个B的实例对物理模型影响 A中的对B的外码非空 49 基数和依赖 强制之间的约束关系 基数 n m 和依赖 强制关系存在下列约束关系 1 0 1 不强制 不依赖2 0 n 不强制 无依赖3 1 1 强制 依赖可选4 1 n 强制 无依赖 50 强制 Mandatory 关系实例 1 1例 学生to校园卡 假设学生可不办校园卡 则学生和校园卡非强制关系 否则为强制关系 多 1例 学生to兴趣班 假设一个学生最多参加一个兴趣班 则为非强制关系 假设一个学生必须参加一个兴趣班 则为强制关系 51 依赖 Dependent 关系实例 学生和班级的多 1关系 如整个学校学生的学号唯一 则学生对班级为非依赖关系 产生物理模型结果是班号作为学生的外码 如学生的学号仅在班级中唯一 则学生对班级为依赖关系 产生物理模型结果是班号将作为学生主码一部分 和学号一起为主码 同时班号为学生的外码 52 把关系转换为实体 1 1 1 多和多 多关系均可以转换为实体 特别是对多 多关系 转换为实体后可以包含属性 把Relationship转换为实体的方法是使用关系的弹出菜单中的ChangetoEntity 53 思考和练习 在TeachingCDM中 students和classes的Relationship加上依赖关系 然后生成物理模型 观察区别 在实际应用中 学号往往包含了学生的级别 专业 班号等信息 这实际不符合1NF 如何设计更规范 同时又能按需求规则输出包含级别 专业 班号等信息的学号 提示 参考上述1 多关系中的依赖关系进行设计 54 思考和练习 实体学生的班长的关系 由于班长本身是学生 所以是一个实体自己和自己的关系 建立这种关系后将在物理模型中产生什么情况 如此处理是否是唯一方法 是否可以通过学生和班级的关系来反映学生和班长的关系 比较两种方法 55 3 3 1 5Association和AssociationLink 作用 Association通过AssocationLink与多个实体连接 并可包括自己的属性 一般用于二个和二个以上实体的联系 使用方法 可以直接用AssociationLink连接两个实体 将产生一个Association 两个Assocation和实体的连接AssociationLink 也可以先建立一个Association 然后用AssociationLink连接Assocation和某个实体 生成物理模型 将同Relationship一样根据是1 1 1 多还是多 多关系生成外码或生成一个Table 56 关系类型的表示 通过Association连接的两个实体的关系类型 是分别通过两实体和Association的AssociationLink类型来确定的 下面是班级和学生的1 多关系 其中的1 1和1 n并非表示班级和学生的多 1关系 事实是1 多关系 而表示的是学生在学生和班级关系中发生1 1次 而班级在学生和班级的关系中将发生1 n次 57 1 多Association及生成的物理模型 58 Relationship和Association的使用建议 对1 1 1 多和不包含属性的多 多关系 使用Relationship 实体之间的多 多关系且包含属性的使用Association比较简单 要处理复杂的问题 如建立关系之间的关系或关系与实体之间的关系 必须使用Relationship 59 思考和练习 学生和课程的关系即 选课 可使用Association 也可以使用一个实体 该实体具有成绩属性 然后分别和学生和课程建立强制的依赖多 1关系 分别用这两种方法设计CDM 然后生成PDM 比较分析两种方法的优缺点 上述实体及其关系可以在两个实体建立的Relationship后 右击Relationship使用弹出菜单中的ChangetoEntity Standard生成 60 3 3 1 6继承关系 Inheritance 继承关系的一端连接具有普遍性的Entity 称为ParentEntity 继承关系的另一端连接具有特殊性的一个或多个Entity称为ChildEntity 例如 学生 为 本科生 与 研究生 的Parent 后者为前者的Child 继承关系生成物理模型的控制 如关系属性中打开GenerateChildren选项 可选Parent的所有属性或仅主属性复制到Children对应表中 如关闭GenerateChildren选项 则仅生成Parent表 该表将包含子实体所有属性并可设置SpecifyingAttribute 如生成父子表同时打开 父表主码将作为子表主码和外码 SpecifyingAttribute 设置属性 这些属性将出现在生成的父表中 通常用作区分是哪个Children 61 互斥性继承 MutuallyExclusiveChildren 同一事件 occurrence 不能出現在同一Parent的两个child中 这种继承称为互斥性继承 反之 则称为非互斥性继承 如父实体一个学生只能是本科生或研究生取其一 则本科生和研究生为学生的互斥性继承 否则 如一个学生可同时为本科生和研究生 则为非互斥性继承 此设置只影响文档而不影响生成的PDM 62 继承的实践应用 对若干实体的公共属性 可把这些公共属性抽取出来形成一个父实体 具有公共属性的实体可从该父实体继承这些公共属性 如所有单据都有单据号 日期 制单人等 则这些属性可形成一个 单据公共属性 实体 所有单据实体继承该实体属性 概念模型下 出现在主键 如单据号 中的数据项不能重复使用 若在物理模型下 所有单据号要使用相同的列名 可以使用Inheritance 63 实用技巧 实际继承的前提条件是Child具有较多的共同属性 使用继承可避免共同属性重复维护并保持其一致性 仅生成Child 适用Child之间共同属性相对少而差异大的情况 在Child之间非互斥情况下 会有冗余 仅生成Parent 适用Child之间差异小的情况 五斥情况下 某个Child的属性对其他Child一定为空 生成Parent及部分Child 适用Child之间共性属性相对多而差异也大情况 此情形Child仅需要继承Parent的主属性 互斥和非互斥情况均适用 互斥情况下Parent与Child为1 1 在非互斥情况下为1对多 64 例 使用继承完成下列概念模型设计 业务单据 共同属性 单据号 日期 备注 制单人 审核人等诸多共同属性 特殊属性 进货单 供应商 结算方式出库单 仓库 出库类型 65 思考和练习 继承最后生成的物理模型可有下列选择 分析其利弊 生成Parent 不生成Parent仅继承主码属性继承所有属性 66 3 3 2概念数据模型实例分析例1 商品和单据实体的概念模型 错误的设计 单据实体的属性一部分和单据为1 1 另一部分为1 多 所以把它分成两个实体 分别为单据摘要和单据明细 67 生成的物理数据模型 必须在生成的物理数据模型中为单据明细设置主码 68 正确的处理 单据明细实际上反映的是单据实体和商品实体的多对多关系 69 生成的物理数据模型 生成的物理数据模型不必作任何修改 70 例2同一实体的多个外键引用的处理 单据主表中有制单人 申请人和验收人等 这些属性同是 员工表 的外键 产生问题是 在概念模型中 员工 实体和 单据 实体将有多个1 Mrelationship 生成物理模型后 单据 表中将产生多个 员工号 外键 其列名由PowerDesigner根据概念模型对应属性的code自动合成 无法人工控制 71 错误的处理 概念和物理数据模型 生成物理数据模型中单据的处理人的列名无法控制 只能作修改 实际上单据中处理人的列是重复的 不符合1NF 72 正确的处理 增加单据责任实体 73 生成的物理模型 74 例3 多供应商问题 问题 一个超市中某种商品的供应商一般一个时期固定为一个 所以供应商和商品的关系为1 多 但可能会有个别商品同时有多个供应商 即对个别商品供应商和商品的关系为多 多 通常的解决方案 设计成多对多模型 包含3个关系 商品 商品编号 名称 单位 供应商 供应商编号 名称 地址 联系电话 商品和供应商对应表 商品编号 供应商编号 设计缺陷 因为极个别的商品 查询任何和商品及供应商相关的信息 都必须连接三个表 连接的表越多 查询效率自然越差 75 改进方法 设计成1 多模型 适用大多数商品 商品 商品编号 名称 单位 供应商编号 供应商 供应商编号 名称 地址 联系电话 对个别商品 可能有多个供应商 其供应商编号可取一个特殊的编号表示它有多个供应商 而其对应的供应商使用下列关系来表示 商品和供应商对应表 商品编号 供应商编号 优点 对大多数商品的商品信息和供应商信息查询 只需要连接两个表 76 如何设计概念数据模型 可在商品实体和供应商实体之间建立两个关系 一个为多对一 一个为多对多 表示对多数商品实体和供应商实体为多对一 对个别商品商品实体和供应商实体为多对多 77 思考和练习 对两种设计 分别写出并比较查询供应商供货表的select语句 列包括 供应商编号 供应商名称 商品编号 商品名称 按第一列排序 仅查单供应商的商品仅查多 多于一个 供应商的商品查所有商品针对二种设计方案 从对商品和供应商的增 删和改三个方面 分别给出处理逻辑 比较其复杂性 并设计一种商品和供应商关系的维护界面 78 五 PowerDesigner的物理数据模型PDM PhysicalDataModel 一 生成物理数据模型打开生成对话框 使用菜单Tools GeneratePhysicalDataModel生成物理数据模型 出现对话框PDMGenerationOptions对生成进行控制 第一次生成 选中 GenerateNewPhysicalDataModel 并选择DBMS MicrosoftSQLServer2000 按确认则生成PDM 重新生成 修改了CDM后 要重新生成PDM 选中 UpdateExistingPhysicalDataModel 并关闭 PreserveModifications 选项 按确认则重新生成PDM覆盖原PDM 79 二 修改物理数据模型 问题 有时需要对生成的PDM进行修改 修改后若重新生成PDM 对PDM的修改将丢失 解决方法 打开 UpdateExistingPhysicalDataModel 中PreserveModifications选项 PD将根据CDM生成PDM 并与原来的 生成后可能修改过的 PDM比较 由用户选择是那些内容要根据新的PDM进行更新 删除或增加 建议 尽可能建立合理完整的CDM 避免或尽可能少地对生成的PDM作修改 80 例 由CDM生成PDM后对CDM和PDM做下列修改 1 PDM的学生表中增加 出生日期 2 把CDM学生性别Sex由Boolean Char 1 选择UpdateExistingPhysicalDataModel并打开PreserveModifications 按确认后出现下列对话框 左边是新生成的PDM 右边是原生成并已增加 出生日期 的PDM 其中所有比较后的不一致项用户可打勾表示用新PDM更新 更新方式是 不一致项上的 表示删除 表示增加 表示更新本例中 我们希望保留PDM的 出生日期 而更新Sex的定义 所以仅在右边 性别 前打勾 点OK 产生新PDM将保留 出生日期 性别类型改为Char 1 81 更新时原PDM和新PDM比较控制界面 82 三 生成物理数据模型的其他控制 Detail页框 CheckMode 在生成PDM前检查模型是否有错 有错则停止生成 SaveGenerationDependencies 跟踪每一个生成对象的标识 在以更新方式生成PDM时 即使同时修改了对象Name和Code 在新老PDM的比较时 PD仍能识别是同一对象 ConvertNamestoCodes 在生成时把对象Name作为Code 即以Name作为PDM的对象名 如表名和列名 Seletion页框 列出所有实体 选择是否生成 83 六 数据库的建立 方法一 逐个手工创建数据表在PDM各table属性 properties 中的Preview页中包含了系统生成的创建该表的DDL语句 在SQLServer的查询分析器中可选择性的执行这些DDL语句 在生成的SQL语句中 包含了对需要创建的对象是否已经存在的判断以及存在情况下进行删除的操作 使创建工作可重复进行 84 生成的SQL片段 ifexists select1fromsysobjectswhereid object id Students andtype U droptableStudentsgocreatetableStudents snochar 6 notnull classidchar 6 notnull snametitlenull sexbitnull areanochar 3 null Telephonenochar 8 null constraintPK STUDENTSprimarykey sno constraintAK IDENTIFIER 2 STUDENTSunique areano Telephoneno go 85 方法二 自动创建所有数据表 准备工作 建立ODBC数据源 PD通过ODBC执行SQL命令 所以先要建立ODBC数据源 代表SQLServer中某个数据库 可以使用控制面板 管理工具 数据源 ODBC 建立 也可在GenerateDatabase 过程中建立 建立数据库 PDM生成的SQL语句并不包含建立数据库的语句 所以先要使用企业管理器或查询分析器建立数据库 也可以在PD中用菜单Database ExecuteSQL执行建立数据库的命令 86 自动创建所有数据表 选择菜单Database ChangeCurrentDBMS 选择MicrosoftSQLServer2000选择菜单Database GenerateDatabase 在弹出的对话框中选择目录和文件名 所有建表的SQL语句将放入该文件中 并选中ODBCGeneration以建立数据表确认后将弹出ConnecttoanODBCDataSource对话框 选择数据源 确认后将生成要执行的SQL语句 按Execute执行SQL语句 87
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 大学资料


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!