9-1 認識 Access 關聯式資料庫
Access 是一個關聯式資料庫,而 " 關聯 " ( Relationship ) 就是指藉由表格的形式找出資料的方法。
假設我們目前需要查詢訂單序號 10 的訂購數量,以下便是利用表格行與列的關聯取得。
除了表格之間行與列的關聯外,每個資料表之間也可以因為欄位關係而產生關聯性。
搶答時間 :
目前市面上以關聯式資料庫使用最廣泛,例如像是 Microsoft SQL Server、SyBase、Informix、MySQL、PostgreSQL ...等 都是屬於關聯式資料庫 。
9-2 認識關聯、主鍵 ( Primary Key ) 與連外鍵 ( Foreign Key )
分割資料表並建立關聯的優點 :
- 節省儲存空間
如果我們能將重複的欄位抽離,另外獨立成不同的資料表,並且建立這些資料表之間的關聯,這麼一來重複的資料就只需輸入一次,也就是說只要建立一筆記錄,當需要這些重複性高的資料時,便可經由關聯取得資料。
- 減少輸入錯誤
但我們若是使用關聯式資料庫,我們就只需要確認被抽離出來欄位輸入的資料是否正確即可,如此便不用經常性的重複輸入,自然而然的就減少了輸入錯誤的機會。
- 方便資料修改
但如果要建立資料表間的關聯,必須由資料表中相同意義、相同資料類型的欄位才可以。
主鍵 ( Primary Key )
資料表之間是由『鍵 ( Key )』來建立彼此的關聯。我們可以為資料表設定主鍵 ( Primary Key )以及連外鍵 ( Foreign Key )。
主鍵 ( Primary Key ) 是用來辨識記錄的欄位,具有唯一性,並且絕不允許重複。通常每個資料表只有一個欄位設定為主鍵,但有時可能沒有一個欄位具有唯一性,便可考慮使用兩個或多個欄位組合起來做為主鍵。
§ 在 Access 中,主鍵最多可由 10 個欄位組成。
連外鍵 ( Foreign Key )
資料表之間的關係是藉由 連外鍵 ( Foreign Key ) 來建立,如果甲資料表中的某個欄位必須對照到乙資料表中的主鍵,才會使該欄位的值變得有意義,如此我們則稱該欄位為甲資料表的連外鍵。
搶答時間 : 主鍵與連外鍵之間的差異之處,在於主鍵具有唯一性,且不可重複;而連外鍵中的資料則可重複。
9-3 資料的完整性
在關聯式資料庫中,一個重要的觀念就是資料完整性 ( Data Integrity )。
而所謂資料完整性,是用來確保資料庫中資料的正確性及可靠性。若是資料庫中的資料不正確或不一致,那就麻煩了。
資料完整性大致分為下列幾種類型 :
- 實體完整性 ( Entity Integrity )
- 區域完整性 ( Domain Integrity )
- 參考完整性 ( Referential Integrity )
- 使用者定義的完整性 ( User-defined Integrity )
搶答時間 : 主鍵,在資料完整性中扮演的功能即為使其具有實體完整性,為了確保資料表中的記錄是 " 唯一 " 的。
9-4 資料表的關聯種類
資料表間的關聯大致上可分為 " 一對一 "、" 一對多 " 與 " 多對多 "等 3 種對應方式。
- 一對一關聯
§ 若有 2 個資料表的主鍵都是相同的,且無特殊考量,可考慮將其合併為一個資料表。
- 一對多關聯
- 多對多關聯
通常資料庫在處理多對多關聯時,因為彼此間的關係太複雜,容易發生問題,因此會將兩個資料表重新設計,或是在加上一個資料表,讓它們之間成為 2 個一對多的關聯,以避免發生問題。
一、選擇題
1. ( 1 ) 『關聯式資料庫』是" 使用兩個資料表的共通欄位來相互關聯 "。
2. ( 2 ) 我們是利用關聯式資料庫中的" 連外鍵 "來建立兩個資料表間的關聯。
3. ( 1 ) 在資料表中,我們利用 " 主鍵 " 來做為唯一識別該筆記錄的依據。
4. ( 3 ) 我們在資料表中設定 " 主鍵 " 可確保資料表的實體完整性。
二、填充題
1. 資料完整性大致可分為 實體完整性、區域完整性、參考完整性 及 使用者定義的完整性等 4 種類型。
2.若我們在書籍訂單資料表的單價欄位設定資料的範圍為 100 到 999 之間,是為了要維護資料的 區域 完整性。
三、問答題
1.
- 若關聯為一對一時,表示甲資料表中的一筆記錄,只能對應到乙資料表中的一筆記錄,而乙資料表中的一筆記錄也只能對應到甲資料表中的一筆記錄。
- 若是一對多時,表示甲資料表中的一筆記錄可對應到乙資料表中的多筆記錄;而乙資料表中的一筆記錄只能對應甲資料表中的一筆記錄。
- 而在多對多時,則表示表示甲資料表的一筆記錄能夠對應到乙資料表中的多筆記錄;而乙資料表中的一筆記錄也能對應到甲資料表中的多筆記錄。
- 節省儲存空間
- 減少輸入錯誤
- 方便資料修改
3. 所謂的參考完整性是用來確保相關資料表間的資料一致,避免因一個資料表的記錄改變,而造成另一個資料表的內容變成無效值。
沒有留言:
張貼留言