PowerDesigner学习笔记

news2024/12/29 10:40:08

备注:文章主要对概念数据模型进行深入分析

1.对各种模型图初步认识

1.1.概念数据模型 (CDM) (Conceptual Data Model)

对数据和信息进行建模,利用实体-关系图(E-R图)的形式组织数据,检验数据设计的有效性和合理性。

与具体的数据管理系统(Database Management System,简称DBMS)无关。概念数据模型必须换成逻辑数据模型,才能在DBMS中实现。

1.2.逻辑数据模型 (LDM) (Logical Data Model)

PowerDesigner 15 新增的模型。逻辑模型是概念模型的延伸,表示概念之间的逻辑次序,是一个属于方法层次的模型。具体来说,逻辑模型中一方面显示了实体、实体的属性和实体之间的关系,另一方面又将继承、实体关系中的引用等在实体的属性中进行展示。逻辑模型介于概念模型和物理模型之间,具有物理模型方面的特性,在概念模型中的多对多关系,在逻辑模型中将会以增加中间实体的一对多关系的方式来实现。

逻辑模型主要是使得整个概念模型更易于理解,同时又不依赖于具体的数据库实现,使用逻辑模型可以生成针对具体数据库管理系统的物理模型。逻辑模型并不是在整个步骤中必须的,可以直接通过概念模型来生成物理模型。

1.3.物理数据模型 (PDM) (Physical Data Model)

基于特定DBMS(数据库系统),在概念数据模型、逻辑数据模型的基础上进行设计。由物理数据模型生成数据库,或对数据库进行逆向工程得到物理数据模型。

每一种逻辑数据模型在实现时都有其对应的物理数据模型。DBMS为了保证其独立性与可移植性,大部分物理数据模型的实现工作由系统自动完成,而设计者只设计索引、聚集等特殊结构。

最常用的一种数据库模型,模型是针对某种数据库系统而设计。

1.4.面向对象模型 (OOM) (Objcet Oriented Model)

包含UML常见的所有的图形:类图、对象图、包图、用例图、时序图、协作图、交互图、活动图、状态图、组件图、复合结构图、部署图(配置图)。OOM 本质上是软件系统的一个静态的概念模型。

1.5.业务程序模型 (BPM) (Business Process Model)

BPM 描述业务的各种不同内在任务和内在流程(工作流),而且客户如何以这些任务和流程互相影响。BPM 是从业务合伙人的观点来看业务逻辑和规则的概念模型,使用一个图表描述程序,流程,信息和合作协议之间的交互作用。

1.6.企业架构模型 (EAM) (Enterprise Architecture Model)

从业务层、应用层以及技术层的对企业的体系架构进行全方面的描述。包括:组织结构图、业务通信图、进程图、城市规划图、应用架构图、面向服务图、技术基础框架图。

2.深入学习概念数据模型图

在PowerDesigner中,定义表关系有三种,分别是:
在这里插入图片描述

补充说明:除此之外,还有一种单个表之间的关系——自反( Reflexive ),Reflexive 使用Relationship图标,

实际上可以理解成∶数据库表的关系有4种。

为了说明各种表定义关系,则创建以下一个概念数据模型图(CDM):
在这里插入图片描述

2.1.关系(Relationship)-重点理解

2.1.1.一对多

2.1.1.1.“—”端的Mandatory (强制)

"—"端是没有Dependent依赖的。

1)选中Mandatory,表示“一”端的每一条记录(班级),都至少有一个“多”端的记录(学生)对应,即,一个班级至少要有一名学生;

2)不选中 Mandatory,表示,一个班级,可以是空班级,可以没有学生(比如招生前夕),也可以有多个学生。

2.1.1.2.“多”端的Mandatory (强制)

Mandatory选项,对一对多关系中“多”的这端,选中和不选中的区别是︰

  1. 创建的SQL语句:选中了,表示“多"端的表中的外键不能为空;没选中,表示“多”端的表中的外键可以为空;

  2. 举例∶选中了,学生必须属于某个班级﹔没选中,表示学生可以暂时不属于任何一个班级(比如降级还没有分班的学生)

2.1.1.3.“多”端的Dependent(依赖)

Dependent(依赖)选项,对一对多关系中“多”的这端,选中和不选中,区别如下︰

