转自于:http://yujingwang.blog.sohu.com/63362979.html

1       资料

ER-STUDIO的帮助(英文)

2       内容

2.1          关系 RelationShips

目录结构:Using ER/Studio àWorking with Data Models àData Model Objects

àLogic Model Objects àRelationShips

关系有助于在一个数据模型中执行业务规则和声明。关系决定了在2个表(或视图)间数据是如何关联的。关系在物理模型中由外键来实现。这些外键的参数通过约束和触发器表明了在表间完整的引用是如何执行的。

ER/Studio允许创建“recursive relationships”当一个实体和他本身相关联;创建“duplicate relationships”当多个关系关联到同一个实体;创建“view relationships”可以关联到视图。

ER/Stduio 通过3个参数propagates外键:

1.         Type

2.         Existence

3.         Cardinality

2.1.1              理解关系类型 RelationShip Types

IDEF1X支持3种关系类型:

l         识别 Identifying

l         非识别 Non-Identifying

l         非特定的 Non-Specific

关系类型的选择是把完整的指示(referential integrity)构建进你的数据模型的基础。为了帮助你为你的环境选择适当的关系类型,在下面描述了支持的关系类型。

2.1.1.1         识别关系类型 Identifying Relationships

识别关系类型propagate父实体的主键给子实体的主键。在IDEF1X的符号中,识别关系类型是一个“在子实体端带有实心圆圈的实线”。

2.1.1.2         非识别关系类型 Non-Identifying Relationships

不识别关系类型propagate父实体的主键给子实体不是主键的参数。在IDEF1X的符号中,不识别关系类型是一个“在子实体端带有实心圆圈的虚线”,如果该非识别关系类型是可选的,在父实体端会有一个空心菱形。

2.1.1.3         非特定的关系类型 Non-Specific Relationships

非特定的关系类型表示“多对多”的关系类型,因为数据库不能解决多对多的关系类型,所以非特定的关系类型不代表任何外键。多对多类型是不建议使用的,应该从你的数据模型中移除。在IDEF1X的符号中,非特定的关系类型是一个“在两端都带有实心圆圈的实线”。

2.1.1.4         关系类型和复合主键(Compound Keys)

仔细思考不同的关系类型和他们代表的含义,识别的关系类型代表一个子实体的主键,可以实现复合主键。复合主键的使用经常是有效的和适当的。但是你应该在只有需要的时候才使用他们,因为这样会限制你数据模型的灵活性。当你使用复合主键时,就意味着在子实体中的数据只能被父实体所识别,当你需要独立的数据时,就会有问题。

2.1.2              理解关系存在 RelationShip Existence

存在描述了从子实体的角度来描述一对实体间的关系。他问了这样一个问题:子实体总是要求一个外键值吗?可能的回答是:

存在

含义

可选的 Operational

子实体不是总是要求一个外键值。如果一个值不存在,在父实体的主键中不许存在外键值。

必选的 Mandatory

子实体必须有一个外键值,该外键值必须是父实体中的主键。

为了描述存在的使用,举一个“订单”和“订单状态”的例子。如果设置了关系存在为“可选的”,那么没有被分配给订单状态的订单可以存在。这样,你可以知道也可以不知道某个订单是一个完成的,或取消的,还是回退的订单,这些状态可能导致业务逻辑变复杂或者简单。在这个例子中,设置存在为“必选的”应该是合适的。但是,你必须在业务系统和信息说明中强制执行这个规范。

2.1.2.1         关系类型设置

l         识别 Identifying:总是“Mandatory”的。

l         非识别 Non-Identifying:可以是“Mandatory”或“Operational”。在IDEF1X的符号中,可选的非识别关系标识为在关系线的父实体端有一个空的菱形。

l         非特定的 Non-Specific:不能强制非特定的关系类型,因为我们不能处理多对多的关系。

2.1.2.2         对Cardinality的影响

关系存在也表示关系Cardinality,Mandatory的关系类型中,Cardinality必须是一对多的形式;Operational的关系类型中,Cardinality可以是零对多或是一对多。

2.1.2.3         在物理视图中实现关系存在

ER STUDIS可以把逻辑视图的关系含义在物理视图中表示出来。为了实现关系存在规则,他默认设一个“Mandatory“的外键列为NOT NULL,“Operational”的外键列为NULL.

2.1.3              理解关系集的势 RelationShip Cardinality

Cardinality从父实体的角度描述了一对实体间的数量维度。他问了这样的问题:对任何父实体的主键,可以找到多少个子实体的实例?答案可以从零到N。

