五大主流数据库模型有哪些_五大主流品牌

五大主流数据库模型有哪些_五大主流品牌导读:无论是关系型数据库还是非关系型数据库,都是某种数据模型的实现。本文将为大家简要介绍5种常见的数据模型,让我们来追本溯源,窥探现在流行的数据库解决方案背后的神秘世界。什么是数据模型?访问数据库

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

导读:无论是关系型数据库还是非关系型数据库,都是某种数据模型的实现。本文将为大家简要介绍5种常见的数据模型,让我们来追本溯源,窥探现在流行的数据库解决方案背后的神秘世界。

五大主流数据库模型有哪些_五大主流品牌

什么是数据模型?

访问数据库中的数据取决于数据库实现的数据模型。数据模型会影响客户端通过API对数据的操作。不同的数据模型可能会提供或多或少的功能。一般而言,数据模型不会直接提供过多的功能,许多功能必须由客户端自行实现。

数据模型决定了客户端如何对数据进行编码存储。应用程序需要某种域模型与存储技术支持的特性进行映射。

迄今为止,主导的数据模型仍然是关系模型。在这里,我们主要想为大家介绍一下非关系模型,作为对比,本文也会简要介绍一下关系模型。

五大主流数据库模型有哪些_五大主流品牌

数据模型概述

1.关系模型

关系模型使用记录(由元组组成)进行存储,记录存储在表中,表由架构界定。表中的每个列都有名称和类型,表中的所有记录都要符合表的定义。SQL是专门的查询语言,提供相应的语法查找符合条件的记录,如表联接(Join)。表联接可以基于表之间的关系在多表之间查询记录。

表中的记录可以被创建和删除,记录中的字段也可以单独更新。

关系模型数据库通常提供事务处理机制,这为涉及多条记录的自动化处理提供了解决方案。

对不同的编程语言而言,表可以被看成数组、记录列表或者结构。表可以使用B树和哈希表进行索引,以应对高性能访问。

2.键值存储

键值存储提供了基于键对值的访问方式。

键值对可以被创建或删除,与键相关联的值可以被更新。

键值存储一般不提供事务处理机制。

对不同的编程语言而言,键值存储类似于哈希表。对此,不同的编程语言有不同的名字(如,Java称之为“HashMap”,Perl称之为“hash”,Python称之为“dict”,PHP称之为“associative array”),C++则称之为“boost::unordered_map<…>”。

键值存储支持键上自有的隐式索引。

键值存储看起来好像不太有用,但却可以在“值”上存储大量信息。“值”可以是一个XML文档,一个JSON对象,或者其它任何序列化形式。

重要的是,键值存储引擎并不在意“值”的内部结构,它依赖客户端对“值”进行解释和管理。

五大主流数据库模型有哪些_五大主流品牌

3.文档存储

文档存储支持对结构化数据的访问,不同于关系模型的是,文档存储没有强制的架构。

事实上,文档存储以封包键值对的方式进行存储。在这种情况下,应用对要检索的封包采取一些约定,或者利用存储引擎的能力将不同的文档划分成不同的集合,以管理数据。

与关系模型不同的是,文档存储模型支持嵌套结构。例如,文档存储模型支持XML和JSON文档,字段的“值”又可以嵌套存储其它文档。文档存储模型也支持数组和列值键。

与键值存储不同的是,文档存储关心文档的内部结构。这使得存储引擎可以直接支持二级索引,从而允许对任意字段进行高效查询。支持文档嵌套存储的能力,使得查询语言具有搜索嵌套对象的能力,XQuery就是一个例子。MongoDB通过支持在查询中指定JSON字段路径实现类似的功能。

五大主流数据库模型有哪些_五大主流品牌

4.列式存储

如果翻转数据,列式存储与关系存储将会非常相似。与关系模型存储记录不同,列式存储以流的方式在列中存储所有的数据。对于任何记录,索引都可以快速地获取列上的数据。

Map-reduce的实现Hadoop的流数据处理效率非常高,列式存储的优点体现的淋漓极致。因此,HBaseHypertable通常作为非关系型数据仓库,为Map-reduce进行数据分析提供支持。

关系类型的列标对数据分析效果不好,因此,用户经常将更复杂的数据存储在列式数据库中。这直接体现在Cassandra中,它引入的“column family”可以被认为是一个“super-column”。

列式存储支持行检索,但这需要从每个列获取匹配的列值,并重新组成行。

