数据库系列(3)数据库的数据模型:ER 模型、文档模型、图模型

news2024/9/23 14:34:24

1. ER 模型(实体-关系模型)

定义:ER 模型用于表示数据的结构和关系,通过图形化方式展示实体、属性及其相互关系。

关键概念:
  • 实体:表示现实世界中的对象或概念,如学生、课程。
  • 属性:描述实体的特征,如学生的姓名、年龄。
  • 关系:表示实体之间的联系,如学生选课的关系。
表示方法:
  • ER 图:用矩形表示实体,用椭圆表示属性,用菱形表示关系。线连接实体和关系,标注基数(如一对一、一对多)。
示例:

假设有“学生”和“课程”两个实体,可以表示为:

  • 学生(学生ID、姓名、年龄)
  • 课程(课程ID、课程名称、学分)

关系:学生选修课程。

2. 文档模型

定义:文档模型是非关系型数据库的一种数据模型,使用文档(通常为 JSON、BSON 或 XML 格式)来存储数据,适合存储层次化和灵活结构的数据。

关键概念:
  • 文档:类似于一个 JSON 对象,包含键值对,可以嵌套其他文档或数组。
  • 集合:文档的集合,相当于关系型数据库中的表,但没有固定的模式。
特点:
  • 灵活性:文档可以有不同的结构,支持动态模式。
  • 嵌套数据:可以在文档内嵌套数组和其他文档,适合表示复杂数据关系。
示例:

一个学生文档可能表示为:

{
  "student_id": 1,
  "name": "Alice",
  "age": 21,
  "courses": [
    {"course_id": 101, "course_name": "Mathematics"},
    {"course_id": 102, "course_name": "Physics"}
  ]
}

3. 图模型

定义:图模型通过节点、关系和属性来表示数据,专注于数据之间的连接性,适合处理复杂的网络关系。

关键概念:
  • 节点:表示实体,如用户、产品。
  • 关系:表示节点之间的连接,可以有方向和类型,如“朋友”、“购买”。
  • 属性:附加在节点或关系上的数据,如用户的年龄或购买的时间。
特点:
  • 高效的关系查询:可以快速遍历节点和关系,适合社交网络、推荐系统等场景。
  • 灵活性:可以轻松添加新的节点和关系,适应变化的数据结构。
示例:

一个社交网络的图模型可能表示为:

  • 节点:用户(Alice、Bob)、课程(Math、Physics)
  • 关系
    • Alice 朋友 Bob
    • Alice 报名 Math 课程

图表示为:

(Alice) --[FRIENDS_WITH]--> (Bob)
(Alice) --[ENROLLED_IN]--> (Math)

总结

  • ER 模型:适合设计和理解关系型数据库的结构。
  • 文档模型:灵活存储层次化数据,适合快速开发和变化频繁的应用。
  • 图模型:高效处理复杂关系,适合社交网络、推荐系统等。

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

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

相关文章

C++进阶学习——模版进阶

1. 非类型模板参数 模板参数分类类型形参与非类型形参。 类型形参即:出现在模板参数列表中,跟在class或者typename之类的参数类型名称。 非类型形参,就是用一个常量作为类(函数)模板的一个参数,在类(函数)模板中可将该参数当成…

如何基于scrcpy改造实现大厂一键连招/触摸宏功能(带java源码)-千里马安卓framework实战

背景: 前面公众号文章已经分享过如何实现这种大厂里面一键连招,触摸宏的功能,原理本身是对dev/input下面的节点进行读取保存文件,然后在读取文件进行写入dev/input下面的节点,从而实现了触摸事件的读取和写入&#xf…

OpenMVG试用

1 OpenMVG 简介 全称 Open Multiple View Geometry,是法国人 Pierre Moulon 读博期间开源的一个 C 库 最早版本 OpenMVG 0.1 是 2013年 2月 发布的,目前最新版本是 2021年 10月 发布的 OpenMVG 2.0 LinkedIn 显示,此前一直在…

docker存储

docker分层结构 如图所示,容器是由最上面可读可写的容器层,以及若干个只读镜像层组成,创建容器时,容器中的 数据都来自镜像层。这样的分层机构最大的特点是写时复制: 1、容器中新生成的数据会直接存放在容器层&#xf…

8. 防火墙

8. 防火墙 (1) 防火墙的类型和结构 防火墙的类型和结构可以根据其在网络协议栈中的过滤层次和实现方式进行分类。常见的防火墙类型包括: 包过滤防火墙:工作在网络层(OSI模型的第3层),主要检查IP包头的信息,如源地址、目的地址、端口号等。电路级网关防火墙:工作在会话层…

初始MYSQL数据库(6)—— 事务

找往期文章包括但不限于本期文章中不懂的知识点: 个人主页:我要学编程(ಥ_ಥ)-CSDN博客 所属专栏: MYSQL 目录 事务的概念 事务的ACID特性 使用事务 查看支持事务的存储引擎 事务的语法 保存点 自动/手动提交事务 事务的隔离性和…

NLP 文本分类任务核心梳理

