什么是非关系型数据库

非关系型数据库也称为 NoSQL 数据库,请注意,NoSQL 的本意是“Not Only SQL”,指的是非关系型数据库,而不是“No SQL”(没有SQL)的意思。NoSQL 数据库的产生之初并不是要彻底地否定和终结关系型数据库,而是作为传统关系型数据库的一个有效补充。

一、什么是非关系型数据库

非关系型数据库也称为 NoSQL 数据库,请注意,NoSQL 的本意是“Not Only SQL”,指的是非关系型数据库,而不是“No SQL”(没有SQL)的意思。

NoSQL 数据库的产生之初并不是要彻底地否定和终结关系型数据库,而是作为传统关系型数据库的一个有效补充。

随着互联网 Web2.0、Web3.0 网站的兴起,传统的关系型数据库在应付这些网站,特别是对于规模日益扩大的海量数据,超大规模和高并发的微博、微信等类型的动态网站时已经显得力不从心,暴露了很多难以克服的问题,例如,传统关系型数据库的 I/O 瓶颈、性能瓶颈等都难以有效突破。

于是出现了大批针对特定场景,以高性能、高并发以及使用便利为目的的功能特异化的数据库产品,非关系型数据库就是在这样的情景中诞生并得到非常迅速发展的。在这些特定的场景下,NoSQL 数据库可以发挥出难以想象的高效率和高性能。近年来,NoSQL 这个术语得到了广泛认同。

NoSQL 是非关系型数据库的广义定义,它打破了长久以来关系型数据库与 ACID 理论大一统的局面。

NoSQL 数据库的数据存储不需要固定的表结构,通常也不存在连接操作,其在大数据存取上具备关系型数据库无法比拟的性能优势,满足了企业应用需要将数据存储在横向且伸缩性上更强的功能需求。例如,Google 的 BigTable、Amazon 的 Dynamo 都是非常成功的商业 NoSQL 实现。

在开源的 NoSQL 体系中,从早期的 Memcached 缓存软件到当今 Facebook 的 Cassandra、Apache 的 HBase,都得到了广泛应用,redis、MongoDB 等新兴的 NoSQL 数据库,也逐渐受到各类公司的欢迎和追捧。

NoSQL数据库没有标准的查询语言(SQL),因此进行数据库查询需要制定数据模型。许多 NoSQL 数据库都有 REST 式的数据接口或者查询 API。

二、非关系型数据库种类介绍

1、键值存储数据库

键值(key-value)数据库类似于传统语言中使用的哈希表,可以通过 key 来添加、查询或者删除数据,因为是使用 key 主键访问,所以会获得很高的性能及扩展性。

键值数据库主要使用一个哈希表,表中有一个特定的键和一个指针(指向特定的数据)。对于 IT 系统来说,key/value 模型的优势在于简单、易部署、高并发。

2、列存储数据库

列存储(column-oriented)数据库会将数据储存在列族(column family)中,一个列族通常存储会被一起查询的相关数据。

举个例子,对于 Person 类,我们通常会查询他们的姓名和年龄,而不是薪资。在这种情况下,姓名和年龄就会放入一个列族中,而薪资则放在另一个列族中。

这部分数据库通常用于应对分布式存储的海量数据。键仍然存在,但是它们的特点是指向了多个列,这些列是由列族来安排的。

列存储数据库的典型产品为 Cassandra、HBase。

3、面向文档的数据库

面向文档(document-oriented)的数据库的灵感来自于 Lotus Notes 办公软件,而且它同第一种键值存储相类似。该类型的数据模型是版本化的文档,半结构化的文档以特定的格式存储,比如 JSON。

面向文档(document-oriented)的数据库可以看作键值数据库的升级版,允许之间嵌套键值,而且面向文档(document-oriented)的数据库比键值数据库的查询更高效。

面向文档的数据库会将数据以文档的形式储存。每个文档都是自包含的数据单元,是一系列数据项的集合。每个数据项都有一个与名称对应的值,值既可以是简单的数据类型,如字符串、数字和日期等;也可以是复杂的类型,如有序列表和关联对象等。

数据存储的最小单位是文档,同一个表中存储的文档属性可以是不同的,数据可以使用 XML、JSON 或者 JSONB 等多种形式存储。

延伸阅读

什么是Linux

Linux,全称GNU/Linux,是一种类似Unix的操作系统,可以免费使用,自由传播。它是一个基于POSIX的多用户、多任务、多线程、多CPU的操作系统。随着互联网的发展,Linux得到了全世界软件爱好者、组织和公司的支持。除了在服务器方面保持强劲的发展势头,在个人电脑和嵌入式系统方面也取得了长足的进步。用户不仅可以直观地获得操作系统的实现机制,还可以根据自己的需求对Linux进行修改和改进,使其最大限度地适应用户的需求。

Linux不仅是一个稳定的系统,也是一个开源软件。其核心防火墙 component性能高,配置简单,保证了系统的安全性。在很多企业网络中,为了追求速度和安全性,Linux不仅被网络运营商用作服务器,还被用作network 防火墙,这是Linux的一大亮点。