5.图形数据库

图形数据库存储顶点和边的信息,有的支持添加注释。

图形数据库可用于对事物建模,如社交图谱、真实世界的各种对象。IMDB(Internet Movie Database)站点的内容就组成了一幅复杂的图像,演员与电影彼此交织在一起。

图形数据库的查询语言一般用于查找图形中断点的路径,或端点之间路径的属性。Neo4j是一个典型的图形数据库。

选择哪一种数据模型?

数据模型有着各自的优缺点,它们适用于不同的领域。不管是选择关系模型,还是非关系模型,都要根据实际应用的场景做出选择。也许你会发现单一的数据模型不能满足你的解决方案,许多大型应用可能需要集成多种数据模型。(张志平/编译)

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/168312.html原文链接:https://javaforall.net

(0)
上一篇 2022年8月3日 上午6:46
下一篇 2022年8月3日 上午6:46


相关推荐

  • eXtremeDB_5noobs

    eXtremeDB_5noobseXtremeDB™ 3.1fromMcObject®ReleaseNotesTargetOS:HP-UX11forPA-RISC,ItaniumHostOS:HP-UX11.xBYUSINGTHISSOFTWAREYOUAGREETOMcObject’s LICENSEAGREEMENT

    2022年10月14日
    4
  • WEB前端开发人员须知的常见浏览器兼容问题及解决技巧

    WEB前端开发人员须知的常见浏览器兼容问题及解决技巧为什么会有兼容问题 由于市场上浏览器种类众多 而不同浏览器其内核亦不尽相同 所以各个浏览器对网页的解析就有一定出入 这也是导致浏览器兼容问题出现的主要原因 我们的网页需要在主流浏览器上正常运行 就需要做好浏览器兼容 使用 Trident 内核的浏览器 IE Maxthon TT 使用 Gecko 内核的浏览器 Netcape6 及以上版本 FireFox 使用 Presto 内核的浏览器 Opera7 及以

    2026年3月18日
    2
  • 彻底搞懂Python的字符编码

    彻底搞懂Python的字符编码前言 中文编码问题一直是程序员头疼的问题 而 Python2 中的字符编码足矣令新手抓狂 本文将尽量用通俗的语言带大家彻底的了解字符编码以及 Python2 和 3 中的各种编码问题 一 什么是字符编码 要彻底解决字符编码的问题就不能不去了解到底什么是字符编码 计算机从本质上来说只认识二进制中的 0 和 1 可以说任何数据在计算机中实际的物理表现形式也就是 0 和 1 如果你将硬盘拆开 你是看不到所谓的数字 0 和 1 的 你能看

    2026年3月17日
    2
  • 详解Claude Code的"大脑":CLAUDE.md让AI记住你的项目

    详解Claude Code的"大脑":CLAUDE.md让AI记住你的项目

    2026年3月16日
    3
  • 电脑怎么用计算机打开指令,命令提示符怎么用 命令提示符快捷键打开使用技巧详解…

    电脑怎么用计算机打开指令,命令提示符怎么用 命令提示符快捷键打开使用技巧详解…在一些比较专业的电脑技巧中 往往需要用到命令提示符 运行一些系统命令来实现一些无法在 Windows 系统中直接打开的操作 对于很多喜欢玩转电脑的新手伙伴们可能还不知道命令提示符怎么用 其实很简单 只要进入到命令符操作界面 然后熟悉一些操作命令即可 以下本文与大家详细介绍下 命令提示符怎么用命令提示符快捷键使用技巧一 如何打开命令提示符操作界面打开命令提示符操作界面很简单 有多种方法 最简单就是使用

    2026年3月26日
    3
  • 微机原理——8086中断类型以及中断向量表、中断响应、中断返回

    微机原理——8086中断类型以及中断向量表、中断响应、中断返回这里写目录标题先验知识回顾控制寄存器回顾 1 8086 中断类型 1 外部可屏蔽中断 2 外部不可屏蔽中断 3 除法错中断 4 单步中断 5 断点中断 6 溢出中断 7 软中断 2 8086 中断向量表 3 8086 中断响应 1 外部可屏蔽中断响应 2 外部不可屏蔽中断响应 3 内部中断响应 4 8086 中断返回先验知识回顾控制寄存器回顾 PSW 是 ProgramStatu 的缩写 即程序状态字 也叫程序状态寄存

    2025年10月3日
    6

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号