数据库中的常用的数据模型 层次模型 网状模型 关系模型

article/2025/11/5 18:25:33
层次数据模型

    定义:层次数据模型是用树状<层次>结构来组织数据的数据模型。

    满足下面两个条件的基本层次联系的集合为层次模型
    1. 有且只有一个结点没有双亲结点,这个结点称为根结点
    2. 根以外的其它结点有且只有一个双亲结点

其实层次数据模型就是的图形表示就是一个倒立生长的树,由基本数据结构中的树(或者二叉树)的定义可知,每棵树都有且仅有一个根节点,其余的节点都是非根节点。每个节点表示一个记录类型对应与实体的概念,记录类型的各个字段对应实体的各个属性。各个记录类型及其字段都必须记录。
  在这里插入图片描述
  层次模型的特点:
    结点的双亲是唯一的
    只能直接处理一对多的实体联系
    每个记录类型可以定义一个排序字段,也称为码字段
    任何记录值只有按其路径查看时,才能显出它的全部意义
    没有一个子女记录值能够脱离双亲记录值而独立存在
  实例:
    在这里插入图片描述
    在这里插入图片描述
    
    层次模型的完整性约束条件
    无相应的双亲结点值就不能插入子女结点值
    如果删除双亲结点值,则相应的子女结点值也被同时删除
    更新操作时,应更新所有相应记录,以保证数据的一致性

    优点
    层次模型的数据结构比较简单清晰
    查询效率高,性能优于关系模型,不低于网状模型
    层次数据模型提供了良好的完整性支持
    缺点
    结点之间的多对多联系表示不自然
    对插入和删除操作的限制多,应用程序的编写比较复杂
    查询子女结点必须通过双亲结点
    层次命令趋于程序化

层次数据库系统的典型代表是IBM公司的IMS(Information Management System)数据库管理系统


网状数据模型

    定义:用有向图表示实体和实体之间的联系的数据结构模型称为网状数据模型。
    满足下面两个条件的基本层次联系的集合称为网状数据模型:
    1. 允许一个以上的结点无双亲;
    2. 一个结点可以有多于一个的双亲。
在这里插入图片描述
  其实,网状数据模型可以看做是放松层次数据模型的约束性的一种扩展。网状数据模型中所有的节点允许脱离父节点而存在,也就是说说在整个模型中允许存在两个或多个没有根节点的节点,同时也允许一个节点存在一个或者多个的父节点,成为一种网状的有向图。因此节点之间的对应关系不再是1:n,而是一种m:n的关系,从而克服了层次状数据模型的缺点。
  特征:
     1. 可以存在两个或者多个节点没有父节点;
     2. 允许单个节点存在多于一个父节点;
  网状数据模型中的,每个节点表示一个实体,节点之间的有向线段表示实体之间的联系。网状数据模型中需要为每个联系指定对应的名称。
  实例:  
在这里插入图片描述

    优点:
    网状数据模型可以很方便的表示现实世界中的很多复杂的关系;
    修改网状数据模型时,没有层次状数据模型的那么多的严格限制,可以删除一个节点的父节点而依旧保留该节点;也允许插入一个没有任何父节点的节点,这样的插入在层次状数据模型中是不被允许的,除非是首先插入的是根节点;
    实体之间的关系在底层中可以借由指针指针实现,因此在这种数据库中的执行操作的效率较高;

    缺点:
     网状数据模型的结构复杂,使用不易,随着应用环境的扩大,数据结构越来越复杂,数据的插入、删除牵动的相关数据太多,不利于数据库的维护和重建。
     网状数据模型数据之间的彼此关联比较大,该模型其实一种导航式的数据模型结构,不仅要说明要对数据做些什么,还说明操作的记录的路径;
    DDL、DML语言复杂,用户不容易使用
    记录之间联系是通过存取路径实现的,用户必须了解系统结构的细节

    网状模型与层次模型的区别
    网状模型允许多个结点没有双亲结点
    网状模型允许结点有多个双亲结点
    网状模型允许两个结点之间有多种联系(复合联系)
    网状模型可以更直接地描述现实世界
    层次模型实际上是网状模型的一个特例

