亚博yabo888vip官网|亚博yabo网站|最新官网下载 017-750166764

数据库有哪些分类?应该怎样选择?终于有人批注白了-亚博yabo网站

作者:亚博yabo网站 时间:2021-11-02 18:29
本文摘要:导读:数据库通常用来存储结构化数据,这些数据有明确界说的花样。在已往的几年中,已经公布了许多数据库,可供我们选择的数据库每年都在增长。这些数据库中有许多是为特定类型的数据模型和事情任务设计的。其中一些支持多种模型,通常被归类为多模型数据库。 相识数据库的种种分类有助于你在设计应用时选择正确的数据库。作者:Boris Scholl, Trent Swanson, Peter Jausovec泉源:华章科技01 键值数据库通常,只需要使用主键甚至是部门键来检索应用法式的数据。

亚博yabo网站

导读:数据库通常用来存储结构化数据,这些数据有明确界说的花样。在已往的几年中,已经公布了许多数据库,可供我们选择的数据库每年都在增长。这些数据库中有许多是为特定类型的数据模型和事情任务设计的。其中一些支持多种模型,通常被归类为多模型数据库。

相识数据库的种种分类有助于你在设计应用时选择正确的数据库。作者:Boris Scholl, Trent Swanson, Peter Jausovec泉源:华章科技01 键值数据库通常,只需要使用主键甚至是部门键来检索应用法式的数据。键/值数据库可以被看作一个很是大的哈希表,该表在唯一的键下存储了一些值。存储的值可以通过键或者部门键高效地检索到。

因为该值对于数据库是不透明的,所以如果需要按值来查找一条记载的话就需要逐条扫描。键/值数据库中的键可以包罗多个元素,甚至可以排序以提高查询效率。一些键/值数据库允许使用键的前缀举行查找,从而可以使用复合键。如果数据可以通过一些简朴的键嵌套查询,那键/值数据库会是个不错的选择。

例如,我们将客户xyz的订单存储在键/值数据库中,可以使用客户ID作为键的前缀,联合订单号组成键“xyz-1001”来存储订单。可以使用整个键来检索特定的订单,也可以使用“xyz”前缀检索客户xyz的所有订单。说明:键/值数据库通常是比力自制的,且具有高度可伸缩性的数据存储。键/值数据库能够凭据键对数据举行分区甚至重分区。

使用键/值数据库时,选择键很重要,因为这将对数据存储的规模和读写性能发生重大影响。02 文档数据库文档数据库和键/值数据库类似,因为它也通过主键存储文档(值)。与键/值数据库差别的是,文档数据库中的文档需要切合某些界说好的结构,而键/值数据库险些可以存储任意值。这使得文档数据库可以启用诸如维护二级索引的功效以及基于文档查询数据的功效。

通常存储在文档数据库中的值是哈希图(JSON工具)和列表(JSON数组)的组合。JSON花样在文档数据库中很常用,只管许多数据库引擎使用了更高效的内部存储花样,例如MongoDB的BSON。建议:当你从关系型数据库转换到基于文档的数据库时,你需要思考如何去组织数据。

许多人需要时间来过渡到这种差别的数据建模方法。传统关系型数据库(如PostgreSQL)存储的数据大部门也可以存储在文档数据库中。

它们正变得越来越盛行,与关系数据库差别,这些存储的文档可以很好地映射成编程语言中的工具,而且不需要工具关系映射(ORM)工具。这些数据库通常不强制要求界说数据模式(schema),这对于在软件连续交付(CD)历程中需要更新数据模式的情形具有一些优势。说明:不强制要求界说模式的数据库通常被称为“读时模式(schema on read)”,因为只管数据库未强制要求模式,可是在使用数据的应用中存在固有的模式,而且需要知道如何转化读到的数据。

