自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

【NoSQL數(shù)據(jù)庫四大類型解析】如何選擇鍵值型數(shù)據(jù)庫和文檔型數(shù)據(jù)庫

數(shù)據(jù)庫 其他數(shù)據(jù)庫
在關(guān)系型數(shù)據(jù)庫設(shè)計中,實(shí)體的結(jié)構(gòu)和關(guān)系驅(qū)動設(shè)計,但NoSQL數(shù)據(jù)庫設(shè)計并不是這樣。當(dāng)然,你也同樣需要對實(shí)體和關(guān)系進(jìn)行建模,但是與保持關(guān)系模型相比,性能更為重要。

   編者注:本文內(nèi)容節(jié)選自作家兼獨(dú)立顧問Dan Sullivan的新作《NoSQL for Mere Mortals》第15章。在本章中,Sullivan介紹了NoSQL數(shù)據(jù)庫的主要四種類型,以及提出哪些應(yīng)用適合哪種類型的見解。他還討論了關(guān)系型數(shù)據(jù)庫和NoSQL數(shù)據(jù)庫設(shè)計的區(qū)別,以及這兩種技術(shù)共同存在的必要性。如有興趣購買,可登錄Informit.com,輸入優(yōu)惠碼AWDATA35,即可獲得65折優(yōu)惠。

  在關(guān)系型數(shù)據(jù)庫設(shè)計中,實(shí)體的結(jié)構(gòu)和關(guān)系驅(qū)動設(shè)計,但NoSQL數(shù)據(jù)庫設(shè)計并不是這樣。當(dāng)然,你也同樣需要對實(shí)體和關(guān)系進(jìn)行建模,但是與保持關(guān)系模型相比,性能更為重要。

  關(guān)系性模型的出現(xiàn)與實(shí)際需求有關(guān)——數(shù)據(jù)的經(jīng)常性異常以及新應(yīng)用程序難以重用現(xiàn)有數(shù)據(jù)是其出現(xiàn)的主要原因。NoSQL數(shù)據(jù)庫的出現(xiàn)也有其現(xiàn)實(shí)原因——具體來說,就是數(shù)據(jù)的規(guī)模已經(jīng)無法滿足日益增長的大量讀寫操作。

  為了換取讀寫性能的提升,你可能會失去關(guān)系型數(shù)據(jù)庫的一些功能,例如即時一致性以及ACID事務(wù)等(雖然并非總是如此)。

  本書認(rèn)為,查詢是數(shù)據(jù)模型設(shè)計的主要驅(qū)動力。的確是如此,因?yàn)椴樵兠枋隽藬?shù)據(jù)的使用方式。要了解不同的NoSQL數(shù)據(jù)庫是如何滿足用戶的需求,先理解查詢不失為好的著手點(diǎn)。此外,你還需要了解其他因素,如:

  讀寫操作的數(shù)量

  對副本中不一致數(shù)據(jù)的容忍度

  實(shí)體之間關(guān)系的性質(zhì)及其影響查詢模式的方式

  對于可用性和災(zāi)難恢復(fù)的需求

  對數(shù)據(jù)模型靈活性的需求

  對于處理延遲的需求

  接下來的部分將介紹一些應(yīng)用實(shí)例以及根據(jù)不同需求選擇合適的NoSQL數(shù)據(jù)庫時所應(yīng)遵循的標(biāo)準(zhǔn)。

  如何選擇鍵值型數(shù)據(jù)庫(key-value databases)?

  鍵值數(shù)據(jù)庫適用于那些頻繁讀寫,擁有簡單數(shù)據(jù)模型的應(yīng)用。鍵值數(shù)據(jù)庫中存儲的值可以是簡單的標(biāo)量值,如整數(shù)或布爾值,也可以是結(jié)構(gòu)化數(shù)據(jù)類型,比如列表和JSON結(jié)構(gòu)。

  鍵值數(shù)據(jù)庫通常具有簡單的查詢功能,允許你通過鍵來查找一個值。一般鍵值數(shù)據(jù)庫都支持搜索功能,這提供了更高的靈活性。開發(fā)人員可以選擇使用一些技巧,比如用枚舉鍵來實(shí)現(xiàn)范圍查詢,但這些數(shù)據(jù)庫通常缺乏對于文檔、列族、圖形數(shù)據(jù)庫的查詢功能。

  鍵值數(shù)據(jù)庫廣泛應(yīng)用于以下類型的應(yīng)用:

  從關(guān)系型數(shù)據(jù)庫緩存數(shù)據(jù)來用于提高性能

  對Web應(yīng)用暫時性數(shù)據(jù)的追蹤,例如購物車數(shù)據(jù)等

  存儲配置和用戶數(shù)據(jù)信息的移動應(yīng)用

  需要存儲圖片和音頻文件等較大對象的應(yīng)用

  如何選擇文檔型數(shù)據(jù)庫(document databases)?

  文檔型數(shù)據(jù)庫按照靈活性的標(biāo)準(zhǔn)設(shè)計。如果一個應(yīng)用程序需要存儲不同的屬性以及大量的數(shù)據(jù),那么文檔數(shù)據(jù)庫將會是一個很好的選擇。例如,要在關(guān)系數(shù)據(jù)庫中表示產(chǎn)品,建模者可以使用通用的屬性和額外的表來為每個產(chǎn)品子類型存儲屬性。文檔數(shù)據(jù)庫卻可以更為簡單的處理這種情況。

  文檔數(shù)據(jù)庫提供嵌入式文檔,這對于非規(guī)范化非常有用。文檔數(shù)據(jù)庫將經(jīng)常查詢的數(shù)據(jù)存儲在同一個文檔中,而不是存儲在不同的表中。

  此外,文檔數(shù)據(jù)庫改善了鍵值數(shù)據(jù)庫的查詢功能和文檔中基于屬性的過濾功能。

  由于其靈活性、高性能和易用性,文檔數(shù)據(jù)庫可能是目前***的NoSQL數(shù)據(jù)庫。

  這些數(shù)據(jù)庫適用于如下一些用例,包括:

  用于后臺具有大量讀寫操作的網(wǎng)站

  管理數(shù)據(jù)類型和變量屬性,比如產(chǎn)品

  跟蹤元數(shù)據(jù)的變量類型

  使用JSON數(shù)據(jù)結(jié)構(gòu)的應(yīng)用

  使用類似結(jié)構(gòu)套結(jié)構(gòu)等非規(guī)范化數(shù)據(jù)的應(yīng)用程序

  微軟Azure和Cloudant等云服務(wù)數(shù)據(jù)庫同樣提供了文檔型數(shù)據(jù)庫。

  在接下來的文章中,我們將繼續(xù)介紹如何選擇NoSQL數(shù)據(jù)庫的另外兩大類型:列族數(shù)據(jù)庫和圖形數(shù)據(jù)庫。

