层次、网状、关系模型

article/2025/11/5 18:23:47

层次、网状、关系模型都是逻辑上的,它们都是以一定的方式存储在数据库系统中,这是数据库管理系统的功能,是数据库管系统中的物理存储模型。

格式化模型

层次模型和网状模型统称为格式化模型。格式化模型中数据结构的基本单位是基本层次联系,基本层次联系指的是两个记录以及他们之间的一对多(包括一对一)的联系。它是单记录的操作方式。
格式化模型中实体用记录表示,实体的属性对应记录的数据项(或字段),实体之间的联系在格式化模型中转成记录之间的两两联系。

一、层次模型

层次模型是数据库系统中最早出现的数据模型,层次数据库系统采用层次模型作为数据的组织方式。它采用树形结构来表示各类实体以及实体间的联系。

1、层次模型的数据结构

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

层次数据库系统只能处理一对多的实体联系的原因:在层次模型中,每个结点表示一个记录类型,记录类型之间的联系用结点之间的连线(有向边)表示,这种联系是父子之间的一对多的联系。
以下是一个层次模型的示例,它像一棵倒立的树,结点的双亲是唯一的。同一双亲的子女结点称为兄弟结点,没有子女结点的结点称为叶结点。
层次模型
层次模型的特点:任何一个给定的记录值只能按其层次路径查看,没有一个子女记录值能够脱离双亲记录值而独立存在。

2、层次模型的数据操纵与完整性约束

层次模型的数据操纵主要有查询、插入、删除和更新,进行插入、删除、更新操作时要满足其完整性约束条件。
插入:如果没有相应的双亲结点值不能插入它的子女结点值。
删除:如果删除双亲结点值,则相应的子女结点值也将同时被删除。

3、层次模型的优缺点

1)优点:数据结构比较简单清晰,数据库的查询效率高,提供了良好的完整性支持。
2)缺点:现实世界中很多联系是非层次性的,它不适用于结点之间具有多对多联系;查询子女结点必须通过双亲结点;由于结构严密,层次命令趋于程序化。

二、网状模型

网状数据模型的典型代表是DBTG(CODASYL)系统。

1、网状模型的数据结构

满足一下两个条件的基本层次联系的集合为网状模型
1、允许一个以上的结点无双亲;
2、一个结点可以有多于一个的双亲。
备注:层次模型实际上是网状模型的一个特例。

以下是网状模型的例子,网状模型中子女结点与双亲结点的联系可以不唯一。
网状模型的例子

2、网状模型的数据操纵与完整性约束

DBTG在末世数据定义语言中提供了DBTG数据库完整性的若干概念和语句,主要有:
1)支持记录码的概念。唯一标识记录的数据项的集合称为码,例如学生的学号,不允许有两个相同的学号。
2)保证一个联系中双亲记录和子女记录之间是一对多的联系。
3)可以支持双亲记录和子女记录之间的某些约束条件。

3、网状模型的优缺点

1)优点:能够更为直接地描述现实世界,如一个结点可以有多个双亲,结点直接可以有多种联系;具有良好的性能,存取效率较高。
2)缺点:结构比较复杂,随应用环境的扩大,数据库的结构就变得越来越复杂,不利于最终用户掌握;网状模型的DDL、DML复杂,并且要嵌入某一种高级语言(C、COBOL)中,用户不容易掌握和使用;由于记录之间的联系是通过存取路径实现的,应用程序在访问数据时必须选择适当的存取路径,因此用户必须了解系统结构的细节,加重了编写应用程序的负担。

三、关系模型

关系模型是最重要的一种数据模型。

1、关系模型的数据结构

关系模型中的一些术语:

1)关系:一个关系对应通常说的一张表;
2)元组:表中的一行即为一个元组;
3)属性:表中的一列即为一个属性,给每一个属性起一个名称即属性名;
4)码:也称为码键,表中的某个属性组,它可以唯一确定一个元组;
5)域:一组具有相同数据类型的值的集合。属性的取值范围来自某个域;
6)分量:元组中的一个属性值。
7)关系模式:对关系的描述,一搬表示为:关系名(属性1,属性2,…,属性n)

关系模型要求关系必须规范化的,关系必须满足一定的规范条件,这些规范条件中最基本的一条就是,关系的每一个分量必须是一个不可分的数据项,也就是说,不允许表中还有表。

2、关系模型的数据操纵与完整性约束

关系模型的数据操纵主要包括查询、插入、删除和更新数据,它的数据操纵是集合操作,操作对象和操作结果都是关系。
这些操作必须满足关系的完整性约束条件:实体完整性、参照完整性和用户定义的完整性。

3、关系模型的优缺点

1)优点:建立在严格的数学概念的基础上;概念单一,无论实体还是实体之间的联系都是用关系来表示。对数据的检索和更新结构也是关系(也就是我们常说的表);它的存取路径对用户透明,从而具有更高的独立性、更好的安全保密性,简化了程序员的工作个数据库开发建立的工作。
2)缺点:存取路径的隐蔽导致查询效率不如格式化数据模型。


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

相关文章

层次分析模型

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

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

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

层次模型

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

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

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

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

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

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

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

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

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

家用游戏机的发展史

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

游戏引擎发展历程

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

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

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

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

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

游戏引擎的发展历程

本文来自: http://edu.gamfe.com/tutor/d/41955.html [1]游戏引擎(Game Engine)是什么?大多数人给出的解释都是基于engine的英文翻译,将游戏引擎等同于汽车中的引擎(发动机&#xf…

游戏引擎发展史

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

电子游戏发展史

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

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

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

游戏发展史(一)

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

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,添加maven或jcenter仓库地址 Android Studio默认会在Project的build.gradle为所有module自动添加jcenter的仓库地址,如果已存在,则不需要重复添加。Project的build.gradle文件在Project目录…

高德地图定位实现

GoogleMap不存在,SouGou占有率不高,BaiDu niao性差,所以肯定实现地图首选高德啦.. 1.创建应用 官方文档地址: http://lbs.amap.com/api/android-location-sdk/guide/create-project/get-key 注册账号,创建对应的应用.这里基本就是填资料啦,没什么难的地方,只不过创建应用之后设…

高德地图定位api

转发 Android 高德地图API(详细步骤源码)一 - 云社区 - 腾讯云为了丰富对地图、定位的了解,在写了百度、腾讯的地图定位之后,终于到了高德地图了。我个人平时日常使用最多的定位软件就是高德地图。所以这篇文章,就带你…