Linux具有开源代码、无版权、技术社区用户多的特点。开源代码使用户可以自由裁剪,灵活性高,功能强大,成本低。特别是系统中嵌入的网络协议栈可以通过适当的配置实现路由器的功能。这些特点使Linux成为开发路由和交换设备的理想开发平台。

文章标题:什么是非关系型数据库,发布者:E.Z,转载请注明出处:https://worktile.com/kb/p/53815

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023年6月3日
下一篇 2023年6月4日

相关推荐

  • 什么叫做项目运作模式管理

    项目化运作模式又称项目化管理。项目化管理是所有管理中繁复、精微的管理。之所以如此具有挑战性,原因就在于它是一种复合管理,要求管理者具有多种综合管理能力。项目化管理最根本的目的是以尽可能高的效率完成预定目标。 项目化运作模式又称项目化管理。项目化管理是所有管理中繁复、精微的管理。之所以如此具有挑战性,…

    2023年4月30日
    12400
  • 如何有效解决员工的职业发展难题

    解决员工的职业发展难题主要涉及1、识别职业发展需求;2、创建个人化发展计划;3、提供适当的培训和教育资源;4、实施持续的绩效评估;5、加强领导和团队协作。其中,创建个人化发展计划是关键环节,通过对每位员工职业目标和能力的深入了解,制定符合个人需求的成长路径,从而促使员工的职业生涯健康发展。 1、识别…

    2023年8月21日
    3800
  • 如何创建sharepoint

    创建sharepoint的步骤:1、准备工作;2、部署;3、使用sharepoint创建网站。准备工作是指在安装sharepoint之前,检查计算机的硬件和软件是否符合要求。部署是指在计算机硬软件符合要求的情况下,下载安装并配置sharepoint。 一、创建sharepoint的步骤 1、准备工作…

    2023年3月28日
    41300
  • 一个优异的团队需具备哪些要点或特质

    一个优异的团队需具备以下要点或特质:1、明确的团队目标;2、共享;3、不同的角色;4、良好的沟通;5、共同的价值观和行为规范;6、归属感;7、有效的授权。凡是优异团队,一定有清晰的、明确的、大家共同认可的目标,目标既要明确,也要深入人心。 1、明确的团队目标 凡是优异团队,一定有清晰的、明确的、大家…

    2023年1月9日
    77300
  • 客户体验管理的作用是什么

    客户体验管理的作用有以下几点:1、不断提升顾客的满意度;2、增加营销额;3、帮助企业实现产品优化。顾客体验管理是指从顾客的整体体验出发,在每一次与顾客接触的过程中,通过调整各个流程和各个阶段来不断提升顾客的满意度,并收集顾客的各种信息。 1、不断提升顾客的满意度 如果企业能够把顾客的体验放在第1位的…

    2022年10月25日
    26300
  • oracle和mysql分页区别是什么

    oracle和mysql分页区别在于:区别:1、oracle使用rownum进行分页操作;2、mysql使用limit进行分页操作。oracle使用rownum进行分页操作,rownum只能比较小于不能比较大于,因为该方法都是先查询后排序的。 一、Oracle使用rownum进行分页操作 (1)&g…

    2023年3月18日
    13700
  • 多人协作word怎么弄

    弄一个多人协作word的步骤:1、启动;2、登录;3、另存为文档;4、共享给他人。启动是指,启动Microsoft Office Word2003及以上的版本,登录的步骤是选择“文件”菜单,切换到“账户”选项,用自己的微软账户登录。 一、弄一个多人协作word的步骤 1、启动:启动Microsoft…

    2023年3月5日
    44700
  • 绩效考核指标量化的方法有哪些

    绩效考核指标量化的方法包括:1、统计结果量化方法;2、目标达成情况量化方法;3、频率量化方法;4、余额控制量化方法;5、分段赋值量化方法;6、强制百分比量化方法等。统计结果量化是指按照任务完成后的状况,直接给出数字化的任务结果。 一、12个指标量化方法 1、统计结果量化方法 统计结果量化是指按照任务…

    2022年12月8日
    36000
  • c++ 实时消息系统用什么in-process数据库

    可以用以下数据库:一、SQLite;二、RocksDB;三、LMDB;四、Redis。SQLite 是一个轻量级的 in-process 数据库,完全由 C 语言编写。它非常适合嵌入式系统和移动设备。SQLite 的特点是占用资源少,速度快,可靠性高,易于集成和部署。 一、SQLite SQLite…

    2023年5月30日
    6300
  • 5600x和5600g有什么区别

    AMD的Ryzen 5 5600X和Ryzen 5 5600G是两款不同的处理器,其主要区别主要体现在以下几个方面:1、集成显卡;2、功耗和性能;3、目标用户。其中,5600G搭载了一颗集成显卡,而5600X没有这一设计。 1、集成显卡 Ryzen 5 5600G是一款APU(加速处理单元),也就是…

    2023年8月4日
    71600

发表回复

登录后才能评论
联系我们
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部