posts - 13, comments - 210, trackbacks - 30, articles - 0
 
目标:本文主要介绍联系的定义及使用。

 一、 联系
联系(Relationship)是指实体集这间或实体集内部实例之间的连接。

 实体之间可以通过联系来相互关联。与实体和实体集对应,联系也可以分为联系和联系集,联系集是实体集之间的联系,联系是实体之间的联系,联系是具有方向性的。联系和联系集在含义明确的情况之下均可称为联系。

 按照实体类型中实例之间的数量对应关系,通常可将联系分为4类,即一对一(ONE TO ONE)联系、一对多(ONE TO MANY)联系、多对一(MANY TO ONE)联系和多对多联系(MANY TO MANY)。

 二、 建立联系
在CDM工具选项板中除了公共的工具外,还包括如下图所示的其它对象产生工具。

 在图形窗口中创建两个实体后,单击“实体间建立联系”工具,单击一个实体,在按下鼠标左键的同时把光标拖至别一个实体上并释放鼠标左键,这样就在两个实体间创建了联系,右键单击图形窗口,释放Relationship工具。如下图所示


三、 四种基本的联系
即一对一(ONE TO ONE)联系、一对多(ONE TO MANY)联系、多对一(MANY TO ONE)联系和多对多联系(MANY TO MANY)。如图所示

四、 其他几类特殊联系

除了4种基本的联系之外,实体集与实体集之间还存在标定联系(Identify Relationship)、非标定联系(Non-Identify RelationShip)和递归联系(Recursive Relationship)。

标定联系:
每个实体类型都有自己的标识符,如果两个实体集之间发生联系,其中一个实体类型的标识符进入另一个实体类型并与该实体类型中的标识符共同组成其标识符时,这种联系则称为标定联系,也叫依赖联系。反之称为非标定联系,也叫非依赖联系。
 注意:
在非标定联系中,一个实体集中的部分实例依赖于另一个实例集中的实例,在这种依赖联系中,每个实体必须至少有一个标识符。而在标定联系中,一个实体集中的全部实例完全依赖于另个实体集中的实例,在这种依赖联系中一个实体必须至少有一个标识符,而另一个实体却可以没有自己的标识符。没有标识符的实体用它所依赖的实体的标识符作为自己的标识符。


换句话来理解,在标定联系中,一个实体(选课)依赖 一个实体(学生),那么(学生)实体必须至少有一个标识符,而(选课)实体可以没有自己的标识符,没有标标识符的实体可以用实体(学生)的标识符作为自己的标识符。


 递归联系:
递归联系是实体集内部实例之间的一种联系,通常形象地称为自反联系。同一实体类型中不同实体集之间的联系也称为递归联系。

例如:在“职工”实体集中存在很多的职工,这些职工之间必须存在一种领导与被领导的关系。又如“学生”实体信中的实体包含“班长”子实体集与“普通学生”子实体集,这两个子实体集之间的联系就是一种递归联系。创建递归联系时,只需要单击“实体间建立联系”工具从实体的一部分拖至该实体的别一个部分即可。如图


五、 定义联系的特性

在两个实体间建立了联系后,双击联系线,打开联系特性窗口,如图所示。


 六、 定义联系的角色名
在联系的两个方向上各自包含有一个分组框,其中的参数只对这个方向起作用,Role Name为角色名,描述该方向联系的作用,一般用一个动词或动宾组表。
如:“学生 to 课目 ” 组框中应该填写“拥有”,而在“课目To 学生”组框中填写“属于”。(在此只是举例说明,可能有些用词不太合理)。

七、 定义联系的强制性
Mandatory 表洋这个方向联系的强制关系。选中这个复选框,则在联系线上产生一个联系线垂直的竖线。不选择这个复选框则表示联系这个方向上是可选的,在联系线上产生一个小圆圈。

八、 有关联系的基数
联系具有方向性,每个方向上都有一个基数。

举例,
“系”与“学生”两个实体之间的联系是一对多联系,换句话说“学生”和“系”之间的联系是多对一联系。而且一个学生必须属于一个系,并且只能属于一个系,不能属于零个系,所以从“学生”实体至“系”实体的基数为“1,1”,从联系的另一方向考虑,一个系可以拥有多个学生,也可以没有任何学生,即零个学生,所以该方向联系的基数就为“0,n”,如图所示

待续。

2
0
(请您对文章做出评价)
« 上一篇:PowerDesigner教程系列(五)概念数据模型
» 下一篇:近期继续推出PowerDesigner教程系列

Feedback

#1楼[楼主]   回复  引用  查看    

2007-04-12 16:08 by KevinYin      
不好意思,有张图里的标识错了,应该是“一对一关联”,写成“一对于关联”。

#2楼   回复  引用  查看    

2007-04-12 16:56 by 心悦      
希望文章可以写长一点,写深一点。。

#3楼   回复  引用  查看    

2007-04-13 01:01 by lexus      
哈哈,真成你的fans了,fighting!

#4楼   回复  引用    

2007-04-13 10:30 by guojiang[未注册用户]
关注

#5楼   回复  引用    

2007-05-15 17:13 by tanba[未注册用户]
请版主 您公司对数据建表 有没有具体规范 能否贴出来给小弟参考一下

#6楼   回复  引用    

2007-05-24 16:14 by Bao[未注册用户]
让我基本了解了
谢谢

#7楼   回复  引用    

2007-05-25 15:56 by ЁЖ[未注册用户]
下一篇出了没有,关注......

#8楼   回复  引用    

2007-05-26 12:34 by 期待[未注册用户]
没有七了吗?

#9楼   回复  引用    

