Introduction to NoSQL Systems

What is NoSQL

NoSQL database are no-tabular非數據表格 database that store data differently than relational tables 其數據的存儲方式與關係型表格不同

Database that provide a mechanism機制 for data storage retrieval 檢索 that is modelled in means other than the tabular relations used in relational databases 提供數據存儲和檢索機制的數據庫,其建模方式與關係數據庫中的表格關係不同

Who use NoSQL Systems?
Google, Amazon, Twitter, Facebook

NoSQL is a type of database management system (DBMS) that is designed to handle and store large volumes of unstructured and semi-structured data. Unlike traditional relational databases that use tables with pre-defined schemas預定義模式 to store data, NoSQL databases use flexible data models that can adapt to changes in data structures and are capable of scaling horizontally to handle growing amounts of data.

NoSQL databases are often used in applications where there is a high volume of data that needs to be processed and analyzed in real-time 需要即時處理和分析大量data的應用程序, such as social media analytics, e-commerce, and gaming. They can also be used for other applications, such as content management systems, document management, and customer relationship management.

But may not provide the same level of data consistency and transactional guarantees 相同層級的data的一致性和事務保證

NoSQL systems are also sometimes called Not only SQL to emphasize the fact that they may support SQL-like query languages 他們可以支持類似sql的查詢語句. A NoSQL database includes simplicity of design, simpler horizontal scaling to clusters of machines簡單的機器業集水平擴展, has and finer control over availability對可用性的更精確控制. The data structures used by NoSQL databases are different from those used by default in relational databases which makes some operations faster in NoSQL. The suitability of a given NoSQL database depends on the problem it should solve

許多NoSQL存儲會為了可用性、速度和分割區容錯性而犧牲一致性。更廣泛的採用NoSQL存儲的障礙包括使用低階查詢語言、缺乏標準化界面以及先前對現有的關係式數據庫的巨額投資

Most NoSQL stores lack true ACID(Atomicity, Consistency, Isolation, Durability) transactions but a few databases, such as MarkLogic, Aerospike, FairCom c-treeACE, Google Spanner (though technically a NewSQL database), Symas LMDB, and OrientDB have made them central to their designs

Why NoSQL

在这里插入图片描述

NoSQL databases are often used in applications where there is a high volume of data that needs to be processed and analyzed in real-time 需要即時處理和分析大量data的應用程序, such as social media analytics, e-commerce, and gaming. They can also be used for other applications, such as content management systems, document management, and customer relationship management.

But may not provide the same level of data consistency and transactional guarantees 相同層級的data的一致性和事務保證

NoSQL systems are also sometimes called Not only SQL to emphasize the fact that they may support SQL-like query languages 他們可以支持類似sql的查詢語句. A NoSQL database includes simplicity of design, simpler horizontal scaling to clusters of machines簡單的機器業集水平擴展, has and finer control over availability對可用性的更精確控制. The data structures used by NoSQL databases are different from those used by default in relational databases which makes some operations faster in NoSQL. The suitability of a given NoSQL database depends on the problem it should solve

許多NoSQL存儲會為了可用性、速度和分割區容錯性而犧牲一致性。更廣泛的採用NoSQL存儲的障礙包括使用低階查詢語言、缺乏標準化界面以及先前對現有的關係式數據庫的巨額投資

NoSQL databases are different from those used by default in relational databases which makes some operations faster in NoSQL. The suitability of a given NoSQL database depends on the problem it should solve. NoSQL 資料庫使用的資料結構與關聯式資料庫中預設使用的資料結構不同,這使得 NoSQL 中的某些操作更快。給定 NoSQL 資料庫的適用性取決於它要解決的問題

Most NoSQL stores lack true ACID (Atomicity, Consistency, Isolation, Durability) transactions but a few databases, such as MarkLogic, Aerospike, FairCom c-treeACE, Google Spanner (though technically a NewSQL database), Symas LMDB, and OrientDB have made them central to their designs