SQL语句∶选中,"多”端的外键跟自己的主键一起成为主键﹔否则,外键只是外键,生成的物理模型图是︰

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cgnSo5xW-1693154998102)(PowerDesigner学习笔记.assets/image-20230828002337344.png)]

举例∶选中Dependent,表示:班级的ID传递给学生之后,既是学生表的外键,又跟学生表的学号一起构成学生表的主键﹔

如果没有选中,那班级的ID传递给学生表,仅仅作为学生表的外键。

备注说明:"—"端是没有Dependent依赖的。

2.1.2.多对多

多对多的Dependent和Mandatory的意思跟一对多的意思是一样的。所不同的是,多对多的关系,会在生成物理模型的时候,自动生成一张表,原表和新表之间是两个一对多的关系。

比如︰学生和老师的关系,概念模型是︰
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yjFXdj26-1693154998102)(PowerDesigner学习笔记.assets/image-20230828002942618.png)]
生成物理模型之后,就是︰
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ULmiaAg4-1693154998103)(PowerDesigner学习笔记.assets/image-20230828003006891.png)]

2.1.3.一对一

选择“Dominant role”:一对一的Relationship,最重要的选项是“Dominant(支配义,A“支配”B,表示:A的主键传递给B,但是B的主键不传递给A;
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vLeuHdBx-1693154998103)(PowerDesigner学习笔记.assets/image-20230828003555530.png)]

如果不选择“Dominant”,表示,A的主键要传递给B,并且,B的主键也要传递给A。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ceqa59hW-1693154998104)(PowerDesigner学习笔记.assets/image-20230828003613051.png)]
对于一对一中的Mandatory和Dependent,跟一对多的情况一样。

备注:一对一的表间关系,很容易跟继承、关联混淆。

2、继承(Inheritance )

所谓继承,看本文开头部分举的例子,教师和学生都有共同的字段——姓名、性别、年龄——教l师和学生都是“人”,他们的属性是从“人”继承来的。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HvKIQTWB-1693154998104)(PowerDesigner学习笔记.assets/image-20230828004017378.png)]

在概念模型中,子表没有主表的字段,生成物理模型之后,主表的全部字段全部复制到子表中。

3、关联(Association)

Association关系,就是两个实体之间的多对多关系,一般这种情况下会增加一个中间实体,这就是前面“Relationship”中的“一对多”。

此外,在Power Designer中,提供了一个专门的符号来对应,叫做“Association"关联,需要注意的是,“Association”只是为了方便直观地表示这种类型的实体而设置的一个图标,他其实还是实体。

使用一个普通的实体,定义多对多关系,和使用"Association”图标定义多对多关系,两者相比,使用“Association”更方便、直观,使模型更容易理解,并可以减少因不谨慎而可能导致的错误。

下面的是概念模型:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vJr9CILN-1693154998105)(PowerDesigner学习笔记.assets/image-20230828004201834.png)]
生成物理模型之后︰
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CgoXIaS1-1693154998105)(PowerDesigner学习笔记.assets/image-20230828004214186.png)]
需要足以的是,针对Association,PowerDesigner专门提供了一个图标用于设置这种关系︰
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-W3bk6vTS-1693154998105)(PowerDesigner学习笔记.assets/image-20230828004257331.png)]

4、自反(Reflexive)

如上图中的领导。领导本身是老师,每个老师都有一个领导。这种关系就是自反关系。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cTfI4FCp-1693154998106)(PowerDesigner学习笔记.assets/image-20230828004453117.png)]

这种关系下,Mandatory、Dependent的设置,跟一对多的Relationship关系是一样的。

5、总结

① —张表跟自己的关系,是Reflexive (自反);

② 一张表的主键和字段全部传递给另一张表,是Inheritance(继承);

③ 一张表只把自己的主键传递给另一张表,是Relationship(关系)和Association(关联),其中,Relationship可以是一对一、一对多、多对多;Association只能是多对多;

④ Mandatory(强制)选项,选中了,表示:一张表的主键传递给另一张表,作为后者的外键,并且不能为空﹔

⑤ Dependent(依赖)选项,选中了,表示:一张表的主键传递给另一张表,作为后者的外键,并且不能为空;并且与它原来的主键,一起构成它的主键;

