SQLSrv Design Chap05

You might also like

Download as ppt, pdf, or txt
Download as ppt, pdf, or txt
You are on page 1of 58

5

資料庫設計工具的使用

• 5-1 資料庫設計的基礎
• 5-2 啟動塑模工具與新增專案
• 5-3 新增實體
• 5-4 建立關聯性
• 5-5 產生資料庫設計報告和建立資料庫
5-1 資料庫設計的基礎
• 5-1-1 資料庫系統開發的生命周期
• 5-1-2 資料庫設計方法論
• 5-1-3 安裝資料庫設計工具
5-1 資料庫設計的基礎
• 「資料庫設計」( Database Design )是一項大
工程,因為資料庫儲存的資料牽涉到公司或組織
的標準化資訊、資料處理和儲存方式,資料庫應
用程式開發不能只會寫程式,還需要擁有資料庫
相關的技術背景。
• 關聯式資料庫設計( Relational Database Desig
n )的目的就是在建立關聯式資料庫,更正確的
說,這是建立關聯式資料庫綱要,也就是定義資
料表、欄位和主索引等定義資料。
5-1-1 資料庫系統開發的生命周期 - 圖

• 資料庫系統開發的生命
周期就是資料庫系統的
開發流程,它和其他應
用程式的開發過程並沒
有什麼不同。資料庫系
統開發的生命周期可以
分成五個階段,其流程
圖如右圖所示:
5-1-1 資料庫系統開發的生命周期 - 說

