数据库分类知多少?

这篇具有很好参考价值的文章主要介绍了数据库分类知多少?。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

DB-Engines 列出了 400 多个数据库管理系统的流行度排名,它们可以按照数据模型分为不同的类型,例如关系型数据、文档数据库等。

本文简单介绍一下不同数据库的分类以及常见的数据库管理系统。

✍️如今很多数据库提供了多模型存储支持,例如 PostgreSQL 不仅支持关系模型,还提供了文档存储、图数据库以及空间数据库功能。

关系型数据库

关系型数据库管理系统(RDBMS)是最主流的数据库类型,它们使用关系(表)模型存储数据。表的模式由表名和固定数量的字段组成,一个记录(实体)对应表中的一行,由多个属性值组成。关系实际上就是一组结构统一的记录。

关系型数据库的表结构设计通常使用规范化技术,关系支持的基本操作包括:

  • 集合操作(并集、交集、差集);
  • 选择操作(基于指定条件选择表中记录的子集);
  • 投影操作(选择属性/字段的子集);
  • 连接操作(基于多个表的笛卡尔积以及选择和投影操作)。

关系型数据库使用 SQL 执行操作,包括表的管理、事务控制以及用户管理等。

经过多年的发展,许多 RDBMS 不仅仅支持关系模型,同时也提供了用户自定义类型、非原子属性(XML、JSON、数组等)、继承等扩展功能。

常见的关系型数据库包括:

  • Oracle
  • MySQL
  • Microsoft SQL Server
  • PostgreSQL
  • IBM Db2
  • Microsoft Access
  • SQLite
  • Snowflake

键值数据库

键值(Key-value)存储可能是最简单的数据模型,它们只能存储键值对,并且通过键查找值。

键值数据库非常简单,通常不能实现复杂的应用程序。但是它的简单却在某些情况下非常有效,例如嵌入式系统或者高性能的内存数据库。

另外,扩展形式的键值存储可以基于键进行排序,因此可以执行范围查询和有序处理。

常见的键值数据库包括:

  • Redis
  • Amazon DynamoDB
  • Microsoft Azure Cosmos DB
  • Memcached
  • etcd
  • Hazelcast

文档数据库

文档存储(Document stores),也称为面向文档的数据库系统,主要特点在于无模式(schema-free)的数据结构。无模式意味着:

  • 集合(表)中的记录(行)不需要定义统一的结构,每个记录可以包含不同的属性(字段);
  • 每个记录中的各个字段的数据类型可以不同;
  • 一个字段可以包含多个值(数组);
  • 记录可以包含嵌套结构。

文档存储通常使用内部注解,可以在应用程序中直接进行处理。最常见的存储方式是 JSON。

常见的文档数据库包括:

  • MongoDB
  • Amazon DynamoDB
  • Databricks
  • Microsoft Azure Cosmos DB
  • Couchbase

时序数据库

时序数据库(Time Series DBMS)是专门为了存储时间序列数据而进行优化的数据库管理系统。时序数据的每一条记录都包含了一个时间戳信息,来源包括物联网中的传感器、智能电表、RFID 等设备,以及股票交易系统中的交易数据。

常见的时序数据库包括:

  • InfluxDB
  • Kdb
  • Prometheus
  • Graphite
  • TimescaleDB

图数据库

图数据库(Graph DBMS),也称为面向图的数据库,以图(节点和边)结构表示数据。它们支持图数据的处理,以及图中具体属性的计算,例如从一个节点到另一个节点的路径。

图数据库通常不会提供所有节点的索引,因此无法直接基于属性访问节点。

常见的图数据库包括:

  • Neo4j
  • Microsoft Azure Cosmos DB
  • Virtuoso
  • OrientDB
  • ArangoDB
  • Amazon Neptune

搜索引擎

搜索引擎是专门用于搜索文本内容的一类 NoSQL 数据库。除了针对搜索应用的通用优化之外,这类系统还提供了一些功能:

  • 支持复杂搜索条件
  • 全文搜索
  • 词干提取
  • 搜索结果排名和分组
  • 支持高扩展性的分布式搜索

常见的搜索引擎包括:

  • Elasticsearch
  • Splunk
  • Solr
  • OpenSearch
  • Sphinx

对象数据库

对象数据库(Object oriented DBMS),也称为面向对象的数据库,设计目标是在数据库中以面向对象编程语言相同的方式存储对象,从而避免关系型数据库中的转换和分解。另外,对象之间的关系(例如继承)也是在数据库内部进行维护。

对象数据库通常使用类似 SQL 的查询语言操作对象。

由于近年来许多关系型数据库引入了面向对象的功能,例如自定义数据类型和属性;同时开发工具和框架(Hibernate、JPA 等)支持对象和关系之间的转换,对象数据库的应用并不常见。

常见的对象数据库包括:

  • InterSystems IRIS
  • InterSystems Caché
  • Db4o
  • ObjectStore
  • Actian NoSQL Database

