什么是 NoSQL 數據庫、NoSQL 與 SQL 的區別

前些天發現了一個巨牛的人工智能學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家。點擊跳轉到教程。

NoSQL 數據庫是針對可擴展性能和無架構數據模型進行了優化的非關系數據庫。

NoSQL 數據庫也因其易于開發、延遲低且具有彈性而得到廣泛認可。

此類數據庫可使用各種數據模型,包括列式、文檔、圖形和內存鍵值存儲。

?

?

NoSQL 數據庫如何運作?

NoSQL 數據庫系統可使用各種模型進行數據管理,例如內存鍵值存儲、圖形數據模型和文檔存儲。

此類數據庫針對需要大數據量、低延遲和靈活數據模型的應用程序進行了優化,

這是通過放松傳統關系數據庫的一些數據一致性限制實現的。

?

為何使用 NoSQL 數據庫?

NoSQL 數據庫非常適合許多大數據、移動和 Web 應用程序,

因為傳統關系數據庫的可擴展性和響應能力無法滿足其需求。

由于數據結構更簡單且可水平擴展,NoSQL 數據庫通常比關系數據庫響應速度更快且更易擴展。

?

SQL 與 NoSQL 數據庫比較

關系數據庫管理系統 (RDBMS) 和非關系 (NoSQL) 數據庫各有優劣。

在 RDBMS 中,您可以靈活查詢數據,但查詢成本相對較高,并且在高流量的情況下無法有效擴展。

在 NoSQL 數據庫中,您只能通過幾種方式有效查詢數據,否則查詢成本高且速度慢。

?

?

?關系數據庫NoSQL 數據庫
數據模型關系模型可將數據標準化為由行和列組成的表。采用一種架構來嚴格定義表、行、列、索引、各個表之間的關系及其他數據庫元素。NoSQL 數據庫一般不會實施架構。一般使用分區鍵來檢索值、列集或半結構化 JSON、XML 或其他包含相關項目屬性的文檔。
ACID 屬性傳統的 RDBMS 支持關系數據庫的 ACID 屬性:原子性、一致性、隔離性和持久性。原子性表示“全有或全無”,即完全執行或完全不執行某項事務。一致性表示事務提交之后,數據必須符合數據庫架構。隔離性要求并發事務應分別執行,互不干擾。持久性即能夠從意外系統故障或斷電情況中恢復到上一個已知狀態。為了獲得更為靈活且可水平擴展的數據模型,NoSQL 數據庫通常會放棄傳統 RDBMS 的部分 ACID 屬性。憑借這些特性,當傳統的 RDBMS 遇到架構方面的挑戰時,NoSQL 數據庫便成了最佳選擇,可用來克服一系列問題,包括性能瓶頸、可擴展性、運營復雜性和不斷增加的管理和支持成本。
性能性能一般取決于磁盤子系統。要獲得最佳性能,就需要優化查詢、索引和表結構。性能通常由底層硬件集群大小、網絡延遲以及調用應用程序來決定。
擴展進行縱向擴展最簡單的方式是利用運行更快的硬件。您需要追加投資才能獲得跨分布式系統的關系表。旨在利用低成本硬件的分布式群集進行橫向擴展,從而在不增加延遲的前提下提高吞吐量。
API存儲和檢索數據的請求由符合結構化查詢語言 (SQL) 的查詢來傳達。這些查詢由 RDBMS 解析和執行。借助基于對象的 API,應用程序開發人員可以輕松存儲和檢索內存數據結構。通過分區鍵,應用程序可以查找鍵值對、列集或包含序列化應用程序對象和屬性的半結構化文檔。
工具SQL 數據庫一般會提供一組豐富的工具,用于簡化數據庫驅動型應用程序的開發流程。而 NoSQL 數據庫一般會提供多種工具來管理集群和擴展。應用程序是底層數據的主要接口。

?

?



NoSQL 數據庫的不同類型

有四種常見的 NoSQL 數據庫類型:列式、文檔、圖形和內存鍵值。

