数据库的类型

news2024/11/24 4:51:53

一说到数据库,大多数人可能像我一样,首先想到的就是 MySQL、Oracle 这样的关系型数据库。因为我们平时接触的最多,而且大学课程中有关于数据库的,也是以关系型数据库为主的。

其实,除了关系型数据库外,还有其他类型的用作数据存储的结构,也可以叫做数据库。有些我们平时也经常用到,有的呢,需要做到具体的业务才会接触。

接下来,我们就总结一下到底有哪些数据库类型。

关系型数据库

像MySQL、PostgreSQL、Oracle 都是关系型数据库,在关系型数据库中,表和表之间是存在关系的。例如用户表和订单表这两张表,订单表中一般会有一个用户ID的字段,用来表示这个订单是哪个用户产生的。

在关系型数据库中,一个表中,包含多个列(字段),每一个列都有指定的字段类型。每一条记录就是一行。

关系型数据库通常遵循ACID属性,即原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持久性(Durability),以确保数据在各种情况下都能够保持正确状态。

在关系型数据库中,我们才会用到 SQL 语句,使用各种各样的关键字、规则等,用来实现各种各样的业务操作。

Key-Value 型数据库

Key-Value 型的数据库中我们最熟悉的就是 Redis了。这是一种 NoSQL,这种类型的数据库结构比较简单,就是一个键对应一个值,当然,值的类型可能有很多。

由于结构简单,所以这种类型的存储可以有很高的读取写入速度,所以对读写性能要求比较高的环境可以用 key-value型的数据库。

通过 Redis 的使用场景,我们也能知道,这种数据库多用来做内存型数据库,处理高并发场景,例如应用缓存。

文档型数据库

同样是一种 NoSQL,这里所说的文档指的是结构化的数据,例如 JSON或 XML,最熟悉的就是 MongoDB了,它以 JSON 作为存储数据的格式。

我们平时在开发接口的时候,传给前端的都是 JSON 数据。使用文档型数据库,你就可以把传给前端的JSON内容直接存到数据库中,这样的一条记录叫做一个 Document。

例如一个商品详情页,商品的属性有很多,关联的内容也有很多,我们可以把这些内容直接存储成一个 Document。

不同的商品种类有不同的属性,例如电脑和书的属性大相径庭,对应的它们的属性字段也就不一样,不光是属性的值不一样,连属性的个数都不一样,对于这种结构多样性的数据,用文档型数据库就最合适了。

纵列数据库

大多数数据库都是按行存储的,一行包括多个字段。而纵列数据库呢,是按列存储的。

这样一来,每一列都是一个独立的数据结构。带来的好处就是,我们可以选择性的获取某一列或某几列数据,查询读取的速度是非常快的。

纵列数据库适用于需要对一组列进行聚合、筛选和计算的分析查询,应用于大数据量的场景。

所以,纵列数据库常见于一些大型的数据仓库,平时如果业务不涉及的话, 我们很难接触到。

图数据库

图数据库以图(Graph)的形式来表示数据,并且强调数据之间的关系和连接。图数据库适用于需要处理复杂的关系和连接的应用场景,例如社交网络分析、推荐系统、知识图谱、地理信息系统等。

图数据库允许在节点、边和属性之间建立复杂的关系,这使得它们能够有效地处理大量的关联数据。

图数据库这种特殊的结构非常适合复杂关系的查询,例如查找两个节点之间的最短路径、查找共同的邻居等。结合到社交网络中来看,可以查询两个人的共同好友、共同关注等等。

比较流行的图数据库有 Neo4j 、Amazon Neptune等。

时间序列数据库

时间序列数据库是一种专门用于存储、管理和分析时间相关数据的数据库类型。它们专注于处理时间序列数据,这是一系列按时间顺序排列的数据点或事件,通常在相等的时间间隔内采集。时间序列数据库适用于各种应用场景,如监测、传感器数据、金融数据、日志记录、网络流量分析等。

时间序列数据库以时间作为主要的索引方式,而且写入性能极高。就拿传感器和日志来说,这些都是高频操作,一个流量高的系统,每天产生的日志量是非常大的,所以必须要快,不快就麻烦了。

我们的系统中通常都会有日志监控平台,比如 Grafana ,有各种指标图表,以及方便的检索方式, Grafana 是一个可视化的平台,需要接入数据源,而数据源一般就是时间序列数据库,例如 InfluxDB。

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

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

相关文章

八大排序算法 (python版本)

八大排序算法 个人学习笔记 如有问题欢迎指正交流快速排序经常考, 如果只掌握一个排序算法的话,首选快速排序算法 八大排序算法通常指的是以下八种经典排序算法: 1. 冒泡排序 (Bubble Sort) 使用场景:适用于小规模数据的排序&a…

openCV实战-系列教程9:傅里叶变换(傅里叶概述/频域变换结果/低通与高通滤波)、原理解析、源码解读

OpenCV实战系列总目录 打印图像直接用这个函数: def cv_show(img,name):cv2.imshow(name,img)cv2.waitKey()cv2.destroyAllWindows()1、傅里叶变换 在生活中,我们的大部分事情都是以时间为参照的,用时间为参照的为时域分析,在频…

【C语言基础】数据输入输出

📢:如果你也对机器人、人工智能感兴趣,看来我们志同道合✨ 📢:不妨浏览一下我的博客主页【https://blog.csdn.net/weixin_51244852】 📢:文章若有幸对你有帮助,可点赞 👍…

视觉语言多模态预训练综述