⑥ Dominant (支配)选项,只针对一对一的情况,选择A“支配”B,表示:A的主键传递给B,但是B的主键不传递给A;如果不选择“Dominant”,表示,A的主键要传递给B,并且,B的主键也要传递给A。

本文开始给出的概念模型,生成物理模型后,是下面的样子∶

项,选中了,表示:一张表的主键传递给另一张表,作为后者的外键,并且不能为空;并且与它原来的主键,一起构成它的主键;

⑥ Dominant (支配)选项,只针对一对一的情况,选择A“支配”B,表示:A的主键传递给B,但是B的主键不传递给A;如果不选择“Dominant”,表示,A的主键要传递给B,并且,B的主键也要传递给A。

本文开始给出的概念模型,生成物理模型后,是下面的样子∶
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rNBGhqjb-1693154998106)(PowerDesigner学习笔记.assets/image-20230828004707855.png)]

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/937663.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【leetcode 力扣刷题】字符串翻转合集(全部反转///部分反转)

字符串翻转合集 344. 反转字符串541. 反转字符串Ⅱ151. 反转字符串中的单词剑指 Offer 58 - II. 左旋转字符串反转单词思路循环挪动子串和子串的拼接 344. 反转字符串 题目链接:344. 反转字符串 题目内容: 题目中重点强调了必须原地修改输入数组&#…

Java --- 异常处理

目录 一、什么是异常 二、异常抛出机制 三、如何对待异常 四、 Java异常体系 4.1、Throwable 4.2、Error 4.2、Exception 4.2.1、编译时异常 4.2.2、运行时期异常 五、异常处理 5.1、捕获异常(try-catch) 5.1.2、catch中异常处理方式 …

顺序表链表OJ题(1)——【LeetCode】

W...Y的主页 😊 代码仓库分享 💕 前言: 今天我们来回顾一下顺序表与链表,针对这一块我们也有许多OJ题目供大家参考。当我们学习完顺序表链表后避免不了一些习题的练习,这样才能巩固我们学习的内容。 话不多说&#xf…

C++:常成员变量、常成员函数、常对象

常成员变量: 1.用const修饰,可位于类型前后,若是成员变量类型为指针则只可位于类型后。 即:int *const p; 2.只能通过构造函数的初始化表对常成员变量进行初始化。 3.常成员所在类中的所有构造函数都必须对常成员变量初始化…

06.sqlite3学习——DQL(数据查询)(全)

目录 SQLite——DQL(数据查询) 数据集 select语句 条件查询 比较 确定范围 确定集合 like 查询记录 查询不重复的记录 排序和限制 排序 限制 聚合 聚合函数 语法 SQLite Group By详解 语法 实例 SQLite Having 子句 语法 实例 多…

浪潮云海护航省联社金融上云,“一云多芯”赋能数字农业

农村金融是现代金融体系的重要组成部分,是农业农村发展的重要支撑力量,而统管全省农商行及农信社的省级农村信用社联合社(以下简称:省联社)在我国金融系统中占据着举足轻重的地位。省联社通常采用“大平台小法人”的发…

Leetcode 2651.计算列车到站时间

给你一个正整数 arrivalTime 表示列车正点到站的时间(单位:小时),另给你一个正整数 delayedTime 表示列车延误的小时数。 返回列车实际到站的时间。 注意,该问题中的时间采用 24 小时制。 示例 1: 输入&…

计算机系统真题

计算机系统真题 考点计算机系统存储体系磁盘调度算法 考点 计算机系统 PC找到指令,存储到IR中 根据ID分析指令的操作,并执行指令,AR访问操作数 A pc存指令的地址 内存按照字节编址: 在统一单位,转换一下: 3x2的平方 …

飞腾E2000 UEFI使用设备树方式启动linux系统

以往我们使用uboot引导系统启动,是采用uboot引导设备树+内核+文件系统的方式。 那么使用UEFI如何通过设备树+内核+文件系统的方式进行引导呢?这篇文章主要就介绍了这种操作方法。 一、使用Buildroot交叉编译生成E2000 Linux系统 详细请参考嵌入式软件部提供的 E2000 Linux…

服务器部署前后端项目-SQL Father为例

hello~大家好哇,好久没更新博客了。现在来更新一波hhh 现在更新一下部署上的一些东西,因为其实有很多小伙伴跟我之前一样,很多时候只是开发了,本地前后端都能调通,也能用,但是没有部署到服务器试过&#x…

【FPGA零基础学习之旅#11】数码管动态扫描

🎉欢迎来到FPGA专栏~数码管动态扫描 ☆* o(≧▽≦)o *☆嗨~我是小夏与酒🍹 ✨博客主页:小夏与酒的博客 🎈该系列文章专栏:FPGA学习之旅 文章作者技术和水平有限,如果文中出现错误,希望大家能指正…

React笔记(二)JSX

一、JSX JSX是javascript XML的简写,实际上是javascript的扩展,既有javascript的语法结构,又有XML的结构 1、JSX的规则要求 jsx必须要有一个根节点 如果不想产生无用的根标签,但是还要遵守JSX的语法的要求,可以使用…

Angular中使用drag and drop实现文件拖拽上传,及flask后端接收

效果&#xff1a;拖拽文件到组件上面时 边框变大变红 松手后发送到服务器(或者点击蓝字手动选择文件)并且把文件名显示在框内&#xff0c;美化还没做 html <div class"drapBox"><div id"drop" (dragenter)"dragenter($event)" (dragov…

AR界安卓在中国,Rokid引爆空间计算狂潮

击关注 文丨刘雨琦 你可能很难想象&#xff0c;在一个没有显示屏也没有鼠标的空间&#xff0c;仅凭一副AR眼镜和一台口袋主机&#xff0c;就能完成一篇5000字的文章。 没错&#xff0c;8月26日&#xff0c;在2023 Rokid Jungle 新品发布会现场&#xff0c;这样的场景正在真实…

前端如何走通后端接口

0 写在前面 现在基本都是前后端分离的项目了&#xff0c;那么前端小伙伴如何获取后端小伙伴接口呢&#xff1f; 1 条件 同一WiFi下&#xff0c;让后端小伙伴分享出自己的ip地址&#xff1a; 步骤1:winr调出运行界面 步骤2&#xff1a;cmd调出命令行窗口 步骤3&#xff1a;…

6. 激活层

6.1 非线性激活 ① inplace为原地替换&#xff0c;若为True&#xff0c;则变量的值被替换。若为False&#xff0c;则会创建一个新变量&#xff0c;将函数处理后的值赋值给新变量&#xff0c;原始变量的值没有修改。 import torch from torch import nn from torch.nn import …

第一次实验:Protocol Layers

第一次实验&#xff1a;Protocol Layers 捕获跟踪*Pick a URL and fetch it with* wget *or* curl*.* 检查跟踪数据包结构协议开销复用密钥*Which Ethernet header field is the demultiplexing key that tells it the next higher layer is IP?**Which IP header field is th…

关于亚马逊云科技云技能孵化营学习心得

1、活动介绍 本活动主要是面向想要全面了解亚马逊云科技 (Amazon Web Services) 云的个人&#xff0c;而不受特定技术角色的限制。内容包括亚马逊云科技云概念、亚马逊云科技服务、安全性、架构、定价和支持等等&#xff0c;此外还可以参加亚马逊的认证考试。 2、学习过程 该…

httpd协议与apache

1.http 相关概念 HTTP是处于应用层的协议&#xff0c;使用TCP传输层协议进行可靠的传送。因此&#xff0c;需要特别提醒的是&#xff0c;万维网是基于因特网的一种广泛因特网应用系统&#xff0c;且万维网采用的是HTTP&#xff08;80/TCP&#xff09;和 HTTPS&#xff08;443/…

计算机毕设 基于深度学习的人脸专注度检测计算系统 - opencv python cnn

文章目录 1 前言2 相关技术2.1CNN简介2.2 人脸识别算法2.3专注检测原理2.4 OpenCV 3 功能介绍3.1人脸录入功能3.2 人脸识别3.3 人脸专注度检测3.4 识别记录 4 最后 1 前言 &#x1f525; 这两年开始毕业设计和毕业答辩的要求和难度不断提升&#xff0c;传统的毕设题目缺少创新…