第3章 · 播客 第6集

数据库系统 · 实体、联系与视图集成冲突

🎙️ 本集播客第6集:局部视图设计四步与「实体数不超过 9 个」的 7±2 原则,1:1、1:n、m:n 三类联系的定义与原文例子,教师号课程号授课日期的特殊标识,视图集成的四种冲突及各自的解决办法——练习题第 11 题的正主。 语音由微软 Edge 神经网络语音预生成(女声·晓伊,男声·云希)。点击下方任意对话可直接从该句开始播,当前句朗读时下一句已预先加载,无缝衔接。
🎙️ 第3章播客 第6集
⬇ 下载本集 点击播放
阿明
E-R 图我会画,但考试考的那些细规则我总拿不准,比如实体个数有没有讲究?视图设计的顺序有没有讲究?
小雅
顺序也有讲究。实体分析法里,局部视图设计第一步是确定它所对应的用户组,然后对每个用户组建立一个仅由实体、联系及它们的标识码组成的局部信息结构框架,最后再加入有关的描述信息,形成完整的局部视图。原文说这样做的目的是集中精力处理好用户数据需求的主要方面,避免因无关紧要的描述细节而影响局部信息结构的正确性——先骨架后血肉,这句也可能出判断题。
小雅
有,而且是个带数字的考点。局部视图设计的过程分四步:确定局部视图的范围;识别实体及其标识;确定实体间的联系;分配实体及联系的属性。在确定范围时,局部视图范围确定的基本原则第一条是各个局部视图支持的功能域之间的联系应最少。第二条就是实体个数适量:原文引信息论的观点说,人们在同一时刻可同时顾及的事情一般在 5 到 9 之间,其中以 6 或 7 最为适当,因此一个局部视图内的实体数不宜超过 9 个,否则就会过于复杂,不便于人们理解和管理。
阿明
5 到 9、最适当 6 或 7、上限 9 个,这是 7 加减 2 原则。范围是不是也不能切太碎?
小雅
对,原文说局部视图范围有时因为过大而不利于局部信息结构的构造,可根据情况修改,但也不宜分得过小,过小会造成局部视图的数量太大及大量的数据冗余和不一致性,给以后的视图集成带来很大的困难。判断题问「局部视图切得越小越好」,答否。
阿明
联系分几类?我记得现实世界的联系有个三分法。
小雅
两个层面。先是语义三分法:诸多形式的联系大致可分为三类,存在性联系、功能性联系和事件联系。存在性联系如学校有教师、教室有学生、工厂有产品、产品有顾客等;功能性联系如教师讲授课程、教师参与科研、仓库管理员管理仓库等;事件联系如学生借书、产品发运等。「有」是存在性、「做」是功能性、「发生」是事件,配对记。
阿明
然后是结构上的 1:1、1:n、m:n 三种?各自的判定句有点绕。
小雅
对,二元联系按两个实体类值之间的对应关系分三种。一对一联系:若对于实体集 A 中的每一个实体,实体集 B 中至多有一个实体与之联系,反之亦然,记为 1:1。原文例子:在一个施工单位中,如果规定每项工程最多只能由一名工程师负责管理,而一名工程师最多也只能负责一项工程,则工程师与工程间的这种管理联系便是一对一联系。
小雅
一对多联系:若对于实体集 A 中的每一个实体,实体集 B 中有 n 个实体,n 大于等于 0,与之联系;反之,对于实体集 B 中的每一个实体,实体集 A 中至多有一个实体与之联系,记为 1:n。例子:如规定一个专业可以管理许多学生,每个学生只能属于一个专业。多对多联系:若对于实体集 A 中的每一个实体,实体集 B 中有 n 个实体与之联系,反过来,对实体集 B 中每一个实体,实体集 A 中也有 m 个实体,m 大于等于 0,与之联系,记为 m:n。教师与学生这两个实体类间的教与学的联系就是多对多的联系。
阿明
联系的标识一般怎么定?我记得有个拼凑的例外。
小雅
一般情况下可以以两个关联实体的标识拼凑作为联系的标识,比如教师和学生拼成教学联系。但原文专门讲了例外:当一个实体值在同一个联系上可能存在多个不同的联系值时,这种方法就不能构成有效的联系标识。例子是教师与其讲授的课程之间的联系——同一个教师可讲授几门不同的课程,也可以多次讲授同一门课程,这是一种特殊的多对多联系。如在教师档案中要求记录担任教学工作的情况,就需要在联系标识中增加表示授课日期的属性,即其合适的联系标识可能为教师号、课程号、授课日期三个属性合起来。这个三元标识是简答和选择题都爱考的点。
阿明
还有个自联系,职工管职工那种?
小雅
对,实体类内部的联系发生在同一类实体的不同实体之间,称为内部联系或自联系,它也是一种二元联系。原文例子:职工类实体中存在管理者与被管理者的联系,一个管理者可以管理多个职工,而一个职工最多只从属于一位管理者,构成一对多联系。其中每个联系实体包含两个职工号值:职工号和管理员职工号,以区别不同的实体在联系中的角色。考试问「职工之间的领导联系是几元联系、需要几个标识属性」,答案就是二元自联系、两个职工号。
阿明
多元联系是不是三个以上实体?
小雅
两个以上的实体类之间的联系称为多元联系。原文例子:供应商向工程供应零件,如果任一供应商可向任一工程供应任一种零件,则为了确定哪个供应商向哪个工程供应了何种零件,就必须定义一个三元联系,因为只有供应商、工程及零件三者一起才能唯一地确定一个联系值,其联系的标识由三个实体类的标识拼接而成。三元是重点,问「什么时候需要三元联系」,就答三个实体一起才能确定联系值。
阿明
局部视图都画完了,接下来是视图集成,第 11 题考的冲突那块。集成本身是干嘛的?
小雅
先背总纲:视图集成就是要将反映各用户组数据的局部数据模式综合成单位中某个确定范围内的单一数据视图,即全局数据模式,又称模式汇总。该全局数据模式是未来数据库结构的基础,因此视图集成是数据库设计过程中一个十分重要的步骤,也是一项较为复杂和困难的任务。当所有局部视图设计完毕,就可开始视图集成。集成过程中会发生一些冲突,原文列了四种。第一种,同名异义:不同视图间名称相同但语义不同的数据对象。识别方法是可以列出所有同名数据对象,然后逐一判别其语义,识别语义的主要方法是进行值域分析。解决办法通常采用换名,既可对同名者之一换名,也可对两者都给以重新命名。
阿明
第 11 题问的就是这个:不同视图有同名数据对象但语义不同的冲突称为?答案同名异义。
小雅
对。你要把四个干扰项逐个排掉。异名同义是语义相同但名称不同,方向正好反过来;同名不同层次是同名但一个是实体一个是属性;联系测度冲突是联系类型不同,比如一个视图里一对多另一个视图里多对多。这四个名字长得像四胞胎,用「名、义、层次、测度」四个维度区分:名称和语义两个维度,同名异义和异名同义是一对镜像,同名不同层次多一个层次维度,联系测度冲突只发生在联系上。
阿明
异名同义怎么解决?也是换名吗?
小雅
同样采用换名的方法解决。若归并时试图将它们合并为一个对象,则可以把其中之一的名称作为合并后的对象名;若集成后它们仍以两个不同的对象存在,则可对其一换名;若原名都不合适,则可以对两者都重新命名。原文还说识别异名同义比较困难,一般由设计者对所有对象一个不漏地逐一鉴别。
阿明
同名不同层次给我一个例子,光定义记不住。
小雅
原文例一:设一局部视图中有一部门实体 DEPT,而在另一与之集成的视图中有职工实体 EMP,且 EMP 有属性 DEPT,于是发生了同名不同层次的冲突。此时可将 EMP 的 DEPT 属性去掉,另设一个实体 DEPT 与 EMP 建立联系。解决这种冲突的办法有两个:一是将属性转换为实体,二是将实体变换成属性。还有一条提示:实体变换为属性时通常要满足一些特定条件,例如,该实体通常只含有一个与同名属性具有共同特征的属性,且一定存在一个与该实体存在联系的另外的实体。
阿明
联系测度冲突呢?两个视图联系类型对不上怎么调和?
小雅
所谓联系测度是指实体的联系是一对一、一对多还是多对多。若同名同义对象在一个局部视图中为一对多联系,在另一局部视图中为多对多联系,则在集成时将发生联系测度冲突。解决方法记住包含关系:一对多包含一对一,多对多包含一对多,所以往往取较高测度为集成后的相应联系的测度。也就是两个视图不一致时,往大的方向取——都成多对多。
小雅
本集必背:局部视图设计四步是定范围、识别实体及标识、定联系、分属性;实体数 5 到 9 个最适当、以 6 或 7 最佳、不宜超过 9;联系语义三分是存在性、功能性、事件;结构三分 1:1 工程师与工程、1:n 专业与学生、m:n 教师与学生;特殊多对多联系标识要加授课日期成教师号课程号授课日期;自联系职工管职工用两个职工号;三元联系供应商工程零件;视图集成四冲突:同名异义换名解决、异名同义也换名、同名不同层次转实体或转属性、联系测度冲突取较高测度。
阿明
四胞胎冲突这回分清了,连同各自解法一起记。下一集就是 E-R 转关系了吧?
小雅
对,一对一三种方案、一对多两种方案、多对多单独建表,还有多元、自联系、弱实体的转换规则,练习题第 8 题多对多的答案就在里面,是逻辑设计的重头戏。
阿明
好,顺便问一句,概念结构的设计策略是不是也有几种说法?
小雅
有:概念结构的设计策略主要有自底向上、自顶向下、由里向外和混合策略。还有两种极端方案,一是建立一个覆盖整个单位所有功能域的全局数据库,称之为全局方案或全局策略;另一种则是对每一个应用都建立一个单独的数据库,称之为应用方案或应用策略。这组「自底向上、自顶向下、由里向外、混合」四个名字会出成多选或干扰项,认全了就丢不了分。
阿明
好。还有个词叫「扩展的 E-R 模型」,是谁提的?
小雅
Teory 等人提出的扩展的 E-R 模型增加了类似面向对象数据模型中的普遍化和聚合等语义描述机制,为这种最为人们熟悉的数据模型注入了新的生机,为概念模型的描述增加了一种理想的选择。同时原文还提到,近年来面向对象数据模型具有更丰富的语义、更强的描述能力,不但出现了商品化的面向对象 DBMS,而且开始实际应用于概念模型的设计中。人名 Teory 配两个机制「普遍化和聚合」,是个偏门但会出的点。
阿明
四胞胎冲突加上这些边角料,这集装满了。下一集见。