DA#宏指令(4):DA#宏指令函数(3)-反转

我们来看看DA#的宏反转功能。

这是上一篇文章的延续。

DA#宏(3):DA#宏功能(2)-属性获取/设置

2.4. DA#宏反转功能

DA# Macro 기능: Reverse
DA# 宏功能:反转

2.4.1.创建 DA# 宏反转功能的原因

数据建模工具的逆向功能是使用逆向工程技术从数据库创建ERD类型数据模型的功能。

最常见的方法是直接访问数据库并执行反向函数。如果直接访问数据库有困难或者需要很长时间获取权限,提供SQL收集数据模型信息给有访问权限的负责人(通常是DBA或者IT操作员),将执行结果导出为一个Excel文件,接收后可以执行逆向功能。

DA#既提供了从数据库中逆向的功能,也提供了从Excel文件中逆向的功能。但是,它有以下局限性,在项目现场使用时需要大量的人工操作。

  • 一次只能处理一个数据模型。
    • 如果数据模型很多(几十到几百个),需要对每个模型重复执行reverse函数。
  • 它被创建为一个单一的主题区域图,所有的实体都是随机放置的。
    • 需要创建主题区,将各个实体的主题区分开。
    • 在主题领域图中,需要移动实体,例如将实体分组到业务领域或将相关实体安排在一个地方。

为了尽可能克服上述限制,尽可能消除手工工作,在DA# Macro工具中创建了一个反向功能。以下功能可用。

  1. 可以一次反转多个模型
  2. 通过指定每个表的主题区,就可以将其放置在相应的主题区图中。
  3. 在主题区域图中指定一组实体,并将它们安排在每个组的一个位置 –> 核心功能
  4. DA#提供的布局之外的用户自定义布局(未来版本计划,目前只支持DA#提供的布局)

2.4.2.反向功能使用总结

  • 创建一个输入 Excel 文件,选择“反向”工作表中的每个文件,然后设置要执行的选项。
  • 输入的 Excel 文件是通过在数据库中执行查询或使用正在管理的表定义文档来创建的。

2.4.3.输入文件

  • 模型列表:创建反向目标模型列表的文件(必填)
    • 设置模型的 DBMSType
    • 只有表格列表中的模型名称与此文件中描述的模型匹配的对象才会被反转。
  • 表列表:创建反向目标表列表的文件(必填)
  • 列列表:创建反向目标列列表的文件(必需)
  • FK 列表:创建要反转的外键 (FK) 列表的文件(可选)
  • 创建每个列表文件的注意事项
    • 模型、表格、列和 FK 列表可以写入一个文件或保存在单独的文件中。
    • 每个列表的模板应使用 DA# 宏“反向”表底部的附件或作为单独提供的文件准备(必须按规定格式编写)

2.4.4.反向选项

DA# Macro Reverse Option
DA# 宏反转选项
  • 输入文件打开方式:选择以何种方式(只读、可写)打开输入文件
  • 处理后是否关闭输入文件:是否在读取所有输入文件并加载到内存后关闭(Y:读取后关闭,N:保持打开)
  • Entity Arrangement Method:DA# Menu > Format > Auto Arrangement提供的排列方式。目前,它指定了两种方法之一:径向或 HTree。
  • Group Arrangement Interval:Entity Groups之间的水平、垂直间隔(单位:像素)(推荐值:300以上)
  • Number of Group columns in a row:要在主题区域图中一行中放置的实体组的数量。
    • 示例:当总共有 10 个实体组时
    • 设置列数为 3 时:排列成 4 行 3 列(4×3)
    • 设置列数为5时:排列成2行5列(2×5)
  • 是否使用Reverse DA#模型模板:如下是否使用(选择“N”时不使用模板创建新模型)
  • 反向DA#模型模板文件:反向DA#模型模板文件
    • 指定一个预先保存模型默认设置的文件
    • 模型默认设置示例:对象名称视图选项(视图二级名称、视图同义词)、页面缩放等。
    • 如果上述使用选项为“N”则不使用
    • 示例值:D:\Project\My\01.ExcelVBA\02.DA# Macro\test reverse file\template model.damx
  • 反向DA#模型保存路径:反向DA#模型文件(*.damx)的保存路径(文件名按以下格式创建)
  • 模型文件名格式:应用于模型文件名的格式字符串。
    • [型号名称]:型号列表模板中指定的型号名称
    • [日期]:YYYYMMDD 格式(例如 20201228)
    • [TIME]:HH24MISS 格式(例如 155621)
    • 常量:客户公司名称、系统名称等。
    • 示例值:Encore [型号名称]_[日期]_[时间].damx
  • 是否创建物理模型:是否为每个学科领域创建物理模型图
    • “Y”:反向需要更多时间才能完成,但会从头开始创建物理模型
    • 不创建“N”物理模型(反向可以更快完成)

2.4.5.模板文件:模型