Key Features
  1. Dynamic schema動態模式: NoSQL databases do not have a fixed schema and can accommodate changing data structures without the need for migrations or schema alterations.可以適應不斷變化的資料結構,而無需遷移或模式變更
  2. Horizontal scalability水平可拓展性:NoSQL databases are designed to scale out by adding more nodes to a database cluster, making them well-suited for handling large amounts of data and high levels of traffic. NoSQL 資料庫旨在透過向資料庫叢集添加更多節點來進行橫向擴展,使其非常適合處理大量資料和高流量
  3. Document-based基於文件: Some NoSQL databases, such as MongoDB, use a document-based data model, where data is stored in a schema-less semi-structured format, such as JSON or BSON. 用基於文件的資料模型,其中資料以無模式的半結構化格式存儲,例如 JSON 或 BSON
  4. Key-value-based基於鍵值: Other NoSQL databases, such as Redis, use a key-value data model, where data is stored as a collection of key-value pairs. 使用鍵值資料模型,其中資料儲存為鍵值對的集合
  5. Column-based基於列: Some NoSQL databases, such as Cassandra, use a column-based data model, where data is organized into columns instead of rows. 使用基於列的資料模型,其中資料被組織為列而不是行
  6. Distributed 分算式and high availablity高可用性:NoSQL databases are often designed to be highly available and to automatically handle node failures and data replication across multiple nodes in a database cluster.自動處理資料庫叢集中多個節點的節點故障和資料複製
  7. Flexibility靈活性: NoSQL databases allow developers to store and retrieve data in a flexible and dynamic manner, with support for multiple data types and changing data structures. NoSQL 資料庫允許開發人員以靈活、動態的方式儲存和檢索數據,並支援多種資料類型和不斷變化的資料結構
  8. Performance效能:NoSQL databases are optimized for high performance and can handle a high volume of reads and writes, making them suitable for big data and real-time applications. 可以處理大量讀寫,適合大數據和即時應用程式
  • Advantages of NoSQL: There are many advantages of working with NoSQL databases such as MongoDB and Cassandra. The main advantages are high scalability and high availability.

    1. High scalability高可拓展性: NoSQL databases use sharding for horizontal scaling 水平拓展. Partitioning區分 of data and placing it on multiple machines in such a way that the order of the data is preserved is sharding. Vertical scaling means adding more resources to the existing machine whereas horizontal scaling means adding more machines to handle the data. Vertical scaling is not that easy to implement but horizontal scaling is easy to implement. Examples of horizontal scaling databases are MongoDB, Cassandra, etc. NoSQL can handle a huge amount of data because of scalability, as the data grows NoSQL scales The auto itself to handle that data in an efficient manner.
    2. Flexibility靈活性:NoSQL databases are designed to handle unstructured or semi-structured data, which means that they can accommodate dynamic changes to the data model. This makes NoSQL databases a good fit for applications that need to handle changing data requirements.
    3. High availability高可用性:The auto, replication feature in NoSQL databases makes it highly available because in case of any failure data replicates itself to the previous consistent state.
    4. Scalability可拓展性:NoSQL databases are highly scalable, which means that they can handle large amounts of data and traffic with ease. This makes them a good fit for applications that need to handle large amounts of data or traffic
    5. Performance效能:NoSQL databases are designed to handle large amounts of data and traffic, which means that they can offer improved performance compared to traditional relational databases.
    6. Cost-effectiveness成本效益: NoSQL databases are often more cost-effective than traditional relational databases, as they are typically less complex and do not require expensive hardware or software.
    7. Agility敏捷性: Ideal for agile development.
  • Disadvantages of NoSQL:

    1. Lack of standardization缺乏標準化:There are many different types of NoSQL databases, each with its own unique strengths and weaknesses. This lack of standardization can make it difficult to choose the right database for a specific application 很難為特定應用程序選擇正確的資料庫.
    2. Lack of ACID compliance缺乏ACID合規性:NoSQL databases are not fully ACID-compliant, which means that they do not guarantee the consistency一致性, integrity完整性, and durability持久性 of data. This can be a drawback for applications that require strong data consistency guarantees.
    3. Narrow focus關注範圍狹窄:NoSQL databases have a very narrow focus as it is mainly designed for storage but it provides very little functionality. Relational databases are a better choice in the field of Transaction Management than NoSQL.
    4. Open-source: NoSQL is an database open-source database. There is no reliable standard for NoSQL yet. In other words, two database systems are likely to be unequal.
    5. Lack of support for complex queries缺乏對複雜查詢的支援NoSQL databases are not designed to handle complex queries不是為複雜查詢而設計的, which means that they are not a good fit for applications that require complex data analysis or reporting.
    6. Lack of maturity缺少成熟度: NoSQL databases are relatively new and lack the maturity of traditional relational databases. This can make them less reliable and less secure than traditional databases.
    7. Management challenge: The purpose of big data tools is to make the management of a large amount of data as simple as possible. But it is not so easy. Data management in NoSQL is much more complex than in a relational database. NoSQL, in particular, has a reputation for being challenging to install and even more hectic to manage on a daily basis.
    8. GUI is not available: GUI mode tools to access the database are not flexibly available in the market.
    9. Backup: Backup is a great weak point for some NoSQL databases like MongoDB. MongoDB has no approach for the backup of data in a consistent manner.
    10. Large document size: Some database systems like MongoDB and CouchDB store data in JSON format. This means that documents are quite large (BigData, network bandwidth, speed), and having descriptive key names actually hurts since they increase the document size. 文件會非常大,並且具有描述性的鍵名稱實際上會造成傷害,因為它們會增加文件大小

