鍍金池/ 教程/ 數(shù)據(jù)庫/ Access關(guān)聯(lián)數(shù)據(jù)
Access關(guān)聯(lián)數(shù)據(jù)
Access數(shù)據(jù)庫簡介
Access索引
Access創(chuàng)建窗體
Access添加數(shù)據(jù)
Access多對多關(guān)系
Access教程
Access總結(jié)數(shù)據(jù)
Access不匹配項(xiàng)查詢向?qū)?/span>
Access對象
Access創(chuàng)建查詢
Access計(jì)算表達(dá)式
Access操作查詢
Access一對多關(guān)系
Access SQL視圖
Access數(shù)據(jù)類型
Access一對一關(guān)系
Access創(chuàng)建表
Access重復(fù)查詢向?qū)?/span>
Access連接
Access查詢標(biāo)準(zhǔn)(條件)
Access分組數(shù)據(jù)
Access創(chuàng)建關(guān)系
Access關(guān)系型數(shù)據(jù)庫
Access參數(shù)查詢
Access導(dǎo)航窗體
Access通配符
Access備用條件
Access創(chuàng)建數(shù)據(jù)庫
Access查詢數(shù)據(jù)

Access關(guān)聯(lián)數(shù)據(jù)

在這一章中,我們將了解學(xué)習(xí)相關(guān)數(shù)據(jù)的基礎(chǔ)知識。 在討論和創(chuàng)建不同數(shù)據(jù)之間的關(guān)系之前,讓我們來看看為什么需要關(guān)聯(lián)數(shù)據(jù)。 這一切都回歸規(guī)范化。

規(guī)范化

數(shù)據(jù)庫規(guī)范化或簡單規(guī)范化是組織關(guān)系數(shù)據(jù)庫的列(屬性)和表(關(guān)系)以最小化數(shù)據(jù)冗余的過程。 這是將數(shù)據(jù)分解到多個(gè)表格以提高整體性能,完整性和持久性的過程。

  • 規(guī)范化是在數(shù)據(jù)庫中組織數(shù)據(jù)的過程。
  • 這包括創(chuàng)建表并根據(jù)設(shè)計(jì)的規(guī)則在這些表之間建立關(guān)系,以保護(hù)數(shù)據(jù)并通過消除冗余和不一致的依賴性來使數(shù)據(jù)庫更加靈活。

下面來看看下面的包含數(shù)據(jù)的表格,但問題是這個(gè)數(shù)據(jù)是相當(dāng)多余的,這增加了輸入數(shù)據(jù)時(shí)輸入錯(cuò)誤和不一致的機(jī)會(huì)。

客戶編號 名字 地址 餅干 數(shù)量 價(jià)格 總計(jì)
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

為了解決這個(gè)問題,需要重構(gòu)數(shù)據(jù)并將其分解成多個(gè)表格,以消除一些冗余,如下三個(gè)表格所示。

在這里,有三個(gè)表:第一個(gè)是:tblCustomers表,第二個(gè)是:tblOrders表,第三個(gè)是:Cookies表。

這里的問題是,僅僅通過拆分多個(gè)表中的數(shù)據(jù)將無助于告訴某個(gè)表中的數(shù)據(jù)如何與另一個(gè)表中的數(shù)據(jù)相關(guān)聯(lián)。要連接多個(gè)表中的數(shù)據(jù),我們必須將外鍵添加到tblOrders表中。

定義關(guān)系

關(guān)系通過匹配主鍵列中的數(shù)據(jù)來工作,通常是兩個(gè)表中具有相同名稱的列。 在大多數(shù)情況下,該關(guān)系與一個(gè)表中的主鍵相匹配,該表為每行提供一個(gè)唯一的標(biāo)識符,在另一個(gè)表中的外鍵中包含一個(gè)條目。 表格之間有三種類型的關(guān)系。 所創(chuàng)建關(guān)系的類型取決于相關(guān)列的定義方式。

下面來看看這三種關(guān)系 -

1. 一對多的關(guān)系

一對多的關(guān)系是最常見的關(guān)系類型。 在這種類型的關(guān)系中,表A中的行可以在表B中具有許多匹配的行,但是表B中的行在表A中只能有一個(gè)匹配的行。

例如,客戶和訂單表具有一對多的關(guān)系:每個(gè)客戶可以有很多訂單,但每個(gè)訂單僅來自(或?qū)儆?一個(gè)客戶。

2. 多對多的關(guān)系

在多對多關(guān)系中,表A中的一行可以在表B中具有多個(gè)匹配的行,反之亦然。

可以通過定義第三個(gè)表(稱為連接表)來創(chuàng)建這樣的關(guān)系,該連接表的主鍵由來自表A和表B的外鍵組成。

例如,Customers表和Cookies表具有多對多的關(guān)系,這些關(guān)系由從這些表中的每個(gè)表到Orders表的一對多關(guān)系定義。

3. 一對一的關(guān)系

在一對一的關(guān)系中,表A中的一行可以在表B中不超過一個(gè)匹配的行,反之亦然。 如果相關(guān)列是主鍵或者具有唯一約束,則創(chuàng)建一對一關(guān)系。

這種類型的關(guān)系并不常見,因?yàn)榇蠖鄶?shù)以這種方式相關(guān)的信息將全部在一個(gè)表中??梢允褂靡粚σ坏年P(guān)系來做以下工作 -

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