举一个例子:Customer and CustomerNote。Customer是CustomerNote的父实体,关系类型是识别的。虽然一个Customer可以识别任何CustomerNote,但是不意味着任何Customer必须有一个CustomerNote,因为这是不实际的。为了实现灵活性,我们设置关系Cardinality为一对零或多(toOne-to-Zero or More (each Customer may have zero or more CustomerNotes).)

再举一个不同的例子:Order and OrderDetail。每一个Order必须至少有一个OrderDetail,否则我们怎么知道顾客订了什么咚咚?在这个例子中,我们设置关系Cardinality为一对一或多(One-to-One or More (each Order must have at least one OrderDetail))。

2.1.4              Cardinality符号

Cardinality被读作相关的父实体和子实体实例的比例。父实体的比例依赖于关系是“必选的(一或多)”还是“可选的(零或多)”。IDEF1X对子实体支持4种不同的Cardinality:零或多,一或多,零或一,确切的N。符号如下:

2.1.5              增加一个关系

在2个实体间增加关系前,你首先要建2个有数据关系的实体。

如果在父和子实体/表中有相同的参数/列名称,ER STUDIO打开“Duplicate Native Attribute Editor”来解决冲突。

符号:

for an Identifying relationship

for a Non-Identifying, Mandatory relationship

for a Non-Identifying, Optional relationship

for a One-to-One relationship

for a Non-Specific relationship

2.1.6              修改一个关系

2.1.7          删除一个关系

E/R STUDIO允许你删除关系,而且可以自动更新实体数据模型。删除一个关系时会导致ER STUDIO删除关系,并且删除所有被该关系propagated到子表的外键。

你一次只能删除一个关系。

当从子模块(submodel)中删除一个对象时,该对象仍保留在主模块中,除非你选择了“Delete from Model option”。

1.         在“Diagram Explorer”或“Diagram Window”中,选择你想删除的关系。

2.         删除关系:

在“Edit”菜单中,选“Delete Relationship”。

点击右键,选“Delete Relationship”。

在键盘上,按下Delete键。

ER STUDIO会打开一个对话框。

3.         点击yes,就会删除所选择的关系,并且删除了所有被该关系propagated到子表的外键。

2.2          表 Tables

2.2.1          编辑表

2.2.1.1         编辑表的列

2.2.1.1.1   重复的本地属性编辑器  Duplicate Native Attribute Editor

当你创建或者重命名一个主键参数,关系或外键时,“复制本地属性编辑器”会打开,并且在子表/实体中会复制存在的列/参数。比如,有2个实体:Parent和Child,父实体Parent有一个主键参数Key,子实体Child也有一个参数Key,该编辑器就会打开。你要决定如何处理。下面的表描述了选项和功能:

选项

描述

传播参数

Propagating Attributes to Resolve

显示一个重复的参数列表,选择要propagating的参数和方式。

用propagating参数替换本地参数

Replace Native Attribute with propagating Attribute

会用propagating的主键参数替换子实体中的参数。如果关系被删除,会删掉propagating的参数和原是的本地参数。

重命名propagating参数

Rolename propagating Attribute

能重命名propagating参数,这样子实体的本地参数还能继续使用他的原始名称,2个参数都存在子实体中,需要为propagating参数重新输入一个名字。

改变本地参数名称,允许propagating参数名

Change Native Attribute Name to allow propagating Attribute Name

能重命名子实体的原始本地名称,以便能使用父实体的propagating参数名称,2个参数都存在子实体中,需要为子实体的原始本地名称输入一个新名字。

使用propagating参数统一本地参数

Unify Native Attribute with propagating Attribute

使用propagating参数统一子实体的本地参数,如果关系以后被删除,会留下子实体的本地参数。

例子:

Original:

Replace Native Attribute with propagating Attribute:

如果删除关系,会从子实体中删除id

Rolename propagating Attribute:

重命名为id_rolename

Change Native Attribute Name to allow propagating Attribute Name:

子实体的新名字是id_change_native

Unify Native Attribute with propagating Attribute:

如果删除关系,会保存子实体的id