03 关系型数据库关系型数据库将数据组织到称为表的二维结构中,该结构由列和行组成。一张表中的数据可以与另一表中的数据有关联,数据库系统可以保证这种关联。关系型数据库通常强制执行严格的模式,也称为“写时模式(schema on write)”,在该模式中,向数据库写入的数据必须切合数据库中界说的结构。关系型数据库已经存在很长时间了,许多开发人员都有使用它们的履历。

迄今为止,最盛行和最常用的数据库仍然是关系型数据库。这些数据库很是成熟,可以处置惩罚包罗大量关系的数据,而且拥有大量知道如何使用它们的工具和应用法式生态系统。

在文档数据库中可能很难使用多对多关系,可是在关系型数据库中这很是简朴。如果应用的数据具有许多关系,尤其是有事务处置惩罚的需求,那么这些数据库可能很合适。

04 图数据库图数据库存储两种类型的信息:边和节点。边界说了节点之间的关系,你可以把节点看作实体。节点和边都具有属性,其中存储了该节点或边的一些信息。

边通常会界说关系的偏向或性质。图数据库可以很好地分析实体之间的关系。图数据也可以存储在任何其他数据库中,可是当图的遍历变得越来越庞大时,其他类型的存储可能很难满足图数据对性能和伸缩性的需求。05 列族数据库列族数据库(column family database)将数据组织成行和列,乍一看可能与关系型数据库很是相似。

你可以将列族数据库视为行和列组成的表格数据,可是列被分了组,称为列族。每个列族包罗了一组逻辑上相关的列,通常被作为一个单元举行检索或操作。

能被单独会见的数据可以存储在单独的列族中。在一个列族中,可以动态添加新列,而且行可以是稀疏的(也就是说,行不需要在每个列下面都有值)。

06 时序数据库时序数据库是针对时间举行优化的数据库,可凭据时间来存储值。这些数据库通常需要支持大量的写操作。它们通常被用于从大量数据源实时收集大量数据。

这些数据很少更新,删除操作通常是批量举行的。写入时序数据库的记载通常很小,但记载的量许多。

时序数据库很是适合存储遥测数据。盛行的用途包罗物联网(IoT)传感器或应用法式/系统的计数器。时序数据库通常会提供数据保持、下采样以及凭据数据使用模式的设置将数据生存到其他存储中的功效。

07 搜索引擎搜索引擎数据库通常用于搜索生存在其他存储和服务中的数据。搜索引擎数据库可以对大量的数据建设索引,并提供近实时的索引查询。除了搜索像网页这样的非结构化的数据,许多应用法式还使用它为其他数据库中的数据提供结构化和即时搜索功效。

有一些数据库也能提供全文索引功效,可是搜索数据库还具备通过词干和泛化将单词缩减为词根的功效。关于作者:鲍里斯·肖勒(Boris Scholl)是Azure盘算团队的产物架构师,专注于下一代漫衍式系统平台和应用法式模型的研究,拥有多项有关云盘算与漫衍式系统的专利。特伦特·斯旺森(Trent Swanson)是专注于云和边缘技术的软件架构师。他资助了不少微软的大客户把应用迁移上云,或在云中构建应用。

彼得·加索维奇(Peter Jausovec)是一名软件工程师,在软件开发和技术领域有10多年的履历。近年来,他一直致力于开发漫衍式系统上的云原生解决方案。本文摘编自《云原生:运用容器、函数盘算和数据构建下一代应用》,经出书方授权公布。延伸阅读《云原生》推荐语:本书首先先容一些漫衍式系统的基本原理及其与云原生应用的关系,然后再进一步先容容器和函数等相关技术,接着,本书会先容服务间的通信模式、服务的弹性和数据模式,并讨论在什么情况下应该使用这些技术,最后会总结一些履历性的工具,例如如何联合DevOps方法,怎么兼顾可移植性,以及一些最佳实践。


本文关键词:数据库,有,亚博yabo网站,哪些,分类,应该,怎样,选择,终于

本文来源:亚博yabo888vip官网-www.zswan.cn