RDF存储

RDF(资源描述框架)是一种描述信息的方法论,最初用于描述 IT 资源的元数据,如今应用更加广泛,通常与语义网相结合。

RDF 模型以主-谓-宾的形式将信息表示为三元组,能够存储和处理这种三元组的数据库管理系统被称为 RDF 存储或者三元存储。RDF 存储可以看着图数据库的一个子类,谓词可以解释为主语和宾语之间的联系。但是 RDF 存储提供了一些额外的访问方法,例如类似 SQL 的查询语言 SPARQL。

常见的 RDF 存储数据库包括:

  • MarkLogic
  • Apache Jena - TDB
  • Virtuoso
  • Amazon Neptune
  • GraphDB

宽列存储

宽列存储(Wide column stores),也称为可扩展记录存储,以记录的方式存储数据,支持超大数量的动态字段功能。由于字段名和记录的键不固定、而且记录可以包含数十亿个字段,宽列存储可以被看作二维键值存储。

宽列存储也具有文档数据库的无模式特性,但是它们的实现方式完全不同。

不要将宽列存储和关系型数据库中的面向列的存储混淆,后者是关系型数据库或者数据仓库中为了改进分析性能而实现的存储方式,它们将不同记录的相同列存储在一起,而不是将同一个记录的不同字段存储在一起。

常见的宽列存储数据库包括:

  • Cassandra
  • Microsoft Azure Cosmos DB
  • HBase
  • Google Cloud Bigtable

多值数据库

多值数据库(Multivalue DBMS)与关系型数据库类似,也是以表的形式存储数据。但是,多值数据库可以为记录的一个属性(字段)指定多个值。这种存储类型违反了第一范式,因此它们也被称为非第一范式(NF2)系统。

某些关系型数据库扩展了多值属性(例如数组)功能,例如 PostgreSQL。

常见的多值数据库包括:

  • Adabas
  • UniData,UniVerse
  • jBASE

向量数据库

向量数据库(Vector DBMS)是专门用于高效存储、索引以及查询高维向量数据的软件系统。它们使用特殊的算法和数据结构,支持相似性搜索,通常用于 AI 机器学习、数据挖掘等领域。

常见的向量数据库包括:

  • Kdb
  • Chroma
  • Pinecone
  • Milvus

原生XML数据库

原生 XML 数据库(NXD)用于存储 XML 文档。

与支持 XML 数据类型的数据库相比,原生 XML 数据库提供了完整的 XML 功能。它们可以表示层级数据,可以理解 XML 元素中嵌入的 PCDATA 声明,并且支持 XML 查询语言,例如 XPath、XQuery 以及 XSLT。

原生 XML 数据库内部不一定使用 XML 文档格式存储数据,它们可以使用其他更加高效的存储格式。

常见的原生 XML 数据库包括:

  • MarkLogic
  • Virtuoso
  • Oracle Berkeley DB
  • BaseX

空间数据库

空间数据库管理系统(Spatial DBMS)是一种用于高效存储、操作和查询空间数据的数据库管理系统。空间数据代表了几何空间中的对象,例如点、线和多边形。

空间数据库管理系统通常为空间数据提供了专用的数据类型,同时为了优化空间数据集的访问提供了空间索引。例如,空间索引可以高效地检索距离某一对象一定距离之内的数据点。另外,空间数据库管理系统还提供了操作空间对象或者执行基于空间对象的操作功能。例如,计算对象之间的距离、对象合并或交叉以及计算对象的属性(例如多边形的面积)。

地理空间数据(Geospatial data)是空间数据的一个重要子集,用于处理描述地球表面位置的数据。地理信息系统(Geographic information systems、GIS)可以处理地理空间数据。

时空数据(Spatio-temporal data)是另一种常见的相关数据类型,它们将空间数据与时间戳相结合,从而为数据存储和操作提供了另一个额外的维度。

常见的空间数据库包括:

  • PostGIS
  • Aerospike
  • SpatiaLite

事件存储

事件存储(Event Stores)实现了事件溯源功能,它们存储了对象的所有状态变更事件以及相应的时间戳,也就为单个对象创建了一个时间序列。对象的当前状态可以通过对象的零点时间到当前时间的全部事件回放进行推断。

例如,对于一个购物车对象,每次添加产品(包括产品名称、数量、价格)都会持久化为一个事件。

常见的事件存储包括:

  • EventStoreDB
  • NEventStore
  • IBM Db2 Event Store

内容存储库

内容存储(Content stores)系统,也称为内容存储库,专门用于管理数字内容,例如文本、图片、视频以及它们的元数据。

除了使用 SQL 或者 XPath 存储查询内容之外,这类数据库通常还支持全文搜索、版本控制、内存结构分层以及访问控制等。

Content Repository API for Java(JCR)是基于 Java 的内容存储实现的标准 API。

