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

爲了解決這個問題,需要重構數據並將其分解成多個表格,以消除一些冗餘,如下三個表格所示。
Access關聯數據

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

這裏的問題是,僅僅通過拆分多個表中的數據將無助於告訴某個表中的數據如何與另一個表中的數據相關聯。要連接多個表中的數據,我們必須將外鍵添加到tblOrders表中。

定義關係

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

下面來看看這三種關係 -

1. 一對多的關係

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

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

2. 多對多的關係

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

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

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

3. 一對一的關係

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

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

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

易百教程移動端:請掃描本頁面底部(右側)二維碼並關注微信公衆號,回覆:"教程" 選擇相關教程閱讀或直接訪問:http://m.yiibai.com 。

上一篇:Access備用條件 下一篇:Access創建關係

加QQ羣啦,易百教程官方技術學習羣

  • Java技術羣: 227270512 (人數:2000,等級:LV5,免費:否)
  • MySQL/SQL羣: 418407075 (人數:2000,等級:LV5,免費:否)
  • 大數據開發羣: 655154550 (人數:2000,等級:LV5,免費:否)
  • Python技術羣: 287904175 (人數:2000,等級:LV5,免費:否)
  • 測試工程師(新羣): 415553199 (人數:1000,等級:LV1,免費:是)
  • 前端技術羣(新羣): 410430016 (人數:1000,等級:LV1,免費:是)
  • C/C++技術(新羣): 629264796 (人數:1000,等級:LV1,免費:是)
  • Node.js技術(新羣): 621549808 (人數:1000,等級:LV1,免費:是)
  • Linux技術: 479429477 (人數:2000,等級:LV5,免費:是)
  • PHP開發者: 460153241 (人數:2000,等級:LV5,免費:是)
  • 人工智能: 456236082 (人數:2000,等級:LV5,免費:是)
  • Oracle數據庫: 175248146 (人數:2000,等級:LV5,免費:是)
  • C#/ASP.Net開發者: 579821706 (人數:2000,等級:LV5,免費:是)
  • 數據分析師: 397883996 (人數:1000,等級:LV1,免費:是)R語言,Matlab語言等技術
注意:每個人建議選自己的技術方向加羣,同一個人最多限加3個羣。