Introduction to NoSQL Database

概觀: NoSQL database is the buzzword in the current software industry. NoSQL database is also widely accepted, but it is NOT a replacement for the traditional relational database management system (RDBMS), which stores data in relational tables. 因此,我們可以說這簡化了NoSQL的是有克服傳統RDBMS發現空白.

In this article, 我將討論有關的NoSQL數據庫和它的各個方面.

介紹: 的NoSQL - 解釋為“不僅SQL“ 是,提供了一種機制來存儲和檢索數據的方式是從傳統的RDBMS不同的數據庫, 這在很大程度上取決於表格的關係. 這種方法被啟動和接受基於以下事實 -

  • 簡潔的設計/性能 - 在NoSQL的數據結構可以是鍵值或平面文件. 因為其簡單並易於管理的數據結構的, NoSQL的是比其反零件更快. 這樣的表現是主要差別.
  • 橫向擴展 - 的NoSQL數據庫實現可以或很容易地擴展上下有需要時.

所以NoSQL數據庫的兩個最影響因素是'性能' 和“可擴展性“. 的NoSQL數據庫旨在打擊關係模式的弊端.

不同類型的NoSQL數據庫:

有在市場上可用的不同類型的NoSQL數據庫的. 讓我們來看看得到一個想法.

  • 核心價值配對的數據庫 - 這是基於NoSQL資料庫的最簡單和最常用的類型. In this category, 數據庫中的每個項目被存儲在數據庫中作為屬性,其值一起稱為關鍵. 因此,它基本上是一個鍵值對.
  • 圖商店 - NoSQL的這一類用於存儲有關網絡信息,例如. 社交網絡數據. E.g. Neo4j的和HyperGraphDB等.
  • 文獻數據庫 - 這是成對DB的關鍵值的擴展形式,其中每個鍵與一個複雜的數據結構相關聯的. 這種數據結構被稱為文件. 文件還可以包含鍵值對,甚至嵌套文檔.
  • 寬列存儲 - 這些是在大數據記錄的查詢優化. 這些數據庫存儲數據,而不是行的列. E.g. Cassandra, HBase.

NoSQL的優勢:

相比於傳統的關係型數據庫, 基於NoSQL數據庫是更靈活,可提供更好的性能. 關係數據庫被認為是沒有能力來處理以下場景 -

  • 關係數據庫往往不能處理更大容量的數據是結構化它, 半結構化或非結構化數據.
  • 關係數據庫已經失敗了敏捷的環境,是基於衝刺,並要求團隊反复和頻繁的代碼發布.
  • 關係數據庫沒有被設計為與面向對象的程序設計,這是非常簡單的兼容, 靈活和易於使用的.
  • 如果你想存儲與查詢功能分層對象, 那麼RDBMS是不推薦的解決方案. 只有NoSQL的可能表現良好.
  • 對於雲部署, 這是在分佈式環境, RDBMS不適合.

因此,在上述情況下的NoSQL是填補國內空白的唯一解決方案. 的NoSQL數據模型是有效的,並具有可伸縮的結構相比,關係模型是昂貴,並按照一單片結構.

NoSQL的可以讓我們擁有動態模式數據庫: 在關係型數據庫; 我們需要在一開始就以限定的模式. 任何關係數據庫會喜歡事先知道, 我們要存儲例如數據. 如果我們想存儲僱員的紀錄,如姓名, 部, 電話號碼, 地址等. 我們還需要預先知道數據類型及其可能的大小. 這種做法表現為每一次我們需要包括新的功能敏捷開發方法的挑戰, 我們需要修改這可能導致在製造應用不穩定的模式. E.g. 如果我們把調用添加應用程序中的每一位員工的配偶和孩子的詳細信息, 我們將需要增加一些更多的列,然後遷移需要遷移的新表中的舊數據. 在這個情況下, 如果數據庫大小大, 我們將需要的時間顯著量遷移這可導致大的停機時間的數據庫. 如果我們需要經常應對這種變化, 那麼這將是相當困難來管理這些停工.