常见的内容存储库包括:

  • Jackrabbit
  • ModeShape

导航数据库

导航数据库(Navigational DBMS)只能通过记录之间的链接访问数据。这类系统出现在 1960 年代,是最早用于管理大量数据的系统,目前使用较少。基于链接的灵活性,它们又可以分为层次数据库和网状数据库。

常见的导航数据库包括:文章来源地址https://www.toymoban.com/news/detail-530106.html

  • IMS
  • IDMS

到了这里,关于数据库分类知多少?的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【数据库】数据库的介绍、分类、作用和特点,AI人工智能数据如何存储

    欢迎来到《小5讲堂》,大家好,我是全栈小5。 这是《数据库》系列文章,每篇文章将以博主理解的角度展开讲解, 特别是针对知识点的概念进行叙说,大部分文章将会对这些概念进行实际例子验证,以此达到加深对知识点的理解和掌握。 温馨提示:博主能力有限,理解水

    2024年04月14日
    浏览(77)
  • 数据库的备份与分类以及日志

    目录 1、数据库的概念 1.1、数据备份的重要性 1.2、造成数据丢失的原因 1.3、 数据库备份的分类 1.3.1、从物理与逻辑的角度, 1.3.2、原理图 1.3.3.1 完全备份: 1.3.2.2 差异备份 1.2.3.3、 增量备份 1.3.3、 备份方式比较 1.4、常见的备份方式 1.5、MySQL完全备份 1.5.1、优缺点: 1.5.2、

    2024年02月10日
    浏览(43)
  • 数据库:SQL分类之DQL详解

    select            字段列表 from           表名列表 where           条件列表 group by           分组字段列表 having           分组后条件列表 order by           排序字段列表 limit            分页参数 基本查询 条件查询(where) 聚合函数(count、max、min、avg、sum ) 分组

    2024年04月15日
    浏览(37)
  • GaussDB高斯数据库(SQL语法分类)

    日常查询中,最常用的是通过FROM子句实现的查询。 语法格式:使用方法: SELECT [ , ... ] FROM table_reference [ , ... ] SELECT之后和FROM子句之前出现的表达式称为SELECT项。SELECT项用于指定要查询的列,FROM指定要从哪个表中查询。如果要查询所有列,可以在SELECT后面使用*号,如

    2024年02月16日
    浏览(48)
  • MySql学习2:SQL分类、数据库操作、表操作、数据的增删改查

    SQL分类: DDL:数据定义语言,用来定义数据库对象(数据库、表、字段) DML:数据操作语言,用来对数据库表中的数据进行增删改 DQL:数据库查询语言,用来查询数据库表中的记录 DCL:数据控制语言,用来创建数据库用户、控制数据库的访问权限 查询所有数据库 查询当前

    2024年02月11日
    浏览(53)
  • 58个分类背单词英语词典ACCESS\EXCEL数据库

    英语词典、背单词类的数据已经发了很多很多了,打算今天这一个将是最后一个了,后续没有颠覆性的好的话就不再发这类数据了,今天这一份的背单词数据库好处是有58个分类,之前发过有27个分类的《1万6千多最好的背单词SQLITE数据库》。 单词表:36238条记录,可以看一下

    2024年02月06日
    浏览(48)
  • SQL语言的分类:DDL(数据库、表的增、删、改)、DML(数据的增、删、改)

    数据库管理系统(数据库软件)功能非常多,不仅仅是存储数据,还要包含:数据的管理、表的管理、库的管理、账户管理、权限管理等。 操作数据库的SQL语言,基于功能,划分为4类: 1、数据定义:DDL(Data Definition Language) 2、数据操纵:DML(Data Manipulation Language) 3、数据

    2024年02月09日
    浏览(48)
  • R语言【taxa】——df_ref():有效的 分类信息数据库

    Package  taxa  version 0.4.2         定义可以被 taxon_db 对象使用或使用 taxon_db 对象的有效分类数据库,例如 taxon_id 和 taxon。         使用 db_ref$get 查看数据库的详细信息。         用户可以使用 db_ref$set 创建自定义的数据库,并添加到数据库列表中。         每个数据库都必

    2024年01月25日
    浏览(38)
  • 3.6.2数据库系统-范式判断:范式分类、第一范式、第二范式、第三范式、BC范式

    逐步优化以解决问题:插入异常、删除异常、数据冗余 1NF:属性值都是不可再分的原子值 2NF:消除非主属性对候选键的部份依赖 3NF:消除非主属性对候选键的传递依赖 BCNF:消除主属性对候选键的部分和传递依赖 主要考察方向是区分范式、有时候还有优化操作,BCNF只考察判

    2024年02月02日
    浏览(35)
  • .NET Core WebAPI中使用Log4net 日志级别分类并记录到数据库

    记录日志为文档 记录日志到数据库

    2024年02月20日
    浏览(56)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包