SQL 資料庫又稱關聯式資料庫,這套系統能將資料儲存並整理成由資料欄和資料列組成高度結構化表格。這些資料庫能讓結構化查詢語言 (SQL) 讀寫資料,因此被歸類為關聯式資料庫管理系統 (RDBMS)。
SQL 陳述式係用以建立並更新資料表的結構、讀寫資料、管理使用者授權,以及執行管理任務。舉例來說,CREATE 陳述式用於建立資料表,INSERT 陳述式會在資料表中新增資料列,SELECT 陳述式則會執行資料庫查詢。進行結構性或管理性變更的陳述式,通常會留給軟體開發人員和系統管理員使用,讀寫作業則由使用者應用程式執行。
關聯式資料庫可以連結多個資料表的資訊。這種格式能讓使用者快速獲得資料表內各個欄位或資料點間彼此關聯的深入分析。關聯式資料庫也能針對特定欄位建立索引,方便快速查詢。
例如,醫療機構可維護包含患者資訊資料列的資料表,每一列標示一名患者,欄位則包含患者姓名、保險資訊和聯絡資料等資料點。另外還可用第二份資料表儲存約診資訊。關聯式資料庫會為各列賦予專屬 ID,藉此維護兩份資料表之間互相關聯的患者資訊。如此一來,您就能快速查詢每位患者的約診資料。
歡迎申請免費試用任何 Google Cloud SQL 資料庫,包括 AlloyDB、Cloud SQL 和 Spanner。
SQL (結構化查詢語言) 是一種程式設計語言,用於儲存、擷取並管理關聯式資料庫內的資料。SQL 陳述式類似英文,有助軟體開發人員、資料分析師和其他從業人員輕鬆理解。
企業選擇 SQL 資料庫的原因包括:
不少 SQL 資料庫引擎 (產品) 用於建構軟體應用程式,部分最常見的工具包括 PostgreSQL、MySQL、SQL Server 和 Oracle。有些資料庫引擎為開放原始碼,有些則是商業產品。
PostgreSQL 是開放原始碼的物件關聯式資料庫 (ORDBMS),專為企業等級的效能設計,可靠性和強大功能深受重視。憑藉悠久的開發歷史與對 SQL 的應用,這項服務躋身全球最受歡迎的開放原始碼資料庫行列。
預設的程序語言是 pgSQL (PL/pgSQL) 的擴充功能,標準發行版本包含 Tcl、Perl 和 Python 等程序語言擴充功能 (寫成 PL/Tcl、PL/Perl 和 PL/Python)。透過擴充功能可獲得更多語言支援,包括 Java、Ruby、C、C++、Delphi 和 JavaScript。
如需瞭解詳細比較資訊,請參閱 PostgreSQL 與 SQL 的比較指南。
MySQL 是 1995 年建立的熱門開放原始碼關聯式資料庫,目前由 Oracle 贊助運作。這項資料庫支援 SQL 查詢,可透過圖形使用者介面 (GUI) 或指令列管理。
MySQL 可以經由實體機器或雲端服務供應商手動部署。為了減輕資料庫的維護負擔,越多越多企業轉為使用全代管服務。
SQL Server 是 Microsoft 擁有的資料庫,可執行 SQL 查詢。深入瞭解 PostgreSQL 和 SQL Server 之間的差異。
市面上有許多常見的非關聯式資料庫引擎,其中有不少使用非表格形式儲存資料。有的引擎支援類似 SQL 的查詢,「NoSQL」(全稱為 Not only SQL) 一詞便於焉誕生。
為什麼機構要為某些應用程式採用非關聯式 NoSQL 資料庫,卻為其他應用程式沿用關聯式 SQL 資料庫?一般來說,何謂合適的資料庫是取決於用途。以下說明使用 SQL 與 NoSQL 的時機。
SQL 資料庫在管理結構化關聯性資料和複雜的查詢項目方面表現優異。SQL 資料庫符合 ACID 規範,適合用於資料結構較大的交易資訊。舉例來說,銷售訂單很適合使用 SQL 資料庫,因為所有訂單都包含相同的欄位,且須維持資料的完整性。
相反地,NoSQL 資料庫使用非表格形式儲存資料。資料的形式可以是文件、鍵/值組合、圖表,以及其他不適用於關聯式模型的格式。舉例來說,網站就很適合使用文件資料庫,因為不同的頁面可能包含不同的結構。
SQL 用途的範例包括:
有別於 SQL 資料庫,NoSQL 資料庫無須管理複雜的資料關係和大量索引功能,因此這類資料庫通常具備高擴充性,且可提供一致效能。NoSQL 資料庫一般採用水平擴展架構實作,資料庫能在需要額外容量時自動新增節點。
NoSQL 資料庫具備的這些屬性,使其適用於講求大規模且需頻繁變更資料的應用程式。這類資料庫無須維護複雜的資料關係,因此新增節點對查詢效能幾乎不會造成影響。
常見的 NoSQL 用途包括:
進一步瞭解 NoSQL 資料庫。