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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Javaweb web后端maven介绍作用安装

自动导入到这个项目 src是源代码 main主程序,核心代码 java是Java源代码 resources是项目配置文件 test测试相关的 maven概述 介绍 依赖在本地仓库查找,如果本地仓库有,用本地仓库的依赖,本地没有,连接中央仓库&…

MinIO分布式文件存储

一、分布式文件系统 问题引出 对于一个网站系统,若为降低成本投入,将文件存储服务和网站系统部署在同一台服务器中,访问量不大,基本不会有问题,但访问量逐渐升高,网站文件资源读取逐渐频繁,单…

SQL Server:只有MDF文件,如何附加数据库

第一步:先新建一个同名数据库,然后停止sql服务,删除新建数据库.ldf文件。 第二步:将要附加的数据库的.mdf文件覆盖刚新建的.mdf文件,并重启sql服务。 第三步:这时数据库DATA目录下只有一个.mdf文件&#xf…

《HTML 的变革之路:从过去到未来》

一、HTML 的发展历程 图片: HTML 从诞生至今,经历了多个版本的迭代。 (一)早期版本 HTML 3.2 在 1997 年 1 月 14 日成为 W3C 推荐标准,提供了表格、文字绕排和复杂数学元素显示等新特性,但因实现复杂且缺乏浏览器…

机器视觉与OpenCV--01篇

计算机眼中的图像 像素 像素是图像的基本单位,每个像素存储着图像的颜色、亮度或者其他特征,一张图片就是由若干个像素组成的。 RGB 在计算机中,RGB三种颜色被称为RGB三通道,且每个通道的取值都是0到255之间。 计算机中图像的…

网络安全创新实验

一、网络拓扑设计 二、网络主机概况 本实验一共包含4台虚拟机,分别为攻击机attacker,网关gateway,内网普通用户主机pc,内网服务器server,四台主机的详细信息如下表所示: 名称操作系统IP地址网络模式作用攻…

y3编辑器教学5:触发器2 案例演示

文章目录 一、探索1.1 ECA1.1.1 ECA的定义1.1.2 使用触发器实现瞬间移动效果 1.2 变量1.2.1 什么是变量1.2.2 使用变量存储碎片收集数量并展现 1.3 if语句(魔法效果挂接)1.3.1 地形设置1.3.2 编写能量灌注逻辑1.3.3 编写能量灌注后,实现传送逻…

016 在路由器上配置 DHCP

配置路由器端口IP地址 将路由器的端口地址配置好, 左边的网络地址是 192.168.1.0 右边的网络地址是 192.168.2.0 配置路由器的DHCP服务 打开命令窗口,进入特权模式 进入全局配置 conf t创建一个DHCP地址池; po1 是地址池的名称&#xf…

恋爱脑学Rust之并行之旅:Rayon介绍和使用

文章目录 一、开启爱情的依赖之旅(安装 Rayon)二、甜蜜瞬间的并行享受(基本数据并行操作)(一)共享美好时光(par_iter 方法)(二)分块珍藏回忆(par_…

【数据库系列】PostgreSQL 数据库连接

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

中介者模式的理解和实践

一、中介者模式概述 中介者模式(Mediator Pattern),也称为调解者模式或调停者模式,是一种行为设计模式。它的核心思想是通过引入一个中介者对象来封装一系列对象之间的交互,使得这些对象不必直接相互作用,从…

吸烟抽烟行为识别数据集-超高识别率,支持YOLO,COCO,VOC格式的标注,10162张各种姿势场景下的吸烟图片

吸烟抽烟行为识别数据集-超高识别率,支持YOLO,COCO,VOC格式的标注,10162张各种姿势场景下的吸烟图片 数据集分割 训练组91% 9279图片 有效集5% 507图片 测试集4% 376图片 预处理 自动定…

【开源】基于SpringBoot框架的房屋租赁系统 (计算机毕业设计)+万字毕业论文 T020

系统合集跳转 源码获取链接 一、系统环境 运行环境: 最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。 IDE环境: Eclipse,Myeclipse,IDEA或者Spring Tool Suite都可以 tomcat环境: Tomcat 7.x,8.x,9.x版本均可 操作系统…

C++20 标准概念

1. 所有标准概念的概述 “类型和对象基本概念”表列出了类型和对象的基本概念。 “范围、迭代器和算法概念”表列出了范围、视图、迭代器和算法的概念。 “辅助概念”表列出的概念主要用作其他概念的构建块,通常不会让应用程序开发者直接使用。 头文件和命名空间 …

git的卸载与安装

目录 一、Git的卸载 二、Git的安装 2.1.1 官网下载 2.1.2 镜像下载 ​编辑 2.2 安装 2.3 检验否安装成功 三、Git使用配置 一、Git的卸载 1.找到程序,卸载程序 2.找到Git,右键卸载 卸载完成! 二、Git的安装 2.1.1 官网下载 网址&…

科技赋能电影,互动电影开启电影新格局

近年来,科技赋能电影,让电影越来越精彩,也越来越多元。层出不穷的新技术新类型,不断丰富着电影视听语言的表现形式,也为观众带来更多具有交互性和个性化的观影体验。进昂互动科技在推出全球首部院线互动电影《夜班》之…

python 下载 b站视频 和音频

video_bvid: import os import requests import json import re from bs4 import BeautifulSoup import subprocess # from detail_video import video_bvid# video_bvid 是一个从外部得到的单个视频ID video_bvid BV1cx421Q7veclass BilibiliVideoAudio:def __in…

操作系统:虚拟存储系统

目录 1、外存资源管理 外存空间划分 进程与外存对应关系 2、虚拟页式存储系统 3、 淘汰算法(重点)P217 最佳淘汰算法(OPT) 先进先出(FIFO) 最近最少使用算法(LRU) 最近不用的先淘汰(LNU) 最不经常…

Linux24.04 安装企业微信

今天工作需要把windows系统换成了linux,但是公司的沟通工具是企业微信。去企业微信官网看了,没有linux版本,只能想办法解决了,不然再换回去就太坑了。 方案 1、使用docker容器,2、使用deepin-wine 本人对docker不太熟…

手机实时提取SIM卡打电话的信令声音--社会价值(一、方案解决了什么问题)

手机实时提取SIM卡打电话的信令声音 --社会价值(一、方案解决了什么问题) 一、前言 这段时间,我们在技术范围之外陷入了一个自证或者说下定义的怪圈,即要怎么样去介绍或者描述:我们是一个什么样的产品。它在当前这个世界上,处于…