責(zé)任編輯:honglu 來源: TechTarget中國
相關(guān)推薦

2015-10-22 10:44:50

2021-09-28 09:25:05

NoSQL數(shù)據(jù)庫列式數(shù)據(jù)庫

2024-03-28 09:00:00

NoSQL數(shù)據(jù)庫

2021-09-06 10:24:12

鴻蒙HarmonyOS應(yīng)用

2019-07-23 11:41:45

數(shù)據(jù)庫SQLDocker

2018-09-13 14:51:43

NoSQL數(shù)據(jù)庫大數(shù)據(jù)

2009-09-04 09:33:50

MongoDB

2017-01-04 16:18:05

非數(shù)據(jù)庫NoSql關(guān)系型數(shù)據(jù)庫

2011-03-04 13:17:33

2019-07-08 10:36:34

數(shù)據(jù)庫WebNoSQL

2023-09-05 10:25:35

數(shù)據(jù)庫性能

2024-02-02 10:51:53

2011-09-16 16:01:31

NoSQL

2022-12-27 08:38:45

關(guān)系型數(shù)據(jù)庫設(shè)計

2013-11-29 09:58:27

巨彬軟件NoSQL文檔型數(shù)據(jù)庫

2019-12-09 12:39:58

數(shù)據(jù)庫技術(shù)機(jī)器學(xué)習(xí)

2018-07-18 09:16:39

關(guān)系型非關(guān)系型數(shù)據(jù)庫

2023-03-05 16:25:38

NoSQL數(shù)據(jù)庫

2011-08-22 16:08:46

IOS開發(fā)數(shù)據(jù)庫

2013-06-28 11:28:21

Facebook數(shù)據(jù)庫大數(shù)據(jù)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號