通常,這些數據庫在存儲、訪問和結構化數據的方式上有所差異,但都針對不同的使用案例和應用程序進行了優化。?
?

  1. 列式數據庫針對讀取和寫入數據列(而不是數據行)進行了優化。適用于數據庫表的列式存儲是分析查詢性能的一大要素,因為它極大地降低了整體磁盤 I/O 要求,并減少了您需要從磁盤加載的數據量。
  2. 文檔數據庫旨在將半結構化數據存儲為文檔,通常采用 JSON 或 XML 格式。與傳統關系數據庫不同的是,每個 NoSQL 文檔的架構是不同的,可讓您更加靈活地整理和存儲應用程序數據并減少可選值所需的存儲。
  3. 圖形數據庫可存儲頂點以及稱為邊緣的直接鏈路。圖形數據庫可以在 SQL 和 NoSQL 數據庫上構建。頂點和邊緣可以擁有各自的相關屬性。
  4. 內存鍵值存儲是針對讀取密集型應用程序工作負載(例如社交網絡、游戲、媒體共享和 Q&A 門戶)或計算密集型工作負載(例如推薦引擎)進行了優化的 NoSQL 數據庫。內存緩存可將重要數據存儲在內存中以實現低延遲訪問,從而提高應用程序性能。
?

?

?

SQL 與 NoSQL 術語比較

SQLMongoDB (NoSQL)DynamoDB (NoSQL)Cassandra (NoSQL)Couchbase (NoSQL)
集合數據存儲桶
文檔項目文檔
字段屬性字段
主鍵對象 ID主鍵主鍵文檔 ID
索引索引二級索引索引索引
視圖視圖全局二級索引具體化視圖視圖
嵌套表或對象嵌入文檔映射映射映射
數組數組列表列表列表

?

轉自:

https://aws.amazon.com/cn/nosql/?nc1=f_cc

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/449218.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/449218.shtml
英文地址,請注明出處:http://en.pswp.cn/news/449218.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

mysql 索引的統計

查看一個庫里面沒有使用過的索引select object_type,object_schema,object_name,index_name,count_star,count_read,COUNT_FETCH from performance_schema.table_io_waits_summary_by_index_usage where object_schemabocat and count_star0 and count_read0and object_name no…

2020-3-29

題目一&#xff1a; JavaScript 獲取div在頁面中坐標 以div為例&#xff0c;獲取一個元素在頁面中的位置。 代碼和 <!DOCTYPE html> <html> <head> <meta charset" utf-8"> <style type"text/css"> *{padding:0px;margin:0…

Java緩存淺析

拿破侖說&#xff1a;勝利屬于堅持到最后的人。 而正巧&#xff0c;咱們今天就是要聊一個&#xff0c;關于怎么讓系統在狂轟亂炸甚至泰山壓頂的情況下&#xff0c;都屹立不倒并堅持到最后的話題——緩存。 Victory belongs to the most persevering. — Napoleon Bonaparte, Fr…

六個月學會一門語言

大多數人都會將學習第二語言&#xff08;或第三第四語言&#xff09;列為他們首先要完成的人生必做事情。但是&#xff0c;作為一個成人&#xff0c;怎樣才能快速有效地學習新語言呢&#xff1f; Chris Lonsdale是一名來自新西蘭的心理學家&#xff0c;他在香港開了一家公司。他…

Cookie 解說(分類、用途、缺陷、功能 ...)

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 Cookie&#xff08;復數形態Cookies&#xff09;&#xff0c;中文名稱為“小型文本文件”或“小甜餅”&#xff0c;指某些網站為了辨別用…

需求規格說明書1.0

1.引言 1.1目的 該文檔是關于我們組的記事本安卓APP和網頁版本的功能和性能的描述&#xff0c;重點描述了系統的功能需求&#xff0c;并作為系統設計的主要輸入。 本文檔的預期讀者包括&#xff1a;需求分析人員&#xff0c;設計人員&#xff0c;開發人員&#xff0c;項目管理人…

2020-3-30

題目一&#xff1a; JavaScript 將數組原有的順序打亂 function le(){ //創建一個函數作為sort()函數的參數。return 0.5-Math.random(); //返回一個數字可能大于零也可能小于零&#xff0c;這樣就可以實現隨機排序功能&#xff0c; } var arr[]; //聲明一個空數組。for(var i…

vuecli3+webpack4優化實踐(刪除console.log和配置dllPlugin)

本文主要介紹如何在vuecli3生成的項目中&#xff0c;打包輸出時刪除console.log和使用dllplugin&#xff0c;并記錄了配置過程中踩到的坑。 &#xff08;本人水平有限&#xff5e;希望大家多多指出有誤的地方&#xff09; 一、生產環境中刪除console.log 在開發代碼中寫的conso…

傷腎的九個惡習及解決辦法(圖)

