当前位置: 首页 > news >正文

常见数据模型

目录

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

相关文章:

常见数据模型

目录 1.1两类数据模型 1.2概念模型 1.3数据模型的组成要素 1.4常见数据模型 层次模型 网状模型 关系模型 数据模型是对现实世界数据特征的抽象,也就是说数据模型是用来描述数据、组织数据和对数据进行操作的。数据模型是数据库系统的核心和基础。 1.1两类数…...

Lesson 8.3 ID3、C4.5 决策树的建模流程 Lesson 8.4 CART 回归树的建模流程与 sklearn 参数详解

文章目录一、ID3 决策树的基本建模流程二、C4.5 决策树的基本建模流程1. 信息值(information value)2. C4.5 的连续变量处理方法三、CART 回归树的基本建模流程1. 数据准备2. 生成备选规则3. 挑选规则4. 进行多轮迭代5. 回归树的预测过程四、CART 回归树…...

阿里云手机短信登录

阿里云短信服务介绍阿里云短信服务(Short Message Service)是广大企业客户快速触达手机用户所优选使用的通信能力。调用API或用群发助手,即可发送验证码、通知类和营销类短信;国内验证短信秒级触达,到达率最高可达99%&…...

Android Camera SDK NDK NDK_vendor介绍

Android Camera JNI NDK NDK_vendor介绍前言主要有哪几种interface?Android SDKCamera API 1Camera API 2小结Android NDKNDK InterfaceNDK Vendor Interface小结Camera VTS Testcase总结Reference前言 本篇博客是想介绍Android camera从application layer到camera…...

SQL基础语句小结

🍎道阻且长,行则将至。🍓 目录 一、SQL概述 1.简介 2.格式语法 3.SQL分类 二、DDL操作数据库 1.创建数据库 2.查询与使用 3.删除数据库 三、DDL:操作表 (1)数据类型 (2)创建表 (3)查询当前数据库的表 (4)删除表 (5)修改表 四、DML…...

管理类书籍推荐

管理类书籍对于每一位想要获得管理能力提升或者实现职业生涯更上一层楼的企业管理者或领导者而言,都是不可或缺的一项重要学习工具。作为管理工作从事者的职场必需品,一本出色的管理类书籍可以为我们提供大量宝贵的经验与专业建议,从而让管理…...

win10 mingw 调用python

ubuntu调用pythonhttps://blog.csdn.net/qq_39942341/article/details/129333969 我这里mingw是用msys2的 opencv也是msys2装的 安装msys2和opencv可以参考这个https://blog.csdn.net/qq_39942341/article/details/129380197?spm1001.2014.3001.5502 环境变量里加入python路…...

教你使用三种方式写一个最基本的spark程序

当需要处理大规模数据并且需要进行复杂的数据处理时,通常会使用Hadoop生态系统中的Hive和Spark来完成任务。在下面的例子中,我将说明如何使用Spark编写一个程序来处理Hive中的数据,以满足某个特定需求。假设我们有一个Hive表,其中…...

软件设计师错题集

