• 数据库技术基础--数据模型


    说在前面:

    本系列文章专注于软考备考复习内容梳理,文章内容是对教材中知识点和考点的提炼,备考过程中可以有针对的进行复习,减少阅读量,有的放矢。


    导航目录:

    1⃣️、数据模型的基本概念

    模型就是对现实世界特征的模拟和抽象,数学模型是对现实世界数据特征的抽象。从事物的客观特性到计算机里的具体表示经历了现实世界、信息世界和机器世界3个数据领域。

    
(1)概念数据模型。也称信息模型,是按用户的观点对数据和信息建模,是现实世界到信息世界的第一层抽象,强调其语义表达功能,易于用户理解,是用户和数据库设计人员交流的语言,主要用于数据库设计。这类模型中最著名的是实体联系模型,简称E-R模型。

    
(2)基本数据模型。它是按计算机系统的观点对数据建模,是现实世界数据特征的抽象,用于DBMS的实现。基本的数据模型有层次模型、网状模型、关系模型和面向对象模型(Object Oriented Model,OOM)。

    2⃣️、数据模型的三要素

    数据模型是用来描述数据的一组概念和定义。数据模型的三要素是数据结构、数据操作、数据的约束条件。

    

(1)数据结构。它是所研究的对象类型的集合,是对系统静态特性的描述。

    

(2)数据操作。它是对数据库中各种对象(型)的实例(值)允许执行的操作集合,包括操作及操作规则。数据操作是对系统动态特性的描述。

    

(3)数据的约束条件。这是一组完整性规则的集合。也就是说,对于具体的应用数据必须遵循特定的语义约束条件,以保证数据的正确、有效、相容。

    3⃣️、E-R模型

    实体-联系模型简称E-R模型,所采用的3个主要概念是实体、联系和属性。E-R模型是软件工程设计中的一个重要方法,因为它接近于人的思维方式,容易理解并且与计算机无关,所以用户容易接受。一般遇到实际问题,应先设计一个E-R模型,然后再把它转换成计算机能接受的数据模型。

    1. 实体

    实体是现实世界中可以区别于其他对象的“事件”或“物体”。每个实体由一组特性(属性)来表示,其中的某一部分属性可以唯一表示实体。实体集是具有相同属性的实体集合。

    2.联系

    实体集之间的对应关系称为联系。实体的联系分为实体内部的联系和实体与实体之间的联系。实体集内部的联系反映数据在同一记录内部各字段间的联系。而实体集之间的联系类型有一对一联系、一对多联系和多对多联系。
    





(1)一对一联系。如果对于实体集A中的每一个实体,实体集B中至多有一个实体与之联系反之亦然,则称实体集A与实体集B具有一对一联系。记为1∶1。
    






(2)一对多联系。如果对于实体集A中的每一个实体,实体集B中有n个实体(n≥0)与之联系;反之,对于实体集B中的每一个实体,实体集A中至多只有一个实体与之联系,则称实体集A与实体集B有一对多联系。记为1∶n。

    






(3)多对多联系。如果对于实体集A中的每一个实体,实体集B中有n个实体(n≥0)与之联系反之,对于实体集B中的每一个实体,实体集A中也有m个实体(m≥0)与之联系,则称实体集A与实体集B具有多对多联系。记为m∶n。

    






多个实体集间的联系类型有多个实体集间的一对一联系、多个实体集间的一对多联系和多个实体集间的多对多联系。
同一个实体集内部的各实体之间也存在1∶1、1∶n和m∶n的联系。

    3. 属性

    属性是实体某方面的特性。在同一实体集中,每个实体的属性及其域是相同的,但可能取不同的值。E-R模型中的属性有以下分类。

    







(1)简单属性和复合属性。简单属性是原子的、不可再分的,复合属性可以细分为更小的部分(即划分为别的属性)。

    







(2)单值属性和多值属性。若定义的属性对于一个特定的实体只有一个值,这样的属性叫做单值属性;若定义的属性对应一组值,则称为多值属性。

    







(3)NULL 属性。当实体在某个属性上没有值或属性值未知时,使用NULL值,表示无意义或不知道。

    







(4)派生属性。可以从其他属性得来。

    4. E-R方法

    概念模型中最常用的方法是实体-模型方法,简称E-R方法。该方法直接从现实世界中抽象出实体和实体间的联系,然后用非常直观的E-R图来表示数据模型。在E-R 图中有下表几个主要构件。

    在这里插入图片描述

    5.扩充的E-R模型

    扩充的E-R模型包括弱实体、特殊化、概括、聚集等概念。

    4⃣️、层次模型

    层次模型采用树形结构表示数据与数据间的联系。在层次模型中,每一个节点表示一个记录类型(实体),记录之间的联系用节点之间的连线表示,并且根节点以外的其他节点有且仅有一个双亲节点。
层次模型不能直接表示多对多的联系。若要表示多对多的联系,可采用以下两种方法。
    
(1) 冗余节点法。两个实体的多对多的联系转换为两个一对多的联系。该方法的优点是节点清晰,允许节点改变存储位置。缺点是需要额外的存储空间,有潜在的数据不一致性。
    

