Access關聯資料


在這一章中,我們將了解學習相關資料的基礎知識。 在討論和建立不同資料之間的關係之前,讓我們來看看為什麼需要關聯資料。 這一切都回歸規範化。

規範化

資料庫規範化或簡單規範化是組織關聯式資料庫的列(屬性)和表(關係)以最小化資料冗餘的過程。 這是將資料分解到多個表格以提高整體效能,完整性和永續性的過程。

  • 規範化是在資料庫中組織資料的過程。
  • 這包括建立表並根據設計的規則在這些表之間建立關係,以保護資料並通過消除冗餘和不一致的依賴性來使資料庫更加靈活。

下面來看看下面的包含資料的表格,但問題是這個資料是相當多餘的,這增加了輸入資料時輸入錯誤和不一致的機會。

客戶編號 名字 地址 餅乾 數量 價格 總計
1 Ethel Minsu 12 Main St, Arlington, VA 22201 S 巧克力片 5 ¥2.00 ¥10.00
2 Tom Wilber 1234 Oak Dr., Pekin, IL 61555 巧克力片 3 ¥2.00 ¥6.00
3 Ethil Minsuy 12 Main St., Arlington, VA 22201 巧克力片 5 ¥2.00 ¥10.00

為了解決這個問題,需要重構資料並將其分解成多個表格,以消除一些冗餘,如下三個表格所示。

在這裡,有三個表:第一個是:tblCustomers表,第二個是:tblOrders表,第三個是:Cookies表。

這裡的問題是,僅僅通過拆分多個表中的資料將無助於告訴某個表中的資料如何與另一個表中的資料相關聯。要連線多個表中的資料,我們必須將外來鍵新增到tblOrders表中。

定義關係

關係通過匹配主鍵列中的資料來工作,通常是兩個表中具有相同名稱的列。 在大多數情況下,該關係與一個表中的主鍵相匹配,該錶為每行提供一個唯一的識別符號,在另一個表中的外來鍵中包含一個條目。 表格之間有三種型別的關係。 所建立關係的型別取決於相關列的定義方式。

下面來看看這三種關係 -

1. 一對多的關係

一對多的關係是最常見的關係型別。 在這種型別的關係中,表A中的行可以在表B中具有許多匹配的行,但是表B中的行在表A中只能有一個匹配的行。

例如,客戶和訂單表具有一對多的關係:每個客戶可以有很多訂單,但每個訂單僅來自(或屬於)一個客戶。

2. 多對多的關係

在多對多關係中,表A中的一行可以在表B中具有多個匹配的行,反之亦然。

可以通過定義第三個表(稱為連線表)來建立這樣的關係,該連線表的主鍵由來自表A和表B的外來鍵組成。

例如,Customers表和Cookies表具有多對多的關係,這些關係由從這些表中的每個表到Orders表的一對多關係定義。

3. 一對一的關係

在一對一的關係中,表A中的一行可以在表B中不超過一個匹配的行,反之亦然。 如果相關列是主鍵或者具有唯一約束,則建立一對一關係。

這種型別的關係並不常見,因為大多數以這種方式相關的資訊將全部在一個表中。可以使用一對一的關係來做以下工作 -

  • 將表分成許多列。
  • 出於安全原因隔離表的一部分。
  • 儲存短暫的資料,只需刪除該表即可輕鬆刪除。
  • 儲存僅適用於主表的子集的資訊。