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.rhkb.cn/news/490869.html

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

相关文章

规则引擎(一)-技术要点

本文是规则引擎的第一篇,首先介绍规则引擎的技术要点,系列后续文章大纲 1. 事实 事实是规则的依据,来源于业务,或是业务实体,或是多个业务实体的汇集 2. 项目 描述规则的项目结构;KIE核心api;s…

redis集群 服务器更换ip,怎么办,怎么更换redis集群的ip

redis集群 服务器更换ip,怎么办,怎么更换redis集群的ip 1、安装redis三主三从集群2、正常状态的redis集群3、更改redis集群服务器的ip 重启服务器 集群会down4、更改redis集群服务器的ip 重启服务器 集群down的原因5、更改redis集群服务器的ip后&#xf…

详解负载均衡

什么是负载均衡? 想象一下,你有一家餐厅,当有很多客人同时到来时,如果只有一名服务员接待,可能会导致服务变慢。为了解决这个问题,你可以增加更多的服务员来分担工作,这样每位服务员就可以更快…

SpringCloud微服务实战系列:03spring-cloud-gateway业务网关灰度发布

目录 spring-cloud-gateway 和zuul spring webflux 和 spring mvc spring-cloud-gateway 的两种模式 spring-cloud-gateway server 模式下配置说明 grayLb://system-server 灰度发布代码实现 spring-cloud-gateway 和zuul zuul 是spring全家桶的第一代网关组件&#x…

win10配置免密ssh登录远程的ubuntu

为了在终端ssh远程和使用VScode远程我的VM上的ubuntu不需要设置密码,需要在win10配置免密ssh登录远程的ubuntu。 在win10打开cmd,执行下面的代码生成密钥对(会提示进行设置,按照默认的配置就行,一直回车)&…

Jupyter Notebook 适合做机器学习开发吗?

现在很多机器学习项目都是在Jupyter notebook中开发、训练、调试和演示的,比如openai、deepmind等,kaggle比赛中的原生环境就是Jupyter notebook,几乎任何机器学习的开发都可以在上面进行。 对于问题中的困扰,想要写py文件&#x…

Python(四)—— 使用库

Python 的官方文档传送门:https://docs.python.org/3.10/library/index.html 一,import import和 C/C 的 #include 一样,都是使用库函数的必要步骤,下面给出了几个示例 示例一:日期计算 输入任意两个日期&#xff0c…

无人机飞行服务技术详解

无人机飞行服务技术涵盖了多个方面,以下是对其关键技术的详细解析: 一、无人机类型与特点 无人机根据其设计和功能的不同,主要分为以下几种类型: 1. 多旋翼无人机:最常见的无人机类型,通过多个电机和螺旋…

【落羽的落羽 C语言篇】一些常见的字符函数、字符串函数、内存函数

文章目录 一、字符函数1. 字符分类函数2. 字符转换函数 二、字符串函数1. strlen的使用和模拟实现使用模拟实现 2. strcpy的使用和模拟实现使用模拟实现 3. strcat的使用和模拟实现使用模拟实现 4. strcmp的使用和模拟实现使用模拟实现 5. strncpy的使用6. strncat的使用7. str…

小程序-基于java+SSM+Vue的微信阅读小程序设计与实现

项目运行 1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。 2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA; 3.tomcat环境:Tomcat 7.x,8.x,9.x版本均可 4.硬件环境&#xff1a…

Airborne使用教程

1.安装环境 前提条件:系统已安装Ruby 打开终端输入如下命令 gem install airborne 或者在Gemfile添加 gem airborne 然后运行bundle install 2.编写脚本 在项目中新建api_tests_spec.rb文件 以GET接口"https://www.thunderclient.com/welcome"为…

社区生活超市系统|Java|SSM|JSP|

【技术栈】 1⃣️:架构: B/S、MVC 2⃣️:系统环境:Windowsh/Mac 3⃣️:开发环境:IDEA、JDK1.8、Maven、Mysql5.7 4⃣️:技术栈:Java、Mysql、SSM、Mybatis-Plus、JSP、jquery,html 5⃣️数据库可…

零基础开始学习鸿蒙开发-基础页面的设计

目录 1.样例图 2.逐项分析 2.1 头顶布局分析:首先我们要把第一行的图标绘制出来,一个左一个右,很明显,需要放在一个Row容器中,具体代码如下: 2.2 和头像同一行的布局,需要注意的是&#xff0c…

211-基于FMC的1路1.5G ADC 1路 2.5G DAC子卡

一、板卡概述 FMC-1AD-1DA-1SYNC是我司自主研发的一款1路1G AD采集、1路2.5G DA回放的FMC、1路AD同步信号子卡。板卡采用标准FMC子卡架构,可方便地与其他FMC板卡实现高速互联,可广泛用于高频模拟信号采集等领域。 二、功能介绍 2.1 原理框图 2.2 硬件…

HTML综合案例

这是一个HTML CSS的综合练习案例&#xff0c;效果如图所示&#xff1a; HTML代码&#xff1a; <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-w…

NPU是什么?电脑NPU和CPU、GPU区别介绍

随着人工智能技术的飞速发展&#xff0c;计算机硬件架构也在不断演进以适应日益复杂的AI应用场景。其中&#xff0c;NPU&#xff08;Neural Processing Unit&#xff0c;神经网络处理器&#xff09;作为一种专为深度学习和神经网络运算设计的新型处理器&#xff0c;正逐渐崭露头…

【多线程】synchronized使用以及原理详解

1. synchronized关键字的使用 synchronized关键字是对Java中的对象加锁&#xff0c;主要有3种使用形式 修饰实例&#xff08;普通&#xff09;方法 &#xff0c;锁的是当前的实例对象&#xff1b;修饰静态方法&#xff0c;锁的是当前类的Class对象&#xff0c;即使是不同的示…

项目开发实践——基于SpringBoot+Vue3实现的在线考试系统(二)

文章目录 一、登录功能实现1、前端实现1.1 创建登录组件1.2 安装和配置Element Plus1.3 安装axios和调用后端接口2、后端实现2.1 创建数据表和准备数据2.2 配置MYSQL配置信息2.3 登录功能实现2.3.1 创建实体类2.3.2 创建登录服务接口及实现2.3.3 创建Mapper2.3.4 实现登录接口A…

ESP32-S3-devKitC-1 点亮板上的WS2812 RGB LED

ESP32-S3-devKitC-1 板上自带了一个RGB LED&#xff0c;型号为 WS2812。 RGB LED 在板上的位置如下图所示。 为了点亮这个WS2812&#xff0c;需要确定这颗RGB LED连接到哪个GPIO上了。 下面是确定GPIO管脚的过程&#xff1a; 1、根据原理图 2、根据PCB布局图&#xff1a; 程…

汽车电子元件的可靠性保障:AEC-Q102认证

AEC-Q102标准的起源与价值 随着汽车电子系统的日益复杂&#xff0c;电子器件必须能够在极端的温度、湿度、振动和电磁干扰等恶劣条件下保持性能。AEC-Q102标准由汽车电子委员会&#xff08;AEC&#xff09;制定&#xff0c;专门针对LED、激光二极管和光电二极管等光电器件&…