精华内容
下载资源
问答
  • 数据仓库中的ER实体模型和维度模型
    千次阅读
    2020-02-16 16:34:30

    一、数据仓库建模的意义

    一个公司中会有多个业务业务系统,比如:OA系统、订单系统、财务系统、人事系统、仓储系统等,因此需要按照一定的组织结构将所有数据都整合起来,形成一个仓储平台。如果只是通过工具把所有的数据同步到同一个平台,这个过程只是在堆积数据,不仅会因数据冗余造成存储空间的浪费,也会因各系统部数据的差异导致需求指标计算错误。

    二、ER实体模型

    在数据系统中,将事物抽象为实体(Entity)、关系(Relationship)、属性来表示数据关联和事物的描述,这种对数据的抽象建模通常被称为ER实体关系模型

    1、实体
    一般是参与到过程的中主体,客观存在的,比如商品

    2、属性
    对主体的描述,比如商品的名称、颜色、尺寸等

    3、关系
    实体与实体之间产生的联系,比如商品与仓库,商品入库时就会产生库存

    4、实体与实体之间的对照关系:
    (1)1:1
    1对1的关系,比如人与身份证之间,每个人只有一个身份证

    (2)1:n
    1对多的关系,比如学生与班级之间的关系,1个学生只属于一个班级,一个班级中可以有多个学生

    (3)n:n
    多对多的关系,比如学生与课程之间,每个学生可以选择多门课程,每门课程会有多个学生选择

    注:通常在建模过程中,实体用矩形表示,关系用菱形表示、属性用椭圆表示,因此ER实体关系模型也称作E-R关系图

    5、应用场景
    ER模型是数据库设计的理论基础,几乎应用于所有的OLTP系统建模中,此外,在数据仓库的底层ods、dwd也多采用ER关系模型

    三、维度模型

    在维度建模过程中,可以将数据仓库中的表划分为事实表和维度表两种类型

    1、事实表
    在ER模型中抽象出了实体、关系、属性三种类型,每个操作型事件都会产生一个事实表,其中涉及到多个实体,比如:购物下单事件中涉及的主体包括客户、商品、商家,产生可度量值包括商品数量、金额、件数等

    2、维表
    维度就是看待事物的角度,维表一般为单一主键,在ER模型中,实体会带有自己描述性的属性,这些属性就称为维度。比如:商品的产生、颜色、单价等

    3、模型
    维度建模常用的类型有星型模型、雪花模型、星座模型。
    (1)星型模型
    由一个事实表和一组维表组成,且所有维表直接与事实表相连。其特点是不存在渐变维度,有一定数据冗余,效率相对较高。在维表设计方面通常采用降维的方式,通过数据冗余来简化模型,以提高模型易用性和分析效率,标准的星型模型只有一层维度

    (2)雪花模型
    由一个事实表和多个维表组成,且有一个或多个维表通过其他维表与事实表相连。其特点是数据冗余较少,但由于表连接的增加,导致效率相对较低。其设计通常遵循3NF关系模式,但是往往无法严格遵守,因为需付出的性能成本较高

    (3)星座模型
    通常基于多个事实表,且多个事实表之间共享一些维度表,往往应用于数据关系比星型模型和雪花模型更复杂的场合

    4、星型与雪花模型的对比
    (1)数据冗余
    星型模型的维表设计不遵循3NF关系模式,维表之间不会直接相连,牺牲了部分存储空间;雪花模型符合业务逻辑设计,采用3NF关系模式,有效降低了数据冗余

    (2)模型性能
    星型模型违反3NF关系模式,采用降维的操作将维度整合,以存储空间为代价有效降低维度表的连接数数量,性能较雪花模型高;雪花模型由于存在维度间的关联,采用3NF关系模式降低冗余,通常在使用过程中,需要连接更多维表,导致性能偏低

    (3)ETL难度
    星型模型在设计维度表时违反3NF关系模式,所以在ETL过程中整合业务数据维度表有一定的难度,但由于避免附属维度,可并行化处理;雪花模型符合业务ER模型设计原则,在ETL过程中相对简单,但是由于附属模型的限制,ETL任务并行化较低

    5、模型选择
    在工作中常用的设计模型为星型和雪花模型,在开发工作中通常会两者并存,同时保存单层维度和多层维度,从整体而言,星型模型的维度较少,从而减少了多表间的join连接,使得shuffle减少,性能较好

    更多相关内容
  • 数据的四种常用的数据模型以及三实体之间联系三个世界现实世界信息世界两个实体型间的联系数据模型层次模型 三个世界 现实世界 现实世界,客观存在的世界。 信息世界 概念:信息世界是现实在人们头脑中的反映,...

    三个世界

    现实世界

    现实世界,客观存在的世界。

    信息世界

    • 概念:信息世界是现实在人们头脑中的反映,经过人脑的分析、归纳和抽象,形成信息,人们把这些信息进行记录、整理、归类和格式化后,就构成了信息世界。
    • 实体:客观存在并且可以互相区别的“食物”称为实体。实体可以是具体的人、事和物,如:一个学生、一本书、一辆汽车、一种物资,也可以是抽象的事件,一堂课、一次比赛。
    • 属性:实体所具有的某一特性称为属性,例如:学生的属性有姓名、年龄、学号之类的
    • 实体型:具有相同属性的实体必然具有共同的特征。所以用实体名及其属性集合来描述同类对象,如学生(姓名、学号、年龄…)
    • 实体集:同型实体的集合称为实体集。如所有学生和所有课程
    • 码:能唯一标识一个实体属性或属性集称为实体的码,比如学号不会重复,就可以成为候选码
    • 域:属性的取值范围该属性的域,比如学号成11位
    • 联系:单个实体型内部的联系通常是指组成实体的各属性之间的联系

    两个实体型间的联系

    • 一对一联系(1:1):
      实体集A中的一个实体至多和实体集B中一个实体相对应,反之,实体集B中的一个实体至多和实体集A中一个实体相对应,则称实体集A与实体集B位一对一联系,记作1:1例如班级与班长
      -一对多联系(1:n)
      实体集A中的一个实体至多和实体集B中多个实体相联系,反之实体集B中的一个实体至多和实体集A中一个实体相联系,记作1:n
    • 多对多联系(m:n)
      实体集A中的一个实体至多和实体集B中n个实体相对应,反之实体集B中的一个实体至多和实体集A中m个实体相联系记作m:n
      一对一是一对多联系的特例,而一对多联系有事多对多联系的特例
      这个关系还涉及概念模型的E-R表示方法

    数据模型

    数据模型是数据库的框架,该框架描述了数据及其联系的组织方式、表达方式和存储路径,它是数据库系统的核心和基础。
    数据模型是一种模型,用来描述数据、组织数据对数据进行操作。
    常用数据模型有三种层次模型、网状模型、关系模型

    层次模型

    层次模型是数据库系统中最早出现的数据模型

    • 1.层次模型的数据结构
      层次模型用树形数据结构来表示实体间的联系,例如:家族关系、行政机构。
      每个结点表示一个记录型,每个记录型可包含若干个字段,记录型描述的是实体,字段描述实体的属性,各个记录型及其字段都必须命名。结点带箭头的连线表示记录间的联系。
      层次模型有如下几个特点:
      (1)每颗层次模型构成的有向树示意图,仅有一个结点没有双亲,该结点就是根结点。
      (2)根结点以外的其他结点有且仅有一个双亲结点
      (3)父子结点之间的联系是一对多(1:n)的联系。父结点中的一个记录值可能对应n个子结点,而子结点中的一个记录值只能对应父结点中的一个记录值。==因此,任何一个给定的记录值只有按其路径查看时,才能显出它的全部意义。
    • 2.层次模型的数据操纵与数据完整性的约束
      层次模型的数据操纵主要是查询、插入、删除和修改,进行插入、删除和修改操作时要满足层次模型的完整性约束条件:
      (1)进行插入操作时,如果没有相应的双亲结点值就不能能插入子女结点值。
      (2)进行删除操作时,如果删除双亲结点,则子女的值也会被一同删除
      (3)修改操作时,应修改所有相应的记录,以保证数据的一致性
    • 3.层次模型的优缺点
      层次模型的主要优点如下
      (1)层次模型结构比较简单,层次分明,以便在计算机内实现
      (2)结点间联系简单,从根结点到树中任一结点均存在一条唯一的层次路径,当要存取某个结点的记录值时,沿着这条路径很快就能找到该记录值,因此,以该种模型建立的数据库系统查询效率很高
      (3)提供了良好的数据完整性支持
      层次模型的缺点如下:
      (1)不能直接表示两个以上的实体型间的复杂联系呵实体间多对多联系,只能通过引入冗余数据或创建虚拟结点的方法来解决,易产生不一致性。
      (2)对数据的插入和删除的操作
      (3)查询子女结点必须通过双亲结点

    网状模型

    • 1.现实世界种事务之间的联系更多是非层次关系,用层次模型表示这种关系很不直观,网状模型克服了这一个弊病:
      在层次模型中,只能有一个根结点,并且根结点以外的其他结点只能有一个双亲结点,允许多个结点没有双亲结点,允许结点可以有多个双亲结点。因此网状模型是采用有向图结构表示记录型与记录型之间联系的数据模型,它可以更直接地描述现实世界,层次模型实际上是网状模型地一个特例
    • 2.网状模型有如下特点:
      (1)有一个以上地结点没有双亲结点
      (2)允许结点有多个双亲结点
      (3)允许两个结点之间有多种联系(复合联系)
      -3. 网络模型的数据操纵与数据完整性的约束:
      网状模型地数据操纵主要包括查询、插入、删除和修改数据。进行插入、删除、修改操纵时要满足网状模型地完整性约束条件
      (1)插入数据时,允许插入尚未确定双亲结点值得子女结点值。
      (2)删除数据时,允许只删除双亲结点值
      (3)修改数据时,可直接表示非树形结构,而无需像层次模型那样增加冗余结点
    • 网状模型得优缺点
      网状模型的优点主要有两点:
      (1)能更为直接地描述客观世界,可表示实体间地多种复杂联系
      (2)具有良好地性能和存储效率
      网状模型地缺点主要有以下几点:
      (1)数据结构复杂,随着应用环境地扩大,数据库地结构越来越复杂,不便于终端用户掌握
      (2)其数据定义语言(DLL)和数据操纵语言(DML)语言及其复杂,不易于用户掌握
      (3)由于记录间地联系本质上是通过存储路径实现的,应用程序在访问数据库时要指定存取路径,即用户需要了解系统结构地细节,加重了编写应用程序地负担

    关系模型

    • 1.关系模型地数据结构是一张规范化地二维表,它由表名、表头和表体三部分构成。表名即二维表地名称,表头决定二维表的结构,每个二维表又可称为关系。
      这种模型就是现在我们使用的SQL基本表
    • 2.有以下几个概念需要知道:
      (1)关系:与关系实例,一个关系实例对应由行和列组成的一张二维表,关系相当于实例,例如学生表,就是一个关系
      (2)元组:元组是二维表格中的一列,给学生表中一个学生记录即为一个元组
      (3)属性:二维表格中的一列,给每一个属性起一个名称即属性名,如学生表中有几个属性:如学号、姓名、性别之类的
      (4)域:属性的取值范围,如年龄的域是(15到24),性别的域是(男、女)
      (5)分量:每一个元组对应的列的属性值,即元组中的一个属性值
      (6)候选键:如果一个属性或若干属性的组合中不包含多余的属性,能够唯一标识一个关系的元组,则称该属性或属性的组合为候选键。一个关系可有多个候选键。如学生表中学号就可以标识一个学生
      (7)主键:当一个关系中有多个候选键时,可以从中选择一个作为主键。一个关系只能有一个主键
      (8)主属性和非主属性:包含在任意一个候选键中的属性称为主属性,不包含在任意一个
      (9)关系模式。关系模式是对关系的描述一般表示为:关系名(属性1、属性2…,属性n),关系模式时关系模式的“型”,是关系的框架结构。如学生关系的关系模式可以表示为:学生(学号、姓名、性别、年龄、系别)
      在关系模式中,实体是用关系来表示的,如
      学生(学号、姓名、性别、年龄、系别)
      选课(课程号,课程名,学分)
      (10)关系实例。关系实例是关系模式的“值”,是关系的数据,相当于二维表中的数据
    • 3.关系模式的优缺点
      关系模式的优点有以下三点:
      (1)关系模式与非关系模式不同,它有严格的数学理论根据
      (2)数据结构简单、清晰、用户易懂、易用,不仅用关系描述实体,而且用关系描述实体间的联系
      (3)关系的模型的存储路径对用户透明,从而具有更高的数据独立性、更好的安全保密性
      关系模式的缺点
      缺点是查询效率不如非关系模型。

    面相对象的模型

    类似于JAVA中的面向对象,分为对象、类,有继承
    面向对象模型能完整地描述现实世界地数据结构,具有丰富地表达能力,但模型相对比较复杂、涉及的知识比较多,因此,面向数据库尚未达到关系数据库地普及程度。

    展开全文
  • 数据库实体联系模型与关系模型

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

    展开全文
  • 理解数据库与数据模型的概念

    千次阅读 2020-03-02 19:07:15
    本篇首先引入编程微课项目作为数据库的应用...● 数据库的基本原理及数据模型 ● 关系数据库 1、编程微课 编程微课项目使用图文,语言,视频等方式进行内容教学,再附加各种训练题,帮助练习和巩固知识。 微课...

    本篇首先引入编程微课项目作为数据库的应用案例,通过对项目功能及涉及的相关数据的介绍,让读者对数据库的应用有一个感性认识,然后重点讲述关系数据库的理论基础知识。通过本篇的学习,读者应该能掌握以下内容:

    ● 编程微课的主要功能

    ● 数据库的基本原理及数据模型

    ● 关系数据库

     

    1、编程微课

    编程微课项目使用图文,语言,视频等方式进行内容教学,再附加各种训练题,帮助练习和巩固知识。

    微课内容来自于编程达人,编程达人撰写课程内容,通过编程微课平台为编程爱好者提供课程内容,获得收益。读者可以通过PC浏览器、微信小程序支付课程费用和学习课程内容,并可以加入编程达人的朋友圈,与编程达人进一步互动交流学习。

     

    2、理解数据库

    数据库可以理解为存储数据的仓库,每个数据项在数据仓库中都有编号,通过编号就可以找到该数据项。例如,图书馆就是存储图书的仓库,在图书馆存储的每本图书都有一个编号,编号表示了书的类别和顺序号,同类别的书放在一个书架上,便于图书管理员和读者查找图书。

    图书馆存储的是图书,数据库存储的是数据,每条数据称为数据项。数据是对客观事物的符号表示,如文字、图形、数字等。在日常生活中,人们直接用语言来描述事物,例如在描述一门课程时,人们常用“Java编程课程—入门篇由编程达人郎老师编写,编程语言课,课程面向青少年编程爱好者,课程以浅显易懂的语言,以常见的生活场景为案例,带领大家逐步进入计算机编程世界”。

    在计算机中,为了存储和处理这些事物,就要将事物的特征抽象出来组成一个记录来描述。

    例如,将课程事物抽象为数据项记录(课程名称,授课老师,类别、学生对象,课程简介)。课程事物的一条数据可以描述为(Java编程课程—入门篇,郎老师,编程语言,面向青少年爱好者,课程以浅显易懂的语言,以常见的生活场景为案例,带领大家逐步进入计算机编程世界)。

    当需要存储多个课程数据项时,就构成了数据库。因此,数据库是存储在一起的相关数据的集合,这些数据是结构化的,无有害的或不必要的冗余,并为多种应用提供数据服务。

     

    3、数据库发展简史

    计算机应用于数据管理的初期,由于没有必要的软件、硬件环境的支持,用户只能直接在裸机上操作。当时编写的应用程序不仅要设计如何处理和存储数据,还要指明数据在存储器上的存储地址。在这一管理方式下,应用程序和数据之间相互结合,不可分割,数据独立性差,缺少共享性,编程效率低下。这一阶段称为人工管理阶段。

    随着计算机软、硬件的发展,数据管理进入了文件管理阶段,这一阶段的主要标志是计算机有了专门管理数据库的软件——操作系统(文件管理)。文件管理方式是把有关的数据组织成一种文件,这种数据文件可以脱离程序而独立存在,有一个专门的文件管理系统实施统一管理。在这一管理方式下,应用程序通过文件管理系统对数据文件中的数据进行加工处理,应用程序的数据具有一定的独立性和共享性,比手工管理方式更进了一步。

    在文件管理阶度,数据虽然具备了一定的独立性和共享性,但由于数据的组织依然是面向程序,数据不但存在大量冗余,而且数据自身的逻辑结构也难以满足不同用户对数据的要求。为了减少数据冗余,提高数据的共享性和独立性,人们需要对使用的数据进行统一规划管理,形成一个数据中心,构成一个数据库。数据库中数据能够满足所有用户的不同要求,供不同用户共享。这个阶段称为数据库管理系统阶段。

     

    4、数据模型

    数据模型是数据库的基础,数据是对客观事物的符号表示,模型是现实世界的抽象。数据模型是对数据特征的抽象。

    客观事物抽象为数据模型,是一个逐步转化的过程,经历了现实世界、信息世界和计算机世界这三个不同的世界,经历了两级抽象和转换,如下图所示:

     

                                 

                                                                             图 2-1 数据抽象过程

     

    现实世界是指客观存在的事物及其相互间的联系,人们一般选择事物的基本特征来描述事物。事物可以是抽象的,也可以是具体的,如课程属于抽象的事物,人们通常用课程名称、授课老师、类别、学生对象、课程简介等特征来描述和区分。学生就属于具体的事物,通常用学号、姓名、班级、成绩等特征来描述和区分。

    信息世界是对现实世界的抽象,人们把事物的特征和联系通过符号记录下来,并用规范化的语言描述现实世界的事物,从而构成一个基于现实世界的信息世界,这个信息世界就是概念模型概念模型主要用来描述显示世界的概念化结构,它使数据库的设计人员在设计的初始阶段,摆脱计算机系统及数据库管理系统的具体技术问题,集中精力分析数据以及数据之间的联系。在概念模型中,最常用的设计模型就是实体—联系模型(ER模型),关于课程的ER模型如下图所示:

     

                                            

                                                                                       图 2-2 课程ER模型

     

    信息世界的概念模型还不能被数据库管理系统直接使用,需要将概念模型进一步转换为逻辑数据模型,形成便于计算机处理的数据形式。逻辑数据模型是具体的数据库管理系统所支持的数据模型,主要有关系数据模型、层次数据模型和网状数据模型。关系数据模型是目前最流行的数据库模型,支持关系数据模型的数据库管理系统称为关系数据库管理系统,MySQL就属于关系数据库管理系统。关系数据模型以二维表结构来表示事物与事物之间的联系,也可以称为实体与实体之间的联系。关于课程关系的二维表如下表所示:

                                 

     

                                                                               表格 2-1 课程关系表

     

    逻辑数据模型反映了数据的逻辑结构,当需要把逻辑模型数据存储到物理介质时,就需要用到物理数据模型了,物理数据模型是面向计算机物理表示的模型,描述了数据在存储介质上的组织结构,它不但与具体的数据库管理系统有关,而且还与操作系统和硬件相关,每一种逻辑数据模型在实现时都有对应的物理数据模型。本课程重点讨论概念数据模型和逻辑数据模型,物理数据模型不是本课程讨论的重点。

     

    5、 关系数据库

    要设计一个数据库系统,首先要将现实世界抽象到数据的世界,即将现实世界用数据进行描述,得到一个现实世界的数据模型

    关系数据模型是目前描述现实世界主要的抽象化方法它将用户数据的逻辑结构归纳为满足一定条件的二维表的形式。由于关系数据模型概念简单、清晰,用户易懂易用,又有严格的数学基础。因此,20世纪80年代以来推出的数据库管理系统都支持关系数据模型,支持关系数据模型的数据库管理系统也称为关系数据库。

    在描述现实世界的过程中,为了分析的方便,可以将这一抽象过程分为两个阶段首先应用ER模型将现实世界抽象为一个信息世界,这种信息的结构不依赖于具体的计算机实现,然后将信息世界的数据抽象为结构化的二维表形式,形成关系数据模型。

    下面以编程微课项目的学生与课程两个事物(实体)为例,对两个阶段的抽象过程作具体说明。

    在现实世界中描述学生和课程,要结合具体的事物场景来分析。编程微课项目使用图文,语言,视频等方式进行在线教学,学生可以在任何时间、任何地点使用手机或电脑打开课程学习。结合上面的场景来分析学生和课程的特征。学生有名称、账号、登录密码、性别、年龄等基本特征;课程有课程名称、授课老师、类别、学生对象、课程简介等基本特征;学生与课程的主要关系是学生学习课程。

    经过上面对学生和课程的分析,可以画出学生与课程的ER模型,完成第一阶段从现实世界到概念世界的抽象。ER模型如下图所示:

     

                                              

                                                                                 图 2-3 学生与课程ER模型

    第二阶段将设计的ER模型抽象为结构化的二维表形式,形成关系数据模型。将ER模型转换为结构化的二维表形式非常简单,一个事物(实体)对应一个表,事物(实体)的属性为表的字段,事物(实体)之间的关系可以在一个实体的二维表中增加另一个实体的主要字段来实现。ER模型转换后的二维表如下图所示:

     

                                   

                                                                   图 2-4 学生课程二维表结构

     

    ■ 课程小结

    可以把关系数据库理解为超市,超市摆放商品的每一排货架为数据库表,货架中每一列为表的字段,每一行为表的一条记录。假设货架每行同列摆放的商品类别相同,则可以把超市的每一排货架理解为数据库的二维表结构。由此可以看出,关系数据库是由多个二维表组成的,在每个二维表中每行同列存储的数据类别相同。

    设计关系数据库时,需要两个阶段。第一个阶段是需要将现实世界的事物进行概念化,抽象为概念数据模型,此阶段最常用的工具是实体—联系模型(ER图);第二个阶段是将ER模型转换为二维表结构(关系数据模型),此阶段一般需要利用数据库设计工具进行设计,如PowerDesigner、Visio等设计软件。

    展开全文
  • 为了有效地表示地质应用领域的三维实体,针对矿山地质三维数据的特征,提出了基于钻孔信息的地质体分层模型重建策略。给定原始地质钻孔数据,利用自适应神经网络预测地质体横剖面内信息未知区域的品位属性,生成分层...
  • 数据库数据模型思维导图: 数据库的理解 数据库可以理解为存储数据的仓库,每个数据项在数据仓库中都有编号,通过编号就可以找到该数据项。例如,图书馆就是存储图书的仓库,在图书馆存储的每本图书都有一个编号,...
  • 联系:一个或多个实体之间的关联关系。 概念 解释 度 参与实体类型的个数 角色名称 来自于该实体类型的一个参与实体在每个联系实例中所扮演的角色,并帮助解释联系所表达的含义。 递归联系 同一个实体...
  • 在数据库技术中,用数据模型的概念描述数据库的结构和语义,是对现实世界的数据抽象。数据模型是研究数据库技术的核心和基础。 文章目录1.概念数据模型(CDM)2.逻辑数据模型(LDM)3.物理数据模型(PDM) 1.概念...
  • 其实层次数据模型就是的图形表示就是一个倒立生长的树,由基本数据结构中的树(或者二叉树)的定义可知,每棵树都有且仅有一个根节点,其余的节点都是非根节点。每个节点表示一个记录类型对应与实体的概念,记录类型的...
  • 数据模型-数据库习题

    千次阅读 2021-07-07 15:26:33
    信息世界的一个实体,在数据库中存储为中的一条记录 下列选项中,不属于关系模型3个重要组成部分的是( )。 A. 数据结构 B. 数据操纵 C. 数据控制 D. 数据完整性规则 正确答案: C 逻辑模型的三个重要组成部分...
  • 数据模型是指数据库的组织形式,它决定了数据库中数据之间联系的表达方式,即把在计算机中表示客观事物及其联系的数据及结构称为数据模型。本文详细讲述传统三大数据模型和空间数据模型。 一、数据模型概述 数据模型...
  • 数据库三种数据模型

    万次阅读 多人点赞 2018-07-20 19:27:33
    网状模型以网状结构表示实体实体之间联系。网中的每一个结点代表一个记录类型,联系用链接指针来实现。网状模型可以表示多个从属关系的联系,也可以表示数据间的交叉关系,即数据间的横向关系与纵...
  • 1.概念数据模型E-R图 2.设计E-R图,过程,例子 3.逻辑数据模型,分类
  • 数据模型

    千次阅读 2021-09-07 22:53:00
    数据模型 一、两类数据模型 、概念模型 三、层次模型 四、网状模型 五、关系模型 六、数据库系统的结构 七、数据库系统的组成 数据模型也是一种模型,它是对现实世界数据特征的抽象。数据模型是数据库系统的核心和...
  • 关系模型——二维表 一、两类数据模型 模型:实现世界特征的模拟和抽象。 数据模型(Data Model):是现实世界数据特征的抽象。(数据的表现形式) 数据模型的作用:提供给我们模型化数据和信息的工具。表示事物...
  • 上一篇文章简单介绍了概念数据模型、逻辑数据模型、物理数据模型的基本概念、特性以及三者所对应的数据库...结构来表示实体类型和实体联系数据模型。(来自百度百科) 其实层次数据模型就是的图形表示就是一个倒...
  • 在数据库中用数据模型这个工具来抽象、表示和处理现实世界中的数据和信息。 通俗地讲数据模型就是现实世界的模拟。 数据模型应满足三方面要求: 能比较真实地模拟现实世界 容易为人所理解 便于在计算机上实现 2.两...
  • 关系数据模型源于数学,它用二维表来组织数据,而这个二维表在关系数据库中称为关系。关系数据库就是表或者说是关系的集合。 数据操作 关系数据模型给出了关系操作的能力,包括。 传统的运算关系:并(union)、交...
  • 关系模型数据结构 关系模型源于数学 它用二维表来组织数据 而这个二维表在关系数据库中称为 关系 关系数据库是表的集合 用关系表示实体以及实体间的联系模型 称为关系模型 下面我们来看看关系 模型中的基本术语 ...
  • 层次数据模型     定义:层次数据模型是用树状<...其实层次数据模型就是的图形表示就是一个倒立生长的树,由基本数据结构中的树(或者二叉树)的定义可知,每棵树都有且仅有一个根节点,其余的...
  • 数据模型 数据模型是由数据结构、数据操作和数据完整性约束条件组成的。(所有的数据模型从这三类要素进行研究) 1)数据结构: 数据结构描述数据库的组成对象以及对象之间联系。 2)数据库操作: 数据操作是...
  • 文章目录一:什么是数据模型二:两类数据模型(1)概念模型(信息模型)A:定义B:相关术语C:概念模型的一种表示方法:实体-联系方法(2)逻辑模型和物理模型三:数据模型的组成要素四:层次模型、网状模型和关系...
  • 空间数据模型及结构

    万次阅读 2015-03-21 15:18:32
    2.6 三空间数据模型及结构 近几年,很多人都在致力于三维数据模型的研究,虽然有三GIS系统问世,但其功能远远不能满足人们分析问题的需要。原因主要是三GIS理论不成熟,其拓扑关系模型一直没有解决,另外...
  • 2.1 维度模型 2.1.1 星型模型 2.1.2 雪花模型 2.1.3星座模型 2.2 范式模型 2.3 Data Vault模型 2.4 Anchor模型
  • 概念模型(1)用途与基本要求(2) 信息世界中的基本概念(3)两个实体之间联系① 一对一联系(1:1)② 一对多联系(1:n)③ 多对多联系(m:n)(4)两个以上实体之间联系① 一对多联系(1:m||1:n)② 一对一联系...
  • 基于arcglobe将二维矢量面(shp)拉伸成三维模型具体步骤 具体步骤 首先需要矢量面文件,带有层数或者高度的矢量面shp文件 打开arcglobe ,加载矢量图层; 打开图层属性找到globe拉伸;选中拉伸图层中的要素,...
  • 曾经有几年逻辑数据模型很火热,大家都研究这个。道理上来说,逻辑数据模型并不仅仅是用在数据仓库。在OLTP系统中建立良好的数据模型更加重要。但只不过这东西从实践上被推广开来,很大程度是原NCR/Teradata适用于...
  • 数据模型可分为哪几类?

    千次阅读 2021-02-08 13:38:32
    分别对应什么结构?层次模型、网状模型和关系模型是三种重要的数据模型。这三种模型是按其数据结构而命名的。...关系模型为非格式化的结构,用单一的二维表的结构表示实体实体之间联系。满足一定条件的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 26,513
精华内容 10,605
关键字:

二维表表示实体之间联系的数据模型