典型代表是DBTG系统,亦称CODASYL系统,是20世纪70年代由DBTG提出的一个系统方案。实际系统:Cullinet Software公司的 IDMS、Univac公司的 DMS1100、Honeywell公司的IDS/2、HP公司的IMAGE。


三、关系型数据模型
  关系型数据模型对应的数据库自然就是关系型数据库了,这是目前应用最多的数据库。
  定义:使用表格表示实体和实体之间关系的数据模型称之为关系数据模型。
  关系型数据库是目前最流行的数据库,同时也是被普遍使用的数据库,如MySQL就是一种流行的数据库。支持关系数据模型的数据库管理系统称为关系型数据库管理系统。
  特征:
     1. 关系数据模型中,无论是是实体、还是实体之间的联系都是被映射成统一的关系—一张二维表,在关系模型中,操作的对象和结果都是一张二维表,它由行和列组成;
     2. 关系型数据库可用于表示实体之间的多对多的关系,只是此时要借助第三个关系—表,来实现多对多的关系;
     3. 关系必须是规范化的关系,即每个属性是不可分割的实体,不允许表中表的存在;
  实例:

在这里插入图片描述

    优点:
     结构简单,关系数据模型是一些表格的框架,实体的属性是表格中列的条目,实体之间的关系也是通过表格的公共属性表示,结构简单明了;
    关系数据模型中的存取路径对用户而言是完全隐蔽的,是程序和数据具有高度的独立性,其数据语言的非过程化程度较高;
    操作方便,在关系数据模型中操作的基本对象是集合而不是某一个元祖;
     有坚实的数学理论做基础,包括逻辑计算、数学计算等;

    缺点:
    查询效率低,关系数据模型提供了较高的数据独立性和非过程化的查询功能(查询的时候只需指明数据存在的表和需要的数据所在的列,不用指明具体的查找路径),因此加大了系统的负担;
    由于查询效率较低,因此需要数据库管理系统对查询进行优化,加大了DBMS的负担;

    相关概念:
    关系(Relation):一个关系对应通常说的一张表
    元组(Tuple):表中的一行即为一个元组
    属性(Attribute):表中的一列即为一个属性,给每一个属性起一个名称即属性名
    主码(Key):也称码键。表中的某个属性组,它可以唯一确定一个元组
    域(Domain):是一组具有相同数据类型的值的集合。属性的取值范围来自某个域。
    分量:元组中的一个属性值。
    关系模式:对关系的描述,关系名(属性1,属性2,…,属性n),如:学生(学号,姓名,年龄,性别,系名,年级)

    关系必须是规范化的,满足一定的规范条件
    最基本的规范条件:关系的每一个分量必须是一个不可分的数据项, 不允许表中还有表

    术语对比
在这里插入图片描述

    关系的完整性约束条件
    实体完整性
    实体完整性是指实体的主属性不能取空值。实体完整性规则规定实体的所有主属性都不能为空。实体完整性针对基本关系而言的,一个基本关系对应着现实世界中的一个主题,例如上例中的学生表对应着学生这个实体。现实世界中的实体是可以区分的,他们具有某种唯一性标志,这种标志在关系模型中称之为主码,主码的属性也就是主属性不能为空。
    参照完整性
    在关系数据库中主要是值得外键参照的完整性。若A关系中的某个或者某些属性参照B或其他几个关系中的属性,那么在关系A中该属性要么为空,要么必须出现B或者其他的关系的对应属性中。
    用户定义的完整性
    用户定义完整性是针对某一个具体关系的约束条件。它反映的某一个具体应用所对应的数据必须满足一定的约束条件。例如,某些属性必须取唯一值,某些值的范围为0-100等。

计算机厂商新推出的数据库管理系统几乎都支持关系模型




http://chatgpt.dhexx.cn/article/b0s1gKmV.shtml

相关文章