DA# Macro Reverse Template 파일: Model
DA#宏反向模板文件:模型
  • 模型名称:要保存的模型文件的名称。只有此处指定的模型被反转。
    • 用于选项的“模型文件名格式”。
    • 必须匹配 Table、Column 和 FK Template 的模型名称。
  • DBMSType:指定分配给模型物理模型的DBMS Type。使用以下值之一。 (注意:随着 DA# 的升级,该值可能会增加或减少)
    • ALTIBASE
    • 大查询
    • 立方体
    • DB2UDB
    • 青梅
    • 韩亚数据库
    • 蜂巢
    • 黑斑羚
    • 英飞凌
    • 玛丽亚
    • MySQL
    • 网易
    • 海洋基地
    • 甲骨文
    • 后置数据库
    • 红移
    • SQL服务器
    • 数据库
    • 赛百思
    • 泰达数据
    • 提贝罗
    • VERTICA
    • 其他值指定为ORACLE
  • 定义:模型的描述

2.4.6.模板文件:表

DA# Macro Reverse Template 파일: Table
DA#宏反向模板文件:表格
  • 模型名称:要保存的模型文件的名称。只有此处指定的模型被反转。
  • 主题区域名称:模型子主题区域放置每个表
  • 实体组名:具有相同组名的实体被放置在主题区域图上的相同位置。
    • 在执行Reverse之前,预先分析每个表的业务范围(订单、支付等)或表的性质(对象(基本)、明细、代码、历史、临时、关系等),并且组名是预先指定的,组是如果你想把它们放在一个地方,这很有用。
    • 将实体组名称制作成文本框,将其下方的实体集中排列。 (见下图)
DA# Macro Reverse: 엔터티 그룹명으로 배치
DA#宏反转:按实体组名排列
  • 其他的是赋给DA#的实体对象的属性值如下。
    • 实体名称
    • 表名
    • 代名词
    • 辅助名称
    • 数据库所有者
    • 分类:Key、Main、Action、None 之一。如果未指定值,则默认值为“无”。
    • 等级
    • 级别:基本或实用。如果未指定任何值,则默认值为“实用”。
    • 类型:Normal、Additional、Drop、External 或 Pseudo 之一。如果未指定值,则默认值为“正常”。
    • 规范化:继承、目标或非目标之一。如果未指定值,则默认值为“继承”。
    • 情况
    • 发生周期
    • 每月金额
    • 保留期(月)
    • 案件总数
    • 正义
    • 数据处理表格
    • 独特性
    • 笔记
    • 标签
  • 注意:在撰写本文时,不支持设置 UDP 值。

2.4.7.模板文件:列

DA# Macro Reverse Template 파일: Column
DA# 宏反向模板文件:列
  • 模型名称:要保存的模型文件的名称。只有此处指定的模型被反转。
  • 实体名称:参考下表名称的内容。不需要。
  • 表名:连接该属性属于哪个实体的值。这是一个必需的值。实体名很难保证唯一性,往往为空,所以不要将其作为连接值。通过查询从数据库中提取反向信息时,可以保证表名唯一且不为空,所以使用表名作为连接值。
  • 下面是赋给DA#的Attribute对象的属性值。
    • 属性名称
    • 列名
    • 正义
    • 辅助名称
    • 代名词
    • 反转表
    • 反向列
    • 反转型
    • 反向长度
    • PK:属性是否PKed(Y或null)
    • NotNull:是否为NotNull(Y或null)
    • 类型:普通、附加、掉落、系统、伪之一
    • 数据类型
    • 长度
    • 小数点
    • 默认
    • 核心属性状态:(Y 或 null)
    • 基本标识符:(Y 或空)
    • 二级标识符:(Y 或 null)
    • 标准同步:(Y 或空)
    • 非继承:(Y 或 null)
    • 标准化
    • 信息是否受保护:(Y 或 null)
    • 信息保护等级
    • 加密:(Y 或空)
    • 争夺
  • 注意:在撰写本文时,不支持设置 UDP 值。

2.4.8.模板文件:FK

DA# Macro Reverse Template 파일: FK
DA#宏反向模板文件:FK
  • FK不是必须的输入,但是如果事先知道实体之间的关系,还是尽量写好输入。
  • 模型名称:要保存的模型文件的名称。只有此处指定的模型被反转。
  • 父实体名称,子实体名称
    • 它必须与表模板中指定的实体名称完全匹配。
    • 在 DA# API 中,没有在物理模型中创建 FK 的 API,因此使用在逻辑模型中创建关系的 API (Model.LinkRelation)。
  • 下面是赋给DA#的Relationship对象的属性值。
    • 关系名称
    • 正义
    • 关系类型:正常、伪之一。如果未指定值或两者均未指定,则默认值为“正常”。
      • 如果两个实体之间的关系是确定的,建议指定Normal,如果不确定则指定Pseudo,或者为了数据模型分析的目的而创建关系。
      • 在Normal的情况下,父实体的标识符被子实体继承,但在实际的数据模型中,标识符的真实属性可能被排除或者名称不同,这会破坏数据模型。
    • 序数(父:子):1:1、1:M 或 M:M 之一。如果未指定值,则默认值为“1:M”。
    • Selectivity (Parent:Child):指定为以下之一。如果未指定值,则默认值为“O:M”。 (O:可选,M:强制)
      • O:M -> 默认
      • 哦:哦
      • M:O -> 不合适但提供
      • 毫米
    • 标识:标识或非标识之一。如果未指定任何值,则默认值为“未识别”。
      • 标识:父标识符继承子标识符
      • 非标识:父标识符作为子一般属性继承
    • Parent Entity Relational Verb, Child Entity Relational Verb:通常,一个关系名就足够了,但如果需要额外的解释,则指定一个关系动词。有关概念,请参见下图。
DA# 관계명, 부모 엔터티 관계동사 자식 엔터티 관계동사 예시
DA# 关系名称,父实体关系动词子实体关系动词示例

到目前为止,我们已经了解了 DA# 宏功能中的反转功能。下面我们就来看看使用DA# Macro时的注意事项和参考点。


<< 相关文章列表 >>

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

zh_CN简体中文