解决思路 分解为多个独立二分类任务将多标签分类转化为多分类问题更换 loss 直接由模型进行多标签分类 数据稀疏问题 标注更多数据,核心解决方案: 自己构造训练样本 数据增强,如使用 chatGPT 来构造数据更换模型 减少数据需求增加规则弥补…

MySQL --基本查询(下)

文章目录 3.Update3.1将孙悟空同学的数学成绩变更为 80 分3.2将曹孟德同学的数学成绩变更为 60 分,语文成绩变更为 70 分3.3将总成绩倒数前三的 3 位同学的数学成绩加上 30 分3.4将所有同学的语文成绩更新为原来的 2 倍 4.Delete4.1删除数据4.1.1删除孙悟空同学的考…

learn C++ NO.19——二叉搜索树

简单介绍一下二叉搜索树 二叉搜索树也称为二叉排序树。它是一种具有特殊性质的二叉树。它有如下性质。 1、当前节点的左子树的值一定小于当前节点,当前节点的右子树的值一锭大于当前节点。这也就意味着,在接近完全二叉树的情况下(高度较为合…

开源实时多模态AI聊天机器人Moshi,语音对话延迟低至200毫秒!

开源实时多模态AI聊天机器人Moshi,语音对话延迟低至200毫秒! 最近AI圈真是热闹非凡,继Meta发布Llama 3之后,各种开源大模型也是层出不穷。这不,法国一个非盈利AI研究实验室Kyutai,又搞了个大新闻&#xff0…

从零到一:如何用Ollama和OpenUI构建强大的AI模型库

搭建开源大模型平台的步骤与模型介绍 在这篇文章中,我将分享如何在Windows上使用Ollama和OpenUI搭建开源大模型平台的步骤,并介绍我所部署的几个模型及其擅长的领域。 目录 搭建开源大模型平台的步骤与模型介绍一、搭建平台步骤1. 安装Ollama2. 安装Ope…

C++自动驾驶面试核心问题整理

应用开发 概述:比较基础,没啥壁垒,主要有linux开发经验即可 问题:基础八股,如计算机网络、操作系统、c11等基础三件套;中等难度算法题1-2道。 中间件开发(性能优化) 概述&am…

FutureTask源码分析

Thread类的run方法返回值类型是void,因此我们无法直接通过Thread类获取线程执行结果。如果要获取线程执行结果就需要使用FutureTask。用法如下: class CallableImpl implements Callable{Overridepublic Object call() throws Exception {//do somethin…

信息安全工程师(12)网络攻击概述

前言 网络攻击(Cyber Attacks,也称赛博攻击)是指针对计算机信息系统、基础设施、计算机网络或个人计算机设备的任何类型的进攻动作。这些攻击旨在破坏、揭露、修改、使软件或服务失去功能,或在未经授权的情况下偷取或访问计算机数…

超详细超实用!!!AI编程之cursor编写一个官网(二)

云风网 云风笔记 云风知识库 一、新建html文件 选中添加index.html,输入编写官网要求&#xff0c;自动生成代码&#xff0c;先来个简单的。 <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"…

WPS2019 数据透视表多列数据如何显示同一行

在excel表格中&#xff0c;只有行筛选&#xff0c;没有列筛选功能&#xff0c;当我们需要只选取某些列的数据时&#xff0c;使用数据透视表是个可行的方法&#xff0c;但默认生成的数据透视表可观性较差。要如何才能使得数据透视表格式与原来数据格式一样美观易看呢&#xff1f…

Leetcode990.等式方程的可满足性

题目 原题链接 等式方程的可满足性 思路 定义一个长度为26&#xff08;变量为小写字母&#xff09;的数组充当并查集&#xff0c;并将数组中的元素初始化为 -1判断“”并合并元素&#xff0c;将相等的放在一个集合中判断“!”&#xff1b;不等的如果在一个集合中&#xff0c;则…

【Linux】指令和权限的这些细节,你确定都清楚吗?

&#x1f680;个人主页&#xff1a;奋斗的小羊 &#x1f680;所属专栏&#xff1a;Linux 很荣幸您能阅读我的文章&#xff0c;诚请评论指点&#xff0c;欢迎欢迎 ~ 目录 前言&#x1f4a5;一、Linux基本指令&#x1f4a5;1.1 mv 指令&#x1f4a5;1.2 cat 指令&#x1f4a5;…

webLogic反序列化漏洞CVE-2017-3506

1.环境搭建 cd vulhub-master/weblogic/weak_password docker-compose up -d 2.判断wls-wsat组件是否存在 拼接/wls-wsat/CoordinatorPortType 查看页面是否有回显 有回显说明存在组件 3.在当前页面抓包 反弹shell 添加请求包内容 <soapenv:Envelope xmlns:soapenv&q…

hCaptcha 图像识别 API 对接说明

hCaptcha 图像识别 API 对接说明 本文将介绍一种 hCaptcha 图像识别 API 对接说明&#xff0c;它可以通过用户输入识别的内容和 hCaptcha验证码图像&#xff0c;最后返回需要点击的小图像的坐标&#xff0c;完成验证。 接下来介绍下 hCaptcha 图像识别 API 的对接说明。 注册…