【第三周】学习笔记+思维导图+翻译

【学习笔记】

一丶概念结构设计
1.首先就是需要了解概念模型分为以下四个特点:
(1)能真实充分地反映现实世界
(2) 易于理解
(3)易于更改
(4)易于向关系、网状、层次等各种数据模型转换
2. 接下来就是重点来理解一下E-R模型
E-R模型分为一下三种概念:
(1)两个实体型之间的联系(又可分为一对一联系、一对多联系、多对多联系)
(2)其中就可以拿多个老师与多个学生的例子来进行说明
(3)两个以上的实体型联系(分类同以上相同)
单个实体型内的联系
重点就是其中的E-R图需要了解绘画的过程和使用一些框架的特定场合。
实体型------------矩形
椭圆形------------属性
菱形--------------联系


3.E-R图的绘画由思维导图和书上的联系展示,书上体现为超市进货等一系列之间的联系,


不同之间的都有多种关系,,供应商,项目,零件分别为实体型,贰供应,仓库为他们之间的联系,最后一些供应量,库存量则视为是属性!

再详细了解各种框的使用方法才能更好的进行E-R图的绘制


【思维导图】






第七章    数据库设计与E-R模型。

 

inst -dept的模式被合并到实体集instructor时,即添加到instructor关系中。

 

实体关系设计问题

 

实体集和关系集的概念并不精确,并且可以通过多种不同的方式定义一组实体和它们之间的关系。在本节中,我们将研究E-R数据库模式设计中的基本问题。第7.10节详细介绍了设计过程。

 

7.7.1实体集与属性的使用。

考虑使用附加phone number的实体设置instructor (图7.17a)。可以很容易地认为,手机本身就是一个实体,它拥有phone number 和 location;该地点可能是phone所在的办公室或住宅,手机(手机)可能代表“移动”。“如果我们采用这个观点,我们就不会将hone number添加到instructor。”相反,我们创建:

 

一个带有phone numberlocation属性phone实体。

设置一种inst phone关系,表示instructor和他们的phone之间的联系。

此选项如图7.17b所示。

那么,instructor的这两种定义有什么区别呢?phones当作一个属性phone -number,意味着instructor们每个人都有一个phone -number。把phones当作实体电话来处理,可以让教师有几个phone -number (包括零)与他们联系。

但是,我们可以很容易地将phone -number定义为一个多值属性,允许每个instructor使用多个phones

主要的区别是,把phones当作一个实体更好地模拟一种情况,一个人可能想要保留phones的额外信息,比如它的位置,或者它的类型(手机,IP电话,或者普通的旧手机),或者所有的人共享phones。因此,将phones作为一个实体来处理,比将其作为一个属性来处理更普遍,并且在一般性可能有用的情况下是适当的。


相比之下,处理属性名(of an instructor)是不合适的。作为一个整体;很难说名字本身就是一个实体(与电话相比)。因此,将名称作为讲师实体集的属性是合适的。

因此产生了两个自然的问题:什么是属性,什么是属性构成的一个实体集呢?不幸的是,没有简单的答案。区别在于建模的实际企业的结构,以及与该属性相关的语义。

一个常见的错误是使用实体集的主键作为另一个实体集的属性,而不是使用关系。例如,即使每个instructor只建议一个student,但将学生的ID建模为instructor的属性是不正确的。relationship advisor是表示studentinstructor之间的连接的正确方法,因为它使他们的连接显式,而不是通过属性隐式的。

人们有时会犯的另一个相关错误是将相关实体集的主键属性指定为关系集的属性。例如,ID (student的主键属性)和ID(instructor的主键)不应该作为关系顾问的属性出现。这是不应该做的,因为主键属性已经隐含在关系中。

7.7.2 Use ofEntity Sets versus Relationship Sets

    在图7.15中,我们使用了“take relationship set”来模拟一个学生学习(section of a)课程的情况。另一种选择是想象每个学生都有一个课程注册记录。

然后,我们有一个实体集来表示课程注册记录。我们称这个实体为集合注册。每个注册实体都与一个学生和一个部分相关,因此我们有两个关系集,一个将courseregistration记录与学生联系起来,另一个将课程注册记录与部分联系起来。在图7.18中,实体集的部分和学生由图7.15所示,由一个实体集和两个关系集取代的关系集:

• 注册,代表课程注册记录的实体集。

• 第二部分,注册与课程的关系设置。

• student  reg与注册和学生相关的关系。

注意,我们使用双行表示注册实体的完全参与。


