首页 > 数据库 >数据库的类型

数据库的类型

时间:2023-08-26 22:11:06浏览次数:40  
标签:关系 存储 数据库 类型 数据 属性

一说到数据库,大多数人可能像我一样,首先想到的就是 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。



标签:关系,存储,数据库,类型,数据,属性
From: https://www.cnblogs.com/lzhdim/p/17659565.html

相关文章

  • 启动mysql数据库时报错unknown variable 'rpl_semi_sync_slave_enabled=1'
    问题描述:启动mysql数据库时报错unknownvariable'rpl_semi_sync_slave_enabled=1'.数据库:mysql5.7.21系统:rhel7.31、异常重现--启动数据库[mysql@mysql-leo-slavedata]$/usr/local/mysql/bin/mysqld_safe--defaults-file=/home/mysql/etc/my.cnf&--告警信息2023-08-......
  • redis的五大数据类型
    String(字符串)string是redis最基本的类型,你可以理解成与Memcached一模一样的类型,一个key对应一个value。string类型是二进制安全的。意思是redis的string可以包含任何数据。比如jpg图片或者序列化的对象。string类型是Redis最基本的数据类型,一个redis中字符串value最多可以是512M......
  • 分布式数据库CAP原理
    看完了阳哥的redis视频课,理解了MySQL和NoSQL的区别,下面来总结一下传统的ACID分别是什么A(Atomicity)原子性C(Consistency)一致性I(Isolation)独立性D(Durability)持久性关系型数据库遵循ACID规则,事务在英文中是transaction,有如下四个特性:1、A(Atomicity)原子性原子性......
  • 使用哪种注解处理后台Map参数类型,探究前端发送请求URL限制
    如何处理接口参数是Map类型探究URL限制法1:前端发送Get请求需求:为了得到分页结果,我将分页时需要的参数封装到Map中进行传递@GetMapping("/page")publicRqueryPage(@RequestParamMap<String,Object>params){}//1.测试GEThttp://localhost:8080/product/categorybrandrel......
  • Azure Data Factory(六)数据集类型为Dataverse的Link测试
    一,引言之前有讲过AzureDataFactory的CopyData的操作,演示了将BlobStorage1的数据通过AzureDataFactory复制到BlobStorage2中,今天我们玩一个不一样的,AzureDataverse-》AzureDataverse。开始今天的内容之前,我们先了解一下什么是AzureDataverse?Azur......
  • 变量和数据类型java练习
    1.①packagecom.company;publicclassHomeWork8_19{publicstaticvoidmain(String[]args){Stringname="小明";intage=25;intseniority=3;intage1=5;Stringsubject="java";......
  • sqlserver跨数据库查询
    方法一`execsp_droplinkedsrvloginpms,Nullexecsp_dropserverpmsexecsp_addlinkedserver@server='pms',--被访问的服务器别名@srvproduct='',@provider='SQLOLEDB',@datasrc=''--要访问的服务器execsp_addlinkedsrvlogin'pms�......
  • Python数据类型
    Python数据类型字符串(str)字符串是Python中最常用的数据类型。我们可以使用引号('或"或''')来创建字符串。创建字符串很简单,只要为变量分配一个值即可。var1='HelloWorld!'var2="PythonRunoob"字符串的截取的语法格式:变量[头下标:尾下标]str='Runoo......
  • 时序数据库 TDengine 与创意信息兼容性互认,让你的数据共享方案更丰富
    新型物联网实现良好建设的第一要务就是打破信息孤岛,将数据汇聚在平台统一处理,实现数据共享,放大物联终端的行业价值,实现系统开放性,以此营造丰富的行业应用环境。在此背景下,物联感知平台应运而生,成为推动智慧城市建设,强化物联网感知设施跨行业、跨领域共享的重要支撑平台。近日,涛思......
  • OceanBase通过基表检索数据库中的函数索引
    其实通过dba_indexes这个视图也能检索出来,但是如果通过index_type来过滤性能会极差,实际效率会差很多,可能十几秒中才会出来结果,下面是通过基表视图跳过index_type来检索函数索引。 ......