精华内容
下载资源
问答
  • 2021-02-05 12:54:55

    你有倒退。

    ER模型中的关系是显式定义的,而在关系模型中则是隐式的。

    否。每个关系模型(RM)数据库基表和查询结果都代表一个应用程序关系。实体关系建模(E-RM)模式只是一种组织(但使用不足和指定不足)(但存在误解)关系表和约束的方式。

    关系模型需要一个中间表(通常称为“连接表”)来保存两个实现多对多关系的外键。

    不会。对象关系映射(ORM)方法掩盖了其潜在的直接关系应用程序关系,表和约束。“连接表”的概念源于ORM对E-RM的混淆表示的误解,而E-RM本身却误解了RM。

    正如CJ Date所说的,《数据库系统简介》,第8版:

    对[Chen的原始论文]的慈善阅读会表明E / R模型确实是一种数据模型,但实际上它只是基本关系模型之上的一薄层 [p 426]

    对于IT领域的现状,令人遗憾的是,即使简单的解决方案也太过流行,它们仍然很受欢迎。[p 427]

    关系模型

    每个关系表都代表一个应用程序关系。

    -- employee EID has name NAME and ...

    E(EID,NAME,...)

    这种事物以及代表一个事物的数学有序元组的数学术语是“关系”。因此是“ 关系模型”(和“实体关系模型”)。在数学中,关系经常通过参数化语句模板来描述,其中一个数学术语是“特征谓词”。谓词的参数是表的列。在RM中,DBA为每个基表提供了一个谓词,用户将根据列值和谓词构成真实语句的行放入表中,而将构成错误语句的行排除在外。

    /* now also employee 717 has name 'Smith' and ...

    AND employee 202 has name 'Doodle' and ...

    */

    INSERT INTO E VALUES (EID,NAME,...)

    (717,'Smith',...),(202,'Doodle',...)

    查询表达式还具有从关系运算符和逻辑运算符(在条件中)构建的谓词。它的值还包含使谓词为true的行,并保留使谓词为false的行。

    /* rows where

    FOR SOME E.*, M.*,

    EID = E.EID AND ... AND MID = M.MID

    AND employee E.EID has name E.NAME and ...

    AND manager M.MID has

    AND E.DEPT = M.DEPT AND E.NAME = 'Smith'

    /*

    SELECT E.*, M.MID

    FROM E JOIN M ON E.DEPT = M.DEPT

    WHERE E.NAME = 'Smith'

    现在的表行构成真实的语句,而缺少的行构成虚假的语句,这是我们记录数据库中应用程序情况的方式,以及我们如何解释数据库对应用程序情况的看法。如果没有和理解谓词即应用程序关系,就无法使用或解释数据库。

    实体关系建模

    E-RM(并不真正理解RM)本质上是一种(不需要的,受限制的和限制性的)图解表示法,用于描述关系数据库(的某些部分)(受限形式)。最初有“实体(类)”图标/关系,其中候选键(CK)值与应用程序实体加上其他列(“实体”的“属性”)为1:1,并且有“关系(类)”图标/ tables具有指向实体表的外键(FK)的外键(FK),这些表代表多个实体上的应用程序关系以及其他内容(“关联”的“属性”)。应用程序关系由带有线的图标表示,该线与参与其中的各种实体图标相关。(即,这些行代表FK。

    E-RM不了解关系模型。它在应用程序实体和关系之间做出了毫无意义的误导性区分。毕竟,每个基本表或查询结果的每个超键(唯一列集)与某个应用程序实体1:1对应,而不仅仅是具有实体表的那些。例如,人们可以通过结婚而结伴;但是每个这样的关联与称为婚姻的实体都是1:1。这导致不适当的标准化和约束,因此导致冗余和完整性损失。或者,当这些步骤适当完成时,将导致ER图没有实际描述应用程序,而该关系图实际上是由关系数据库谓词,表和约束条件描述的。然后,ER图既模糊,又多余又是错误的。

    速记E-RM和ORM

    许多声称是E-RM的演示文稿和产品扭曲了E-RM,更不用说RM。他们使用“关系”一词来表示FK约束。这产生如下。当E-RM关系为二进制时,它是一个符号,其FK带有两行。因此,这三件事可以用FK之间的一行代替。这种线的表示特定的二元关系和FKS,但现在虽然ER关系是手写版本明确的,它是由表中反映了ER关系并没有在图中明确哪些图是图片,即在他们描述的关系数据库。这称为“连接表”。人们谈论该行/表是/表示“ X:Y关系”却没有真正注意到这是一种特殊的应用程序关系。在相同的两个实体和/或关联之间可以有许多这样的应用程序关系。

    ORM也这样做,但也仅用其FK替换n元关联,以便进一步模糊关联的应用程序关系和表。Active Records通过一次定义几个速记关系及其表而变得更进一步,这等效于F-K线和速记E-RM图中的关联图标链。许多建模技术(包括E-RM和ORM的版本)都加剧了这种情况,他们还认为应用程序关系只能是二进制的。同样,这是历史上由于对RM缺乏了解而引起的。

    更多相关内容
  • 数据库实体联系模型与关系模型

    千次阅读 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)关系中的任何一个属性值都必须是不可分的元素。

    展开全文
  • 概念设计(Conceptual Design) —— 设计实体关系模型 (ER Model) 逻辑设计(Logical Design)—— 实现从 ER 模型到关系模式(Relation Schemas)的转换。 物理设计(Physical Design) 本文主...

    数据库的设计通常需要经历四个部分:

    1. 需求收集与分析(Requirements Collection and Analysis)
    2. 概念设计(Conceptual Design) —— 设计实体关系模型 (ER Model)
    3. 逻辑设计(Logical Design)—— 实现从 ER 模型到关系模式(Relation Schemas)的转换。
    4. 物理设计(Physical Design)

    本文主要介绍一下概念设计的部分。

     

    概念设计

    概念设计是一个构建概念数据模型的过程,这个概念数据模型在抽象的高层建模;需要足够简单且通常是图形化的;并且能够用于与非技术用户交流数据库的需求。这里主要介绍如何使用 ER 模型来实现概念设计。

     

    ER 模型

    ER 模型主要有三个关键方面:

    1. 数据结构:ER 模型中的数据表现为实体与属性之间的关系
    2. 数据完整性:对于ER模型,键(key)用于实体或者关系类型,而基数约束或者参与约束用于关系类型。
    3. 数据操作:ER 模型中不存在对数据的任何操作。

    ER 模型中的关键概念与关系型数据库的概念联系如下:

    关系型数据库

    实体关系模型

    属性

    超键 / 主键 / 候选键

    元组

    实体 / 关系

    关系

    实体集合 / 关系集合

    关系模型

    实体类型 / 关系类型

    ER 模型的基本图表元素有:

    属性(椭圆)用于描述实体或者关系的性能或者特征

     

    主要属性(内含下划线的椭圆)能够用于识别特定实体的属性

    实体(长方形)在现实世界中独立存在的单一个体类别

    关系(菱形)实体之间的联系

     

    实体类型与实体集合

    实体类型定义了一个拥有相同属性的实体的集合。

    实体集合是指在特定时间下,数据库中所有实体类型的集合。

    对于某一个特定的实体以及其属性,可以用下面的形式表示:

    实体名为员工(Employee),该实体类型的属性包括工号(SSN)、姓名,工资和地址。需要注意的是,在这里工号是主属性(下划线),地址是一个多值属性(双椭圆),意味着地址这个属性对于同一个实体而言,允许拥有一个或者一个以上的值。

     

    弱实体类型

    弱实体类型指的是一个实体类型没有足够的属性来构建一个能够识别特定个体的主键,因此它需要依赖一个能够被确定的实体才能存在。弱实体类型必须拥有一个或者多个属性,其中包括弱主键,与其所依赖的实体的主键共同作为该弱实体类型的主键,从而识别特定的个体。表示如下:

    在这里,儿童(Child)是一个弱实体类型,不同的儿童可能会拥有相同的姓名和年龄,因此把儿童这个实体与员工建立依赖关系,其关系为员工-拥有(has)-儿童,通过 SSN 和 Cname 共同构建能够识别特定儿童的主键。

     

    关系类型与关系集合

    关系类型指的是多个实体之间的联系,该联系允许拥有隶属于这段联系的独立的属性。

    关系集合指的是某个特定关系类型联系的所有实体的集合。

    表示形式如下:

    这里有两个实体,员工(Employee)和部门(Department),员工在部门里工作,这是它们之间的关系。

    在现实世界里,实际上还可能会出现更加复杂的实体关系模型,比如递归关系:

    在这里,员工之间存在监督者与下属之间的关系,监督者监管下属,而监督者和下属同样都属于员工,并且拥有员工的属性。

    还有更高程度的关系:

    在这个关系里,提供商(Supplier)为项目(Project)提供零件(Part),因此提供(Supply)这个关系同时涉及到三个实体,且该关系还具有数量(Quantity)这个属性。

     

    关系中的约束

     

    ER 模型中的约束关系通常是指实体与实体之间基于某种关系下的约束。主要包括两种:

    • 基数比例(Cardinality ratios):指定实体允许参与到关系中的最大数目。
    • 参与约束(Participation constraints):指定某个实体在其与其他实体的依赖关系中是否必然存在。

    基数比例(Cardinality ratios)

    基数比例的类型主要有三种:多对多(Many-To-Many)、一对多(One-To-Many)、一对一(One-To-One)。

    • 多对多(Many-To-Many)

    含义:一名员工可以为多个部门工作;一个部门里允许拥有多名员工。

     

    • 一对多(One-To-Many)

    含义:一名员工最多只能为一个部门工作;一个部门里允许拥有多名员工。

     

    • 一对一(One-To-One)

    含义:一名员工最多只能为一个部门工作;一个部门里最多只允许有一个员工。(虽然这不符合现实。。。)

     

    在以上三种类型的基础上,ER 模型还延伸出一种约束:基数限制。主要含义就是通过一个整数来指定两个实体在关系中允许参与的数量范围。表示如下:

    含义:一个员工必须为一个且最多一个部门工作;一个部门必须拥有一个或者多个员工。

     

    参与约束(Participation constraints)

    参与约束主要分为两种:完全参与(Total)和局部参与(Partial)。一般情况下,默认为局部参与。

    • 完全参与(Total)

    含义:每一名员工必须为一个部门工作;一个部门可能有或者没有员工。

    • 局部参与(Partial)

    含义:一名员工可能有或者没有为一个部门工作;一个部门可能有或者没有员工。

     

    实体类型中的父类与子类

    实体类型的父类与子类指的是拥有不同名称的同一个概念,子类通常是父类实体根据其具体的应用意义所采用的的更加显式的表达。父类与子类之间的关系被称为 ISA 关系类型

     

    专门化(Specialisation)与一般化(Generalisation)

    专门化指的是自上而下定义一个实体所拥有的子类的集合。

    一般化指的是自下而上地把拥有共同属性的多个子类归纳成一个单一的父类。

    在上图中,员工(Employee)是父类,其子类根据不同的实际意义分别为秘书(Secretary)、技术员(Technician)和工程师(Engineer)。该图实现专门后就能得到下面的图:

    图中的三个子类通过一般化以后,就能得到前一个图。

     

    分离约束(Disjointness constraint)

    分离约束主要是用于指定通过专门化产生的子类之间的关系。子类间的分离约束主要有两个方面:

    • 分离(disjoint):子类的各个实体之间完全分离,不存在任何交集。
    • 重叠(overlap):子类的各个实体之间可能存在某些交集,即某个父类的实体,既可以当做其中一个子类实体,也能当做另一个子类实体。

    不同的分离约束在 ER 模型中的表示形式如下:

     

    完整性约束(Completeness constraint)

    • 完全约束(Total):每一个父类的实体必然属于至少一个子类的成员。
    • 部分约束(Partial):父类的实体可能不属于任何一个子类(默认约束)。

     

    构建 ER 模型的流程

    1. 识别所以实体类型(包括弱实体类型);
    2. 识别所有关系类型(包括 ISA 关系和依赖关联);
    3. 识别所有实体和关系类型对应的属性(以及每个属性的定义域);
    4. 识别每个实体的主键;
    5. 辨别步骤 2 中找出的所有关系中的基数比例;
    6. 确定上述关系的参与约束;
    7. 确定 ISA 关系中的分离约束和完整性约束。

     

    软件支持

    网络上有很多软件能够用来画 ER 模型,比较常用的一个轻量级软件是 TerraER, 它是一个基于 JRE 运行的软件,支持Windows,Mac,Linux环境,能够生成 ER 模型的 XML 文件以及 JPEG 图片。

    下载链接:https://github.com/rterrabh/TerraER/releases/download/TerraER3.01/TerraER3.01beta.jar

     

    展开全文
  • 什么是实体关系图(ERD)?

    千次阅读 2020-07-13 14:53:19
    什么是实体关系图(ERD)? 转载自:https://www.visual-paradigm.com/cn/guide/data-modeling/what-is-entity-relationship-diagram/ 数据库是软件系统中不可或缺的一个组成部分,若能在数据库工程中好好利用 ER 图...

    什么是实体关系图(ERD)?

    转载自:https://www.visual-paradigm.com/cn/guide/data-modeling/what-is-entity-relationship-diagram/

    数据库是软件系统中不可或缺的一个组成部分,若能在数据库工程中好好利用 ER 图,便能让您生成高质量的数据库设计,用于数据库创建,管理和维护,也为人员间的交流提供了具意义的基础。

    在这里插入图片描述
    实体关系图(ERD)

    今天,我们将为你深入介绍 ER 图表。通过阅读本ERD指南,您将获得有关 ER 图和数据库设计的基本知识和技能。你会学到什么是 ERD,为什么要绘制 ERD,ERD 符号,如何绘制 ERD 等,以及一堆 ERD 示例。

    什么是实体关系图(ERD)?

    首先,什么是实体关系图?

    实体关系图也被称为 ERD、ER 图、实体联系模型、实体联系模式图或 ER 模型,是一种用于数据库设计的结构图。一幅 ERD 包含不同的符号和连接符,用于显示两个重要的資訊: 系统范围内的主要实体,以及这些实体之间的相互关系。

    这也就是为什么它被称为“实体”“关系”图 (ERD)啊!

    当我们谈论 ERD 中的实体时,我们经常提到诸如人员/角色(例如学生),有形商业对象(例如产品),无形商业对象(例如日志)等业务对象。“关系”則是这些实体在系统内的相互关联。
    在这里插入图片描述
    实体关系图表达了对象间的关系

    在典型的 ER 设计中,可以找到诸如圆角矩形和 (Rounded rectangle) 连接符(具有不同样式的末端)的符号来描述实体,它们的属性和相互关系。

    何时绘制ER图?

    那么,我们该在什么时候绘制ER图呢?虽然ER模型大多是为展示概念和设计物理数据库而绘制的,但也有别的用途的,以下是一些典型的用例。

    1. 数据库设计-直接在数据库更改数据库结构会有风险, 为避免破坏数据库中的数据,我们得仔细规划一切变更。通过绘制 ER 图来展示数据库设计意念,您能轻松找出错误和识别设计缺陷,并在执行数据库更改之前作出修正。
    2. 数据库调试 -调试数据库问题往往具挑战性,特别是当数据库包含许多表时,你我编写复杂的SQL来获取所需的信息。通过 ERD 来展示数据库结构,您可以全面地了解整个数据库的结构。您可以轻松找到实体,查看其属性并确定与别的实体的关系,有助您更轻松地找出数据库的问题。
    3. 数据库创建和修补 - 像 Visual Paradigm 这样的 ERD 软件支持数据库生成工具,可以通过ER图来自动生成和修补数据库。使用这个 ER 图工具,您的ER设计不再仅仅是一个静态图,而是一个真实反映物理数据库结构的镜像。
    4. 帮助收集需求- 您可以通过绘制 ERD 来表达系统中的高级业务对象以用于确定系统的需求。这种初始模型也可以演化为物理数据库模型,用于创建关系数据库,或为创建流程图和数据流模型提供有力的参考。

    ERD 符号指南

    ER 图包含实体,属性和关系。在本节中,我们将详细介绍各 ERD 符号。

    实体
    ERD 实体是一个系统内可定义的事物或概念,如人/角色(例如学生),对象(例如发票),概念(例如简介)或事件(例如交易)(注:在 ERD 中,术语“实体”通常用来代替“表”,但它们是一样的)。在考慮实体时,嘗試把它们想成名词。在 ER 模型中,实体显示为圆角矩形,其名称位于上方,其属性列在实体形状的主体中。下面的 ERD 示例显示了 ER 实体的一个用例。
    在这里插入图片描述

    实体(实体关系图)

    实体属性
    也称为列 (Row),意思是持有它的实体的属性或特性。

    一个属性有一个描述属性的名称和一个描述属性种类的类型,例如代表字符串的 varchar,整数的 int。当为物理数据库开发绘制 ERD 时,得使用目标 RDBMS 支持的类型,以確保設計和物理数据库的一致性。

    下面的 ER 图示例显示了一個包含属性的实体。
    在这里插入图片描述

    实体属性(实体关系图)

    主键 (Primary Key)

    主键又称 PK,是一种特殊的实体属性,用于界定数据库表中的记录的独特性。一个表不能有两笔(或更多)拥有相同的主键属性值的记录,像是身份证明内的 ID 便是典型的例子,两个人即使性名相同,ID 是不会一样,若身份证明是个表,那ID 便是主键了。下面的 ERD 示例显示了拥有主键属性 “ID” 的实体 “Product”,以及数据库中表记录的预览。第三个记录是无效的,因为 ID ‘PDT-0002’ 的值已被另一个记录使用。
    在这里插入图片描述
    主键(实体关系图)

    外键 (Foreign Key)

    外键又称外来键和外部键,是对主键的引用,用于识别实体之间的关系。请注意,有别于主键,外键不必是唯一的,多个记录可以共享相同的值。下面的 ER Diagram 示例显示了一个包含一些列的实体,其中一个外键用于引用另一个实体。
    在这里插入图片描述
    外键(实体关系图)

    关系

    两个实体之间的关系表示这两个实体以某种方式相互关联。例如,学生可能参加课程。实体“学生”因此与“课程”相关,而这关系则在 ER 图中以连接线表达着。

    基数 (Cardinality)

    基数定义了一个实与另一个实体的关系里面,某方可能出现次数。例如,一个团队有许多球员,若把这关系呈现于 ERD 时,团队和球员之间是一对多的关系。

    在 ER 图中,基数表示为连接线端的乌鸦脚。三种常见的主要关系是一对一,一对多和多对多。
    一对一的基数的例子

    一对一关系主要用于将实体分成两部分,简洁地将资讯呈现,使读者更容易理解。下图显示了一对一关系的示例。
    在这里插入图片描述
    一对多的基数的例子

    一对多关系是指两个实体 X 和 Y 之间的关系,其中 X 的一个实例可以链接到Y的许多实例,而 Y 的一个实例仅链接到 X 的一个实例。下图显示了一对多关系的一个例子。

    在这里插入图片描述
    多对多的基数的例子

    多对多关系是指两个实体 X 和 Y 之间的关系,其中 X 可以被链接到 Y 的许多实例,反之亦然。下图显示了一个多对多关系的例子。请注意,多对多关系在物理 ERD 中被分成一对一对多的关系,你会在下一节中學到什麼是物理 ERD。

    在这里插入图片描述

    概念,逻辑和物理数据模型

    ER 模型通常被绘制成最多三个抽象层次上:

    概念 ERD / 概念数据模型
    逻辑 ERD / 逻辑数据模型
    物理 ERD / 物理数据模型
    虽然 ER 模型的三个层次都包含有属性和关系的实体,但它们的创建目的和目标受众都不同。

    一般而言,业务分析人员使用概念和逻辑模型来展示系统中存在的业务对象 (Business Object),而数据库设计人员或数据库工程师會為概念和逻辑ER模型加入更详细的資訊,進而生成反映物理模型结构的物理数据模型,好為创建数据库作準備。下表列出了三种数据模型之间的差异。

    概念模型 vs 逻辑模型 vs 数据模型:

    在这里插入图片描述

    概念数据模型

    概念性 ERD 表达了系统中该存在的业务对象以及它们之间的关系。建立概念模型,是为了通过识别所涉及的业务对象来呈现系统的宏观图像。概念数据模型定义了哪些实体存在,而非哪些表。例如,逻辑或物理数据模型中可能存在“多对多”表,但在概念数据模型下,它们只会表示为无基数的关系。

    概念数据模型示例
    在这里插入图片描述
    注意:概念性 ERD 支持使用泛化 (Generalization) 来表达两个实体之间的“一种”关系,例如三角形是一种形状,这个用法就像UML中的泛化一样。请注意只有概念 ERD 支持泛化。

    逻辑数据模型

    逻辑 ERD 是概念 ERD 的详细版本,通过明确定义每个实体中的列并引入操作和事务实体 (Transactional Entities)来让概念模型丰富起来。虽然逻辑数据模型仍流于高层次的设计(非为特定数据库系统而绘画),但如果会影响数据库的设计,在绘制逻辑数据模型时仍然可酌情调整。

    逻辑数据模型示例

    物理数据模型

    物理 ERD 是数据库的实际设计蓝图。物理数据模型通过为每列指定类型 (Type),长度 (Length),可为空 (Nullable) 等来详细阐述逻辑数据模型。由于物理 ERD 表達了如何在特定的 DBMS中构造和关联数据,因此在設計時要考虑到实际的数据库系统的需要和局限,倒如确保 DBMS 支持某列类型,并在命名实体和列中避用某些保留字 (Reserved Words)。

    物理数据模型示例
    在这里插入图片描述
    物理数据模型

    如何绘制 ER 图?

    如果您发现绘制 ER 图很难,请不要担心,在本节中我们将给你一些 ERD 提示。尝试按照以下步骤以了解如何有效地绘制 ER 图吧。

    确保你清楚知道绘制 ERD 的目的。您是否试图呈现涉及业务对象定义的整体系统架构?或者你正在开发一个准备用于数据库创建的 ER 模型?您必须明了开发 ER 图的目的,方可使用合适的模型层次(概念/逻辑和物理)来迎合您所需 (请阅读概念,逻辑和物理数据模型部分了解更详细信息)
    确保你清楚模型的范围。了解建模范围可以防止在设计中包含冗余实体和关系。
    画出范围内的主要实体。
    通过添加列来定义实体的属性。
    仔细检查 ERD 并检查实体和列是否足以存储系统的数据。如果不是,请考虑添加其他实体和列。通常,您可以在此步骤中确定一些事务 (Transactional),操作 (Operational) 和事件 (Event) 实体。
    考虑所有实体之间的关系,将它们联系起来,並寫上正確的基数(例如客户和订单之间的一对多关系)。如果有任何实体沒有被連接上,请不要担心,虽然這不常见,但它是合法的。
    使用数据库规范化技术 (Database Normalization)重构实体,以减少冗余数据和提高数据完整性。例如,“制造商”的資訊可能最初存储在“产品”实体下,透過规范化过程,您可能会发“制造商”的记录不断重复,您便可将其拆分为单独的“制造商”实体,并使用外键將“产品”和“制造商”連接起來。

    数据模型的例子

    ERD 示例 - 电影租赁系统
    在这里插入图片描述

    ERD 示例 - 贷款系统
    在这里插入图片描述
    ERD 示例 - 在线商店
    在这里插入图片描述

    使用ERD和数据流图(DFD)

    在系统分析和设计中,可以绘制数据流图(DFD) 来展现系统流程中的信息流。在数据流图中,有一个名为数据储存 (Data Store)的符号,它代表一个提供系统所需信息的数据库表。
    在这里插入图片描述
    使用 ERD 和数据流图(DFD)

    由于物理 ER 图提供了实际数据库的蓝图,因此这种 ERD 中的实体与 DFD 中的数据存储一致。您可以 ERD 作为 DFD 的补充,以表达信息的结构;或以 DFD 补充 ERD,以显示系统在运行时如何运用数据。

    在这里插入图片描述

    使用ERD和BPMN业务流程图(BPD)

    在业务流程映射中 (Business Process Mapping),可以绘制 BPMN 业务流程图 (BPD) 以展示业务工作流程。在业务流程图中,有一个称为数据对象(Data Object)的符号,表示在流程输入/输出的数据。
    在这里插入图片描述

    由于概念和逻辑数据模型提供了系统内业务对象的高级视图,因此此类 ERD 中的实体与 BPD 中的数据对象一致。您可绘制 ERD 作为 BPD 的补充,以表示业务工作流程所需的数据对象的结构;或以 BPD 補充 ERD,以显示在整个业务流程中如何運用数据。

    在这里插入图片描述

    选择一个ERD工具

    制作 ERD 数据模型需要时间和精力,而一个有用的数据库设计工具则能大大减省你花费的时间和精力。 Visual Paradigm 不仅为您提供 ERD 工具,还提供了一组可视化建模功能,助您更快、更轻松地绘制实体关系图。它支持当今市场上最流行的数据库管理系统,是数据库设计、数据库生成和实体关系图逆转的好帮手。

    在这里插入图片描述

    展开全文
  • 命名实体识别(NER)是自然语言处理中的一项基础任务,其性能的优劣极大地影响着关系抽取、语义角色标注等后续任务。传统的统计模型特征设计难度大、领域适应性差,一些神经网络模型则忽略了词本身所具有的形态学信息。...
  • 数据库关系模式是表的集合,即关系的集合,表中一行代表的是若干值之间的关联,即表的一行是由有关联的若干值构成,一个表是一个实体集,一行就是一个实体,它由共同表示一个实体的有关联的若干属性的值所构成。关系...
  • 如何将实体关系图转换成关系模式

    千次阅读 2021-12-19 00:01:08
    一个实体转换成一个关系模式。 首先,通过visio绘制一个与学生实体有联系的几个E-R图。如下图所示 其中矩形表示的是实体(班级,学生,课程,学习账号),椭圆表示的是属性,菱形表示的是联系(拥有,持有...
  • 关系数据模型什么

    千次阅读 2021-02-02 05:15:34
    关系数据模型是一种数据模型,以关系或表格的形式对数据进行...【相关视频教程推荐:MySQL视频教程】关系数据结构:关系模型把数据库表示为关系的集合(关系模型中数据的逻辑结构是一张二维表)。下面我们来看看主要...
  • 数据库的逻辑设计主要是将概念模型转换成一般的关系模式,也就是将实体-联系图中的实体实体的属性和实体之间的联系转化为关系模式。在转化过程中会遇到如下问题: (1)命名问题。命名问题可以采用原名,也可以另行...
  • 数据库复习(4) 实体关系模型

    千次阅读 2020-07-14 16:30:39
    实体集(Entity Sets) 是实际存在的事物(可以是抽象的) 具有属性(attributes) 实体集是具有共同性质的同类实体的集合 实体集的属性类型划分 ...双线表示实体集对于关系集的全参与 双菱形表示
  • 模型图:项目中model.png请参照模型图理解代码1....先skip-gram word2vec 模型预训练得到的词向量表将每个词映射为一个词向量,然后把每个词中字母一个向量表示,把一个词中所包含的字母的向量送入 BiLSTM, 把...
  • 实体关系图(Entity Relation Diagram,ERD)。用于数据库设计的结构图,描述系统内的实体以及实体之间的关系。 何时绘制ERD? 数据库设计 - 直接在数据库更改数据库结构会有风险, 为避免破坏数据库中的数据,需要...
  • 关系型数据库系统采用关系模型作为数据的组织方式,在关系模型中用表格结构表达实体集,以及实体集之间的联系,其最大特点是描述的一致性。关系模型是由若干个关系模式组成的集合。关系模式可记为R(A1,A2,A3,…,...
  • 数据库实体关系模型 --- ER Model

    千次阅读 2021-10-05 15:13:58
    数据库实体关系图 --- The Entity-Relationship Model: ER ModelER模型的基本组成E-R diagram的基本组成ConstraintsKey constraintsParticipation ConstraintsEntity or AttributeKeysweak entity set三元关系 --- ...
  • 实体关系抽取任务方法及SOTA模型总结

    万次阅读 多人点赞 2020-05-31 21:02:08
    对于实体关系抽取任务,最容易想到的方法就是先抽取句子中的实体,然后在对实体对进行关系分类,从而找出spo三元组,这种思想被称作管道模型(Pipeline)。管道模型实体关系抽取分成了两个子任务,实体识别和关系...
  • public class DataBase { public static void main() { ... 第七章:实体—联系(E-R)模型是一种高层数据模型,与把所有数据表示不同,它将称作实体的基本对象和这些对象之间的联系区分开来。...
  • 实体关系

    千次阅读 2021-01-20 03:57:10
    E-R图为实体-联系图,提供了表示实体型、属性和联系的方法,用来描述现实世界的概念模型。E-R模型最常见的运用是在数据库设计的分析阶段解释实体关系图:简记E-R图是指以实体、关系、属性三个基本概念概括数据的基本...
  • 1.关系模型二维表格结构表示实体集,外键表示实体间联系的数据模型称为关系模型关系模型是由若干个关系模式组成的集合。2.关系模式:关系模式实际上就是记录类型。它包括:模式名,属性名,值 ...1.关系...
  • 实体关系抽取是指从无结构的自然语言文本中抽取实体之间的语义关系,并以结构化的形式表示出 来。传统的实体关系抽取方法只注重一种特定类型的数据源,并需要标注大量的训练数据来训练抽取模型,人工成本高。因此...
  • 实体-联系模型

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

    千次阅读 2019-04-25 15:10:06
    不仅仅是实体有属性,关系同样也有属性,这些属性在实体间建立关系时才会存在。 有时属性太多,无法在图上一一列出,可以表格,在后面的步骤中这个表格同样会用到,如下: 四、确定属性域   属性域就是属性的...
  • 实体关系模型存在的问题(1)Fan Traps(2)Chasm Traps二、增强实体关系建模1.Specialization/Generalization(1)Superclasses and Subclasses(超集和子集)(2)ER图画法(3)泛化/特化的约束2.Aggregation3....
  • 从E-R图导出关系模型时,如果实体间的联系是M:N的,下列说法中正确的是? A.将N方码和联系的属性纳入M方的属性中 B.将M方码和联系的属性纳入N方的属性中 C.增加一个新关系表示联系,关系的名取联系的名,...
  • 关系数据库关系模型关系数据结构域关系关系模式关系的三类完整性实体元整性(Entity Integrity)参照完整性用户定义的完整性关系代数关系代数运算符传统的集合运算并(Union)差(Difference)交(Intersection)...
  • 是表示概念关系模型的一种方式。“矩形框”表示实体型,矩形框内写明实体名称;“椭圆图框”或圆角矩形表示实体的属性,并用“实心线段”将其与相应关系的“实体型”连接起来; ”菱形框“表示实体型之间的...
  • 2013年计算机二级、一级、三级等更多考试考前培训请进入教育联展网-中国...在关系模型中,关系具有以下基本特点:(1)关系必须规范化,属性不可再分割(2)在同一关系中不允许出现相同的属性名(字段)(3)关系中不允许...
  • 实体识别和关系抽取的联合模型总结

    万次阅读 多人点赞 2019-02-27 17:15:25
    实体识别和关系抽取的目标是从非结构化的文本中发现(实体1、关系实体2)的三元组,它对知识库的构建和问答任务都很重要,是信息抽取的核心问题。 现有的关系抽取方法主要有两种: 1.使用流水线方法进行抽取:先...
  • 文章目录2.1.1 基本术语定义2.1 二维表格表示实体集,关键码表示实体间联系的数据模型称为关系模型(relational Model)。在关系模型中,关键码(key,简称键)由一个或多个属性组成。在实际使用中,有下列几种键。...
  • 实体关系E-R:实体关系

    千次阅读 2019-10-23 20:08:58
    实体关系E-R:实体关系图 设计数据库的时候,需要使用E-R图来描述。实体关系E-R:实体关系图。 实体:可以理解成我们Java程序中的一个对象,在E-R图中使用矩形...实体实体之间的关系在E-R图中使用菱形表示。 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 188,528
精华内容 75,411
关键字:

关系模型是用什么表示实体