常见数据模型

news2025/7/15 16:30:04

目录

1.1两类数据模型

1.2概念模型

1.3数据模型的组成要素

1.4常见数据模型

层次模型

网状模型

关系模型

数据模型是对现实世界数据特征的抽象,也就是说数据模型是用来描述数据、组织数据和对数据进行操作的。数据模型是数据库系统的核心和基础。

1.1两类数据模型

数据模型需要满足三方面要求:

  • 能比较真实地模拟现实世界

  • 容易为人所理解

  • 便于在计算机上实现

跟据模型应用的不同目的,将这些模型可以分为两大类,第一类是概念模型,第二类是逻辑模型和物理模型

  • 概念模型(conceptual model),也称信息模型,它是按用户的观点来对数据和信息建模,主要用于数据设计。

  • 逻辑模型主要包括层次模型、网状模型、关系模型、面向对象数据模型、和对象关系数据模型、半结构化数据模型等。它主要用于数据库管理系统的实现。

1.2概念模型

在了解概念模型之前我们需要了解一些信息世界的概念。

(1)实体(entity)

客观存在并可互相区别的事物称为实体。实体可以是人、物或者抽象的概念或联系。例如,一个教师,一个部门,教师与部门的工作关系等都是实体。

(2)属性(attribute)

实体所具有的某一特性称为属性。例如,一个学生的学号、姓名、性别、出生年月等特征都表示该学生的属性。

(3)码(key)

唯一标识实体的属性集称为码。例如学号就是学生实体的码。

(4)实体型(entity type)

用实体名及其属性名集合来抽象和刻画同类实体,称为实体型。例如,学生(学号,姓名,性别,出生年月)就是一个实体型。

(5)实体集(entity set)

同一类实体的集合称为实体集。例如全体学生就是一个实体集。

(6)联系(relationship)

实体之间的联系通常是指不同实体集之间的联系。实体之间的联系有一对一、一对多、多对多等多种类型。

概念模型的一种表示方法:实体—联系方法(Entity-Relationship approach)简称E-R方法,也被称为E-R模型。

1.3数据模型的组成要素

数据模型通常由数据结构、数据操作和数据的完整性约束条件三部分组成。

  1. 数据结构

    数据结构描述数据库的组成对象以及对象之间的联系,是对系统静态特征的描述。

  2. 数据操作

    数据操作是对数据库中各种对象(型)的实例(值)允许执行的操作的集合,包括操作及有关的操作规则。例如操作有检索、插入、删除和修改,操作规则有优先级别等,数据操作是对系统动态特性的描述。

  3. 数据的完整性约束条件

    数据的约束条件是一组完整性规则的集合。也就是说,对于具体的应用数据必须遵循特定的语义约束条件,以保证数据的正确、有效和相容。例如某单位人事管理中,要求在职的“男”职工的年龄必须大于18岁小于60岁,工程师的基本工资不能低于1500元,这些要求可以通过建立数据的约束条件来实现。

1.4常见数据模型

层次模型

层次模型数据结构

(1)有且只有一个节点没有双亲节点,我们把这个节点称为根节点;

(2)除根节点以外,其他的节点都只有一个双亲节点。

层次模型就像一棵倒立的树,节点的双亲都是唯一的。

 层次模型的优点:

  1. 层次模型的数据结构比较简单清晰。

  2. 层次数据库的查询效率高。

  3. 层次数据模型提供了良好的完整性支持。

层次模型的缺点:

  1. 现实世界中很多联系都是非层次性的,如节点之间具有多对多联系,不适合用层次模型表达。

  2. 如果一个节点具有多个双亲节点,使用层次模型表示就会显得很笨拙。

  3. 要查询子女节点必须通过双亲节点才可以。

  4. 由于结构严密,层次命令趋于程序化。

网状模型

网状数据库系统采用网状模型作为数据的组织方式,网状数据模型的典型代表是DBTG系统,也叫做CODASYL系统。

网状模型数据结构

(1)允许一个以上的节点无双亲。

(2)一个节点可以有多于一个的双亲。

在层次模型中子女节点与双亲节点的联系是唯一的,而在网状模型中这种联系可以不唯一。

网状模型的优点:

  1. 能够更为直接地描述现实世界,比如一个节点有多个双亲的情况。

  2. 具有良好的性能,存取效率较高。

