NoSQL 是指以與關聯式表格不同的格式儲存資料的非關聯式資料庫。不過,您可以使用 idiomatic language API、宣告式結構化查詢語言,以及依範例查詢語言來查詢 NoSQL 資料庫,這就是為什麼它們也稱為「不僅 SQL」資料庫。
NoSQL 資料庫也廣泛用於即時 Web 應用程式和巨量資料,因為主要優點是高擴充性及高可用性。
NoSQL 資料庫也是開發人員的優先選擇,因為它們自然上會透過快速因應不斷變化的需求,將自己帶到靈活的開發典範。NoSQL 資料庫允許以更直觀、更易於理解的方式儲存資料,或是更靠近應用程式使用資料的方式儲存資料,而使用 NoSQL 樣式的 API 儲存或擷取需要較少的轉換。此外,NoSQL 資料庫還能充分運用雲端技術,提供零停機時間。
SQL 資料庫為關聯式,而 NoSQL 資料庫為非關聯式資料庫。關聯式資料庫管理系統 (RDBMS) 是結構化查詢語言 (SQL) 的基礎,可讓使用者存取和操控高結構化表格中的資料。這是適用於資料庫系統的基礎模型,例如 MS SQL Server、IBM DB2、Oracle 和 MySQL。但使用 NoSQL 資料庫時,資料存取語法可以與資料庫不同。
若要了解 NoSQL 資料庫,請務必了解 RDBMS 與非關聯式資料庫之間的差異。
RDBMS 中的資料會儲存在稱為表格的資料庫物件中。表格是相關資料項目的集合,由資料欄與資料列組成。這些資料庫需要事先定義綱要,亦即必須先確定所有資料欄及其相關的資料類型,才能讓應用程式將資料寫入資料庫。它們也會透過使用關鍵碼來儲存連結多個表格的資訊,從而跨多個表格建立關係。在最簡單的案例中,會使用索引鍵來擷取特定資料列,以便檢查或修改該資料列。
相反地,在 NoSQL 資料庫中,您不需事先定義綱要即可儲存資料,這意味著您能夠快速移動及重複,並且可隨意定義資料模型。這適用於特定業務需求,不論是以圖形為基礎的、資料欄導向、文件導向還是索引鍵值存放區。
關聯式資料庫一直到最近才被廣泛使用的模型。它們在許多企業仍極為無所不在。然而,現今被存取的資料種類、速度與數量,有時需要不同的資料庫來補充關聯式資料庫。這讓 NoSQL 資料庫的部分區域 (亦稱為「非關聯式資料庫」) 採用這項服務。由於非關聯式資料庫能夠水平快速橫向擴充,因此可處理高流量,這也使得這些資料庫高度適應。
有了需要快速創新的企業和組織,可以保持靈活性,隨時隨地持續運作,絕對是遊戲的名稱。NoSQL 資料庫提供彈性的綱要,也支援各種資料模型,適用於建置需要大量資料量和低延遲或回應時間的應用程式,例如線上遊戲和電子商務 Web 應用程式。
NoSQL 資料庫通常依賴去標準化的資料,支援使用較少表格 (或容器) 且其資料關係不是使用參照來塑造模型,而是內嵌記錄 (或文件) 的應用程式類型。許多典型的財務、會計和企業資源規劃後台業務應用程式,都依靠高度標準化的資料,防止資料異常和資料複製。這些通常是不適用於 NoSQL 資料庫的應用程式類型。
NoSQL 資料庫的另一個差別在於查詢複雜性。NoSQL 資料庫對於單一表格的查詢效果非常理想。然而,隨著查詢的複雜度增加,關聯式資料庫是更好的選擇。NoSQL 資料庫通常在 WHERE 子句中不提供複雜的結合、子查詢以及巢狀查詢。
有時,關聯式資料庫與非關聯式資料庫並不需要有選擇。在許多情況下,公司選擇了提供融合模型的資料庫,因此能夠在其中採用關聯式與非關聯式資料模型的組合。此混合式策略可在處理不同類型的資料時提供更大的彈性,同時還能確保讀取和寫入的一致性,而不會降低效能。
NoSQL 資料庫與其他類型資料庫之間的其中一個主要差異因子是 NoSQL 資料庫通常使用非結構化儲存體。在過去 20 年開發的 NoSQL 資料庫是專為快速、簡單的查詢、巨量資料和經常進行應用程式變更所設計。此外,這些資料庫也讓開發人員使用程式設計變得更簡單。
另一個差別是 NoSQL 資料庫依賴稱為分區的處理作業來水平擴充,這表示可以新增更多機器來處理多個伺服器的資料。在其他 SQL 資料庫中發現的垂直調整需要將更多電源與記憶體新增至現有機器,因為需要更多儲存,所以無法持續發展。
利用 NoSQL 資料庫進行水平調整的本質,意味著他們可以處理大量的資料,即使資料不斷成長,資料也更有效率。有助於思考垂直比例,例如將新樓層加入您的房子,而水平縮放則類似於在原始樓門旁建另一棟房子。
過去 20 年,數位互動與資料消耗的前所未有的速度與規模,企業必須採用更現代化的流暢方式,了解其儲存資料和存取資料的方式。全球各地的使用者都要求提供不中斷的內容和功能串流,而這些使用者並不再需要快速因應資料庫。因此,有下列幾個重要原因:開發人員選擇 NoSQL/ 非關聯式資料庫:
NoSQL 資料庫有四種主要類型:
Oracle NoSQL Database Cloud Service 可讓開發人員使用文件、分欄式及索引鍵值資料庫模型輕鬆建立應用程式,運用資料複寫以實現高可用性,提供可預測的數毫秒回應時間。此服務提供 ACID 交易、無伺服器規模調整、全方位安全性,以及低廉的依使用量價格。
Oracle NoSQL Database Cloud 服務現在是 Oracle Cloud Free Tier 的一部分,其中包括了免費的定期促銷試用方案,讓您探索各式各樣的雲端服務,並且提供一組永遠免費服務。