近年來&#xff0c;很多人都在通過各種藥物保護腎臟&#xff0c;其實&#xff0c;在生活中形成的各種不良飲食和生活習慣在不停地傷害你的腎&#xff0c;只是你未曾注意到而已。所以要保護好你的腎臟&#xff0c;必須從改變不良飲食和生活習慣開始。 不愛喝水 大部分男人對喝…

CC-BY-NC-SA (創作共用許可協議)

創作共用許可協議 &#xff08;英語&#xff1a;Creative Commons license&#xff0c;簡稱CC許可&#xff09; 是一種公共版權許可協議&#xff0c;其允許分發受版權保護的作品。一個創作共用許可&#xff0c;用于一個作者想給他人分享、使用、甚至創作派生作品的權利。創作共…

2020-3-31

題目一&#xff1a; 評論敏感詞過濾代碼&#xff0c;很多時候需要對一些評論或者文章中的敏感詞進行過濾。 <!DOCTYPE html> <html> <head> <meta charset"utf-8"> </head> <script type"text/javascript"> window.o…

快速通讀《現代軟件工程——構建之法》

在快速通讀《現代軟件工程——構建之法》后&#xff0c;我有如下問題&#xff1a;Q1&#xff1a;第一章通過形象的例子告訴我們什么是軟件工程&#xff0c;介紹了軟件工程的各個階段&#xff0c;對軟件工程的概念及它的特性做了較為生動而詳細的介紹&#xff0c;那么為什么需要…

Java 對象的序列化和反序列化

一.序列化和反序列化的概念 前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 把對象轉換為字節序列的過程稱為對象的序列化。 把字節序列恢復為對象的過程稱為對象的反序列化。 對象的序列…

不可重入鎖和可重入鎖

不可重入鎖也叫自旋鎖 指當一個方法調用了鎖之后&#xff0c;如持有本鎖的另一個方法也想執行&#xff0c;將會進入等待。那么想要使用這個方法必須先釋放鎖方可調用 public class Lock{private boolean isLocked false;public synchronized void lock() throws InterruptedEx…

家長必看 父母須知孩子社交圈九要點(組圖)

孩子在慢慢的長大&#xff0c;總要接觸外面的環境、接觸到更多的人&#xff0c;也需要自己的社交圈。那么孩子的社交圈父母要知道9點。 1、媽媽是第一個“好朋友” 孩子社交的第一步從出生就開始了。雖然小小的他躺在那里還不能說話&#xff0c;但是通過哭、目光接觸、笑等表…

2020-4-1

題目一 頁面加載圖片的時候&#xff0c;可能由于各種原因導致加載失敗。 為了頁面的人性化&#xff0c;在失敗的時候通常會使用一張給定的圖片替代。 <img src"logo.gif" onerror"javascript:this.srcdefault.gif" > //上面代碼本來要加載logo.gif…

NGINX 配置超時時間

一、啥時候用到 前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 用來設置請求資源和服務器返回的時間&#xff0c;保證一個請求占用固定時間&#xff0c;超出后報504超時&#xff01;這…

kettle變量(param命名參數)

1、定義&#xff1a; 編輯-設置-命名參數 在當前界面下定義參數名稱和缺省值。 2、引用&#xff1a;原始數據 通過${var}引用變量 輸出 注&#xff1a;1、字符串在命名參數引用是需要添加單引號的&#xff0c;但位置參數是不需要進行轉譯&#xff1b; 2、引用變量時需要勾選替換…

Excel操作

區間范圍計算 方法一:用IF函數 方法二:構建一個輔助區域&#xff0c;用VLOOKUP函數 方法一:用IF函數 在F3中輸入:IF(E3>90%,5%,IF(E3>80%,4%,IF(E3>70%,3%,IF(E3>60%,2%,1%)))) 向下拖動,搞定。 示例&#xff1a; IF(BB2<0.5,"50及以下",IF(AND(BB2&g…

養心靈,才能美容顏,擁有好日子(圖)

“養心&#xff0c;就是在養顏”&#xff0c;說得多好啊。我們的臉是不會說謊的鏡子&#xff0c;即使再巧妙的掩飾&#xff0c;也會在臉上顯露出蛛絲馬跡。 一個尖刻的人&#xff0c;嘴角的紋路必然多而雜;一個工于心計的人&#xff0c;臉色必定是陰沉暗淡的;一個無知的人&…