软件设计师错题集一、计算机组成与体系结构1.1 浮点数1.2 Flynn分类法1.3 指令流水线1.4 层次化存储体系1.4.1 程序的局限性1.5 Cache1.6 输入输出技术1.7 总线系统1.8 CRC循环冗余校验码二、数据结构与算法基础2.1 队列与栈2.2 树与二叉树的特殊性2.3 最优二叉树(哈…...

【华为机试真题详解 Python实现】静态扫描最优成本【2023 Q1 | 100分】

文章目录前言题目描述输入描述输出描述示例 1输入:输出:示例 2输入:输出:题目解析参考代码前言 《华为机试真题详解》专栏含牛客网华为专栏、华为面经试题、华为OD机试真题。 如果您在准备华为的面试,期间有想了解的…...

算法刷题总结 (四) 动态规划

算法总结4 动态规划一、动态规划1.1、基础问题11.1.1、509. 斐波那契数列1.1.2、70. 爬楼梯1.1.3、746. 使用最小花费爬楼梯1.2、基础问题21.2.1、62. 不同路径1.2.2、63. 不同路径Ⅱ1.2.3、343. 整数拆分1.2.4、96. 不同的二叉搜索树1.3、背包问题1.3.1、01背包1.3.1.1、单次选…...

Grafana 转换数据的工具介绍

转换数据 Grafana 可以在数据显示到面板前对数据进行处理 1、点击Transform选项卡 2、选择要使用的转换类型,不同的转换类型配置不同 3、要新增转换类型,点击Add transformation 4、使用右上角调式按钮可以调式转换 支持的转换类型: Add f…...

Linux 学习笔记

一、 概述 1. 操作系统 ① 计算机由硬件和软件组成 ② 操作系统属于软件范畴,主要作用是协助用户调度硬件工作,充当用户和计算机硬件之间的桥梁 ③ 常见的操作系统 🤠 PC端:Windows、Linux、MacOS🤠 移动端&#…...

HTML注入专精整理

目录 HTML注入介绍 抽象解释 HTML注入的影响 HTML注入与XSS的区别 HTML元素流程图...

看完这篇我不信你不会二叉树的层序遍历【C语言】

目录 实现思路 代码实现 之前介绍了二叉树的前、中、后序三种遍历,采用的是递归的方式。今天我们来学习另外一种遍历方式——层序遍历。层序遍历不容小觑,虽然实现方法并不难,但是它所采取的思路是很值得学习的,与前三者不同&am…...

案例17-环境混用带来的影响

目录一、背景介绍背景事故二、思路&方案三、过程四、总结nginx做转发fastdfs(文件上传下载)五、升华一、背景介绍 本篇博客主要介绍开发中项目使用依赖项环境闭一只带来的恶劣影响,在错误中成长进步。 背景 本公司另外一个产品开发God…...

知识蒸馏论文阅读:DKD算法笔记

标题:Decoupled Knowledge Distillation 会议:CVPR2022 论文地址:https://ieeexplore.ieee.org/document/9879819/ 官方代码:https://github.com/megvii-research/mdistiller 作者单位:旷视科技、早稻田大学、清华大学…...

Sentinel架构篇 - 熔断降级

熔断降级 概念 除了流量控制以外,对调用链路中不稳定的资源进行熔断降级也是保障高可用的重要措施之一。一个服务常常会调用其它模块,可能是一个远程服务、数据库、或者第三方 API 等。然而,被依赖的服务的稳定性是不能保证的。如果依赖的服…...

shell脚本的一些记录 与jenkins的介绍

shell 脚本的执行 sh ***.sh shell脚本里面的命令 其实就是终端执行一些命令 shell 连接服务器 可以直接ssh连接 但是这样最好是无密码的 不然后面的命令就不好写了 换而言之有密码得 不好写脚本 需要下载一些expect的插件之类的才可以 判断语句 的示例 需要注意的是…...

JVM的了解与学习

一:jvm是什么 jvm是java虚拟机java Virtual Machine的缩写 jdk包含jre和java DevelopmentTools 二:什么是java虚拟机 虚拟机是一种抽象化的计算机,通过在实际的计算机上仿真模拟各种计算机功能来实现的。java虚拟机有自己完善的硬体结构,如处理器、堆栈、寄存器等,还有…...

树莓派超全系列教程文档--(62)使用rpicam-app通过网络流式传输视频

使用rpicam-app通过网络流式传输视频 使用 rpicam-app 通过网络流式传输视频UDPTCPRTSPlibavGStreamerRTPlibcamerasrc GStreamer 元素 文章来源: http://raspberry.dns8844.cn/documentation 原文网址 使用 rpicam-app 通过网络流式传输视频 本节介绍来自 rpica…...

Linux相关概念和易错知识点(42)(TCP的连接管理、可靠性、面临复杂网络的处理)

目录 1.TCP的连接管理机制(1)三次握手①握手过程②对握手过程的理解 (2)四次挥手(3)握手和挥手的触发(4)状态切换①挥手过程中状态的切换②握手过程中状态的切换 2.TCP的可靠性&…...

Golang dig框架与GraphQL的完美结合

将 Go 的 Dig 依赖注入框架与 GraphQL 结合使用,可以显著提升应用程序的可维护性、可测试性以及灵活性。 Dig 是一个强大的依赖注入容器,能够帮助开发者更好地管理复杂的依赖关系,而 GraphQL 则是一种用于 API 的查询语言,能够提…...

渲染学进阶内容——模型

最近在写模组的时候发现渲染器里面离不开模型的定义,在渲染的第二篇文章中简单的讲解了一下关于模型部分的内容,其实不管是方块还是方块实体,都离不开模型的内容 🧱 一、CubeListBuilder 功能解析 CubeListBuilder 是 Minecraft Java 版模型系统的核心构建器,用于动态创…...

postgresql|数据库|只读用户的创建和删除(备忘)

CREATE USER read_only WITH PASSWORD 密码 -- 连接到xxx数据库 \c xxx -- 授予对xxx数据库的只读权限 GRANT CONNECT ON DATABASE xxx TO read_only; GRANT USAGE ON SCHEMA public TO read_only; GRANT SELECT ON ALL TABLES IN SCHEMA public TO read_only; GRANT EXECUTE O…...

数据库分批入库

今天在工作中,遇到一个问题,就是分批查询的时候,由于批次过大导致出现了一些问题,一下是问题描述和解决方案: 示例: // 假设已有数据列表 dataList 和 PreparedStatement pstmt int batchSize 1000; // …...

如何在最短时间内提升打ctf(web)的水平?

刚刚刷完2遍 bugku 的 web 题,前来答题。 每个人对刷题理解是不同,有的人是看了writeup就等于刷了,有的人是收藏了writeup就等于刷了,有的人是跟着writeup做了一遍就等于刷了,还有的人是独立思考做了一遍就等于刷了。…...

Angular微前端架构:Module Federation + ngx-build-plus (Webpack)

以下是一个完整的 Angular 微前端示例,其中使用的是 Module Federation 和 npx-build-plus 实现了主应用(Shell)与子应用(Remote)的集成。 🛠️ 项目结构 angular-mf/ ├── shell-app/ # 主应用&…...

C++.OpenGL (14/64)多光源(Multiple Lights)

多光源(Multiple Lights) 多光源渲染技术概览 #mermaid-svg-3L5e5gGn76TNh7Lq {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-3L5e5gGn76TNh7Lq .error-icon{fill:#552222;}#mermaid-svg-3L5e5gGn76TNh7Lq .erro…...

多模态图像修复系统:基于深度学习的图片修复实现

多模态图像修复系统:基于深度学习的图片修复实现 1. 系统概述 本系统使用多模态大模型(Stable Diffusion Inpainting)实现图像修复功能,结合文本描述和图片输入,对指定区域进行内容修复。系统包含完整的数据处理、模型训练、推理部署流程。 import torch import numpy …...