图7.15和图7.18的方法都准确地代表了大学的信息,但是使用的方式更紧凑,可能更可取。然而,如果登记官办公室将其他信息与法庭登记记录联系在一起,最好把它作为一个实体。

确定是否使用实体集或关系集的一个可能的指导原则是,指定一种关系集来描述实体之间发生的操作。这种方法还可以用于判断某些属性是否可以更恰当地表示为关系。

7.7.3对n-ary关系集。

数据库中的关系通常是二进制的。一些看似非二进制的关系实际上可以用几个二进制关系来表示。例如,一个人可以建立一个三元关系的父母,把一个孩子和他/她的父母联系起来。然而,这种关系也可以由两种二元关系来表示,即父母,将一个孩子与他/她的母亲和父亲分开。使用这两种关系,母亲和父亲为我们提供了孩子母亲的记录,即使我们不知道父亲的身份;如果使用三元关系父,则需要一个空值。在这种情况下,使用二进制关系集更好。

事实上,总是可以用一些不同的二进制关系集来替换一个非二进制    (n-ary, for n > 2)关系。为简单起见,考虑抽象三元关系集R,关联实体集A、B和c。我们用实体集E替换关系集R,并创建3个关系集,如图7.19所示:

 

• RA关于EA

• RB,关于EB

• RC关于EC

 

如果关系集R具有任何属性,则将这些属性分配给实体集E;此外,为E创建了一个特殊的标识属性(因为必须能够根据其属性值来区分实体中不同的实体)。对于关系集R中的每一段关系(ai, bi, ci),我们在实体集合中创建一个新的实体ei,然后,在这三个新的关系集合中,我们插入一段关系如下:

• (ei ai) in RA.

• (ei bi) in RB.

• (ei ci) in RC.

我们可以用简单的方式将这个过程概括为n-ary关系集。因此,从概念上讲,我们可以将E-R模型限制为只包含二进制关系集。然而,这种限制并不总是可取的。

为表示关系集创建的实体集可能需要创建一个标识属性。该属性与所需的额外关系集一起增加了设计的复杂性,(如我们将看到inSection 7.6)的总体存储需求。

• n-ary关系集更清楚地显示了几个实体参与一段关系。

可能没有办法将三元关系的约束转化为对二元关系的约束。例如,考虑一个约束,该约束说R是多对一,从a, BC;也就是说,Aand B中的每一对实体都与最多一个C实体关联。这个约束不能通过使用关系集RARBRC的基数约束来表示。

 

请考虑在7.2.2节中设置的关系集proj指南,相关的指导老师、学生和项目。我们不能直接将proj指南划分为教师和项目之间的二元关系,以及教师和学生之间的二元关系。如果我们这样做,

通过创建如上所述的新实体集,可以将关系集proj指南拆分为二进制关系。然而,做索道不是很自然的事。

7.7.4 位置的关系属性

关系的基数比可以影响关系属性的位置。因此,一对一或一对多关系集的属性可以被关联到一个参与的实体集,而不是关系。例如,我们指定顾问是一对多的关系,一个老师可能建议几个学生,但可以建议每个学生只有一个老师。在这种情况下,属性日期,它指定当教师成为学生的顾问时,可以与之关联。学生实体设置,如图7.20所示。(为了保持图的简单性,只显示了两个实体集的一些属性。)因为每个学生实体参与导师的关系最多一个实例,使这个属性指定具有相同含义aswould放置日期与顾问关系确定。一对多关系的属性集只能重新定位,以实体集“许多”的关系。对于一对一的关系集,另一方面,关系属性可以与任何一个参与实体关联。

在这种情况下,将描述性的属性放置在关系或实体属性中的设计决策应该反映出被建模企业的特征。设计者可以选择保留日期作为顾问的一个属性,明确表示日期指的是咨询关系,而不是学生的大学地位的其他方面(例如,接受大学的日期)

他选择的属性位置对于多对多关系集更加明确。再回到我们的例子之中,让我们指定一个可能更现实的情况,老师是多对多关系的集合,这是表示老师可以指导一个或多个学生,一个学生可以被一个或多个老师指导。如果我们要表达某个特定的老师成为某一特定学生的老师的日期,那么日期必须是老师的一个属性关系集,而不是一个参与其中的任何东西。例如,如果日期是学生的一个属性,我们就不能确定哪位老师在特定的日期成为了他的指导老师。当一个属性由参与实体集的组合而不是单独的实体来决定时,该属性必须与多对多关系集关联。同样,为了保持图的简单,只显示了两个实体集的一些属性。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值