什么是非关系型数据库

非关系型数据库也称为 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)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
E.ZE.Z认证作者
上一篇 2023年6月3日
下一篇 2023年6月4日

相关推荐

  • 澳洲devops什么意思

    澳洲DevOps代表一种目前在澳大利亚技术领域中普及的开发(Development)与运维(Operations)的结合。1、提高软件交付效率、2、增强团队跨功能协作、3、促进开发与运维的无缝集成为其主旨。在1中,提高软件交付效率通过自动化构建、测试与部署流程,减少人为干预,有效提升部署速度与质量。…

    2024年3月26日
    8800
  • 适用于企业和个人的优秀文档管理系统软件分别有哪些

    在处理日常工作或个人任务时,选择合适的文档管理系统至关重要。本文旨在列举和分析当前市场上几款适用于企业和个人的优秀文档管理系统软件。对企业而言,系统需要具备1、安全性, 2、协作能力, 3、可扩展性。个人用户则侧重于4、易用性, 5、可访问性, 6、成本效益。此文将分别探讨符合这些要求的软件产品,从…

    2023年11月13日
    30700
  • 云平台项目如何管理分组

    对于管理云平台项目,一个高效的方法是通过分组管理。这种方式不仅可以提高项目的可管理性、增强团队协作效率、优化资源分配、加强安全性保护,还能够更好地实现项目监控与评估。其中,提高项目的可管理性是基石,因为它直接影响到项目的整体进度和质量。通过将项目按功能、需求或团队进行分组,管理者可以更轻松地实现对项…

    2024年4月10日
    3900
  • 为什么有了数据库还需要文件服务器

    因为数据库和文件服务器适用于不同的场景和需求。数据库主要用于结构化数据的存储和高效查询,而文件服务器则用于存储大量非结构化数据。文件服务器提供了文件共享和协作的功能,而数据库则强调数据的一致性和完整性。因此,两者在许多组织中共同存在,以满足不同类型数据的管理和存储需求。 1. 数据库和文件服务器的区…

    2023年7月12日
    55900
  • 室分集成项目进度如何管理

    要有效管理室分集成项目进度,关键步骤包括项目计划的制定、资源的配置、进度的监控和调整、以及利用先进的管理工具。其中,项目计划的制定尤为重要,它为项目的顺利进行奠定了基础。一个详尽的项目计划应涵盖项目目标、任务分解、时间线、资源需求等,确保每一环节均可按时完成,从而保证整个项目的按期完成。 一、项目计…

    2024年4月10日
    5700
  • 项目经理如何履行管理职责

    项目经理履行管理职责的关键在于 规划、组织、实施和监控。他们需要在项目开始之前制定详细的计划,并在项目执行过程中,通过各种管理技能和工具对项目进行有效地监控和指引。组织资源 是项目成功的关键因素之一,包括人力资源、资金、时间和技术等,确保项目在有效的资源配置下顺利进行。 深入来说,组织资源 涉及到的…

    2024年4月10日
    5800
  • 如何管理好基建项目

    管理好基建(基础建设)项目,需要采取一系列综合措施,包括明确项目目标、精确成本预算、高效团队协作、实施风险管理等关键环节。高效团队协作尤为重要,因为一个多学科、多专业的团队通常参与基建项目的实施。有效的团队协作能够确保项目从规划到实施阶段的每一个细节都得到妥善处理,而团队成员之间的良好沟通则是确保项…

    2024年4月10日
    6200
  • 初创项目如何考核管理

    初创项目的考核管理应基于以下几个核心原则:设置明确的目标、建立绩效指标体系、进行定期的绩效评价、实施灵活的激励措施、以及持续的团队建设。尤其要强调的是,建立绩效指标体系对于考核管理至关重要,这涉及到为各个工作层级设定具体、量化的目标,并与公司的总体目标相对应。通过这样的体系,可以有效跟踪员工的表现,…

    2024年4月10日
    7300
  • 信息系统管理工程师和系统集成项目管理工程师区别是什么

    信息系统管理工程师和系统集成项目管理工程师区别是:1、两者级别不同;2、考试科目不同;4、考试内容不同;5、考试难度不同。级别不同是指信息系统项目管理师属于计算机软考高级资格考试之一,系统集成项目管理工程师属于中级。 1、两者级别不同 信息系统项目管理师属于计算机软考高级资格考试之一,系统集成项目管…

    2023年1月30日
    3.4K00
  • 博信oa系统

    标题:博信OA系统的特点与优势 一、 博信OA系统集成了高效的文档管理、实时的通讯交流、智能的流程审批、便捷的移动办公、精细的权限控制和全面的数据分析。其中,流程审批功能通过自动化设计,简化了繁琐的行政流程,提高工作效率。在提供标准流程模板的同时,还支持用户自定义流程,以满足各类业务需求。 二、 系…

    2024年1月12日
    21300

发表回复

登录后才能评论
注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

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

分享本页
返回顶部