1.2 《数据库系统概论》之数据模型(概念模型、逻辑模型--物理模型、层次模型、网状模型、关系模型、面向对象模型、对象关系模型)

文章目录 0.思维导图1.数据模型的概念2.两大类数据模型客观对象的抽象过程---两步抽象 3.数据模型的组成要素(1)数据结构(2)数据操作(3)数据的完整性约束条件 4.概念模型(1)用途与基本要求(2) 信息世界中的基本概念(3)两个实体型之间的联系① 一对一联系&#xff08;1:1&#x…

层次、网状、关系模型

层次、网状、关系模型都是逻辑上的&#xff0c;它们都是以一定的方式存储在数据库系统中&#xff0c;这是数据库管理系统的功能&#xff0c;是数据库管系统中的物理存储模型。 格式化模型 层次模型和网状模型统称为格式化模型。格式化模型中数据结构的基本单位是基本层次联系&…

层次分析模型

离散模型&#xff1a;代数方程与差方程、整数规划、图论、对策论、网络论 层次模型&#xff08;AHP&#xff09;是一种定性与定量相结合的、系统化、层次化的分析方法。 人们在进行社会的、经济的以及科学管理领域问题的系统分析中&#xff0c;面临的常常是一个互相关联、相互…

常用的数据模型及其对比(层次模型、网状模型、关系模型)

数据库领域中主要的逻辑数据模型有:层次模型、网状模型、关系模型、面向对象数据模型等,我们重点讲解了**层次模型、网状模型、关系模型**。1.1 层次模型 层次数据库系统的典型代表是IBM公司的Information Management System数据库管理系统。层次模型用树形结构来表示各类实体…

层次模型

层次模型 层次模型是数据库系统中最早出现的数据模型&#xff0c;层次模型系统采用层次模型作为数据的组织形式。层次数据库系统的典型代表IMS是IBM公司1968年推出的第一个大型商用数据库管理系统。层次模型用树形结构来表示各类实体以及实体间的联系。 层次模型的数据结构 …

“OXO”历史上最早开发的电子游戏——游戏编年史

《OXO》是亚历山大道格拉斯&#xff08;Alexander S. Douglas&#xff09;在1952年开发的一款井字游戏&#xff0c;它是开发在电子延迟存储自动计算器&#xff08;EDSAC&#xff09;上&#xff0c;EDSAC是最早的存储程序计算机之一&#xff0c;具有可读取或写入的存储器&#x…

游戏发展史上十大经典之作

今天我们就来说说RTS发展历史上出现的经典之作&#xff0c;说说那些让人玩过之后难以忘怀的作品&#xff0c;请注意&#xff0c;这个榜单的排名不分先后&#xff0c;既已进入了经典的领域&#xff0c;还何必去分什么高下呢。 10.傲世三国 傲世三国绝对是中国最棒的RTS作品&…

哪些游戏称得上“次时代”? 次时代游戏史

最近在网络游戏界讨论的一个最热门的话题是“国产网游是否能称‘次世代网游’&#xff1f;”对于此话题&#xff0c;许多玩家一听就会嗤之以鼻&#xff0c;笑称“国产网游也配称次世代&#xff1f;”其实笔者觉得大家没有必要盲目的妄自尊菲薄&#xff0c;国产网游是否能称“次…

最早的计算机网络游戏,手机网络游戏早期发展史——图文游戏

原标题&#xff1a;手机网络游戏早期发展史——图文游戏 当手机游戏走入千家万户时&#xff0c;越来越多的端游玩家进入到了手游的世界&#xff0c;你可知&#xff0c;手机游戏的发展史要比电脑端游心酸的太多太多。 最早的手机游戏是在运营商的网站上在线操作的&#xff0c;那…

家用游戏机的发展史