• 在資料庫系統的開發流程中,第一階段的初步計劃是描述
資料庫系統的目的、功能和預期目標等資訊。第二階段依
照初步計劃進行資料收集、訪查來確定資料庫系統的需求,
在此階段注重的是問題,而不是系統本身,在完成需求的
收集後,就可以開始進行分析。
• 在之後的三個階段是資料庫設計與實作部分,當分析完資
料庫的需求後,就可以在第三階段進行資料庫設計,第四
階段是在選擇的資料庫管理系統來實作資料庫,例如:
SQL Server 。最後第五階段,雖然資料庫系統已經設計
完成,但是,還是需要定時維護資料庫系統,以維持資料
庫系統的正常運作。
5-1-1 資料庫系統開發的生命周期 -
完整資料庫設計
• 在本節主要是說明第三階段的資料庫設計,對比
軟體系統開發,就是系統分析。事實上,完整資
料庫設計分成兩個部分,如下所示:
– 資料庫設計( Database Design ):依照一定程序、
方法和技術,使用結構化方式將概念資料模型(詳見
下一節的說明)轉換成資料庫的過程。
– 應用程式設計( Application Design ):設計程式來建
立使用者介面,並且將商業處理流程轉換成應用程式
的執行流程,以便使用者能夠輕易存取所需的資訊,
即所謂資料庫程式設計( Database Programming 。
5-1-2 資料庫設計方法論 - 說明
• 「資料庫設計方法論」( Database Design
Methodology )是使用特定程序、技術和工具的
結構化設計方法,一種結構化的資料庫設計方法。
簡單的說,這是一種計劃性、按部就班來進行資
料庫設計。
• 對於小型資料庫系統來說,事實上,就算沒有使
用任何資料庫設計方法論,資料庫設計者一樣可
以依據經驗來建立所需的資料庫。但是,對於大
型資料庫設計的專案計劃來說,資料庫設計方法
論就十分重要。
5-1-2 資料庫設計方法論 - 圖例
5-1-2 資料庫設計方法論 -
概念資料庫設計
概念資料庫設計( Conceptual Database Design )
• 概念資料庫設計是將資料庫需求轉換成概念資料
模型的過程,並沒有針對特定資料庫管理系統或
資料庫模型。簡單的說,概念資料模型是一種使
用者了解的模型,用來描述真實世界的資料如何
在資料庫中呈現。實體關聯圖是目前最廣泛使用
的概念資料模型。
5-1-2 資料庫設計方法論 -
邏輯資料庫設計
邏輯資料庫設計( Logical Database Design )
• 邏輯資料庫設計是將概念資料模型轉換成邏輯資
料模型的過程,邏輯資料庫設計是針對特定的資
料庫模型來建立邏輯資料模型,例如:關聯式資
料庫模型。
• 邏輯資料模型是一種資料庫管理系統了解的資料
模型,擁有完整資料庫綱要,我們可以使用第 2
章的外來鍵參考圖建立邏輯資料模型。事實上,
實體關聯圖不只可以建立概念資料模型,它也可
以用來建立邏輯資料模型,其最大差異在於邏輯
資料模型是一個已經正規化的實體關聯圖。
5-1-2 資料庫設計方法論 -
實體資料庫設計
實體資料庫設計( Physical Database Design )
• 實體資料庫設計是將邏輯資料模型轉換成關聯式
資料庫管理系統的 SQL 指令敘述,以便建立資料
庫。簡單的說,實體資料模型可以描述資料庫的
關聯表、檔案組織、索引設計和額外的完整性限
制條件。
5-1-3 安裝資料庫設計工具 - 說明
• 「資料庫設計工具」( Database Design Tool
s )也稱為資料庫塑模工具( Database Modeling
Tools )或資料塑模工具( Data Modeling Tool
s ),這是一套提供完整資料庫設計環境的應用
程式,可以幫助我們執行資料庫設計、建立與維
護資料庫。以關聯式資料庫來說,資料庫設計工
具的最重要功能就是繪製實體關聯圖。
• SQL Power Architect 是 SQL Power Group 公司
開發的一套專業資料庫塑模工具,可以幫助開發
者、資料庫管理師或設計者有效的執行資料庫設
計與開發過程,和建立和維護資料庫設計成果。
5-1-3 安裝資料庫設計工具 -
安裝 Java 執行環境
• SQL Power Architect 是 Java 技術開發的資料庫
塑模工具,需要 JRE 7 ( Java Runtime
Environment 7 )或以上版本來執行,在執行前
請在 Windows 作業系統安裝 JRE ,其下載網址
為: http://www.oracle.com/technetwork/java/
javase/downloads/index.html 。
5-1-3 安裝資料庫設計工具 -
安裝 SQL Power Architect
• SQL Power Architect 分為:企業( Enterprise )
和社群( Community )兩種版本,社群版是
Open Source 完全免費的版本,我們可以在 SQL
Power Group 公司網站免費下載最新版本,其下
載網址是: http://www.sqlpower.ca/page/archite
ct_download_os 。
5-1-4 設定 SQL Server 伺服器和新增使
用者 - 說明
• 在完成 SQL Power Architect 安裝後,啟動 SQL
Power Architect 之前,我們需要針對 SQL Server
進行相關設定,因為 SQL Power Architect 可以連
接 SQL Server 資料庫來產生模型、資料庫綱要的
SQL 指令,或比對存在資料庫來產生更新綱要的
SQL 指令。
• 請注意! SQL Power Architect 需要連接已經存在
的 SQL Server 資料庫,所以,我們需要自行使用
SQL Server Management Studio 建立目標資料庫,
和新增登入與資料庫使用者,使用的是 SQL
Server 驗證。
5-1-4 設定 SQL Server 伺服器和新增使
用者 - 步驟
• 步驟一:指定 SQL Server 使用混合模式驗證
• 步驟二:啟用 SQL Server 的 TCP/IP 通訊協定
• 步驟三:建立連接的目標資料庫
• 步驟四:新增 SQL Server 驗證的使用者
5-2 啟動塑模工具與新增專案
• 5-2-1 啟動與結束 SQL Power Architect
• 5-2-2 新增資料庫連接
• 5-2-3 新增與開啟專案
5-2-1 啟動與結束 SQL Power
Architect-
• SQL Power Architect啟動
是一套視覺化圖形使用介面
的資料庫塑模工具,在成功安裝 SQL Power
Architect 後,即可啟動 SQL Power Architect 。
啟動 SQL Power Architect
• 在 Windows 作業系統啟動 SQL Power Architect
的步驟,如下所示:
• 請執行「開始 / 所有程式 /SQL Power Architec
t 」指令,第一次啟動會看到「 Missing PL.INI 」
訊息視窗。
5-2-1 啟動與結束 SQL Power
Architect-
結束
結束 SQL Power Architect
• 在完成資料庫設計後,請執行「 File/Exi
t 」指令結束 SQL Power Architect 資料庫
塑模工具。
5-2-2 新增資料庫連接
• SQL Power Architect 第一次啟動 SQL
Power Architect 後,預設建立新專案,我
們可以新增 SQL Server 連接來連接指定資
料庫。
5-2-3 新增與開啟專案 - 說明
• 在 SQL Power Architect 建立每一個實體關聯圖的
模型是一個專案, SQL Power Architect 支援建立
資料庫設計的兩種資料模型,如下所示:
– 邏輯資料模型( Logical Data Model ):沒有針對特
定資料庫系統建立的實體關聯圖,也就是在專案右邊
編輯視窗建立的資料庫模型,例如: SQL-92 。
– 實體資料模型( Physical Data Model ):將建立的資
料庫模型輸出成 SQL 指令碼,可以連接目標資料庫來
建立模型設計的資料表。
5-2-3 新增與開啟專案 - 新增專案
• SQL Power Architect 在啟動後預設建立新專案,
如果已經開啟專案,我們也可以執行指令來建立
專案,例如:建立名為 Ch5_2_3 的專案,請執行
「 File/New Project 」指令,或按工具列第 1 個
【 New 】鈕,可以在左邊資料庫樹看到新增的專
案,名稱同樣是 New Project ,如下圖所示:
5-2-3 新增與開啟專案 - 刪除專案
• 現在有 2 個同名專案(目前的專案是橘紅色),
我們準備刪除第 1 個專案,請移至項目最後,可
以看到紅色圓形 X 圖示,點選圖示刪除專案(或
選取專案,執行「 File/Close Project 」指令),
可以看到一個警告訊息。
5-2-3 新增與開啟專案 - 開啟專案
• 對於已經存在的專案,或尚未完成需要修改的專
案,我們可以啟動 SQL Power Architect 開啟存在
的專案檔案,例如:之前建立的
Ch5_2_3.architect ,請重新啟動 SQL Power
Architect ,執行「 File/Open Project 」指令或按
工具列第 2 個【 Open 】鈕,可以看到「開啟」
對話方塊。
5-3 新增實體
• 5-3-1 實體的圖形符號
• 5-3-2 新增與刪除實體
• 5-3-3 新增屬性清單和指定主鍵
• 5-3-4 編輯屬性
• 5-3-5 建立與編輯索引
5-3 新增實體
• 實體( Entities )是從真實世界的資料識別
出的東西。例如:人、客戶、產品或觀念
等。屬性( Attributes )是實體擁有的特性,
例如:學生實體擁有學號、姓名、地址和
電話等屬性。
• 在 SQL Power Architect 建立專案後,可以
開始新增實體關聯圖的實體和屬性,以實
體資料模型來說,就是建立 SQL Server 資
料庫的資料表定義資料。
5-3-1 實體的圖形符號
• SQL Power Architect 的實體是使用長方形
圖形符號表示,主鍵和屬性清單是直接置
於長方形的方框中,如下圖所示:
5-3-2 新增與刪除實體 - 新增實體 ( 步
驟)
• 請按右邊垂直工具列第 6 個【 New Table 】鈕後,
移動游標至右邊編輯區域的插入位置按一下,可
以看到「 Table Properties 」對話方塊。
• 在【 Logical Table Name 】欄輸入實體名稱【學
生】,【 Physical Table Name 】欄輸入資料表
名稱【 Students 】(名稱只能是英文名稱),
【 Primary Key Name 】欄位輸入
【 Students_pk 】(名稱只能是英文名稱,此欄
位是產生 SQL 指令時指定的主鍵名稱)。
5-3-2 新增與刪除實體 - 新增實體 ( 圖
例)
按此按鈕

插入位置按一

「 Table Properties 」對話方



5-3-2 新增與刪除實體 - 編輯與刪除實

刪除實體
• 在編輯區域選取欲刪除的實體後,請執行【右】
鍵快顯功能表的【 Delete Selected 】指令刪除實
體。
編輯實體
• 在編輯區域選取實體後,按二下或執行【右】鍵
快顯功能表的【 Table Properties 】指令,都可
以開啟「 Table Properties 」對話方塊來重新編
輯實體。
5-3-3 新增屬性清單和指定主鍵 - 說明
• 在 SQL Power Architect 新增 Students 實
體後,可以替實體建立屬性清單(即欄
位)和指定主鍵,即建立學生資料表的欄
位定義資料。
5-3-3 新增屬性清單和指定主鍵 - 插入
屬性
• 選【學生】實體,在右邊工具列按【 Insert
Column 】鈕,可以看到「 Column Properties of
New Column 」對話方塊來插入屬性。 按此按鈕
5-3-3 新增屬性清單和指定主鍵 - 指定
主鍵
• 在【 Logical Name 】欄輸入【學號】,
【 Physical Name 】欄輸入【 sid 】,勾選【 In
Primary Key 】表示是主鍵欄位之一,在
【 Type 】欄選【 CHAR 】,勾選下方
【 Precision 】,輸入長度【 4 】,下方
【 Default 】欄位可以輸入預設值,按【 OK 】鈕
插入欄位(欄位是位在主鍵區段),如下圖所示:
5-3-4 編輯屬性 -1

刪除屬性
• 對於實體不再需要或輸入錯誤的屬性,可
以在實體圖形上,直接選取屬性後,執行
【右】鍵快顯功能表的【 Delete
Selected 】指令刪除屬性。
屬性排列順序
• 屬性清單的順序如果有問題,請直接在實
體圖形上拖拉位置,即可調整屬性順序。
5-3-4 編輯屬性 -2

重新編輯屬性內容
• 如果需要重新編輯屬性內容,請在屬性清
單直接選取屬性後,按二下或執行【右】
鍵快顯功能表的【 Column Properties 】指
令,都可以開啟「 Column Properties 」對
話方塊來編輯屬性內容。
5-3-5 建立與編輯索引 - 建立索引
• 在選取學生實體後,
執行【右】鍵快顯功
能表的【 New
Index 】指令(或按
右邊工具列第 7 個
【 New Index 】
鈕),可以看到
「 Index Propertie
s 」對話方塊。
勾選索引欄位姓名,如果不只
一個,請重複勾選
5-3-5 建立與編輯索引 - 編輯索引
• 如果需要,我們可以編輯索引或複合主鍵
的欄位,請在實體圖形上,按滑鼠【右】
鍵顯示快顯功能表,在【 Index
Properties 】指令的子選單是目前實體建立
的索引清單,執行【 Students_pk 】指令
編輯主索引,可以看到「 Index Propertie
s 」對話方塊來編輯索引。
5-4 建立關聯性
• 5-4-1 關聯性的圖形符號
• 5-4-2 建立關聯性
• 5-4-3 編輯關聯性與參考完整性規則
5-4-1 關聯性的圖形符號 - 說明
• 關聯性( Relationships )是指二個或多個實體之
間擁有的關係,在 SQL Power Architect 建立實體
和新增屬性清單後,可以建立關聯性來完成實體
關聯圖。
• 在 SQL Power Architect 關聯性的圖形符號是使用
連接線表示實體之間是哪一種關聯性,在連接線
端點是使用雞爪符號標示關聯性的限制條件。
5-4-1 關聯性的圖形符號 - 基數和參與條件 1

• SQL Power Architect 支援關聯性的基數和參與條


件,使用雞爪符號直接標示在連接線的兩個端點,
其關聯性參與條件使用的術語和第 3-1-5 節不同。
例如:講師實體可以上很多門課程實體,或沒有
教任何一門課程的一對多關聯性,如下圖所示:
5-4-1 關聯性的圖形符號 - 基數和參與條件 2

• 講師實體是強制參與;課程實體是選項參與名為
上課的關聯型態,其說明如下所示:
– 強制參與( Mandatory Participation ):即第 3-1-5 節
的全部參與限制條件( Total Participation Constraint
s )。因為所有講師都需教課,所以講師實體完全參與
上課關聯型態的強制參與。
– 選項參與( Optional Participation ):即第 3-1-5 節的
部分參與限制條件( Partial Participation Constraint
s )。因為不是所有課程都有講師教,所以課程實體只
有部分參與上課關聯型態,即選項參與。
5-4-1 關聯性的圖形符號 - 種類 1
可識別關聯性( Identifying Relationship )
• 外來鍵是實體的主鍵欄位之一。例如:當實體 A
關聯到實體 B ,實體 A 的主鍵 k 不只是實體 B 的
外來鍵,還是主鍵欄位之一。在 SQL Power
Architect 是使用實線來表示關聯性,例如:訂單
實體的主鍵訂單編號不只是訂單明細實體的外來
鍵,它還是主鍵欄位之一,如下圖所示:
5-4-1 關聯性的圖形符號 - 種類 2
不可識別關聯性( Non-Identifying Relationship )
• 指外來鍵不是實體的主鍵欄位之一。例如:當實
體 A 關聯到實體 B 時,實體 A 的主鍵 k 是實體 B
的外來鍵,但不是主鍵欄位之一。在 SQL Power
Architect 是使用虛線表示不可識別關聯性,例如:
訂單實體的外來鍵客戶編號並不是主鍵欄位之一,
所以是一種不可識別關聯性,如下圖所示:
5-4-1 關聯性的圖形符號 - 種類 3
• 多對多關聯性在 SQL Power Architect 是由兩個一
對多關聯性來建立,例如:學生實體和測驗實體
的多對多關聯性,是籍由結果關聯實體型態來建
立 2 個一對多關聯性,如下圖所示:
5-4-2 建立關聯性 - 建立可識別關聯性
• 在右邊垂直工具列,按倒數第 2 個【 New
Identifying Relationship 】鈕後,可以先選「一」
端的學生實體,然後選「多」端的家長實體,建
立預設黑色連接線的關聯性,如下圖所示:
5-4-2 建立關聯性 -
建立多對多關聯性 ( 說明 )
• 在 SQL Power Architect 建立多對多關聯性需要新
增一個結合實體,然後建立 2 個針對結合實體的
一對多關聯性,請注意!我們需要自行建立這 3
個實體,和建立之間的 2 個一對多關聯性。
• 例如:結果實體是結合實體(沒有主鍵),我們
先建立學生實體和結果實體之間的一對多關聯性,
再建立測驗實體和結果實體之間的一對多關聯性,
可以完成學生實體和測驗實體之間的多對多關聯
性。
5-4-2 建立關聯性 -
建立多對多關聯性 ( 圖例 )
5-4-2 建立關聯性 - 建立自身關聯性
• 「自身關聯性」( Self Relationship )是指實體
的外來鍵是參考同一實體自己的主鍵。例如:在
員工實體建立自身關聯性,因為員工的直屬長官
也是一位員工, 如下圖所示:
5-4-3 編輯關聯性與參考完整性規則 -
說明
• 在選取關聯性連接線後,執行
【右】鍵快顯功能表的
【 Delete Selected 】指令可
以刪除關聯性。按二下連接線
或執行【右】鍵快顯功能表的
【 Relationship Properties 】
指令,都可以開啟
「 Relationship Properties 」
對話方塊來重新編輯關聯性,
如右圖所示:
5-4-3 編輯關聯性與參考完整性規則 -
Type 與 Cardinality
Type
• 選擇是可識別關聯性( Identifying Relationshi
p )或不可識別關聯性( Non-Identifying
Relationship )。
Cardinality
• 選擇關聯性的基數限制條件( Cardinality
Constraints ),可以選擇 PK 和 FK 實體參數的
數量,可以只有 1 個( Exactly One )、 0 或 1
( Zero or One )、 1 或多( One or More )和
0 或多( Zero or More )。
5-4-3 編輯關聯性與參考完整性規則 -
Deferrability
• 選擇是否可延遲檢查外來鍵的參考完整性(不是
每一種資料庫系統都支援),其設定值說明如下
所示:
– Not Deferrable :外來鍵的參考完整性在每一次送出
INSERT 、 UPDATE 和 DELETE 指令都會馬上檢查。
– Deferrable, Initially Deferred :如果資料庫交易沒有指
明延遲檢查,執行 INSERT 、 UPDATE 和 DELETE 指
令直到確認交易後才檢查。
– Deferrable, Initially Immediate :如果資料庫交易沒有
指明延遲檢查,每一次送出 INSERT 、 UPDATE 和
DELETE 指令都會馬上檢查。
5-4-3 編輯關聯性與參考完整性規則 -
Update Rule 和 Delete Rule
• 選擇 2 個實體在更新和刪除操作時使用的參考完
整性規則(不是每一種資料庫系統都支援),其
設定值的說明如下所示:
– No Action :沒有使用參考完整性規則。
– Restrict :拒絕刪除或更新操作。
– Cascade :連鎖性處理方式是當更新或刪除時,需要
作用在所有影響的外來鍵,否則拒絕此操作。
– Set NULL :將所有可能的外來鍵都設為空值,否則拒
絕此操作。
– Set Default :將所有可能的外來鍵都設為預設值,否
則拒絕此操作。
5-5 產生資料庫設計報告和建立資料庫
• 5-5-1 匯出模型與設計報告
• 5-5-2 產生 SQL 指令建立資料庫
5-5 產生資料庫設計報告和建立資料庫
• 現在,我們可
以使用 SQL
Power
Architect 重繪
第 3-1 節【教
務系統】範例
資料庫的實體
關聯圖(專案
檔案是:
SPASchool.ar
chitect ),如
右圖所示:
5-5-1 匯出模型與設計報告 -
匯出 PDF 格式的模型圖
• 請啟動 SQL Power Architect 開啟
SPASchool.architect 專案檔案,執行「 File/Exp
ort Palypen to PDF 」指令,可以看到「儲存」
對話方塊。在切換路徑,輸入檔名,按【儲存】
鈕匯出成 PDF 檔,如下圖所示:
5-5-1 匯出模型與設計報告 -
產生 HTML 格式的資料庫設計報告
• SQL Power Architect 提供功能產生資料庫報告,
例如:將 SPASchool.architect 專案輸出成 HTML
格式的報告 ,如下圖所示:
5-5-2 產生 SQL 指令建立資料庫
• SQL Power Architect
能夠自動產生 SQL
指令來建立關聯式資
料庫綱要。例如:將
SPASchool.architect
專案檔案輸出成名為
SPASchool.sql 的
SQL 指令碼檔案和建
立目標資料庫的資料
表,如右圖所示:

You might also like