精华内容
下载资源
问答
  • 数据库实体联系模型关系模型

    千次阅读 2020-03-02 19:11:33
    数据库设计是指根据用户的需求,某一具体...这就需要规划课程、学生、老师、学习资料等数据构成以及相互之间的关系。因此,规划数据构成及数据间关系,并应用某一具体的数据库管理系统如MySQL构建数据库的过程就是...

    数据库设计是指根据用户的需求,在某一具体的数据库管理系统上,设计数据库的结构和建立数据库的过程。例如,编程微课是在线编程教育项目,该项目涉及到课程、学生、老师、学习资料等数据,这些数据都要被存储下来,并且能够方便的增加、修改、删除和查询。这就需要规划课程、学生、老师、学习资料等数据构成以及相互之间的关系。因此,规划数据构成及数据间关系,并应用某一具体的数据库管理系统如MySQL构建数据库的过程就是数据库设计。

    由于项目需求的易变性和数据的复杂性,数据库设计不可能一蹴而就,而只能是一种“反复探寻,逐步求精”的过程。数据库设计步骤如下图所示:

     

     

                                           

                                                                    图2-5 数据库设计过程流程图

     

    需求分析阶段主要分析项目涉及的业务活动和数据的使用情况,弄清所用数据的种类、范围、数量以及在业务活动中的存储情况,确定用户对数据库系统的使用要求和各种约束条件等,形成数据库需求说明书

    概念结构设计阶段根据数据库需求说明书,创建数据库概念结构,描述概念结构的有力工具是ER模型

    ER模型表示的概念结构模型独立于任何一种数据模型,并独立于任何一个具体的数据库管理系统。因此,需要把概念结构设计阶段设计的ER模型转换为关系数据模型二维表结构,此阶段为逻辑结构设计阶段

    物理设计阶段是在计算机的物理设备上确定应采取的数据存储结构和存取方法,以及如何分配存储空间等问题。关系数据库物理设计的主要工作是由系统自动完成的,数据库设计者只要关心索引文件的创建即可

    验证设计是在上述设计的基础上,收集数据并建立数据库,运行应用任务来验证数据库的正确性和合理性,当发现设计问题时,可能需要对数据库设计进行修改。

     

    实体联系模型(ER图)

    当前常用的概念数据模型是ER模型。ER模型描述数据库的概念模式,不考虑数据库的逻辑与物理结构,它充分反映现实世界,易于理解,将现实世界的事物以信息结构的形式很方便地表示出来。

    例如,课程是编程微课的主要内容,课程涉及到老师、学生等对象等实体,进一步分析还涉及到课程视频、课程资料、课程价格等各种数据。在用ER模型对课程分析和描述中,对这些实体以及实体之间的联系给出了确切的定义。

    ER模型有四个概念,分别是实体、属性、联系、实体集

     

    实体

    实体是客观存在并且可以互相区分的事物,可以是人或物,也可以是抽象的概念。在现实世界,实体并不是孤立存在的,实体与实体之间也存在联系。例如,课程与学生之间存在学生学习课程的联系,课程与老师之间存在老师创建课程的联系。

     

    属性

    每个实体具有的特征称为属性,一个实体可以由若干属性来描述,属性都有其取值范围,称为值集或值域。例如,课程实体可以由课程编号、课程名称、授课老师、类别、简课程介、价格等属性组成。唯一地标识实体的属性或属性组称为实体的关键字。例如,属性值“20180603,Java编程基础,郎老师,编程语言,课程以浅显易懂的语言,以常见的生活场景为案例,带领大家逐步进入计算机编程世界,86”。其中20180603是课程编号的属性值,该编号在在所有的课程实体中是唯一的,该属性就是课程实体的关键字。

     

    联系

    实体不是孤立存在的,实体之间是有联系的。实体之间的联系可以分为三类:一对一(1:1)、一对多(1:n)和多对多(m:n)。例如,一个老师可以创建多个课程,老师与课程的联系就是一对多的;如果一个老师只能创建一个课程,则老师和课程的联系就是一对一的。在进行问题分析时,要根据客观实际,抓住问题实质进行现实世界的抽象

     

    实体集

    具有相同属性的实体的集合称为实体集。在同一实体集中,每个实体的属性及其值域是相同的,但可能取不同的值。例如,所有的课程实体组成课程实体集,所有的老师实体组成老师实体集。

     

    绘制ER图

    ER图是ER模型的图形化描述。俗话说:一张图胜过千言万语,用ER图可以清晰地描述出ER模型的结构。

    规范的ER图可以帮助人们对ER模型的统一认识,便于沟通和讨论,有助于工作效率的提高。它使用一组预定义的符号来表示ER模型的实体、属性、联系等概念,这些预先定义的符号已经标准化,从而让全世界的开发人员都可以采用这些符号而不会引起混淆。ER图的基本图素有如下的约定:

     

                           

                                                                              图 2-6 ER图的基本图素

    (1)用长方形表示实体,在框内写上实体名。

    (2)用椭圆表示实体的属性,并用连接线把实体与属性连接起来,属性如果是实体的关键字,可以用双线椭圆表示。

    (3)用菱形表示实体间的联系,菱形内写上联系名,用连接线把菱形分别与有关的实体相连接,在连接线旁标上连接的类型,如果联系也有属性,则联系的属性和菱形连接。

     

                                            

                                                                            图 2-7 用ER图表示的课程管理

    图2-7所示为用ER图表示一个课程管理,这是一个简化的课程管理模型,课程由老师创建并属于老师,两者之间是一对多的联系。课程与学生直接存在学习的联系,课程与学生是多对多的联系,因此联系也有属性,分别是学生编号和课程编号。双线椭圆表示的属性编号是实体的关键字。

    通过图2-7可以看出,ER模型是依赖业务运营方式的,它是企业运营方式的信息化描述。企业业务的改变直接影响着ER图的结构和实体间的联系。即使是相同的业务,数据库设计人员侧重分析的数据不同,给出的ER图也可能是不同的。

    对于设计比较复杂的系统来说,有时为了使ER图简洁明了,在ER图中可以省略属性,只画出实体和联系,将属性以表格的形式另外列出。如图2-8所示,给出的是不包含属性的ER图,

     

                                                    

                                                                     图 2-8 不包含属性的课程管理ER图

    ER图直观易懂,是系统开发人员和客户之间很好的沟通工具。对于客户来说,它概况了企业运营的方式和各种联系;对于系统开发人员来说,它从概念上描述了一个应用系统数据库的信息组织。因此,如能准确画出企业运营方式的ER图,就意味着搞清楚了企业的业务运营方式,以后可以根据ER图,结合具体的数据库管理系统,把ER图转换为数据库管理系统所能支持的数据模型。这种逐步推进的数据库设计方法已经普遍应用于数据库设计中,画出应用系统的ER图成为数据库设计的一个重要步骤。

     

    关系模型

    ER图给出了实体联系模型的图形化描述,增强了开发人员与客户的沟通能力。在需求开发阶段ER模型是非常重要的,也是从企业的业务运营方式到概念模型的映射。

    到了设计阶段。就需要在概念模型的基础上建立关系模型,关系模型是用二维表来表示实体集属性间的关系以及实体间联系的形式化模型。它将用户数据的逻辑结构ER模型归纳为满足一定条件的二维表的形式。

    ER模型中的一个实体或联系对应一张二维表,ER模型中的实体属性转换为二维表的列,也可称为属性,每个属性的名称称为属性名,也可称为列名。每个属性取值范围称为该属性的域。二维表每个属性或列取值后的一行数据称为二维表的一个元组,也可以称为一条记录。二维表可以包含有限个不重复的记录。

    图2-9给出了实体“课程”、“老师”转化为关系模型的二维表。每个课程是课程表中的一条记录或一个元组,即一行;同样,每个老师的属性也反映在老师表中的一行;课程表和老师表的联系反映在课程表属性“老师编号”字段上,该字段和老师表的编号字段为同一个字段,因此通过“老师编号”字段可以确定是哪位老师建立的课程。

     

                               

                                                                   图 2-9 由实体课程和老师转化的课程和

    二维表的不可重复性可知,关系中必然存在一个属性或属性组,能够唯一标识一个元组,该属性或属性组称为关键字。当关系中存在多个关键字时,称它们为候选关键字,指定其中一个为主关键字,简称主键。

    设计二维表时,关系应满足如下性质。

    (1)表中每一列的取值范围都是相同的,也就是数据类型相同。

    (2)不同列的取值范围可以相同,但列名称不能相同。

    (3)表中列的次序可以变换,不影响关系的实际意义。

    (4)同一个表中,不允许存在两个完全相同的元组,这是集合的一个基本性质,保证了关系中元组的唯一性。

    (5)行的次序可以任意交换。

    (6)关系中的任何一个属性值都必须是不可分的元素。

    展开全文
  • 从E-R图导出关系模型时,如果实体间联系是M:N的,下列说法正确的是? A.将N方码和联系的属性纳入M方的属性 B.将M方码和联系的属性纳入N方的属性 C.增加一个新关系表示联系关系的名取联系的名,...
  • 清华大学开源的OpenNRE项目基础上实现中文实体关系识别 github项目地址,点我 文章目录一、中文关系抽取训练结果测试结果二、使用前准备三、注意事项 一、中文关系抽取 使用哈工大,BERT-wwm,中文bert,20w...

    在清华大学开源的OpenNRE项目基础上实现中文实体关系识别

    github项目地址,点我

    了解bert,这一篇就够



    一、中文关系抽取

    使用哈工大,BERT-wwm,中文bert,在20w中文人物关系数据上的准确率达到0.97

    实现过程

    实现过程十分简单,如下:

    1)token阶段:将文本根据两个实体位置分割成五个小片;
    2)index阶段:文本开头使用[CLS],结尾使用[SEP],中间的分割使用[unused1-4];
    3)padding阶段:0填充,最大长度80;
    4)attention mask,完成embedding;
    5)通过bert模型

    展开全文
  • 数据库实体联系如何转换为关系模式

    千次阅读 多人点赞 2019-07-04 09:44:39
    二、实体联系关系模式 1:1联系 两个实体任选一个添加另一个实体的主键; 每个实体的码均是该联系的候选键; 1:n联系 1:N 遇到 1:N 关系的话N端添加另一端的主键,假如有学生和班级两个实体,一个班级可以...

    申明:本博主所有文章均属自用,不做任何商用。觉得写得好免费赠送,觉得不好请出门右转,拒绝任何恶意评论。

    参考《试题》P32试题5

    一、什么是实体、什么是联系

    实体:供应商、项目、零件、员工

    联系:供应

    二、实体联系→关系模式

    • 1:1联系

    在两个实体任选一个添加另一个实体的主键;

    每个实体的码均是该联系的候选键;

    • 1:n联系

    1:N 遇到 1:N 关系的话在N端添加另一端的主键假如有学生和班级两个实体,一个班级可以容纳多个学生,但是一个学生只能选择一个班级, 因此班级和学生是1:N的关系,现在要转换为关系模型, 我们只需在学生的这端加上班级的唯一标识即可,这样做的原因是,因为一个学生只能有一个班级,班级是相对学生唯一的

    该联系的码为n端实体的码,关系的外键是1端的码;

    • n:m联系

    需要将联系转换为实体,然后在该实体上加上另外两个实体的主键,作为联系实体的主键,然后再加上该联系自身带的属性即可。例如有学生和老师两个实体, 一个学生可以由多名老师来授课,一名老师也可以授课多名学生,它们是M:N关系的,假如联系为授课,该联系上有成绩属性,因此当我们把它转换为关系模型时,我们把联系转换为联系实体,并添加学生实体的主键(学号)和教师实体的主键(教师编号)作为自己的主键,值得注意的是,授课实体的外键分别是学号和教师编号,但是它的主键是(学号,教师编号),另外它还拥有自己的一个属性成绩

    • 1:1:N

    这是三元联系的对应关系,但是当转换为关系模型时,和1:N的情况是差不多的。我们只需将N端添加另外两端的主键即可。

    • M:N:P

    这种三元联系的三种多对应关系,看上去很复杂,其实转换起来并不是那么复杂了,我们要做的仅仅是将其中的联系转换为联系实体,然后在联系实体上添加M端N端P端的主键,然后加上联系实体自身的属性,就行了。

    三、例子

    说了这么多看个小例子。

    这是一份关于商店商品仓库的ER图。

    先看仓库和商品之间是M:N的关系,于是我们首先想到的应该是把联系 库存转换为库存实体。 
    库存 (仓库号,商品号,日期,库存量) 
    然后是商品实体和仓库实体 
    商品(商品号,商品名,单价) 
    仓库(仓库号,仓库名,地址)

    除此之外仓库和商品还有一个供应关系,同样是M:N关系: 
    供应 (仓库号,商品号 ,月份,月供应量)

    在上图的商店和仓库之间的关系可能写漏了,但是它们应该也是M:N的关系,一个商店可以被多个仓库供应,一个仓库也可以供应多个商店。上面已经创建了供应实体,现在只需在供应实体中假如商店号即可,也就是商店实体的主键。

    供应(仓库号,商品号,商店号 ,月份,月供应量) 
    商店(商店号,商店名,地址)

    总结
    至此,转换关系模型也完成了,当然这只是个例子,实际的开发中,我们可能会遇到各式各样奇怪的需求,这就更要求我们做好概念设计的环节,对后来的数据库设计和维护都有好处。ER图的好坏,始终是数据库设计的重要一节。

    ================================================================================================

    另一篇文章

    ================================================================================================

    前言
           做了几套软考题之后发现下午题的题型很固定,第一题是数据流图,第二个是关系模式,第三个是用例图,第四个是算法,第五个是设计模式。既然题型这么固定,那么我们就好好的对每个知识点进行深入的研究,然后拿下它!

           So ,今天我们来看一下E-R 图关系模式的转换。

           建立数据库的时候我们首先要画E-R图,E-R图是由实体、属性和联系三要素组成的,每个实体之间会有联系,当我们转换成关系模式的时候,就会出现一对一、一对多和多对多的情况。那么对于实体和联系具体怎么进行转换呢,听我细细道来……

      一、一对一


            1、  将联系转换成一个独立的关系模式,关系模式的名称为联系的名称。关系模式的属性包括该联系所关联的两个实体的码及联系的属性,关系的码取自任一方实体的名称。

           2、  将联系归并到关联的两个实体的任一方,给待归并的一方实体属性集中增加另一方实体的码和该联系的属性即可,归并后的实体码保持不变。

      实例

           一个公司有一个经理,一个经理也只能在一个公司进行任职,所以公司和经理之间是一对一的关系。公司(公司编号,公司名,地址,电话),经理(职工编号,姓名,性别,电话)。经理任职会产生任职日期属性。

     转换为关系模式:

           1、  公司(公司编号,公司名,地址,电话)              主键为公司编号

                   经理(职工编号,姓名,性别,电话)                 主键为职工编号

                   任职(公司编号,职工编号,任职日期)             主键为公司编号或者是职工编号

          2、  (1)公司(公司编号,公司名,地址,电话,职工编号,任职日期) 主键为公司编号,外键为职工编号

                           经理(职工编号,姓名,性别,电话)    主键为职工编号

                  (2)公司(公司编号,公司名,地址,电话)   主键为公司编号

                           经理(职工编号,姓名,性别,电话,公司编号,任职日期)    主键为职工编号,外键为公司编号。

    二、一对多

             1、  将联系转换成一个独立的关系模式,名称为联系的名称,关系模式的属性取该联系所关联的两个实体的码及联系的属性,关系的码是多方实体的码。

             2、  将利息归并到关联的两个实体的多方,给待归并的多方实体属性集中增加一方实体的码和该联系的属性,归并后的多方实体码保持不变。

         
    实例

            一个部门中有多个员工,但是每个员工只能属于一个部门,所以部门和员工之间的关系就是一对多。部门(部门号,部门名称,电话),员工(员工号,姓名,电话)。

        

                        

          
     转换为关系模式:

          1、  部门(部门号,部门名称,电话)   主键是部门号

                 员工(员工号,姓名,电话)        主键是员工号
                 隶属(部门号,员工号)            主键是部门号和员工号

          2、  部门(部门号,部门名称,电话)    主键是部门号

                 员工(员工号,姓名,电话,部门号) 主键为员工号,外键为部门号

    三、多对多

               多对多的联系只能转换成一个独立的关系模式,关系模式的名称取联系的名称,关系模式的属性取该联系所关联的两个多方实体的码及联系的属性,关系的码是多方实体的码构成的属性组。

     实例

          在选课系统中,一个学生可以选修多门课程,一个课程也可以被多个学生选,每门课程最后都要有成绩,所以学生和课程之间是多对多的关系。

    学生(学号,姓名,性别),课程(课程号,课程名称,授课老师)。

          
    转换成关系模式: 

           学生(学号,姓名,性别)                主键为学号

           课程(课程号,课程名称,授课老师)      主键为课程

           选课(学号,课程号,成绩)              主键为学号和课程号的组合,外键为课程号,学号 

          
    实践
           知道了以上的理论知识,我们还要进行实践工作。下面来分析一道真题:

    答案:

    分析:

     1、想必有好多人在第一题中没有将采购那个联系合并吧。

           通过“一个采购订单可以包含多类服装。采购订单上主要由……和对应的供应商”这句话,大家很容易把采购订单与服装的联系和采购订单和供应商的联系画出来,但是我们仔细想想,采购订单上应该把每类服装或者是不同数量的同类的服装对应的供应商表现出来,意思就是在采购订单上,服装和供应商之间也是有联系的。所以我们将这两个联系合并成一个,表示三者之间都互相有联系,并不是只有采购订单和服装,采购订单和供应商有联系。

    2、因为仓库和库管员之间的关系是一对多。所以在填仓库信息这个关系模式时,应该将库管员编码写进去。

          供应情况表示的是供应商和服装之间的联系。因为供应商和服装之间是多对多的关系,所以供应情况中应该包括供应商的码和服装的码。所以将供应商编码和服装编码填进去。

          采购订单是一个实体,需要有的属性根据说明中可知为订单编码,订货日期和应到货日期。

          采购订单明细为采购订单、服装和供应商之间的联系,因为三者是多对多的关系,所以采购订单明细中应包括三者的码。再加上说明中的属性,所以应为订单编码,服装编码,供应商编码,数量和采购价格。

    3、因为题中要求为库管员定期轮流对所有仓库进行抽查,所以库管员和仓库之间的关系应为多对多。

    总结

           每次遇到不会的知识都会有一种得过且过的感觉,总觉得是会,就是没有掌握好而已,然后说自己没有时间总结。这其实就是我们常说的,总是低头走路,却不抬头看路。其实总结如果花费一个小时的时间比做题花费的两个小时的时间更加珍贵,更有收获!每次总结后都深深的体会到总结的好处……相信小伙伴也早就有感触了吧,那就赶紧行动吧!最后提醒大家,不要顺手就用* 或者是n表示对比关系,首先看一下题目要求,如果没有要求,那就看一下给的实体联系图中有没有标出来,如果人家给的*或n,跟人家保持一致,如果都没有的话,那就可以按照自己习惯了……相信这个题,大家看完我的博客之后就应该会了吧!加油!!!
     

    展开全文
  • 实体-联系模型

    千次阅读 2020-12-20 22:08:32
    实体-联系(Entity-Relationship, E-R)模型(以下简称E-R模型)的提出旨在方便数据库的设计,它是通过允许定义代表数据全局逻辑结构的企业模式实现的。 E-R模型采用三个基本概念:实体集、联系集和属性。 将E-R图的...

    实体-联系(Entity-Relationship, E-R)模型(以下简称E-R模型)的提出旨在方便数据库的设计,它是通过允许定义代表数据全局逻辑结构的企业模式实现的。
    E-R模型采用三个基本概念:实体集、联系集和属性。

    实体集

    实体(entity)是现实世界中可区别于所有其他对象的一个“事物”或“对象”。(与面向对象的类含义类似)实体集是相同类型即具有相同性质(或属性)的一个实体集合。在建模汇中,我们通常抽象地使用术语“实体集”,而不是指某个个别实体的特别集合。
    实体集不必互不相交。如可以定义大学里所有人的实体集(person)。一个person实体可以是teacher实体,也可以是student实体,可以既是teacher实体又是student实体,也可以都不是。
    实体通过一组属性(attribute)来表示。属性是实体集中每个成员所拥有的描述性性质。且每个属性都有一个值。

    弱实体集

    没有足够的属性以形成主码的实体集称为弱实体集(weak entity set)。有主码的实体集称作强实体集(strong entity set)。弱实体集必须与另一个称作标识(identitying)或属主实体集的实体集关联才能有意义。也就是说,弱实体集的存在依赖于标识实体集。将弱实体集与其标识实体集相连的联系称为标识性联系
    标识性联系是从弱实体集到标识实体集多对一的,并且弱实体集在联系中的参与是全部的。
    虽然弱实体集没有主码,但仍需要区分依赖于特定强实体集的弱实体集中实体的方法。弱实体集的分辨符是使得我们进行这种区分的属性集合。弱实体集的分辨符也称为该实体集的部分码
    弱实体的主码由标志实体集的主码加上该弱实体集的分辨符构成。

    联系集

    联系(relationship)是指多个实体间的相互关联。联系集是相同类型联系的集合。
    联系集也可以具有描述性属性(descriptive attribute)。如果teacher实体集与student实体集的联系集advisor。可以将属性date与该联系集联系起来,以表示教师成为学生的老师的日期。
    数据库中的大部分联系集都是二元的。然而,有时联系集会涉及多于两个实体集。参与联系集的实体集的数目称为联系集的度(degree)。二元联系集的度为2,三元联系集的度为3,以此类推。

    非二元的联系集

    对于非二元联系集,为了避免混淆,只允许在一个联系集外有一个箭头。(如果有多个箭头,则无法表明对应的哪个实体)。而函数依赖可以以一种不会混淆的方式描述实体间的联系。

    属性

    每个属性都有一个可取值的集合,称为该属性的域(domain),或者值集(value set)。 严格来说,实体集的属性是将实体集映射到域的函数。由于一个实体集可能有多个属性,因此每个实体可以用一组(属性,数据值)对来表示,实体集的每个属性对应一个这样的对。
    E-R模型中的属性可以按照如下的属性类型来划分:

    • 简单(simple)和复合(composite)属性。简单属性不能划分为更小的部分。复合属性可以再划分为更小的部分。 复合属性帮助我们把相关属性聚集起来,使模型更清晰。注意,复合属性可以是有层次的。如address可以包含street、city、state等,而street可以进一步分解为street_number、street_name、apartment_number。
    • 单值(single-valued)和多值(multi-valued)属性。一般情况下,一个属性对应一个值,这样的属性称为单值属性。如stuent_ID属性只对应于一个学生ID。而在某些情况下对某个特定实体而言,一个属性可能对应于一组值。以phone_number为例,每个教师可以有零个、一个或多个电话号码。这样的属性称为多值属性。为了表示一个多值属性,用花括号将属性名包住;如{phone_number}。
    • 派生(derived属性)。派生属性的值可以从别的相关属性或实体派生(计算)出来。如age属性表示年龄,如果还具有属性date_of_birth,就可以从当前的日期和date_of_birth计算出age。派生属性的值不存储,而是在需要时计算出来。
      当实体在某个属性上没有值时,使用空(null)值。空值可以表示“不适用”,即该实体的这个属性不存在值。空还可以用来表示属性值未知。未知的值可能是缺失的(值不存在),或不知道的(不知道该值是否确实存在)。

    删除冗余属性

    一个好的实体-联系设计不包含冗余的属性。但是在实际开发中,实现这一点需要极大的代价。

    约束

    可以定义一些数据库中的数据必须要满足的约束。

    映射基数(Mapping Cardinality)

    映射基数表示一个实体通过一个联系集能关联的实体的个数。对于实体集A和B之间的二元联系集R来说,映射基数必然是以下情况之一:
    一对一(one-to-one):A中的一个实体至多与B中的一个实体相关联,并且B中的一个实体也至多与A中的一个实体相关联。
    一对多(one-to-many):A中的一个实体可以与B中的任意数目(零个或多个)实体相关联,而B中的一个实体至多与A中的一个实体相关联。
    多对一(many-to-one):A中的一个实体至多与B中的一个实体相关联,而B中的一个实体可以与A中的任意数目(零个或多个)的实体相关联。
    多对多(many-to-many):A中的一个实体可以与B中的任意数目(零个或多个)实体相关联,,并且B中的一个实体也可以与A中的任意数目(零个或多个)的实体相关联。
    注意,考虑映射关系时,一定要同时考虑A->B和B->A两个方面,而不能只考虑其中一方面而忽略另一方面,从而导致错误的设计。

    参与约束

    如果实体集E中的每个实体都参与到联系集R的至少一个联系中,那么实体集E在联系集R中的参与称为全部的。如果实体集E中只有部分参与到联系集R中,那么实体集E在联系集R中的参与称为部分的。如我们期望每个student实体通过advisor联系同至少一名教师相联系,因此student在联系集advisor中的参与是全部的。相反地,一个teacher不是必须要指导一个学生。因此,很可能只有一部分teacher实体通过advisor联系同student相关联,于是teacher在advisor中的参与是部分的。

    我们必须有一个区分给定实体集中实体的方法。从概念上来说,各个实体是互异的;但从数据库的观点来看,它们的区别必须通过其属性表明。实体的码是一个足以区分每个实体属性集。关系模式中的超码、候选码、主码的概念同样适用于实体集。
    码同样可以唯一标识联系,并从而将联系相互区分开来。联系集的主码结构依赖于联系集的映射基数。如果联系集是多对多的,那么联系集的主码由两个实体集的主码的并集构成。如果联系是多对一的,那么多的实体的主码就是联系集的主码。如果联系集是一对一的,那么两个实体的任一主码就是联系集的主码。

    E-R数据模式转换为关系模式

    E-R模型和关系数据库模型都是现实世界企业抽象的逻辑表示。由于两种模型采用类似的设计原则,因此可将E-R设计转换为关系设计。

    具有简单属性的强实体集的表示

    设E是只具有简单描述性属性a1,a2,…,an的强实体集。我们用具有n个不同属性的模式E来表示这个实体集。对于从强实体集转换而来的模式,强实体集的主码就是生成的模式的主码。

    具有复杂属性的强实体集的表示

    当一个强实体集具有非简单属性时,可以通过为每个子属性创建一个单独的属性来处理复合属性,而不为复合属性自身创建一个单独的属性。
    多值属性的处理不同于其他属性。对于一个多值属性M,构建关系模式R,该模式包含一个对应于M的属性A,以及对应于M所在的实体集或联系集的主码的属性。另外,在多值属性构建的关系模式上建立外码约束,由实体集的主码所生成的属性去参照实体集所生成的关系。
    派生属性并不在关系数据模型中显式地表达出来。

    弱实体集的表示

    设A是具有属性a1,a2,…,an的弱实体集,设B是A所依赖的强实体集,设B的主码包括b1,b2,…,bn。
    对于从弱实体集转换而来的模式,该模式的主码由其所依赖的强实体集的主码与弱实体集的分辨符组合而成。除了创建主码之外,还要在关系A上建立外码约束,该约束指明属性b1,b2,…,bn参照关系B的主码。外码约束保证表示弱实体的每个元组都有一个表示相应强实体的元组与之对应。

    联系集的表示

    设R是联系集,设a1,a2,…,an表示所有参与R的实体集的主码的并集构成的属性集合,设R的描述性属性(如果有)为b1,b2,…,bn。映射基数不同,主码的选择方式不同:

    • 对于多对多的二元联系集,参与实体集的主码属性的并集成为主码。
    • 对于一对多的二元联系集,任何一个实体集的主码都可以选作主码。这个选择是任意的。
    • 对于多对一或一对多的二元联系集,联系集中多的那一方的实体集的主码构成主码。
    • 对于边上没有箭头的n元联系集,所有参与实体集的主码属性的并集构成主码。
    • 对于边上有一个箭头的n元联系集,不在"箭头"侧的实体集的主码属性为模式的主码。
      此外,还需在关系模式R上建立外键约束。

    模式的冗余

    连接弱实体集和相应强实体集的联系集比较特殊。弱实体集的主码包含强实体集的主码。连接弱实体集与其所依赖强实体集的联系集的模式是冗余的,而且在基于E-R图的关系数据库设计不必给出。

    模式的合并

    在一对一的联系的情况下,联系集的关系模式可以跟参与联系的任何一个实体集的模式进行合并。即使参与是部分的,也可以通过空值来进行模式的合并。
    最后,还需考虑表示联系集的模式上本应有的外码约束。参照每一个参与联系集的实体集的外码约束本应存在。我们舍弃了参照联系集模式所合并入的实体集模式的约束,然后将另一个外码约束加到合并的模式中。

    实体-联系设计问题

    在实体-联系数据库模式中涉及到一些基本问题。

    用实体集还是用属性

    什么构成属性?什么构成实体集?对这两个问题并不能简单地回答。区分它们主要依赖于被建模的现实世界的企业结构,以及被讨论的属性的相关语义。
    一个常见的错误是用一个实体集的主码作为另一个实体集的属性,而不是用联系。例如,即使每名教师指指导一名学生,将student的ID作为teacher的属性也是不正确的。用advisor联系代表学生和教师之间的关联才是正确的方法,因为这样可以明确表示出两者之间的关系而不是将这种关系隐含在属性中。
    另一个常见的错误是将相关实体集主码属性为联系集的属性。这种做法是不对的,因为在联系集中已隐含这些主码属性。(这些属性默认已经在联系集中,不应再明确表示出来)

    用实体集还是联系集

    一个对象最好被表述为实体集还是联系集并不总是显而易见。在决定用实体集还是联系集可采用一个原则是,当描述发生在实体间的行为时采用联系集。这一方法在决定是否将某些属性表示为联系可能更适合时也很有用。

    二元还是n元联系集

    数据库中的联系通常都是二元的。一些看来非二元的联系实际上可以用多个二元联系更好地表示。事实上,一个非二元的(n元,n>2)联系集总可以用一组不同的二元联系集来替代。可以将这一过程直接推广到n元联系集的情况。因此在概念上可以限制E-R模型只包含二元联系集。然而,这种限制并不总是令人满意的。

    • 对于为表示联系集而创建的实体集,可能不得不为其创建一个标识属性。该标识属性和额外所需的那些联系集增加了设计的复杂度以及对总的存储空间的需求。
    • n元联系集可以更清晰地表示几个实体集参与单个联系集。
    • 有可能无法将三元联系上的约束转变为二元联系上的约束。例如,考虑一个约束,表明R是从A、B到C多对一的;也就是,来自A和B的每一对实体最多与一个C实体关联。这种约束就不能用联系集Ra、Rb和Rc上的基数约束表示。

    联系集中属性的布局

    一个联系的映射基数比率会影响联系集中属性的布局。因此,一对一或一对多联系集的属性可以放到一个参与该联系的实体集中,而不是放到联系集中。一对多联系集的属性仅可以重置到参与联系的“多”方的实体集中。而对于一对一的联系集,联系的属性可以放到任意一个参与联系的实体中。
    设计时将描述性属性作为联系集的属性还是实体集的属性这一决定反映出被建模企业的特点。
    属性位置的选择在多对多的联系集中体现得更清楚。同名的属性,放在实体集中还是联系集中其作用不同。

    扩展的E-R特性

    虽然基本的E-R概念足以对大多数数据库特征建模,但数据库的某些方面可以通过基本E-R模型作某些扩展来更恰当地表达。

    特化(Specialization)

    在实体集内部进行分组的过程称为特化。一个实体集可以根据多个可区分的特征进行特化。在E-R图中,特化用从特化实体指向另一个实体的空心箭头来表示。所以,这种关系也称为ISA关系。特化关系还可能形成超类-子类(superclass-subclass)联系。

    概化(Generalization)

    实体的共性可以通过概化来表达,概化是高层实体集与一个或多个低层实体集间的包含关系。对于所有实际应用来说,概化只不过是特化的逆过程。为企业设计E-R模型时,将配合使用这两个过程。

    聚集(Aggregation)

    聚集是一种抽象,通过这种抽象,联系被视为高层实体。
    当把聚集像其他实体集一样看待时,之前用于在联系集上创建主码和外码约束的规则,也同样可以应用于与聚集相关联的联系集。聚集的主码是定义该聚集的联系集的主码。不需要单独的关系来表示聚集;而使用从定义该聚集的联系创建出来的关系即可。

    数据库设计的其他方面

    数据约束和关系数据库设计

    使用SQL可以表达多种数据约束,包括主码约束、外码约束、check约束、断言和触发器。约束有多种目的。最明显的一个目的是自动的一致性保持。通过在SQL数据定义语言中表达约束,设计者能够确保数据库系统自己执行这些约束(显式声明约束)。
    显式声明约束的另一个优点是一些约束在数据库模式的设计中特别有用。
    数据约束在确定数据的物理结构时同样有用,可以将彼此紧密相关的数据存储在磁盘上邻近的区域,以便在磁盘访问时提高效率。如将索引建立在主码上,索引结构工作得更好。
    每次数据库更新时,执行约束会在性能上带来潜在的高代价。对于每次更新,系统都必须检查所有的约束,然后要么拒绝与约束冲突的更新,要么运行相应的触发器。性能损失的严重性,不仅仅取决于更新的频率,而且依赖于数据库的设计方式。

    使用需求:查询、性能

    数据库系统的性能时绝大多数企业信息系统的一个关键因素。性能不仅与计算能力的有效利用以及所使用的存储硬件有关,而且受到与系统交互的人的效率以及依赖数据库数据的处理的效率的影响。以下是效率的两个主要度量方法:

    • 吞吐量(throughput)————每单位时间里能够处理的查询或更新(通常指事务)的平均数量。
    • 响应时间(response time)————单个事务从开始到结束所需的平均时间或最长时间。

    授权需求

    授权约束同样会影响数据库的设计,因为SQL允许在数据库逻辑设计组件的基础上将访问权限授予用户。(现有主流数据库系统均已合理实现授权(基于角色分配))

    数据流、工作流

    术语工作流表示一个流程中的数据和任务的组合。当工作流在用户间移动以及用户执行他们在工作流中的任务时,工作流会与数据库系统交互。

    数据库设计的其他问题

    数据库设计通常不是一个一蹴而就的工作。一个组织的需求不断发展,它所需要存储的数据也会相应地发展。但是,对于一个已明确的需求,还是可以给出稳定的设计的。
    一个好的设计应该不止考虑当前的规定,还应该避免或者最小化由预计或有可能发生的改变而带来的改动。(需要做向上兼容的思考)
    最后,数据库设计在两个意义上是面向人的工作:系统的最终用户是人(使用该程序的用户);数据库设计者需与应用领域的专家进行广泛交互以理解应用的数据需求。所有涉及数据的人都有需要和偏好,为了数据库设计和部署在企业中获得成功,这些都是需要考虑的。

    参考

    数据库系统概念(第六版) A. Silberschatz H. F. Korth S. Sudarshan著 杨冬青 等译 第七章

    展开全文
  • powerdesigner 实体关系模型的一个例子。 是学校的模型,文章链接地址:http://blog.csdn.net/bomb_2002/archive/2008/09/22/2963735.aspx
  • E-R模型中,如果有5个不同的实体集,存在2个1:n联系和3个m:n联系,根据E-R模型转换为关系模型的规则,该E-R图转换为关系模式的数目至少是(B) A.5 B.8 C.10 D.7
  • 两个实体m:n联系关系模型的转化

    千次阅读 2018-03-26 10:30:07
    两个实体m:n联系关系模型的转化,原有的实体关系表不变,再单独建立一个关系表,分别用两个实体的关键属性作为外键即可,并且,如果联系有属性,也要归入这个关系中。m:n联系转化为关系模型:如图深圳蓝快IT外包...
  • 数据库设计--实体关系图(ERD)

    万次阅读 多人点赞 2015-08-01 15:15:17
    1、E-R图的定义 实体关系图:简记E-R图是指以实体关系、属性三个基本概念概括数据的基本结构,从而描述静态数据结构的...实体关系图表示信息系统概念模型的数据存储。 –百度百科 2.1E-R图表示法(Chen’s模型)
  • 关系模型中三类完整性约束: – 实体完整性(Entity Integrity) – 参照完整性(Referential Integrity) – 用户定义的完整性(User-defined Integrity) • 实体完整性和参照完整性是关系模型必须满足的完整性...
  • 基于依存句法分析的开放式中文实体关系抽取

    万次阅读 热门讨论 2018-04-26 08:42:12
        这一段时间一直做知识图谱,卡在实体关系抽取这里几个月了,github上面看到有人使用卷积神经网络训练模型进行抽取,自己也尝试了一下,但是一直苦于没有像样数据去训练,而标注训练集又太费时间了,我不...
  • 实体框架如何管理实体间关系

    千次阅读 2013-11-05 15:33:07
    本主题概述实体框架如何管理实体间关系。还对如何映射和操作关系提供了一些指南。   关系、导航属性和外键 在关系数据库,表之间的关系(也称为关联)是通过外键定义的。外键 (FK) 是用于两个表的...
  • 实体关系建模是一种数据库建模方法,用于以自上而下的方式生成系统(通常是关系数据库)及其概念的一种类型的概念模式或语义数据模型。通过此过程创建的图称为实体关系图,ER图或ERD。 一:图形表示的含义 实体...
  • 实体联系模型

    千次阅读 2018-06-25 01:36:53
    一、实体联系(E-R)数据模型概述 该数据模型基于对现实世界的这样一种认识:世界由一组称为实体的基本对象及这些对象联系组成,该模型是一种语义模型模型的语义方面主要体现在模型力图去表达数据的意义。...
  • ER模型中实体联系

    万次阅读 热门讨论 2015-07-21 16:10:05
    总是听说到ER模型这个概念,它程序设计的概念模型中非常重要,还启下着逻辑模型的建设。前两天画图用到它,就研究了下,下面把研究的东西总结下。  【 ER的概念:】  定义:ER模型又称实体联系模型(Entity-...
  • 中文实体关系抽取实践

    万次阅读 多人点赞 2019-07-17 16:21:04
    本篇博客主要讲NLP关系抽取,聚焦点中文,没有过多理论,侧重实践(监督学习)。 关于实体关系抽取的技术发展脉络,感兴趣的可以看一下: https://www.cnblogs.com/theodoric008/p/7874373.html 关系抽取有...
  • E-R模型转换为关系模式的方法 3.1 ER模型 3.1.1 三个世界 概念模型:把现实世界转换为信息世界的模型,E-R模型 实施模型:把信息世界转化为数据世界使用的模型,关系模型 3.1.2 E-R模型的组成要素及表示方法 1E-R图的...
  • 摘要: 前面介绍了MapStrut简单用法,MapStrut的最重要的特点就是处理Java中实体模型间不匹配属性的转换。实体模型有一个User对象:public class User { private Integer id; private String name; private ...
  • 关系型数据库中实体之间的关系

    千次阅读 2018-06-20 20:47:00
    关系型数据库实体间有三种关联关系:一对一,一对多,多对多。 一对一关系(1:1):  如果实体集(表)A 的每一个实休(就是每行记录),在实体集B只有一条数据与它对应,  反之实体集B 的每一个实体,在实体A...
  • 两个以上实体m:n多元联系关系模型转化,也需要为联系单独建立一个关系,该关系中最少应包括它所联系的各个实体关键字,若是联系有属性,也要归入这个新增关系中。这种转换与两个实体间m:n联系的转换类似。例:某...
  • 第3章实体联系模型(E-R模型) 本章要点: 区三个世界的概念 回E-R模型的基本要素实体属 性联系 区E弌R模型转换为关系模式的方法 3.1ER模型 311三个世界 事物类 实体集 文件 事物 实体 记录 性质 属性 数据项 现实世界 ...
  • PD的CDM模型中的三种实体关系

    千次阅读 2015-05-22 18:07:50
    ...PD的CDM模型中的三种实体关系 ...CDM是大多数开发者使用PD时最先创建的...CDM是建立传统的ER图模型理论之上的,ER图有三大主要元素:实体型,属性和联系。其中实体型对应到CDM的Entity,属性对应到CDM
  • 实体关系抽取任务方法及SOTA模型总结

    千次阅读 多人点赞 2020-05-31 21:02:08
    对于实体关系抽取任务,最容易想到的方法就是先抽取句子实体,然后实体对进行关系分类,从而找出spo三元组,这种思想被称作管道模型(Pipeline)。管道模型实体关系抽取分成了两个子任务,实体识别和关系...
  • 实体-关系图转换为关系模型

    万次阅读 2019-04-25 16:54:19
      概念结构是独立于任何一种数据模型的,实际应用,一般所用的数据库环境已经给定(如SQL Server或Oracel或MySql),本文讨论从概念结构向逻辑结构的转换问题。   由于目前使用的数据库基本上都是关系数据库...
  • 实体识别和关系抽取的联合模型总结

    万次阅读 多人点赞 2019-02-27 17:15:25
    实体识别和关系抽取的目标是从非结构化的文本发现(实体1、关系实体2)的三元组,它对知识库的构建和问答任务都很重要,是信息抽取的核心问题。 现有的关系抽取方法主要有两种: 1.使用流水线方法进行抽取:先...
  • 关系,关系模式,关系模型区别和联系

    万次阅读 多人点赞 2019-12-18 09:40:11
    关系关系模式在某一个时刻的状态或者内容,关系模式是静态的,稳定的,而关系是动态的,随时间不断变化的,因为关系操作不断地更新着数据库的数据 类似于面向对象程序设计”类“与”对象“的区别。”...
  • 实体关系抽取入门

    万次阅读 2019-03-13 16:52:39
    关系抽取(Relation Extracion,RE)是其中的重要子任务之一,主要目的是从文本识别实体并抽取实体之间的语义关系实体关系抽取解决了原始文本目标实体之间的关系分类问题,它也是构建复杂知识...
  • 关于PowerDesigner实体关系模型(CDM)关于实体关系的使用一直有些疑惑,最近正好设计一套系统,所以用PD做了一些测试,记录如下 我们使用PDCDM的时候可定会遇到处理Entities见关系的情况,但是CDM建立...
  • 实体型转换为一个关系模式

    万次阅读 2017-03-30 11:38:15
    2.一个联系转化为一个关系模式,与该联系相连的各实体的码以及联系的属性转化为关系的属性,该关系的码则有三种情况: 若联系为1:1,则每个实体的码均是该关系的后选码。 若联系为1:n,则关系的码为n端实体的码。
  • 最近我在设计一个《品质管理系统》,要涉及到数据库的设计,因此我使用了PowerDesigner 10作为建立概念数据模型与物理数据模型的... 依赖(Dependency)表示在联系中一个实体的存在是否依赖于另一个实体。寄生实体(De

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 525,539
精华内容 210,215
关键字:

在关系模型中实体以及实体间的联系