(2)采用虚拟节点分解法,将冗余节点转换为虚拟节点。虚拟节点是一个指引元,指向所代替的节点。该方法的优点是减少对存储空间的浪费,避免数据不一致性。缺点是改变存储位置可能引起虚拟节点中指针的修改。

    

层次模型的优点是:记录之间的联系通过指针实现,比较简单,查询效率高。
    

层次模型的缺点是:只能表示1∶n的联系,尽管有许多辅助手段实现m∶n的联系,但较复杂,不易掌握;由于层次顺序严格和复杂,插入操作的限制比较多,导致应用程序编制比较复杂

    5⃣️、网状模型

    采用网状结构表示数据与数据间联系的数据模型称为网状模型。在网状模型中,允许一个以上的节点无双亲,一个节点可以有多于一个的双亲。
    



网状模型是一个比层次模型更具普遍性的数据结构,是层次模型的一个特例。它去掉了层次模型的两个限制,并允许两个节点之间有多种联系(称之为复合联系)。
    




网状模型中的每个节点表示一个记录类型(实体),每个记录类型可以包含若干个字段(实体的属性),节点间的连线表示记录类型之间一对多的联系。
    





网状模型在模式DDL中提供了定义DBTG数据库完整性的若干概念和语句,主要有∶支持记录码的概念,保证一个联系中双亲记录和子女记录之间是一对多的联系,支持双亲记录和子女记录之间的某些约束条件。

    





网状模型的优点是:能够更为直接地描述现实世界,具有良好的性能,存取效率高
    





网状模型的缺点是:结构比较复杂。随着应用环境的扩大,数据库的结构变得越来越复杂,不利于最终用户掌握,编制应用程序难度比较大

    6⃣️、关系模型

    关系数据库系统采用关系模型作为数据的组织方式,在关系模型中用表格结构表达实体集以及实体集之间的联系,其最大特色是描述的一致性。
    





关系模型是由若干个关系模式组成的集合。一个关系模式相当于一个记录型,对应于程序设计语言中类型定义的概念。

    





关系模型与网状模型、层次模型的最大区别是∶用主码而不是用指针导航数据,表格简单、通俗易懂,用户只需要简单地查询语句就可以对数据库进行操作,无须涉及存储结构和访问技术等细节。

    





关系模型的优点是:概念单一,存储路径对用户是透明的,所以具有更好的数据独立性和安全保密性,简化了程序的开发和数据库的建立工作

    7⃣️、面向对象模型

    面向对象模型(Object Oriented Model)的核心概念如下。

    





(1)对象和对象标识(OID)。对象是现实世界中实体的模型化,与记录、元组的概念相似,但远比它们复杂。每一个对象都有一个唯一的标识,称为对象标识。对象标识不等于关系模式中的记录标识,OID是独立于值的、全系统唯一的。

    





(2)封装(Encapsulate)。每一个对象都是状态和行为的封装。对象的状态是该对象属性的集合,对象的行为是在该对象状态上操作方法(程序代码)的集合。被封装的状态和行为在对象外部是看不见的,只能通过显式定义的消息传递来访问。

    





(3)对象的属性(Object Attribute)。对象的属性描述对象的状态、组成和特性,对象的某个属性可以是单值或值的集合。对象的一个属性值本身从该属性的角度看来也是一个对象。

    





(4)类和类层次(Class and Class Hierarchy)
    






① 类。所有具有相同属性和方法集的对象构成了一个对象类。任何一个对象都是某个对象类的一个实例。对象类中属性的定义域可以是任何类,包括∶基本类,如整型、实型和字串等;一般类,包含自身属性和方法类本身。
    







② 类层次。所有的类组成了一个有根有向无环图,称为类层次(结构)。一个类可以从直接/间接祖先(超类)中继承所有的属性和方法,该类称为子类。

    







(5)继承(Inherit)。子类可以从其超类中继承所有属性和方法。类继承可分为单继承(即一个类只能有一个超类)和多重继承(即一个类可以有多个超类)。

    未完待续。。。


    更多知识传送:

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    以上内容整理参考《软件设计师教程(第5版)》和《软件设计师考试同步辅导(第四版)》(忘记是哪个老师的了,侵删)。本文章内容旨在帮助更多想要进军软考,给自己镀金的小伙伴。有兴趣的小伙伴可以共勉。

  • 相关阅读:
    关于linux与android传输代码tcp -传文件
    蓝牙物联网智能硬件-蓝牙网关
    Oracle-执行计划
    基于Taro + React 实现微信小程序半圆滑块组件、半圆进度条、弧形进度条、半圆滑行轨道(附源码)
    【vue3】webpack和vite介绍与使用【超详细】
    网络割接用VRRP替换HSRP
    【每周研报复现】AI量化特征工程之alphalens:一套用于分析 alpha 因子的通用工具
    Python与爬虫有什么关系?
    XAPP585 - Serdes 1_to_7_sdr 解读
    你真的懂TSP吗
  • 原文地址:https://blog.csdn.net/qq_37502042/article/details/126655377