2010年10月11日 星期一

Ch9. 關聯式資料庫的基本知識

重點整理 :

9-1  認識 Access 關聯式資料庫

Access 是一個關聯式資料庫,而 " 關聯 " ( Relationship ) 就是指藉由表格的形式找出資料的方法。

假設我們目前需要查詢訂單序號 10 的訂購數量,以下便是利用表格行與列的關聯取得。


 除了表格之間行與列的關聯外,每個資料表之間也可以因為欄位關係而產生關聯性。

搶答時間 :

目前市面上以關聯式資料庫使用最廣泛,例如像是 Microsoft SQL ServerSyBaseInformixMySQLPostgreSQL ...等 都是屬於關聯式資料庫 。

9-2  認識關聯、主鍵 ( Primary Key ) 與連外鍵 ( Foreign Key )

分割資料表並建立關聯的優點 :
  • 節省儲存空間
由於資料庫中的資料時常會發生重複的情況,若每一次都要輸入相同的資料,不就容易浪費儲存的空間。

如果我們能將重複的欄位抽離,另外獨立成不同的資料表,並且建立這些資料表之間的關聯,這麼一來重複的資料就只需輸入一次,也就是說只要建立一筆記錄,當需要這些重複性高的資料時,便可經由關聯取得資料
  • 減少輸入錯誤
如果經常需要輸入同樣的資料,難免會有漏打或打錯字的情況發生,使得相同的資料,變成 2 筆不同的資料。

但我們若是使用關聯式資料庫,我們就只需要確認被抽離出來欄位輸入的資料是否正確即可,如此便不用經常性的重複輸入,自然而然的就減少了輸入錯誤的機會。
  • 方便資料修改
若有一天我們需要去修改輸入重複性高且數量多的記錄,如果沒建立關聯的資料表,我們就必須一筆一筆記錄的去修改。但若使用關聯式資料庫,我們只要從抽離的另一個資料表中修改一筆記錄,這樣所有關聯的值,便會全部修改過來了。

但如果要建立資料表間的關聯,必須由資料表中相同意義相同資料類型的欄位才可以。

主鍵  ( Primary Key )

資料表之間是由『 ( Key )』來建立彼此的關聯。我們可以為資料表設定主鍵 ( Primary Key )以及連外鍵 ( Foreign Key )。

主鍵 ( Primary Key ) 是用來辨識記錄的欄位,具有唯一性,並且絕不允許重複。通常每個資料表只有一個欄位設定為主鍵,但有時可能沒有一個欄位具有唯一性,便可考慮使用兩個或多個欄位組合起來做為主鍵。

§ 在 Access 中,主鍵最多可由 10 個欄位組成。

連外鍵 ( Foreign Key )

資料表之間的關係是藉由 連外鍵 ( Foreign Key ) 來建立,如果甲資料表中的某個欄位必須對照到乙資料表中的主鍵,才會使該欄位的值變得有意義,如此我們則稱該欄位為甲資料表的連外鍵

搶答時間 : 主鍵與連外鍵之間的差異之處,在於主鍵具有唯一性,且不可重複;而連外鍵中的資料則可重複



9-3  資料的完整性

在關聯式資料庫中,一個重要的觀念就是資料完整性 ( Data Integrity )

而所謂資料完整性,是用來確保資料庫中資料的正確性可靠性。若是資料庫中的資料不正確或不一致,那就麻煩了。

資料完整性大致分為下列幾種類型 :

  • 實體完整性 ( Entity Integrity )
實體完整性是為了確保資料表中的記錄是 " 唯一 " 的。像是我們設定主鍵的目的就是為了達成實體完整性。
  • 區域完整性 ( Domain Integrity )
區域完整性是為了確保資料在允許的範圍中,例如日期中月份的資料範圍在 1 ~ 12 之間,若輸入的資料不在此範圍內,即是不符合區域完整性,會被 Access 拒絕。
  • 參考完整性 ( Referential Integrity )
參考完整性是用來確保相關資料表間的資料一致,避免因一個資料表的記錄改變,而造成另一個資料表的內容變成無效值
  • 使用者定義的完整性 ( User-defined Integrity )
顧名思義,這項完整性是由使用者自行定義的,且又不屬於前面三種的完整性。例如有一個同學都不交作業超過半學期,這樣期中考後就拒收他的作業了,這就是由使用者定義的完整性限制。

搶答時間 : 主鍵,在資料完整性中扮演的功能即為使其具有實體完整性,為了確保資料表中的記錄是 " 唯一 " 的。


9-4  資料表的關聯種類

資料表間的關聯大致上可分為 " 一對一 "、" 一對多 " 與 " 多對多 "等 3 種對應方式。

  • 一對一關聯
當兩個資料表之間是一對一關聯時,表示甲資料表中的一筆記錄,只能對應到乙資料表中的一筆記錄,而乙資料表中的一筆記錄也只能對應到甲資料表中的一筆記錄。



§  若有 2 個資料表的主鍵都是相同的,且無特殊考量,可考慮將其合併為一個資料表
  • 一對多關聯
這是最常見的一種關聯,當兩個資料表之間是一對多關聯時,表示甲資料表中的一筆記錄可對應到乙資料表中的多筆記錄;而乙資料表中的一筆記錄只能對應甲資料表中的一筆記錄。


  • 多對多關聯
當兩個資料表之間是多對多關聯時,表示甲資料表的一筆記錄能夠對應到乙資料表中的多筆記錄;而乙資料表中的一筆記錄也能對應到甲資料表中的多筆記錄。



通常資料庫在處理多對多關聯時,因為彼此間的關係太複雜,容易發生問題,因此會將兩個資料表重新設計,或是在加上一個資料表,讓它們之間成為 2 個一對多的關聯,以避免發生問題。


一、選擇題

1. ( 1 ) 『關聯式資料庫』是" 使用兩個資料表的共通欄位來相互關聯 "。

2. ( 2 ) 我們是利用關聯式資料庫中的" 連外鍵 "來建立兩個資料表間的關聯。

3. ( 1 ) 在資料表中,我們利用 " 主鍵 " 來做為唯一識別該筆記錄的依據。

4. ( 3 ) 我們在資料表中設定 " 主鍵 " 可確保資料表的實體完整性。



二、填充題

1. 資料完整性大致可分為 實體完整性區域完整性參考完整性使用者定義的完整性等 4 種類型。

2.若我們在書籍訂單資料表的單價欄位設定資料的範圍為 100 到 999 之間,是為了要維護資料的 區域 完整性。


三、問答題

1.
  • 關聯一對一時,表示甲資料表中的一筆記錄,只能對應到乙資料表中的一筆記錄,而乙資料表中的一筆記錄也只能對應到甲資料表中的一筆記錄。
  • 若是一對多時,表示甲資料表中的一筆記錄可對應到乙資料表中的多筆記錄;而乙資料表中的一筆記錄只能對應甲資料表中的一筆記錄。
  •  而在多對多時,則表示表示甲資料表的一筆記錄能夠對應到乙資料表中的多筆記錄;而乙資料表中的一筆記錄也能對應到甲資料表中的多筆記錄。
2. 分割資料表並建立關連的優點 :
  • 節省儲存空間

  • 減少輸入錯誤

  • 方便資料修改


3. 所謂的參考完整性是用來確保相關資料表間的資料一致,避免因一個資料表的記錄改變,而造成另一個資料表的內容變成無效值

沒有留言:

張貼留言