NoSQL資料庫的認識

2022-03-22 08:26:09 字數 2555 閱讀 8270

sql資料庫和nosql資料庫介紹

什麼是sql資料庫?

關係型資料庫是依據關係模型來建立的資料庫。而所謂的關係模型就是「一對

一、一對多、多對多」等關係模型,這是一種二維**模型,因此乙個關係型資料庫就是由二維表及其之間的聯絡組成的乙個資料組織。

關係型資料庫可以很好地儲存一些關係模型的資料,比如乙個老師對應多個學生的資料(「多對多」),一本書對應多個作者(「一對多」),一本書對應乙個出版日期(「一對一」)。

關係模型包括資料結構(資料儲存的問題,二維表)、操作指令集合(sql語句)、完整性約束(表內資料約束、表與表之間的約束)。

關係型資料庫介紹:

oracle資料庫:甲骨文公司研發的一款關係型資料庫管理系統。目前是最流行的,可靠性好,移植性好,效能效率高

db2:ibm公司研發的一款關係型資料庫管理系統。適用於大型應用系統

sql server:由microsoft公司推出的關係型資料庫管理系統。具有可伸縮性好與軟體整合度高。

postgresql:由加州大學伯克利分校計算機系開發的ordbms(物件關係型資料庫管理系統),支援大部分sql標準並提供了新特性

什麼是nosql資料庫?

非關係型資料庫主要是基於「非關係模型」的資料庫。  

非關係模型有:

1、列模型:儲存的資料是一列列的。關係型資料庫以一行作為乙個記錄,列模型資料庫以一列作為乙個記錄(這種模型,資料即索引,io很快,主要是一些分布式資料庫) 

2、鍵值對模型:比如hbase。儲存的資料是乙個個「鍵值對」,比如key value

3、文件類模型:比如mongodb,以乙個文件來儲存資料,有點類似「鍵值對」。

nosql 資料庫專門構建用於特定的資料模型,並且具有靈活的架構來構建現代應用程式。nosql 資料庫因其易於大規模開發、強大的功能和良好的效能而被廣泛認可。它們使用各種資料模型,其中包括文件、圖形、鍵值、記憶體和搜尋。

用於應用程式開發的主要資料模型是由關聯式資料庫(如 oracle、db2、sql server、mysql 和 postgresql)使用的關係資料模型。直到 21 世紀中後期,才開始大規模採用和使用其他資料模型。為了對這些新類別的資料庫和資料模型進行區分和分類,創造了術語「nosql」。通常術語「nosql」與「非關係」可互換使用。

nosql 資料庫使用各種資料模型來訪問和管理資料,例如文件、圖形、鍵值、記憶體和搜尋。這些型別的資料庫專門針對需要大資料量、低延遲和靈活資料模型的應用程式進行了優化,這是通過放寬其他資料庫的某些資料一致性限制來實現的。

nosql資料庫的四大優點

nosql 資料庫非常適合許多現代應用程式,例如移動、web 和遊戲等應用程式,它們需要靈活、可擴充套件、高效能和功能強大的資料庫以提供卓越的使用者體驗。

可擴充套件性:nosql 資料庫通常被設計為通過使用分布式硬體集群來橫向擴充套件,而不是通過新增昂貴和強大的伺服器來縱向擴充套件。一些雲提供商在後台將這些操作處理為完全託管服務。

高效能:nosql 資料庫針對特定的資料模型(如文件、鍵值和圖形)和訪問模式進行了優化,這與嘗試使用關聯式資料庫完成類似功能相比可實現更高的效能。

強大的功能:nosql 資料庫提供功能強大的 api 和資料型別,專門針對其各自的資料模型而構建。

nosql資料庫與sql關係型資料庫的區別

關聯式資料庫

nosql資料庫

最佳工作負載

關聯式資料庫專為事務性和高度一致的聯機事務處理 (oltp) 應用程式而設計,並且適用於聯機分析處理 (olap)。

nosql 鍵值、文件、圖形和記憶體資料庫專為 oltp 而設計,適用於包括低延遲應用程式在內的多種資料訪問模式。nosql 搜尋資料庫設計用於對半結構化資料進行分析。

資料模型

關係模型可將資料標準化為由行和列組成的表。採用一種架構來嚴格定義表、行、列、索引、各個表之間的關係及其他資料庫元素。資料庫在表之間的關係中強制實施引用完整性。 

nosql 資料庫提供各種資料模型,其中包括文件、圖形、鍵值、記憶體和搜尋

acid屬性

關聯式資料庫提供原子性、一致性、隔離性和永續性 (acid) 屬性:

nosql 資料庫通常通過放寬關聯式資料庫的一些 acid 屬性來進行權衡,以獲得可以水平擴充套件的更靈活的資料模型。這將使 nosql 資料庫成為高吞吐量、低延遲使用案例的絕佳選擇,這些使用案例需要水平擴充套件超出單個例項的限制。

效能效能通常取決於磁碟子系統。要獲得最佳效能,通常需要優化查詢、索引和表結構。

效能通常由底層硬體集群大小、網路延遲以及呼叫應用程式來決定。

擴充套件關聯式資料庫通常通過增加硬體的計算能力進行縱向擴充套件或通過為唯讀工作負載新增副本進行橫向擴充套件。

nosql 資料庫通常是可分割槽的,因為鍵值訪問模式可以通過使用分布式體系結構進行橫向擴充套件來提高吞吐量,從而以接近無限的規模提供一致的效能。

api儲存和檢索資料的請求通過使用符合結構化查詢語言 (sql) 的查詢來傳達。這些查詢由關聯式資料庫解析和執行。

借助基於物件的 api,應用開發人員可以輕鬆儲存和檢索記憶體資料結構。通過分割槽鍵,應用程式可以查詢鍵值對、列集或包含序列化應用程式物件和屬性的半結構化文件。

NoSQL資料庫Redis幾個認識誤區

前幾天微博發生了一起大的系統故障 很多技術的朋友都比較關心,其中的原因不會超出james hamilton在on designing and deploying internet scale service 1 概括的那幾個範圍,james第一條經驗 design for failure 是所有網際...

常見的NoSQL資料庫

from nosql資料庫發展迅猛,據說現在已經有上百種nosql資料庫了,下面來了解下常見的一些nosql資料庫 先來看張表,了解下典型的nosql資料庫的分類 臨時性鍵值儲存 永久性鍵值儲存 面向文件的資料庫 面向列的資料庫 memcached tokyo tyrant mangodb cass...

常見的NoSQL資料庫

nosql資料庫發展迅猛,據說現在已經有上百種nosql資料庫了,下面來了解下常見的一些nosql資料庫 先來看張表,了解下典型的nosql資料庫的分類 臨時性鍵值儲存 永久性鍵值儲存 面向文件的資料庫 面向列的資料庫 memcached tokyo tyrant mangodb cassandra...