when choose NoSQL

  1. When a huge amount of data needs to be stored and retrieved.
    當需要儲存和檢索大量資料時。
  2. The relationship between the data you store is not that important
    你儲存的資料之間的關係就沒那麼重要
  3. The data changes over time and is not structured.
    數據隨著時間的推移而變化,並且不是結構化的。
  4. Support of Constraints and Joins is not required at the database level
    資料庫層級不需要支援約束和聯接
  5. The data is growing continuously and you need to scale the database regularly to handle the data. 數據不斷增長,您需要定期擴展資料庫來處理數據

RDBMS vs NoSQL

RDBMS

  • 高度组织化结构化数据
  • 结构化查询语言(SQL) (SQL)
  • 数据和关系都存储在单独的表中。
  • 数据操纵语言,数据定义语言
  • 严格的一致性
  • 基础事务

NoSQL

  • 代表着不仅仅是SQL
  • 没有声明性查询语言
  • 没有预定义的模式
    -键 - 值对存储,列存储,文档存储,图形数据库
  • 最终一致性,而非ACID属性
  • 非结构化和不可预知的数据
  • CAP定理
  • 高性能,高可用性和可伸缩性

在这里插入图片描述

Emergence of NoSQL Systems

  • The need by organizations to store vast amount of data, for example, emails, tweets, posts, updates, pictures, etc. 企業需要儲存大量數據
  • SQL service overload 服務超載, such as powerful query language查詢, concurrency control 並發控製, which most of these applications do not need.
  • Some of these organizations developed their own systems referred to as NoSQL systems to effectively manage these vast amount of data.

在这里插入图片描述

Categories of NoSQL Systems

在这里插入图片描述

Key-value based NoSQL

These databases store data as key-value pairs, and are optimized for simple and fast read/write operations. 針對快速的讀取/寫入操作進行了最佳化

Examples
Memcached, Redis, Coherence

Document-based NoSQL

These databases store data as semi-structured documents, such as JSON or XML, and can be queried using document-oriented query languages.

Examples
MongoDB, CouchDB, Cloudant

Column-based NoSQL

These databases store data as column families, which are sets of columns that are treated as a single entity. They are optimized for fast and efficient querying of large amounts of data. 他們針對快速有效低查詢大量資料進行了優化

Examples
Hbase, Big Table, Accumulo

Graph-base NoSQL

These databases store data as nodes and edges, and are designed to handle complex relationships between data. 旨在處理data之間的複雜關係

Examples
Amazon Neptune, Neo4j

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/889678.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

图论【Lecode_HOT100】