大致线路 Nintendo Family computer Super family computer Nintendo 64Wii Wii U Sony PlayStation PlayStation 2PlayStation 3PlayStation 4 Microsoft Xbox Xbox360 Xbox one 第一世代(1972&#xff0d;1977) 世界上第一台家用游戏机是谁发明的&#xff1f;在哪一…

游戏引擎发展历程

游戏引擎&#xff08;Game Engine&#xff09;是什么&#xff1f;大多数人给出的解释都是基于engine的英文翻译&#xff0c;将游戏引擎等同于汽车中的引擎&#xff08;发动机&#xff09;&#xff0c;再好一些的解释成动力&#xff0c;这些解释都对&#xff0c;但是动力只说并不…

游戏趣史:游戏引擎的发展史

游戏引擎&#xff0c;作为开发人员的重要伙伴&#xff0c;游戏引擎将开发过程中复杂繁琐的底层组件进行了系统化、标准化的处理。我们如今能够直观感受到的精美画面与物理效果&#xff0c;正是得益于它的不断发展。游戏引擎诞生&#xff1a;游戏产业的工业革命在二十世纪九十年…

80年代电子游戏及电脑游戏的发展历史

1980年代 主条目&#xff1a;1980 年代的电子游戏 20世纪80年代初&#xff0c;随着出版社的出现&#xff0c;电子游戏行业经历了第一次重大的成长困境。20世纪80年代早期的一些游戏只是现有街机游戏的简单复制品&#xff0c;而个人电脑游戏相对较低的出版成本使得大胆、独特的游…

游戏引擎的发展历程

本文来自&#xff1a; http://edu.gamfe.com/tutor/d/41955.html &#xff3b;1&#xff3d;游戏引擎&#xff08;Game Engine&#xff09;是什么&#xff1f;大多数人给出的解释都是基于engine的英文翻译&#xff0c;将游戏引擎等同于汽车中的引擎&#xff08;发动机&#xf…

游戏引擎发展史

本次对引擎&#xff08;真正意义上的游戏引擎&#xff09;的历史回顾将主要围绕动作射击游戏的变迁展开&#xff0c;动作射击游戏同3D引擎之间的关系相当于一对孪生兄弟&#xff0c;它们一同诞生&#xff0c;一同成长&#xff0c;互相为对方提供着发展的动力。 1992年&#xff…

电子游戏发展史

四十年前的五月&#xff0c;一位从法西斯德国逃到美国的发明家Ralph Baer&#xff0c;搭建出了第一套家用电子游戏系统——Brown Box。这个游戏主机原型采用D-cell电池驱动&#xff0c;和一台黑白电视机相连。Baer回忆当年时说&#xff1a;“显然当时没有人能预见到今后会有怎样…

游戏开发入门(一)游戏发展史

游戏&#xff0c;本身是一个相当广泛的概念。如果要给一个定义的话&#xff0c;那么所有在特定时间、空间遵循某种规则最后得到“输赢”结果的行为方式都可以算作是游戏。不过现在每谈到游戏时&#xff0c;我们第一反应往往都是电子游戏。毕竟在当今互联网的时代下&#xff0c;…

游戏发展史(一)

大部分是wiki上翻译过来的&#xff0c;少部分个人见解&#xff0c;还有一些知乎上找到的资料。 游戏发展史 早期游戏&#xff08;1948-1972&#xff09; 1947年&#xff0c;由Thomas T.Goldsmith Jr.和Estle RayMann申请专利&#xff0c;是个用八个真空管模拟导弹互相攻击的游…

vue项目使用高德地图定位当前地址

vue项目使用高德地图定位当前地址 一、在项目中安装vue-amap插件二、页面代码三、data数据一、在项目中安装vue-amap插件 1.最终效果 2.安装命令npm install vue-amap --save3.在main.js中引入import VueAMap from vue-amap Vue.use(VueAMap) VueAMap.initAMapApiLoader({key: …

Android项目集成高德地图定位功能

1.在Project的build.gradle文件中配置repositories&#xff0c;添加maven或jcenter仓库地址 Android Studio默认会在Project的build.gradle为所有module自动添加jcenter的仓库地址&#xff0c;如果已存在&#xff0c;则不需要重复添加。Project的build.gradle文件在Project目录…