ER-STUDIO 6.5工具使用帮助的中文翻译
转自于: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工具使用帮助的中文翻译的更多相关文章
- 如何利用 Visual Studio 自带工具提高开发效率
Visual Stuido 是一款强大的Windows 平台集成开发工具,你是否好好地利用了它呢? 显示行号 有些时候(比如错误定位)的时候,显示行号将有利于我们进行快速定位. 如何显示 1. 工具 ...
- Visual Studio前端开发工具/扩展
怎么样让Visual Studio更好地编写HTML5, CSS3, JavaScript, jQuery,换句话说就是如何更好地做前端开发.Visual Studio 2010不管是旗舰版还是免费版 ...
- 【翻译】我钟爱的Visual Studio前端开发工具/扩展
原文:[翻译]我钟爱的Visual Studio前端开发工具/扩展 怎么样让Visual Studio更好地编写HTML5, CSS3, JavaScript, jQuery,换句话说就是如何更好地做 ...
- 最锋利的Visual Studio Web开发工具扩展:Web Essentials详解
原文:最锋利的Visual Studio Web开发工具扩展:Web Essentials详解 Web Essentials是目前为止见过的最好用的VS扩展工具了,具体功能请待我一一道来. 首先,从E ...
- TechSmith Camtasia Studio屏幕录像编辑工具
TechSmith Camtasia Studio屏幕录像编辑工具... --------------------------------------------------------- ----- ...
- Visual Studio 实用扩展工具
Indent Guides 为每个缩进绘制一条虚线: Highlight all occurrences of selected word 高亮相关代码: Productivity Power Too ...
- 4.3.6 对象的界定通过编写接口来访问带这类命名结构的表会出问题。如前所述,SQL Server的灵活性不应用作编写错误代码或创建问题对象的借口。 注意在使用Management Studio的脚本工具时,SQL Server会界定所有的对象。这不是因为这么做是必须的,也不是编写代码的最佳方式,而是因为在界定符中封装所有的对象,比编写脚本引擎来查找需要界定的对象更容易。
如前所述,在创建对象时,最好避免使用内嵌的空格或保留字作为对象名,但设计人员可能并没有遵守这个最佳实践原则.例如,我当前使用的数据库中有一个审核表名为Transaction,但是Transaction ...
- Android studio 使用NDK工具实现JNI编程
前言: Android开发中常常会使用到第三方的.so库.在使用.so库的时候就要用到JNI编程.JNI是Java Native Interface的缩写.它提供了若干的API实现了Java和其它语言 ...
- Android Studio - 安卓开发工具 打开后报错集合、修复指南
安卓开发工具错误修复 本文提供全流程,中文翻译. Chinar 坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) Chinar -- 心分享.心创新 ...
随机推荐
- Kali实现局域网ARP欺骗和ARP攻击
原文地址: http://netsecurity.51cto.com/art/201303/386031.htm http://xiao106347.blog.163.com/blog/static/ ...
- spring mvc实现修改+删除
1.在userController中添加修改的方法 a.首先点击修改,我们一般是到修改界面,并且上面有值,并且有提交按钮 b.修改后,提交到查看的页面 //进入修改界面 @RequestMapping ...
- Mongodb for C# 分组查询
#region 排序获取集合 static List<BsonDocument> GetPagerWithGroup(string connectionString, string dat ...
- 繁华模拟赛 Evensgn的债务
#include<iostream> #include<cstdio> #include<string> #include<cstring> #incl ...
- Apache prefork 模块指令分析
问题背景: 在一台只有内存的vps上安装directadmin之后经常内存耗,经过查看之后发现Apache成了罪魁祸首急速消耗内存SWAP剩余空间都是0,最终导致内核开始大下杀手,把MySQL都杀了, ...
- UVa 11210 - Chinese Mahjong
解题报告:麻将的规则这里就不说了,这题我们可以用暴力的方法,所以我们应该这样枚举,即将34张牌的每一张牌都放到原来的十三张牌里面去,所以这时我们只要判断这十四张牌能不能胡,因为若要胡的话一定要有一个对 ...
- Minimum Depth of Binary Tree
二叉树的最小深度 采用递归的方式求左右结点的高度,注意判断一个结点是否是叶子结点(左右子树都不存大). int minDepth(TreeNode *root) { return minDepth(r ...
- github pages 添加godaddy的dns解析
转自: http://andrewsturges.com/blog/jekyll/tutorial/2014/11/06/github-and-godaddy.html I own a custom ...
- Ubuntu14.04server开放rootssh登录权限
刚安装了Ubuntu 14.04 server的虚拟机,普通帐号可以远程登录,但是root不行,输入密码后一直报错: permission denied 最后发现ssh的配置(/etc/ssh/ssh ...
- 【leetcode】Best Time to Buy and Sell Stock III
Best Time to Buy and Sell Stock III Say you have an array for which the ith element is the price of ...