文章目录 1.岛屿数量No.2002.腐烂的橘子No.9943.课程表No.2074.实现Trie(前缀树)No.208 1.岛屿数量No.200 class Solution {public int numIslands(char[][] grid) {if (grid null || grid.length 0) {return 0;}int numIslands 0;int rows grid.len…

【深度学习量化交易9】miniQMT快速上手教程案例集——使用xtQuant获取基本面数据篇

我是Mr.看海,我在尝试用信号处理的知识积累和思考方式做量化交易,应用深度学习和AI实现股票自动交易,目的是实现财务自由~目前我正在开发基于miniQMT的量化交易系统。 在前几篇的文章中讲到,我正在开发的看海量化交易系统&#xf…

网络层IP协议(TCP)

IP协议: 在了解IP协议之前,我们市面上看到的"路由器"其实就是工作在网络层。如下图: 那么网络层中的IP协议究竟是如何发送数据包的呢? IP报头: IP协议的报头是比较复杂的,作为程序猿只需要我们重…

Xcode

info.plist Appearance Light 关闭黑暗模式 Bundle display name 设置app名称,默认为工程名 Location When In Use Usage Description 定位权限一共有3个key 1.Privacy - Location When In Use Usage Description 2.Privacy - Location Always and When In U…

【CSS in Depth 2 精译_079】第 13 章:渐变、阴影与混合模式概述 + 13.1:CSS 渐变效果(一)——使用多个颜色节点

当前内容所在位置(可进入专栏查看其他译好的章节内容) 第四部分 视觉增强技术 ✔️【第 13 章 渐变、阴影与混合模式】 ✔️ 13.1 渐变 ✔️ 13.1.1 使用多个颜色节点(一) ✔️13.1.2 颜色插值13.1.3 径向渐变13.1.4 锥形渐变 文…

地下管线三维建模,市面上有哪些软件

1. 地下管线:城市“生命线” 地下管线是城市的重要基础设施,包括供水、排水、燃气、热力、电力、通信等管线,它们如同城市的“生命线”,支撑着城市的正常运转。如果缺乏完整和准确的地下管线信息,施工破坏地下管线的事…

说说你对java lambda表达式的理解?

大家好,我是锋哥。今天分享关于【说说你对java lambda表达式的理解?】面试题。希望对大家有帮助; 说说你对java lambda表达式的理解? 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 Java Lambda 表达式是 Java 8 引入的一项重要特性&#…

网易云信荣获“HarmonyOS NEXT SDK星河奖”

近日,鸿蒙生态伙伴 SDK 开发者论坛在北京举行。 网易云信凭借在融合通信领域的技术创新和鸿蒙生态贡献,荣获鸿蒙生态“HarmonyOS NEXT SDK星河奖”。 会上,华为鸿蒙正式推出 SDK 生态繁荣伙伴支持计划,旨在为 SDK 领域伙伴和开发…

电压调整电路汇总

目录: 一、LDO线性稳压器 1、LM1117 2、NCV33275 3、TLE42764 4、TPS7B67xx-Q1 5、总结 二、DCDC转换器 1、LM2576 2、MC34063A 3、总结 原文件下载移步:LDO-DCDC的仿真与Altium原理图 一、LDO线性稳压器 1、LM1117 LM1117 是一款在 800mA 负…

2024美亚杯资格赛复现

参考: 2024“美亚杯”第十届中国电子数据取证大赛资格赛参考WP 2024美亚杯个人资格赛WP 第十届美亚杯个人赛内存和优盘解答 2024年美亚杯个人赛 资格赛 wp_2024美亚杯个人赛-CSDN博客 历年赛题及解析 - 美亚杯 第一次打,感觉就是题量很大&#xff…

练12:双指针

欢迎大家订阅【蓝桥杯Python每日一练】 专栏,开启你的 Python数据结构与算法 学习之旅! 文章目录 前言1 同向扫描2 反向扫描3 同向扫描与反向扫描的对比4 例题分析2.1 回文判定2.2 美丽的区间2.3 挑选子串 前言 双指针是一种常用于数组和链表类问题中&a…

360智脑张向征:共建可信可控AI生态 应对大模型安全挑战

发布 | 大力财经 人工智能的加速发展,有力推动了社会的数智化转型;与此同时,带来的相关安全风险也日益凸显。近日,在北京市举办的通明湖人工智能开发与应用大会上,360智脑总裁张向征以“大模型安全研究与实践”为主题&…

6.数据建模和数据检索及权限检查

总学习目录请点击下面连接 SAP ABAP开发从0到入职,冷冬备战-CSDN博客 目录 1.数据建模和ABAP字典的透明表 现实产品到数据库数据过程 飞行数据模型 做一个简单的引用。 从旅行社来看: 对于开发人员: 透明表 结构体和透明表 在系统中…

反复出现 idf.py: command not found 的解决办法

版本:ESP-IDF v4.4.8 1. 问题描述 当我们需要经常使用 ESP-IDF 时,总要反复安装编译链、设置环境,不然就会显示 idf.py: command not foundESP-IDF 是乐鑫官方的物联网开发框架,适用于ESP32、ESP32-S、ESP32-C 和ESP32-H 系列S…

IIC 通信协议

IIC 通信协议 参考:CSDN-Projectsauron、B站-江协科技 IIC Overview IIC协议(Inter-Integrated Circuit,可简写为 I2C),是一种用于各种电子设备之间进行通信和数据交换的串行通信协议。它是由飞利浦(Phil…

【图像处理】利用numpy、opencv、python实现车牌检测

| 利用opencv实现车牌检测 整体流程涉及5个部分 图像通道转换对比度增强边缘连接二值化边界区域裁剪 图像通道转换 将RGB图像转换为HSV图像,仅保留V通道。V通道表示颜色的明暗,常用于图像对比度拉伸、直方图均衡化等流程。 原图像: V通…

linux切换用户异常

1、报错现象 报错su: failed to execute /bin/bash: Resource temporarily unavailable 2、解决方案 vim /etc/security/limits.d/20-nproc.conf

UE5安装Fab插件

今天才知道原来Fab也有类似Quixel Bridge的插件,于是立马就安装上了,这里分享一下安装方法 在Epic客户端 - 库 - Fab Library 搜索 Fab 即可安装Fab插件 然后重启引擎,在插件面板勾选即可 然后在窗口这就有了 引擎左下角也会多出一个Fab图标…

Java、鸿蒙与嵌入式开发:技术选择与职业发展分析

在当今快速发展的科技领域中,Java、鸿蒙和嵌入式开发代表着不同的技术方向和职业机遇。每个方向都有其独特的市场价值和发展前景,让我们深入分析这三个领域的特点、发展趋势和职业规划。 Java开发方向已经发展了二十多年,仍然在软件开发领域…

synchronized 锁升级实现原理

synchronized 锁升级实现原理 对象的内存结构 在HotSpot虚拟机中,对象在内存中存储的布局可分为3块区域:对象头(Header)、实例数据(Instance Data)和对齐填充 我们需要重点分析MarkWord对象头 MarkWord …