网状模型的缺点:

  1. 结构比较复杂,而且随着应用环境的扩大,数据库的结构会变的越来越复杂。

  2. 网状模型的DDL、DML复杂,并且要嵌入某一种高级语言中,用户不容易掌握,不容易使用。

  3. 由于记录之间的联系是通过存取路径实现的,应用程序在访问数据时必须选择合适的存取路径,因此用户必须了解系统结构的细节,加重了编写应用程序的负担。

关系模型

关系模型数据结构

关系模型与以往的模型不同,关系模型由一组关系组成,每个关系的数据结构是一张规范的二维表。如下图所示。

 

接下来介绍一下关系模型中的相关术语:

关系:一个关系通常来说对应一张表。

元组:表中的一行即为一个元组。

属性:表中的一列即为一个属性,每个属性的名称即为属性名。

码:也称为键码。表中的某个属性组,它可以唯一确定一个元组。

域:域是一组具有相同数据类型的值的集合。例如学生的分数在0~100。

分量:元组中的一个属性值。

关系模型的优点:

  1. 关系模型与格式化模型不同,它是建立在严格的数学概念的基础上的。

  2. 关系模型的概念单一。

  3. 关系模型的存取路径对用户透明,从而具有更高的数据独立性、更好的安全保密性,也简化了程序员的工作和数据库开发建立的工作。

关系模型的缺点

  1. 由于存取路径对用户是隐蔽的,查询效率往往不如格式化数据模型。

  2. 为了提高性能,数据库管理系统必须对用户的查询请求进行优化,因此增加了开发数据库管理系统的难度。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/396033.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ip地址的分类及地址范围

IP地址根据网络ID的不同分为5种类型,A类地址、B类地址、C类地址、D类地址和E类地址。1、A类IP地址一个A类IP地址是指, 在IP地址的四段号码中,第一段号码为网络号码,剩下的三段号码为本地计算机的号码。A类IP地址中网络的标识长度为…

一种用于智能建筑云辅助检测的快速传感器放置位置优化方法

随着健康意识的觉醒,人们对居住的建筑提出了一系列与健康相关的要求,以期改善居住条件。在此背景下,BIM(Building Information Modeling)充分利用健康、环境、信息技术等诸多领域的前沿理论和技术,为工程师…

低代码开发的优势是什么?

低代码开发的优势是什么?低代码开发这个概念这两年来经常出现在人们的视野中,市场对于低代码的需求也越来越庞大。 Gartner预测,到2025年,75%的大型企业将使用至少四种低代码/无代码开发工具,用于IT应用开发和公民开发计划。 可…

Java面试题--Spring事务失效

Spring事务失效概述 Spring对事务的管理和处理,是基于AOP和编程范式的。因此Spring事务失效的场景较为丰富,包括但不限于以下常见情况: 异常被吞掉:当事务管理中出现异常但没有被正确捕捉并处理时,事务就会失效。例如…

Sedona 简介

Sedona 可以做什么? 分布式空间数据集 Spatial RDD on SparkSpatial DataFrame/SQL on SparkSpatial DataStream on FlinkSpatial Table/SQL on Flink 处理复杂的空间类型 Vector geometries / trajectoriesRaster images with Map AlgebraVarious input formats: CSV, TSV…

Vue 项目如何迁移小程序

最近我们看到有开发者在社群里提出新的疑惑「我手头已经有一个成熟的 HTML5 项目了,这种项目可以转为小程序在 FinClip 环境中运行吗?」。 经过工作人员的沟通了解,开发者其实是想将已有的 Vue 项目转为小程序,在集成了 FinClip …

(蓝桥真题)扫描游戏(计算几何+线段树二分)

题目链接:P8777 [蓝桥杯 2022 省 A] 扫描游戏 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 样例输入: 5 2 0 1 1 0 3 2 4 3 5 6 8 1 -51 -33 2 样例输出: 1 1 3 4 -1 分析:先考虑如何对物件进行排序,首先&…

【PSO-PID】使用粒子群算法整定PID参数控制起动机入口压力值

最近在学优化算法,接触到了经典寻优算法之粒子群PSO,然后就想使用PSO算法来调节PID参数,在试验成功之后将此控制算法应用到了空气起动系统上,同时与之前的控制器进行对比看看哪种控制效果最好。 0 引言 PID参数整定主要有两种&…

