關聯式資料庫是一組資訊,以預先定義的關係整理資料,可將資料儲存在一或多個資料表 (或「關係」) 的資料欄或資料列中,以輕鬆查看及瞭解不同的資料結構之間有何關聯。「關係」是不同資料表之間的邏輯連結,根據這些資料表之間的互動來建立。
瞭解 Google Cloud 的關聯資料庫 Cloud SQL、Cloud Spanner 和 PostgreSQL 適用的 AlloyDB 如何協助您降低營運成本,以及建構具變革性的應用程式。
準備好了嗎?建立可免費試用 90 天的 Cloud Spanner 執行個體,免費享有 10 GB 儲存空間。
關聯資料庫 (RDB) 是在資料表、資料列和資料欄中建構資訊的方式。RDB 可透過彙整資料表來建立資訊之間的關聯或關係,以便輕鬆瞭解各資料點之間的關係並取得深入分析。
關聯式資料庫模型由來自 IBM 的 E.F. Codd 於 1970 年代開發出來,允許任何資料表使用通用屬性與其他資料表建立關聯。Codd 不是使用階層結構來整理資料,而是提議改用資料模型。在此資料模型中,我們可以在資料表儲存、存取資料,並為資料建立關聯,而不需重新整理內含資料的資料表。
關聯式資料庫是一個試算表檔案集合,可協助企業整理、管理資料,並為資料建立關聯。在關聯式資料庫模型中,每個「試算表」都是儲存資訊的資料表,以資料欄 (屬性) 和資料列 (記錄或元組) 表示。
屬性 (資料欄) 會指定資料類型,而每筆記錄 (或資料列) 含有該特定資料類型的值。關聯式資料庫中的所有資料表都有一個屬性,稱為主鍵,這是資料列的專屬 ID,而且每個資料列都可使用外鍵 (其他現有資料表的主鍵參照) 來與不同資料表建立關係。
來看看關聯式資料庫模型的實際運作方式:
假設您有「客戶」資料表和「訂單」資料表。
客戶資料表含有客戶相關資料:
在客戶資料表中,客戶 ID 是主鍵,專門用來在關聯式資料庫中識別客戶。所有客戶的客戶 ID 都不同。
訂單資料表含有訂單相關的交易資訊:
這裡顯示用於識別特定訂單的主鍵為訂單 ID。您可以使用外鍵來連結「客戶」資料表中的客戶 ID,藉此將客戶連結至訂單。
這兩個資料表現在是以共用的客戶 ID 建立關聯,因此您可以查詢兩個資料表以建立正式報表,或使用其他應用程式的資料。舉例來說,零售分公司主管可以針對在特定日期完成購物交易的所有客戶產生相關報表,或找出上個月哪些客戶訂單的送達日期有所延遲。
以上敘述只是簡單的說明。但關聯資料庫也能顯示資料之間的複雜關係,讓您在資料符合資料庫的預先定義關聯結構定義時,可在更多資料表中參照資料。
由於資料是以預先定義關係的形式整理,所以您可以在宣告時查詢資料。宣告式查詢可定義您要從系統中擷取的內容,而無須指出系統如何計算結果。此為關聯系統的核心,而非其他系統。
現在,您已瞭解關聯資料庫的運作方式,接著您可以探索許多使用關聯資料庫模型的關聯資料庫管理系統。關聯式資料庫管理系統 (RDBMS) 是用來建立、更新及管理關聯式資料庫的程式。一些最著名的 RDBMS 包括 MySQL、PostgreSQL、MariaDB、Microsoft SQL Server 和 Oracle 資料庫。
由於 Cloud SQL、Cloud Spanner 和 AlloyDB 等雲端式關聯資料庫提供資料庫的代管服務 (包括維護、修補、容量管理、佈建和基礎架構支援),因此日漸普及。
準備好了嗎?建立可免費試用 90 天的 Cloud Spanner 執行個體,免費享有 10 GB 儲存空間。
關聯資料庫模型的主要優點,在於能以簡單直覺的方式呈現資料,並可以輕鬆存取相關的資料點。因此,關聯資料庫最常用在需要管理大量結構化資料的組織,從追蹤庫存、處理交易資料到應用程式記錄皆由組織負責管理。
使用關聯資料庫管理和儲存資料還有其他優勢,包括:
彈性
您不需要變更整個資料庫結構或影響現有的應用程式,就能輕鬆新增、更新或刪除資料表和關係,也可以視需要對資料進行其他變更。
ACID 法規遵循
關聯資料庫支援 ACID (獨立性、一致性、隔離、耐用性) 效能,以確保不論發生錯誤、失敗或其他潛在事故,都能確保資料有效性。
易用性
使用 SQL 可以輕鬆執行複雜的查詢,有了這項技術,即使是非技術人員也能瞭解如何與資料庫互動。
協同作業
多位使用者可同時操作及存取資料。內建的鎖定功能可防止系統在更新資料時同時存取資料。
內建安全防護機制
角色型的安全機制可確保資料存取權僅限於特定使用者。
資料庫正規化
關聯資料庫採用稱為「正規化」的設計技術,可減少重複資料,並改善資料完整性。
關聯和非關聯資料庫 (NoSQL 資料庫) 的主要差異在於資料的儲存和整理方式。非關聯資料庫不會以規則式表格形式儲存資料。而是將資料儲存為個別且未連結的檔案,並可用於複雜的非結構化資料類型,例如文件或互動式多媒體檔案。
與關聯資料庫不同,NoSQL 資料庫採用彈性的資料模型,適合用來儲存經常變更的資料或處理各類型資料的應用程式。