什麼是 SQL Database?
取得 SQL 技術、權益及使用案例的概觀。
SQL 資料庫定義
SQL 資料庫 (也稱為關聯式資料庫) 是儲存資料表集合的系統,並且以表格式欄和列的格式組織結構化資料集,類似於試算表。資料庫是利用結構化查詢語言 (SQL) 所建置,此查詢語言不僅構成了所有關聯式資料庫和關聯式資料庫管理系統 (RDBMS),而且還讓它們可以「相互對話」。
為何存在 SQL 資料庫?
資料庫技術/關聯式資料庫的記錄
SQL 是 1970 年早期發明的語言,這意味著 SQL 資料庫存在的時間與網際網路本身一樣長。SQL 稱為結構化英文查詢語言 (SEQUEL),最初是為了簡化對關聯式資料庫系統的存取以及協助處理資訊而建立。SQL 現今仍是開放原始碼資料庫技術中最受歡迎且最廣為使用的查詢語言之一,因為它具有彈性、方便使用,而且與各種不同的程式設計語言間的完美整合。您會發現在所有類型的高效能、以資料為中心的應用程式中都會使用 SQL。
SQL 和 NoSQL 資料庫之間有什麼差異?
SQL 資料庫會以欄和列的格式來組織資料。列包含套用至每個項目的資料集,而欄則定義這些項目的不同屬性,例如產品識別碼、名稱、數量和單價。相反地,NoSQL 資料庫將所有傳入資料儲存於單一文件中,沒有明顯的結構。這使得 SQL 資料庫有利於儲存結構化形式的資料,而 NoSQL 資料庫則可處理來自非傳統來源的大量結構化、半結構化和非結構化的資料。
您可以在下方找到 SQL 和 NoSQL 資料庫之間的主要差異。
功能 | SQL | No SQL |
---|---|---|
資料類型 | 結構化 | 結構化、半結構化、非結構化 |
資料庫類型 | 關聯式 | 關聯式與非關聯式 |
結構或結構描述 | 資料表 | 文件 |
資料格式 | 已處理 | 原始 |
彈性 | 低 | 高 |
可用性 | 高 | 低 |
來源 | 應用程式、交易資料、批次報告、BI | 巨量資料、IoT、社交媒體、串流資料 |
使用 SQL 資料庫的權益
現在您了解了什麼是 SQL 資料庫,以及它與 NoSQL 資料庫的功能差異。但是為何組織會使用關聯式資料庫,以及它們是在何種情況下使用關聯式資料庫? SQL 資料庫提供難以計數的權益以讓資料便於管理,其權益包括:
- 最佳化的效能。由於關聯式資料庫的快速處理速度以及極少的儲存體使用量,它可以近乎即時地擷取大量的資料交易數,然後幾乎立即地插入、刪除或修改這些資料。
- 無縫式共同作業。有了 SQL 資料庫,您可即時修改結構描述。這表示任何使用者都可以新增、移除及修改每一欄和列內的資料,甚至移除欄和列本身,所有這些行為都不會中斷其他使用者的工作流程。
- 乾淨、可靠的資料。SQL 資料庫不僅可維持所有伺服器執行個體的一致性,還能減少與插入和刪除相關的資料冗餘,這對於在處理大量交易數時還得以保持正確性和速度都至關重要。
- 輕鬆存取和學習。SQL 以純英文撰寫而非以複雜的程式碼,讓一般使用者更容易選取、插入、更新及刪除資料 (他們只需要了解函式和語法)。
- 社群支援。由於 SQL 是開放原始碼語言,因此全球開發人員社群都會加以支援,這些開發人員在有需要時都會提供持續更新、文件與疑難排解說明。
SQL 資料庫的常見使用案例
在以資料為中心的世界,SQL 資料庫領先群倫。軟體公司、銀行、政府機構、大學以及不同產業的組織都仰賴關聯式資料庫來儲存記錄、管理資料,以及執行重要的商務作業。以下是許多使用案例中的其中幾項:
- 任務關鍵性應用程式。透過高度結構化、集中式資料使用 SQL 技術的金融系統、支付處理器和其他任務關鍵性應用程式來支援交易,並在過程中提供額外層級的安全性。
- 商業智慧。BI 分析師在廣泛的產業中使用關聯式資料庫來提取報告,並將其提供給營運、人力資源、銷售、倉儲與行銷部門以進一步分析和制定決策。
- 資料完整性。使用私人、敏感性資料集的應用程式仰賴 SQL 技術來設定完整定義的限制式、避免資料重複,以及建立資料完整性。這可確保資料不僅維持可靠與安全,也符合不可部分完成、一致性、隔離性和持久性 (ACID) 的標準,亦稱為 ACID 合規性。
- 其他應用程式類型。處理大量結構化資料集但不是 總需要應用程式為開啟狀態的應用程式,會依賴 SQL 資料庫來支援週期性縮放和成長。
資料庫類型
現在您了解了 SQL 資料庫的權益和應用,讓我們看看不同的類型,以及它們彼此之間差異程度的概觀。
首先,您需要判斷何時要選擇關聯式資料庫,而非選擇非關聯式資料庫,反之亦然。由於 SQL 資料庫為結構化,因此非常適合於處理交易、記錄和程式庫。NoSQL 資料庫具有支援所有形式資料的能力,包括文字、映像、IoT 通知,以及其他形式的巨量資料。SQL 和 NoSQL 資料庫都讓其各自形式的資料可供搜尋和分析使用。
讓我們看看一些常用的 SQL 和 NoSQL 資料庫:
- SQL Server。SQL 資料庫服務通常是建置在關聯式資料庫管理系統上,而且許多服務都有雲端運算的功能。例如 Azure SQL,是一系列基於 SQL Server 資料庫引擎所建置,並託管於 Azure 雲端中的受控 SQL 資料庫服務。
- PostgreSQL。PostgreSQL 是進階物件關聯式資料庫管理系統 (ORDBMS),可儲存和縮放太複雜而無法由您的標準系統支援的工作負載。適用於 PostgreSQL 的雲端式服務 (例如 Azure Database for PostgreSQL) 提供了額外的企業功能和擴充性,以及 PostgreSQL 開放原始碼社群的支援。
- MySQL。MySQL 是現代應用程式開發中最受歡迎且最廣為使用的開放原始碼關聯式資料庫管理系統之一。MySQL 不同於 SQL,是一種軟體,而非語言。受控 MySQL 資料庫服務 (例如 Azure MySQL Database) 可讓您在數分鐘內提供資料庫,並快速進行縮放。
- NoSQL。NoSQL 資料庫服務可讓使用者以任何大小或規模來開發現代化、回應式、高效能的應用程式。它們也支援廣泛類型的開放原始碼資料庫。Azure Cosmos DB 支援 PostgreSQL、MongoDB 和 Apache Cassandra,是完全受控、自動更新和自動縮放。
SQL 的未來
SQL 的未來在雲端,這就是為什麼許多組織現在都選擇使用雲端資料庫,而非選擇傳統內部部署解決方案的原因。雲端資料庫是以雲端平台為基礎而建置和託管的資料庫服務,提供了與內部部署伺服器相同的功能,但還具備雲端運算的基礎結構和可擴縮性。
以下是雲端資料庫與內部部署資料庫的比較:
- 受控服務。完全受控雲端資料庫即服務可簡化並自動化更新、備份、佈建等其他設定工作,以便您可以專注於開發高效能的應用程式。
- 不需要硬體。組織現在可以享有 SQL 資料庫的權益,而不需要購買專用的伺服器硬體來加以支援。此外透過在雲端中進行託管,您的資料庫會一律更新為最新版的 SQL。
- 更高的彈性。雖然多數的內部部署 SQL 資料庫只能支援關聯式資料庫 (例如 MySQL 和 PostgreSQL),但雲端資料庫可支援 SQL 資料庫以及 NoSQL 資料庫 (包括 MongoDB 和 Apache CouchDB)。
- 更容易存取。SQL 資料庫通常就很容易存取,但使用者現在可透過廠商 API 或 Web 介面更輕鬆地存取雲端資料庫。
- 節省成本的可擴縮性。雲端資料庫可根據組織的使用量需求來擴大或縮小,讓組織只使用所需的資源,並且只支付他們使用的費用。
- 災害復原。雲端資料庫在遠端伺服器備份的協助下,即使災害發生或停電的情況下仍可使用且安全。
開始使用 Azure SQL
深入了解雲端資料庫,並且自己來試試看。Azure SQL 是 Azure SQL 系列的一部分,是專為 Azure 雲端所建置的完全受控關聯式資料庫服務。在完全受控 SQL 資料庫的協助下,並透過內建的 AI 功能、自動縮放和備份來建置您的下一個應用程式。
常見問題集
-
結構化查詢語言 (SQL) 是構成所有 SQL 資料庫的程式設計語言 (也稱為關聯式資料庫),可以表格式列和欄的格式儲存及處理高度結構化資料,就像試算表。
-
雲端資料庫是透過雲端託管和存取的資料庫服務,這表示除了提供 SQL 的權益之外,雲端資料庫也包含雲端運算隨附的受控服務、彈性和可擴縮性。
-
雖然 SQL 對於非編碼人員來說是非常容易理解的語言,但您應該對資料在組織中通常的運作方式有確實的理解。若要充分利用 SQL 雲端資料庫所提供的功能,您本身可能需要更熟悉基本資料概念、分析、角色、服務和產品。