谁说程序员不懂了浪费,女神节安排

Python的PyQt框架的使用一、前言二、女神节文案三、浪漫的代码四、官宣文案一、前言 个人主页: ζ小菜鸡大家好,我是ζ小菜鸡,特在这个特殊的日子献上此文,希望小伙伴们能讨自己的女神欢心。 二、女神节文案 1.生活一半是柴米油盐&#xff0c…

优化设计流程的“闭环”问题

7.优化设计流程的“闭环”问题 交互设计师有一项很重要的工作就是定义任务流程。在接到需求之后,设计师需要把抽象的需求设计成具象的流程,然后再把流程分配到不同的界面,最终形成成品。设计流程不难,但是设计好的流程非常难&…

VisualStudio2022制作多项目模板及Vsix插件

一、安装工作负载 在vs2022上安装“visual studio扩展开发 ”工作负载 二、制作多项目模板 导出项目模板这个我就不再多说了(项目→导出模板→选择项目模板,选择要导出的项目→填写模板信息→完成)。 1.准备模板文件 将解决方案中的多个…

SpringBoot整合ElasticSearch实现模糊查询,排序,分页,高亮

目录 前言 1.框架集成-SpringData-整体介绍 1.1Spring Data Elasticsearch 介绍 2.框架集成Spring Data Elasticsearch 2.1版本说明 2.2.idea创建一个springboot项目 2.3.导入依懒 2.3.增加配置文件 2.4Spring Boot 主程序。 2.5.数据实体类 2.6.配置类 2.7.DAO 数据…

速卖通、亚马逊、ebay打造爆款,借助测评自养号提高转化率

做速卖通、亚马逊、ebay只有打造爆款,才能够挣到钱,如果一年到头,不断测款,不断测试不同的广告打法,那么代表了什么?代表了你的试错成本相当高,一不小心,分分钟就能够把手头上仅有的…

【YOLOv8/YOLOv7/YOLOv5/YOLOv4/Faster-rcnn系列算法改进NO.57】引入可形变卷积

文章目录前言一、解决问题二、基本原理三、​添加方法四、总结前言 作为当前先进的深度学习目标检测算法YOLOv8,已经集合了大量的trick,但是还是有提高和改进的空间,针对具体应用场景下的检测难点,可以不同的改进方法。此后的系列…

SRP合批问题

1)SRP合批问题 ​2)多个Base相机渲染到同一个渲染目标,移动平台花屏的问题 3)粒子系统对GPU Instancing的支持 4)如何修改URP下场景和UI分辨率分离(不需要改颜色空间) 这是第327篇UWA技术知识分…

苹果新专利实现无线技术传输睡眠数据,蓝牙在智能家居中的应用

苹果于 2017 年 5 月收购了芬兰科技公司 Beddit,只是在过去 6 年时间里并没有太大的动作。根据美国商标和专利局本周公示的清单,苹果获得了一项 Beddit 相关的技术专利。 根据专利描述,苹果使用一根或者多根天线,利用电磁辐射的…

详解Java8中如何通过方法引用获取属性名/::的使用

在我们开发过程中常常有一个需求,就是要知道实体类中Getter方法对应的属性名称(Field Name),例如实体类属性到数据库字段的映射,我们常常是硬编码指定 属性名,这种硬编码有两个缺点。 1、编码效率低&#x…

Simulink 自动代码生成电机控制:在某国产ARM0定点MCU上实现自动代码生成无感电机控制

目录 前言 开发流程 定点化的技巧 代码生成运行演示 总结 前言 这次尝试了在国产arm0内核的MCU上实现Simulink自动代码生成永磁同步电机无传感控制。机缘巧合之下拿到了一块国产MCU的电机控制板和一个5000RPM的小电机。最后实现了无传感控制,在这里总结下一些经…

10.系统级I/O

1.基础所有的I/O设备被模型化为文件,所有的输入和输出被当作相应文件的读和写来执行应用程序在文件结尾检测到EOF(end of file)条件文本文件是只含有ASCII或Unicode字符的普通文件二进制文件是所有的其他文件对于内核,文本文件和二进制文件没有区别目录是…

女神节灯笼祝福【HTML+CSS】

✅作者简介:2022年博客新星 第八。热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:Java Fans的博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 💞当前专栏…