什麼是關聯式資料庫?
關聯式資料庫是一組資料點,項目之間具有預先定義的關係。
關聯式模型將資料整理到資料表中 – 每個資料列代表個別記錄,每個資料欄由包含值的屬性組成。此表格式資料庫結構可讓您在資料點之間輕鬆建立關係,因此可透過各種不同的方式存取資訊,而無需重新整理資料本身。
您可以聯結關聯式資料庫中的資料表,以深入了解不同資料點之間的互連情況。例如,資料表客戶具有包含資料列值 John 和 California 的資料欄名稱和地址。同樣地,資料表產品具有包含資料列值鞋子和 12 美元的資料欄名稱和成本。您可將客戶資料表與產品資料表聯結,以識別客戶更頻繁購買的熱門產品。
簡而言之,關聯式資料庫是存放和存取具有預先定義關係的資料的方式。
什麼是關聯式資料庫管理系統
關聯式資料庫管理系統 (RDBMS) 是管理關聯式資料表的工具和服務軟體層。實際上,RDBMS 和關聯式資料庫術語被認為是同義詞。關聯式資料庫在應用程式、使用者和關聯式資料庫之間提供一致的介面。組織使用 RDBMS 來管理各部門的大量業務關鍵型資訊。
多位使用者能夠以不同的方式使用相同的資料庫。例如,他們可執行資料庫操作並彙總關鍵資料點,而無需建立資料備援。此外,關聯式資料庫管理系統還可讓您的資料庫管理員更好地控制您的資料存取權。
為什麼關聯式資料庫很重要
自電腦發明以來,在機器上管理和存放資料一直是一個持續的研究領域。在關聯式資料庫之前,組織使用階層式資料庫系統,類似於電腦上的資料夾。這些早期的資料庫系統可整理大量資料。然而,它們在如何發現資料關係方面受到限制。這些系統也很複雜,專屬於特定應用程式,並且需要技術專業知識才能使用。
為解決這些問題,關聯式資料庫模型應運而生。它將實體資料儲存與資料庫管理和使用分開。現代關聯式資料庫可讓使用者存放和擷取資料,而無需管理實體資料儲存。您還能夠以程式設計方式操作邏輯資料結構。
關聯式資料庫有哪些優勢
關聯式資料模型的主要優勢是,能夠從資料中衍生有意義的資訊。例如,您可以對資料表中的資料進行計數、排序和分組,以及執行數學運算並產生複雜的報告。因此,關聯式資料庫系統仍是目前最受青睞的資料儲存。下面列出了一些其他優勢。
資料完整性
資料完整性是指資料整體完備無缺、準確而且一致。關聯式資料庫利用一套限制條件讓資料庫達成資料完整性。其中包括主索引鍵、外部索引鍵、「非空白值」限制條件、「唯一」限制條件、「預設」限制條件、「檢查」限制條件。
這些完整性限制條件對表格中的資料實施商業規則,確保資料的準確性和可靠性。除此之外,大部分關聯式資料庫也允許在觸發中內嵌自訂程式碼,當資料庫中的資料點發生某個動作時便會執行。自訂程式碼還可內嵌至用戶端或應用程式調用時執行的存放程序。
安全性
大多數關聯式資料庫管理系統都具有複雜的存取控制。您的資料庫管理員可精確地確定誰可以獲得哪些資料的存取權。即使在個別儲存格層級,您也可以限制讀取、修改和刪除資料的存取權。這種精細的存取控制讓關聯式資料庫非常安全。
備份與災難復原
大多數關聯式資料庫都具有匯入和匯出功能,因此,您可以快速建立資料備份。現代化、以雲端為基礎的雲端關聯式資料庫可執行持續鏡像,因此,您可在幾秒鐘或更短時間內還原遺失的資料。
社群支援
若干關聯式資料庫技術為開放原始碼,並且可免費使用。開放原始碼資料庫讓活躍的社群不斷改進和調整特徵和功能。開發人員和資料工程師可存取各種工具和軟體,讓關聯式資料庫非常便於使用。
關聯式資料庫如何運作
關聯式資料庫可透過提供應用程式存取資料的環境來運作,並以各種方式重新組裝資料,而無須從應用程式的程式碼內重新整理資料表。下面列出了關聯式資料庫系統的一些關鍵特徵。
資料模型
關聯式資料庫由代表現實物件或概念的資料表組成,通常稱為實體。資料表的每一個資料欄保存特定類型的資料,成為屬性,而每個欄位則存放某個屬性的實際值。資料表中的資料列和資料欄代表一個物件或實體的一組相關值。
您可使用稱為主索引鍵的不重複識別符,來標記資料表中的每個資料列。外部索引鍵會參照另一個現有資料表的主索引鍵,並建立邏輯連線。因此,多個資料表中的資料列使用主索引鍵/外部索引鍵對來建立關聯。例如,訂單資料表的每一個資料列都包含外部索引鍵,其中包含客戶 ID,可識別客戶資料表中包含客戶所有相關資訊的資料列。
SQL
結構式查詢語言 (SQL) 是與關聯式資料庫通訊的主要介面。美國國家標準協會 (ANSI) 在 1986 年將 SQL 納入標準。所有常用的關聯式資料庫引擎都支援標準 ANSI SQL。您可以將其用於更新、刪除或存放資料、擷取資料子集,以及管理關聯式資料庫的各個方面。
SQL 相當容易學習,因為它在其陳述式中使用常見的英文關鍵字。此外還能很好地與不同的程式設計語言整合。例如,您可以使用 Java 程式設計語言內嵌 SQL 查詢,以便使用主要 SQL 資料庫系統來建置高效能的資料處理應用程式。
交易處理
關聯式資料庫交易是指透過一連串的操作執行的一個或多個 SQL 陳述式,並形成單一邏輯工作單位。交易提供了「孤注一擲」的提案,意味著整個交易必須以單一單位完成。如果關聯式資料庫管理系統無法完成交易的任何部分,則不會執行個別元件。在關聯式模型術語中,交易的結果包括「認可」(COMMIT) 或「回復」(ROLLBACK)。資料庫管理系統能夠一致且可靠地處理每筆交易,獨立且與其他交易隔離。
ACID 合規
所有關聯式資料庫交易必須符合不可分割性 (Atomic)、一致性 (Consistent)、獨立性 (Isolated) 和耐久性 (ACID) 要求,以確保資料完整性。
不可分割性
不可分割性要求整個交易成功執行。如果交易的部分失敗,做為交易一部分所做的任何變更都會回復。
一致性
一致性要求做為交易的一部分寫入關聯式資料庫的資料,必須遵守所有明定規則以及約束,包括限制條件、級聯、觸發。
隔離
隔離需要每筆交易都是獨立的。當多位使用者嘗試同時修改關聯式資料庫中的資料時,平行控制機制會阻止其相互覆寫變更。
耐久性
持久性要求在一個交易成功完成後,對關聯式資料庫所做的變更都是永久性的。
資料庫有哪些不同的類型
有許多不同類型的資料庫旨在優化某些資料模型的彈性和可擴展性。這些資料庫類型包括:
- 關聯式:資料以表格格式存放,使用個別記錄的資料列及資料欄來存放與記錄相關的屬性或資料點。
- 鍵值:資料以字典格式存放,每個項目都具有一個索引鍵和值。
- 文件:資料以 JSON、XML 或其他半結構化資料格式做為文件來存放。
- 圖形:資料做為知識圖來存放,使用節點、邊緣來定義這些節點之間的關係,以及存放個別資料點的屬性。
關聯式資料庫和非關聯式資料庫有何區別
關聯式和非關聯式 (也稱為 NoSQL) 資料庫之間的區別與其所含資料的結構有關。關聯式資料庫模型將資料整理成資料表、索引和檢視。此表格式結構使用 SQL 等查詢語言,輕鬆建立、讀取、修改和刪除相關資料。每個資料列的結構都相同,就像試算表一樣。
非關聯式資料庫不使用表格式資料結構。取而代之的是,資料做為鍵值對、JSON、圖形,或幾乎任何其他類型的資料結構來存放。許多非關聯式資料庫也稱為 NoSQL 資料庫,因為資料以不需要 SQL 的方式來存放和查詢。
非關聯式資料庫 (NoSQL 資料庫) 是專門針對特定資料模型而建置,並且具有構建新型應用程式的彈性結構描述。這些資料庫在開發的容易性、功能性和大規模效能方面廣受肯定。一些差異點包括:
資料儲存機制
關聯式資料庫將結構化資料存放在以規則為基礎的資料列和資料欄中。相反,NoSQL 資料庫將個別資料元素存放在單獨的檔案中。
彈性結構
關聯式資料庫以表格格式存放資料,並遵循有關資料變化和資料表關係的嚴格規則。非關聯式資料庫提供更大的靈活性,因為它們不需要結構化資料。您可以使用它們來存放檔案、影片和其他非結構化內容。
資料完整性機制
關聯式資料庫模型遵循嚴格的 ACID 屬性。傳統上,非關聯式資料庫提供更靈活的 BASE (基本可用、軟狀態、最終一致性) 模型。它們保證可用性,但並未具有強大的一致性。資料庫狀態可能會隨著時間而變更,並最終實現一致性。現代非關聯式資料庫還提供 ACID、強大的一致性、高可用性等。
選擇關聯式資料庫時有哪些注意事項
關聯式資料庫使用案例可能會因存放的資料類型和磁碟區,以及存取資料所需的效能等級而有所差異。這就是為什麼我們開發了各種關聯式資料庫引擎,從 Amazon Aurora、Oracle 和 Microsoft SQL Server 到 MySQL 和 PostgreSQL,每個引擎都有其自己的優點和缺點。
選擇關聯式資料庫時,務必要考慮是否需要尋找支援它的受管雲端服務供應商。Amazon Relational Database Service (RDS) 是一項全受管資料庫服務,可處理最常用的關聯式資料庫的佈建、修補、備份和其他必要任務。這意味著您可以選擇滿足您使用案例的資料庫引擎,而不必擔心其維護需求。
AWS 如何支援您的關聯式資料庫管理系統需求
Amazon Relational Database Service (Amazon RDS) 是受管服務的集合,方便在雲端設定、操作和擴展關聯式資料庫。雲端資料庫提供許多優勢,例如效能、規模和成本效益。下面列出了 Amazon RDS 上的關聯式資料庫引擎的一些範例。
Amazon Aurora
Amazon Aurora 是一個與 MySQL 和 PostgreSQL 相容的關聯式資料庫引擎。它能整合高階商用資料庫的速度和可用性,並具備開源資料庫的簡易性和成本效益。Amazon Aurora 提供相較於 MySQL 提升高達 5 倍的輸送量,以及相較於 PostgreSQL 提升高達 3 倍的輸送量,而成本卻是商業資料庫的十分之一。
Oracle
Amazon RDS for Oracle 提供符合成本效益、可調整大小的硬體容量,可讓您迅速部署 Oracle 資料庫的多個版本。您可以使用現有的 Oracle 授權,或是依每小時使用量支付授權費用。RDS 可管理複雜的資料庫管理任務,包括佈建、備份、修補、監控和硬體擴展,讓您騰出時間專注於應用程式開發。
Microsoft SQL Server
Amazon RDS for SQL Server 可讓客戶輕鬆設定、操作和擴展雲端的 SQL Server。您可以部署多個版本的 SQL Server,包括 Express、Web、Standard、Enterprise。由於您可以透過 Amazon RDS for SQL Server 直接存取 SQL Server 的原生功能,您的應用程式和工具不需要任何變更即可運作。
MySQL
MySQL 是開放原始碼的關聯式資料庫管理系統,非常多 Web 應用程式都使用它。Amazon RDS for MySQL 讓您能夠存取熟悉的 MySQL 資料庫引擎功能。換句話說,您搭配現有資料庫使用的程式碼、應用程式、工具都不需要任何變更,即可和 Amazon RDS 搭配使用。
PostgreSQL
PostgreSQL 是開放原始碼物件關聯式資料庫系統,注重可擴展性和遵循多項標準。Amazon RDS for PostgreSQL 可管理無差異化的耗時資料庫管理任務,例如 PostgreSQL 軟體安裝、儲存管理和升級。您能夠在幾分鐘內部署並開始使用。
MariaDB
MariaDB 是一個 MySQL 相容的資料庫引擎,是 MySQL 的分叉。它由 MySQL 的原始開發人員開發。Amazon RDS for MariaDB 讓使用者能夠輕鬆地在雲端中設定、操作和擴展 MariaDB 部署。透過 Amazon RDS,您可以在幾分鐘內部署可擴展的 MariaDB 部署,不僅經濟實惠,而且可調整硬體容量大小。
立即建立免費帳戶,開始使用 AWS 上的關聯式資料庫!