NoSQL的基於數據庫的設計和開發來處理這些種情況. 在NoSQL數據庫, 我們可以在不預先定義的架構,使我們的生活更輕鬆,同時使在數據庫級別的更改插入數據. Thus, 它有助於快速發展,也代碼集成是這種方法更容易.

因此,在NoSQL的, '的優勢動態模式“給我們提供了很大的靈活性來管理不斷變化的Web應用程序的需求.

分片機制: 由於它們的結構的方式, 關係數據庫可以垂直擴展即. 如果我們需要一個應用程序擴展的數據庫; 我們需要有主機裝上它整個數據庫的單台服務器. 這是為了確保數據的可用性. 這種方法是相對昂貴和失敗的可能性也高. 要走出這個瓶頸,建議將橫向擴展,而不是垂直. 分片機制,使我們能夠跨多個服務器實例的數據庫,在基於SQL數據庫做. 這是通過存儲區域網絡SAN的或的幫助下完成的. 因為數據庫不提供該功能變得顯影劑的責任來部署在不同的系統中的多個關係數據庫. 每一個單獨的數據存儲在所有數據庫實例. 開發者需要開發,以分發數據的應用程序代碼, 查詢和在所有數據庫實例整理數據的結果. In addition to this, 代碼應當制定處理資源失敗. 這可以通過執行來完成跨越不同的數據庫連接. 這種方法被稱為數據再平衡和複製. 除了像事務完整性關係型數據庫的這許多好處被攻破同時聘請手動分片.

On the other hand, NoSQL數據庫通常支持自動分片. 即. 這些數據庫必須在任意數量的數據庫實例的自動傳播數據的能力. 該機制不需要應用到甚至知道服務器組合物池的. 數據和查詢負載跨服務器會自動平衡, 當一台服務器出現故障, 它立即更換導致應用不中斷.

隨著雲計算在計算地方, 我們可以在一個簡單的方法顯著有這種方法. 雲服務提供商像亞馬遜Web服務AWS或必須提供按需幾乎無限容量的能力,也需要照顧所有重要數據庫管理任務. 現在,開發者構建複雜和昂貴的平台,以支持他們的應用程序不再需要, 因此可以自由地專注於這需要考慮到業務的複雜性更加重視書寫的應用程序代碼. 這種方法也符合成本效益.

數據複製: 常用的NoSQL數據庫支持自動數據複製. 因此,我們對得到的災情數據的高可用性和恢復也,不需要單獨涉及應用程序來管理這些任務.

實施的NoSQL數據庫:

大多數組織有具有試行的NoSQL數據庫可以幫助他們,因為它變得非常困難,傳統的數據庫管理員消化的NoSQL的方法來開發軟件的理解和科技創業. 大多數NoSQL數據庫是開源, 從而使開發人員下載該軟件並啟動POC發展,而不理會許可挑戰. 由於開發週期更短,更快的開發人員可以利用優勢進行創新探索可能產生更好的效果的新領域.

Summary:

我們已經了解的NoSQL數據庫和它的各個方面討論. 現在, 很顯然的NoSQL是不是替代傳統的RDBMS. 但它有一組不同的用例這是不適合的RDBMS. NoSQL數據庫正在不斷演變,它會在不久的將來,更多的新功能. 在結束討論, 讓我們快速瀏覽一下下面的子彈.

  • NoSQL的代表“不是唯一的SQL”.
  • 基於NoSQL數據庫與傳統數據庫的不同之處存儲和檢索數據的方法.
  • NoSQL的基礎數據庫是快得多相比,它們的對應關係.
  • 不同類型的NoSQL數據庫的是 -
    • 核心價值配對
    • 圖形存儲

============================================= ============================================== 在亞馬遜上購買最佳技術書籍,en,電工CT Chestnutelectric,en
============================================== ---------------------------------------------------------------- electrician ct chestnutelectric
error

Enjoy this blog? Please spread the word :)

Follow by Email
LinkedIn
LinkedIn
Share