论文: https://arxiv.org/pdf/2207.01772 预训练数据集 预训练任务 模型结构 本文根据特征在进行视觉和语言模态融合处理之前是否进行处理,将VLP 模型按结构分为单流式(single-stream) 和双流式( cross-stream) 单流模型将视觉特征和语言特征直接输入融合模块,进行模型训练,…

【小沐学Unity3d】3ds Max 骨骼动画制作(Physique 修改器)

文章目录 1、简介2、Physique 工作流程3、Physique 对象类型4、Physique 增加骨骼5、Physique 应用和初始化6、Physique 顶点子对象7、Physique 封套子对象8、设置关键点和自动关键点模式的区别8.1 自动关键点8.2 设置关键点 结语 1、简介 官方网址: https://help.…

Nacos 注册中心的使用(单体)

环境 springboot springcloud Nacos注册中心服务端 下载windows版或Linux版:https://nacos.io/zh-cn 目录结构: 配置文件./config/application.properties 启动文件./bin/startup.cmd: cmd命令启动单机服务startup.cmd -m standalone 父…

小马识途谈明星艺人的百科怎么创建

明星艺人们的知名度对于其事业的成功至关重要,而作为国内最大的中文百科全书网站,百度百科成为了人们获取信息的重要来源。一线明星当然百科不用自己操心,平台和网友就给维护了,但是刚刚走红的明星艺人应提早布局百科词条&#xf…

【JZ65 不用加减乘除做加法】题解

题目 写一个函数,求两个整数之和,要求在函数体内不得使用、-、*、/四则运算符号。 数据范围:两个数都满足 −10≤n≤1000 进阶:空间复杂度 O(1),时间复杂度 O(1) 难度:简单 题目链接&#xff1a…

第七周第七天学习总结 | MySQL入门及练习学习第二天

实操练习: 1.创建一个名为 cesh的数据库 2.在这个数据库内 创建一个名为 xinxi 的表要求该表可以包含:编号,姓名,备注的信息 3.为 ceshi 表 添加数据 4.为xinxi 表的数据设置中文别名 5.查询 在 xinxi 表中编号 为2 的全部…

【力扣周赛】第 111 场双周赛(状态机数位DP)⭐

文章目录 比赛链接Q1:6954. 统计和小于目标的下标对数目解法1—— O ( n 2 ) O(n^2) O(n2)暴力解法2——排序双指针 O ( n log ⁡ n ) O(n\log{n}) O(nlogn) Q2:8014. 循环增长使字符串子序列等于另一个字符串双指针相似题目——392. 判断子序列 Q3&…

数据结构--树4.1

目录 一、树的定义 二、结点的分类 三、结点间的关系 四、结点的层次 五、树的存储结构 一、树的定义 树(Tree)是n(n>0)个结点的有限集。当n0时称为空树,在任意一个非空树中: ——有且仅有一个特定的…

Cesium常用功能封装,js编码,每个功能独立封装——第1篇

Cesium常用功能封装,js编码,每个功能独立封装,方便直接应用到项目中。 本脚手架项目是前后端一整套,包括权限管理。前端框架采用Vue3 js ElementUI-Plus,后端采用Spring Boot Mysql Redis,GIS引擎本项目…

深度学习技术

深度学习是什么? 深度学习,英文名为Deep Learning,其实就是机器学习的一种高级形式。它的灵感来源于人脑神经网络的工作方式,是一种让机器可以自主地从数据中学习和提取特征的技术。你可以把它想象成一位小侦探,通过不…

springboot+vue健身器材用品网上商城系统的设计与实现_97794

随着我国经济的高速发展与人们生活水平的日益提高,人们对生活质量的追求也多种多样。尤其在人们生活节奏不断加快的当下,人们更趋向于足不出户解决各种问题,必录德健身器材用品网展现了其蓬勃生命力和广阔的前景。与此同时,为解决…

Leetcode 191.位1的个数

编写一个函数,输入是一个无符号整数(以二进制串的形式),返回其二进制表达式中数字位数为 1 的个数(也被称为汉明重量)。 提示: 请注意,在某些语言(如 Java)中…

4、Spring之Bean生命周期源码解析(创建)

Spring最重要的功能就是帮助程序员创建对象(也就是IOC),而启动Spring就是为创建Bean对象做准备,所以我们先明白Spring到底是怎么去创建Bean的,也就是先弄明白Bean的生命周期。 Bean的生命周期就是指:在Spring中,一个Bean是如何生成的,如何销毁的。 Bean生命周期流程图…

帆软报表系统获取管理员权限

子曰:“君子食无求饱,居无求安,敏于事而慎于言,就有道而正焉:可谓好学也已。” 漏洞实战 构造payload,访问漏洞url后台地址: /ReportServer?opfr_auth&cmdah_loginui&_161983254558…

一个短视频去水印小程序,附源码

闲来无事,开发了一个短视频去水印小程序,目前支持抖音、快手,后续再加上别的平台。 因为平台原因,就不放二维码了,你可以直接微信搜索【万能老助手】这里贴一张效果图。 页面非常简单,这里就不过多介绍了&…

node.js安装好后测试报错解决

node.js的版本是18.X.X node.js安装好后,执行命令: npm install express -g 报错!!! 解决办法: 看报错是由于权限不够, 所以打开cmd时,以管理员的方式打开 然后再执行命令就OK了…

LLMs:LangChain-Chatchat(一款可实现本地知识库问答应用)的简介、安装、使用方法之详细攻略

LLMs:LangChain-Chatchat(一款可实现本地知识库问答应用)的简介、安装、使用方法之详细攻略 目录 LangChain-Chatchat的简介 1、原理图解 2、文档处理实现流程 1、模型支持 (1)、LLM 模型支持 (2)、Embedding 模型支持 LangChain-Chatchat的安装 1、镜像部署…