我的编程空间,编程开发者的网络收藏夹
学习永远不晚

您应该了解的有关NoSQL数据库的所有信息-系统设计

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

您应该了解的有关NoSQL数据库的所有信息-系统设计

在深入研究NoSQL数据库之前,了解关系数据库的局限性很重要。 关系数据库已经存在了近40年,并且运行良好。 数据结构合理,记录保存在表中。 表由行,主键,唯一键组成,并且表可以相互连接。 它支持的另一个重要功能是事务,它的属性称为ACID。 ACID属性包含4个不同的属性,如下所述:

  • 原子性:它保证了如果发生多步骤交易,则需要完成所有步骤才能使交易成功。
  • 一致性:它确保数据库在任何事务之前和之后均应保持一致。
  • 隔离:它保证可以同时发生多个事务,而不会互相干扰。
  • 耐用性:即使服务器崩溃或断电,它也可以确保持久存储数据,而无需担心数据。

但是,随着大数据技术的发展,传统的基于SQL的数据库已不足以管理快速增长的数据量以及日益复杂的数据结构。 关系数据库的一些缺点如下:

  • 模式:关系数据库的模式是固定的,您必须事先设计它。 对于快速增长的应用程序,很难假设数据的复杂性然后进行设计。
  • 数据结构:由于关系数据库支持的数据结构有限,我们需要做更多的连接才能获得所需的数据,并且连接总是很昂贵的。
  • 扩展:由于数据增长非常迅速,因此很难扩展关系数据库。

我们对此有任何解决方法吗?

幸运的是! 我们有。

非规范化就是其中之一。 展开单个表并向其中添加更多列,以便在获取结果时避免连接。 这样可以提高读取性能,但会导致数据异常。

另一种技术是分片。 在这种技术中,可以对数据库进行分割,并将其存储在不同的服务器中。 这样可以提高读写性能,但是很难管理。

因此,总结一下。 关系数据库具有很多优点和缺点,我们可以解决它们,但是也带来了其他挑战。

NoSQL数据库自然允许对数据进行非规范化,可伸缩性和灵活的架构。 这些东西是免费提供的吗? 没有! 在这个世界上,没有什么是免费的。 放宽ACID限制。 尽管ACID对于某些应用程序是一个重要的约束,但对于所有应用程序却不是。 最后但并非最不重要的一点是,NoSQL数据库提供了一种查询大型和更复杂的数据结构的新方法,这在关系数据库中是不可能的。 这是使用NoSQL进行数据科学的关键因素之一。


NoSQL数据库的优点:

  • 灵活模式:通常提供非常灵活的模式。 根据需求可以很容易地更改架构。
  • 水平扩展:允许在需要时添加更便宜的商品服务器。 SQL数据库在超出容量时需要垂直扩展(迁移到更大的服务器)。
  • 更快的查询:NoSQL数据库的一项主要原则是"应将一起访问的数据存储在一起"。 因此,查询通常无需连接即可工作,这使查询速度更快。

NoSQL数据库的一些示例是Redis,Dynamo,CouchDB,MongoDB,Cassandra,HBase和Neo4J。 很多人在关系数据库中遇到许多不同的问题,这最终不足为奇,他们最终设计了不同类型的NoSQL数据库。


  • 键值存储:就像字典一样,您可以在其中了解键并可以检索其值。 它是NoSQL数据库的最简单类型之一。 这种数据库对于缓存确实很有用。 示例:Redis和Dynamo。
  • 文档数据库:数据存储在文档中,而不是行和列。 文档被分组以形成一个集合。 这种数据库的优点之一是每个文档可以具有不同的结构。 这种数据库对于内容管理和存储用户个人资料非常有用。 示例:CouchDB和MongoDB。
  • 宽列数据库:宽列数据库中的列和表的概念与关系数据库中的概念不同。 例如,在宽列数据库中,数据被非规范化,列根本没有固定,它们可以随时更改。 例如,我们可以在应用程序中动态添加列,甚至同一表中的行可以具有不同的列的情况也是如此。 与文档数据库一样,此处的值可以是复杂的结构,例如数组和列表。 这种数据库对于时间序列数据,日志记录和其他大量写入应用程序非常有用。 示例:Cassandra和HBase。
  • 图形数据库:在图形中可以更好地表示关系的应用程序,这些数据库在那里非常有用。 这些类型的数据库主要用于社交网络,知识图等。例如:Neo4J。

关系数据库和NoSQL这两个数据库在数据管理方面都很棒。 没有简单的答案哪个更好。 这完全取决于帮助人们根据上述参数及其权衡选择的要求。

 

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

您应该了解的有关NoSQL数据库的所有信息-系统设计

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

您应该了解的有关NoSQL数据库的所有信息-系统设计

在设计系统时,很难在关系(RDBS)和非关系数据库(NoSQL)之间进行选择。 正确理解这两个局限性将使决策变得更加容易。

5G 智能解决方案之您应该了解的有关智慧城市的信息

5G网络的特性将极大提升数字体验,推动智慧城市发展。随着数据传输速度的提高,它还将确保低延迟时间。您将被允许同时连接到多个设备。

边缘基础设施:首席信息官应该了解有关安全性的七个关键事实

安全因素如何影响企业的边缘计算策略?可以考虑一些事实来指导其计划。
SQLServer 错误 1203 进程 ID %d 尝试对不归它所有的资源进行解锁: %.*ls。 请重试该事务,因为此错误可能是计时条件导致的。 如果该问题仍然存在,请与数据库管理员联系。 故障
2023-11-05

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录