ER-STUDIO 6.5工具使用帮助的中文翻译的更多相关文章

  1. 如何利用 Visual Studio 自带工具提高开发效率

    Visual Stuido 是一款强大的Windows 平台集成开发工具,你是否好好地利用了它呢? 显示行号 有些时候(比如错误定位)的时候,显示行号将有利于我们进行快速定位. 如何显示 1. 工具 ...

  2. Visual Studio前端开发工具/扩展

    怎么样让Visual Studio更好地编写HTML5, CSS3, JavaScript, jQuery,换句话说就是如何更好地做前端开发.Visual Studio 2010不管是旗舰版还是免费版 ...

  3. 【翻译】我钟爱的Visual Studio前端开发工具/扩展

    原文:[翻译]我钟爱的Visual Studio前端开发工具/扩展 怎么样让Visual Studio更好地编写HTML5, CSS3, JavaScript, jQuery,换句话说就是如何更好地做 ...

  4. 最锋利的Visual Studio Web开发工具扩展:Web Essentials详解

    原文:最锋利的Visual Studio Web开发工具扩展:Web Essentials详解 Web Essentials是目前为止见过的最好用的VS扩展工具了,具体功能请待我一一道来. 首先,从E ...

  5. TechSmith Camtasia Studio屏幕录像编辑工具

    TechSmith Camtasia Studio屏幕录像编辑工具... --------------------------------------------------------- ----- ...

  6. Visual Studio 实用扩展工具

    Indent Guides 为每个缩进绘制一条虚线: Highlight all occurrences of selected word 高亮相关代码: Productivity Power Too ...

  7. 4.3.6 对象的界定通过编写接口来访问带这类命名结构的表会出问题。如前所述,SQL Server的灵活性不应用作编写错误代码或创建问题对象的借口。 注意在使用Management Studio的脚本工具时,SQL Server会界定所有的对象。这不是因为这么做是必须的,也不是编写代码的最佳方式,而是因为在界定符中封装所有的对象,比编写脚本引擎来查找需要界定的对象更容易。

    如前所述,在创建对象时,最好避免使用内嵌的空格或保留字作为对象名,但设计人员可能并没有遵守这个最佳实践原则.例如,我当前使用的数据库中有一个审核表名为Transaction,但是Transaction ...

  8. Android studio 使用NDK工具实现JNI编程

    前言: Android开发中常常会使用到第三方的.so库.在使用.so库的时候就要用到JNI编程.JNI是Java Native Interface的缩写.它提供了若干的API实现了Java和其它语言 ...

  9. Android Studio - 安卓开发工具 打开后报错集合、修复指南

    安卓开发工具错误修复 本文提供全流程,中文翻译. Chinar 坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) Chinar -- 心分享.心创新 ...

随机推荐

  1. spring bean id和bean name的区别

    今天在分析问题时发现一个大家平时都不太注意的spring 配置问题,发出来分享下: 首先澄清一个概念: 同名bean:多个bean 有相同的 name 或者 id,称之为同名bean <bean ...

  2. gdb调试多进程和多线程命令

     gdb调试多进程和多线程命令 来源:http://blog.csdn.net/pbymw8iwm/article/details/7876797 1. 默认设置下,在调试多进程程序时GDB只会调试主 ...

  3. winscp私钥如何生成

    问题1,我用SecureCRT 5.0的自带工具生成了密钥和公钥(分别是不带后缀名的密钥文件和.pub的公钥文件),传上服务器也可以正常使用.     但是我用其它一些客户端工具连接时需要的密钥文件是 ...

  4. 15 条实用 Linux/Unix 磁带管理命令

    导读 磁带设备应只用于定期的文件归档或将数据从一台服务器传送至另一台.通常磁带设备与 Unix 机器连接,用 mt 或 mtx 控制.强烈建议您将所有的数据同时备份到磁盘(也许是云中)和磁带设备中. ...

  5. PHP 上传文件和读取文件崎岖路

    今天php上传文件和读取文件没有搞出来,全靠后来大神来帮忙,总结一下:主要涉及到一下几个方面,在ubuntu下mkdir文件夹的时候要注意权限问题,一般情况下php是以一个较低的权限去执行的,所以如果 ...

  6. 台大《机器学习基石》课程感受和总结---Part 1(转)

    期末终于过去了,看看别人的总结:http://blog.sina.com.cn/s/blog_641289eb0101dynu.html 接触机器学习也有几年了,不过仍然只是个菜鸟,当初接触的时候英文 ...

  7. 栈应用hanoi

    /* 课本p54页*/ #include<stdio.h> #include <iostream> using namespace std; void move(int n, ...

  8. linux awk 内置函数详细介绍(实例)

    这节详细介绍awk内置函数,主要分以下3种类似:算数函数.字符串函数.其它一般函数.时间函数 一.算术函数: 以下算术函数执行与 C 语言中名称相同的子例程相同的操作: 函数名 说明 atan2( y ...

  9. 【OpenStack】OpenStack系列12之OpenStack自动化测试详解

    参考文档: https://github.com/yongluo2013/osf-openstack-training/blob/master/installation/How-to-setup-op ...

  10. Java异常的栈轨迹fillInStackTrace和printStackTrace的用法

    本文转自wawlian 捕获到异常时,往往需要进行一些处理.比较简单直接的方式就是打印异常栈轨迹Stack Trace.说起栈轨迹,可能很多人和我一样,第一反应就是printStackTrace()方 ...