2007-06-11 11:38 by 不错[未注册用户]
还有7没有?感谢!

#10楼   回复  引用    

2007-06-11 16:45 by 杨永国[未注册用户]
兄弟,期待下篇

#11楼   回复  引用    

2007-07-18 14:30 by 地地道道[未注册用户]
期待下篇

#12楼   回复  引用    

2007-07-19 11:17 by 沙漠风暴[未注册用户]
写的教清晰 容易理解 希望能 看到笔者的下文 谢谢 期待~~~·

#13楼   回复  引用    

2007-07-27 10:01 by VerRan[未注册用户]
好教程。。。继续关注。

#14楼   回复  引用  查看    

2007-08-02 19:42 by EagleFish      
楼主的文章很不错,感觉网上这方面的资料确实不多。
我也写了点关于CDM和PDM的东西,供大家参考:

http://www.cnblogs.com/xingyukun/archive/2007/08/02/840293.html

#15楼   回复  引用    

2007-09-17 17:41 by 1111[未注册用户]
什么时候出七啊?很期待啊

#16楼   回复  引用    

2007-10-16 19:25 by zt_zhoushanhui[未注册用户]
真的很感谢楼主.能出这样的好文章

#17楼   回复  引用    

2007-10-25 20:39 by starxqx[未注册用户]
楼主写的非常好,很详细。对于需要这些资料,而又没时间,没心思静下心来看帮助文档那么详细资料的人,真是太合适了。支持楼主,尽快更新!

#18楼   回复  引用    

2007-10-30 15:19 by wujiu[未注册用户]
耐心期待中...

#19楼   回复  引用    

2007-10-31 10:46 by cnscn[未注册用户]
很好的文章,太棒了 转载下http://www.cnscn.org

#20楼   回复  引用    

2007-11-12 11:20 by lbyyy[未注册用户]
万分感谢!!
佩服之情
犹如滔滔江水
此处省略
for(i=0;i<10000;i++){...}

#21楼   回复  引用    

2007-12-20 00:06 by asdf12345[未注册用户]
大哥我就支持你了,爱乍乍地

#22楼   回复  引用    

2008-02-01 15:06 by qyy[未注册用户]
写的教清晰 容易理解 希望能 看到笔者的下文 谢谢 期待~~~·

#23楼   回复  引用  查看    

2008-03-06 10:52 by 阿瑞--16hi      
期待中,最好也出OOM的!!!呵呵 :)

#24楼   回复  引用    

2008-03-12 14:25 by huner[未注册用户]
太监了?

#25楼   回复  引用    

2008-04-07 17:22 by 123213去玩儿[未注册用户]
宣布Over了??

#26楼   回复  引用    

2008-06-04 12:26 by 服务费[未注册用户]
24楼是个2逼!!给你发这个就错了

#27楼   回复  引用    

2008-06-10 17:44 by 农夫[未注册用户]
非常感谢,如果要生成数据为,但最后要怎么生成啊?还有没有相关教程,能否发一份到我邮箱里,谢谢~!!!

#28楼   回复  引用    

2008-06-20 11:48 by 小新哈[未注册用户]
貌似太监了。。。

#29楼   回复  引用    

2008-09-03 10:11 by 陈耀立[未注册用户]
请问搂主:
你得写的不错
什么时候在弄弄

#30楼   回复  引用    

2008-09-19 18:44 by cxx[未注册用户]
期待待续!

#31楼   回复  引用    

2008-09-24 12:04 by 32楼[未注册用户]
好,学习中...

#32楼   回复  引用    

2008-12-24 15:37 by acmazi[未注册用户]
强人,期待中~!

#33楼   回复  引用    

2008-12-30 19:02 by 33楼[未注册用户]
什么时候出七啊?

#34楼   回复  引用    

2009-01-01 02:03 by qfeng[未注册用户]
谢谢楼主!最近在学习这方面的知识,您的文章无异于雪中送炭,太谢谢了!

#35楼   回复  引用  查看    

2009-01-09 17:30 by 心的感觉      
好!刚开始学,用上了,也转走了!

#36楼   回复  引用  查看    

2009-01-12 14:54 by Jack Niu      
期待后续文章

#37楼   回复  引用    

2009-03-12 14:16 by York[未注册用户]
从前有个太监……

#38楼   回复  引用    

2009-04-15 21:01 by wenboaaa[未注册用户]
谢谢好文章!
还有下文吗?
很是期待啊~~~
两年了~~~~

#39楼   回复  引用    

2009-06-24 18:10 by 青蛙天涯[未注册用户]
好啊楼主!
楼主这些东东是07年写的,可是到了09年还有那么多人在看,在学,在关注!可见楼主的这些东东确实是 好东东 群众的眼睛啊是雪亮的!
不解的是 在这么多的fans的支持与强烈要求下你怎么能无动于衷呢?你应该借着你对此的热爱 接着你的待续...啊!这也是对你的fans的负责啊!
你不能在勾起了我们食欲,而且在我们食欲大作 胃口大开,大家都流着口水并带着极度渴望的眼神看着你的时候----突然断掉我们的食物来源啊!
这是何其的残忍啊!你忍心吗?

#40楼   回复  引用  查看    

2009-07-14 10:41 by csui2008      
好文,永远都有人看,想想楼主现在应该更精炼了,有机会,再写一些!

#41楼   回复  引用  查看    

2009-08-10 11:56 by 伊牛娃      
继续出后续文章啊

咋没动静了呢?

#42楼   回复  引用    

2009-09-28 19:41 by SandyLee[未注册用户]
不错,看出LZ非常用心,理解得也非常透彻,教程也写得简洁易懂,望再接再励。