資料庫程式設計與系統管理 SQL Server 2005 Express 第六章 進階資料庫設計
2 Chapter 6 Outline 6-1 建立示範資料庫 6-2 設定整合限制 6-3 設定欄位的識別 6-4 使用者自訂資料型態 6-5 設定計算欄位 6-6 使用資料庫圖表管理資料表 6-7 瀏覽資料表的各種設定 6-8 本章總結
3 6-1 建立示範資料庫 建立示範資料庫 (TradeDB) 的方法 使用第 5 章介紹的方法手動建立 使用第 5 章介紹的方法手動建立 使用指令碼 (Script) 整批建立 ( 現在要使用的方法 ) 使用指令碼 (Script) 整批建立 ( 現在要使用的方法 ) 使用資料庫還原 ( 第 15 章 ) 使用資料庫還原 ( 第 15 章 ) 使用資料庫附加 ( 第 15 章 ) 使用資料庫附加 ( 第 15 章 ) 請在 SSMSE 中開啟光碟 \ 程式範例檔 \CH06\CRETRADEDB.SQL ,執行該 SQL 敘 述後即可建立示範資料庫與相關資料
4 6-2 設定整合限制 關聯式資料庫中存在著一些基本的規定, 稱之為整合限制 (Integrity Constraints) 。包 括: 個體整合 (Entity Integrity) 限制 個體整合 (Entity Integrity) 限制 主鍵 (PK) 某一資料欄位的資料值的有效範圍 ( 規則或檢查 ) 唯一性、可否為 NULL 、預設值 參考整合 (Reference Integrity) 限制 參考整合 (Reference Integrity) 限制 外來鍵 (FK) 限制 本節將一一介紹這些整合限制設定方法
5 6-2 設定整合限制 - 主鍵限制 1. 先選擇欄位,該欄 位的左方會出現一 個黑色的三角形。 2. 按下該按鈕 ( 設 定主鍵索引 ) 3. 出現鑰匙符號表 示設定完成 主鍵限制關聯 式資料庫模型 裏最常用到的 限制式,因為 它能確保在同 一資料表中不 會有重覆的記 錄。當主鍵建 立之時, SQL Server 也會建立 和主鍵宣告相 符的索引。
6 6-2 設定整合限制 - 主鍵限制 設定為主鍵的欄位是不允許 NULL 主鍵可以是組合鍵 ( 多個欄位所組合成的鍵 ) , 例如: items 資料表中的 (order_num,item_num) 即是組合鍵為主鍵。 設定組合欄位成為主鍵時,請先使用 或 鍵來一次選擇多個欄位,然後再按 [ 設定主索引鍵 ] 按鈕。 為何需要組合鍵才能當主鍵呢?
7 6-2 設定整合限制 - 預設值限制 通常在做資料輸 入時每個欄位並 不一定要給值, 這是因為在輸入 時欄位的值還沒 有確定 。 如果對於一個欄 位在沒有輸入的 情況下要給定某 一個值時就可以 設定預設值,例 如:訂單輸入日 期可以預設為 “ 今 天 ” 請在此處填 入預設數值
8 6-2 設定整合限制 - 檢查限制 在此處輸入限制 的條件 檢查 (CHECK) 限制可以強制約束資料行接 受的值,藉此強制完成個體值域的完整性。 例如,公司規定單筆訂單中貨品一次不能訂 超過 20 件,此時就可以在訂單細項檔案 (items) 的 quantity 上加入這樣的檢查。 檢查限制的語法符合 SQL 敘述的語法 選擇欲設定檢查限制的欄位後點選 SSMSE 主選單上的 [ 資料表設計工具 ] [ 檢查條件約 束 ] 選項即可進行設定。
9 6-2 設定整合限制 - 參考整合限制 參考整合限制是規範兩個關聯表中值組間 的限制,透過外鍵 (Foreign Key) 的設定 以達到此目標。 設定外來鍵並不會因此而自動建立索引被外來鍵所參考的鍵,必須具有唯一性資料庫中應保證不存在有無效的外來鍵
設定整合限制 - 參考整合限制 刪除外來鍵所參考的目標: No Action(Restricted) :在無外來鍵參考的情況 之下方可刪除。 No Action(Restricted) :在無外來鍵參考的情況 之下方可刪除。 Cascade :同時刪除參考到該目標的相關資料。 Cascade :同時刪除參考到該目標的相關資料。修訂外來鍵所參考的目標: No Action(Restricted) :在無外來鍵參考的情況 之下方可修改。 No Action(Restricted) :在無外來鍵參考的情況 之下方可修改。 Cascade :同時修改參考到該目標的相關資料。 Cascade :同時修改參考到該目標的相關資料。
設定整合限 - 參考整合限制
設定欄位的識別 具識別屬性的欄位系統會自動編號,並保 證在該資料表中的唯一性 只有整數型態的欄位方能使用識別 系統依設定的識別值種子起始,並每次增 加識別值增量中所設定的值。 例如: [ 識別值種子 ] 設為 [100] , [ 識別值增量 ] 設 定為 [2] ,則系統的編號將為 100,102,104,106… 例如: [ 識別值種子 ] 設為 [100] , [ 識別值增量 ] 設 定為 [2] ,則系統的編號將為 100,102,104,106… 如有刪除資料再新增資料,則被刪除的編號也 不會再出現 如有刪除資料再新增資料,則被刪除的編號也 不會再出現
設定欄位的識別 選擇 [ 是 ] 設定種子 與增量
使用者自訂資料型態 當系統資料型態之不足,或是為了容易辨 識時使用者可以自行設計所需的資料型態。 使用者自訂資料型態是系統資料型態所組 成,例如 :char(10) 。 設計好使用者自訂資料型態之後在資料宣 告或是資料表設計時都可以使用,就像使 用統資料型態一樣。
設定計算欄位 計算欄位 (Computed Column) 就是欄位在 定義之時是一個「計算式」而非「資料型 態」。 計算欄位並不會儲存實際計算後的資料值, 而是在每次顯示時才重新計算以確保能顯 示正確的值。
設定計算欄位 在使用計算欄位時,有下列幾點的限制: 被計算欄位所參考的欄位必須位於同一資料表 被計算欄位所參考的欄位必須位於同一資料表 一個計算欄位的建立不能包含子查詢 一個計算欄位的建立不能包含子查詢 計算欄位所參考的欄位不能是主鍵、外來鍵或 是唯一索引鍵的一部份 計算欄位所參考的欄位不能是主鍵、外來鍵或 是唯一索引鍵的一部份 如果將預設值與計算欄位結合,則預設值的設 定無效 如果將預設值與計算欄位結合,則預設值的設 定無效 計算欄位不能接受 INSERT 與 UPDATE 的敘述 計算欄位不能接受 INSERT 與 UPDATE 的敘述
設定計算欄位 在此輸入計 算公式
使用資料庫圖表管理資料表 資料庫圖表 (Diagram) 最 主要是描述資 料庫中資料表 間的關係。只 要原先有設定 FK 關聯,則 在新增資料庫 圖表時關係圖 就會自動建立。
使用資料庫圖表管理資料表 資料庫圖表 可以用來建 立、編輯或 刪除資料表、 資料行、索 引鍵、關聯 性以及條件 約束。 按著滑鼠左鍵移動 滑鼠指標到參考表 格上,然後放開滑 鼠左鍵即可建立 FK
瀏覽資料表的各種設定 資料表在關聯 式資料庫中佔 有非常重要的 地位,因此在 SSMSE 中對 於資料表的各 種設定都分門 別類的加以顯 示,可針對某 張資料表好好 的進行研究
本章總結 關聯式資料庫中存在著一些基本的規定,稱之為整 合限制 (Integrity Constraints) ,而整合限制又可分為 參考整合 (Reference Integrity) 與個體整合 (Entity Integrity) 個體整合限制是規範一個關聯表欄位的限制條件 ( 如 資料欄位的主鍵限制、資料值的有效範圍 ( 檢查 ) 、唯 一性、可否為 NULL 、預設值等 ) 而參考整合性限制 是說當資料庫中有外來鍵的參考關係存在時,資料 庫或資料的更動就應保證資料庫中不存在無效的外 來鍵 資料庫圖表 (Diagram) 最主要是描述資料庫中資料表 間的關係,除此之外也可以做資料表與關聯性的管 理。