在 Visio 中,透過資料庫模型圖範本,您可以建立新模型,或將現有資料庫以反向工程還原為模型。
本文將說明如何建立資料庫模型,以及在建立模型之後可以執行哪些動作。
附註: 資料庫模型圖僅適用於某些版本的 Visio。 如需詳細資訊,請參閱找不到資料庫模型功能?。
1:啟動資料庫模型圖
2:精簡圖表結構
建立資料庫模型圖之後,就可以開始進行精簡圖表的工作。 您可以新增並自訂模型的三個主要元件:
-
實體 (或資料表)、
-
欄 (描述資料表事實),以及
-
關聯 (資料表之間的關聯)。 關聯可以是一對一、一對多或多對多。
選取下方的標題以開啟如何將功能新增至模型的相關指示。
資料庫模型圖範本隨附兩個樣板。 當您開始精簡圖表結構時,請從適合您的樣板開始進行:
使用 [實體] 圖形以在圖表中建立資料表:
-
從 [實體關聯] 或 [物件關聯] 樣板中,將 [實體] 圖形拖曳到繪圖上。
-
按兩下圖形以開啟 [資料庫屬性] 視窗。
-
在 [類別] 底下,按一下 [定義],然後輸入資料表的名稱。
-
在 [類別] 底下,按一下 [欄],輸入名稱,然後選擇資料類型。
-
針對無法有 Null 值的欄,請選取 [Req'd] 核取方塊。
-
針對可唯一識別資料庫資料表中每一列的欄,請選取 [PK] (主索引鍵) 核取方塊。
-
在 [類別] 底下,按一下 [索引]、[觸發程序]、[檢查] 或 [擴充] 來建立這些選用元素。
使用 [資料庫屬性] 視窗來新增或變更欄的屬性,包括資料類型和主索引鍵:
-
按兩下圖表中的資料表。
-
在 [資料庫屬性] 視窗的 [類別] 底下,按一下 [欄]。
-
按一下第一個空白 [實體名稱] 儲存格,然後輸入名稱。
-
若要變更欄的資料類型,請按一下欄的 [資料類型] 欄位,然後從清單中選取資料類型,或將資料類型輸入到清單中。 例如,您可以輸入 decimal(8,2) 或 char(30)。
-
若要避免 Null 值,請選取 [Req'd] 核取方塊。
-
若要指定欄為主索引鍵,請選取 [PK] 核取方塊。
-
若要查看在按一下 [欄] 類別時所顯示欄屬性以外的其他欄屬性,請選取欄,然後按一下 [編輯]。
關聯使用主索引鍵和外部索引鍵,讓資料庫能夠使一個資料表中的某一列符合關聯資料表中的某一列。 您可以在圖表中顯示這些關聯。 此外,您可以設定其基數 (例如,一對多),並使用 Crow's feet、關聯或 IDEF1X 標記法來顯示基數。 您無法在資料庫模型圖範本中使用任何上述標記法來顯示多對多關聯。
建立資料表之間的關聯:
-
確認兩個資料表在圖表中皆可顯示。 如果您以反向工程從現有的資料庫還原模型,您可能需要從 [資料表] 和 [檢視] 視窗將一個或兩個資料表拖曳到繪圖頁面上。
-
按兩下您想要用於關聯的主索引鍵端的資料表。
-
在 [資料庫屬性] 視窗的 [類別] 底下,按一下 [欄]。
-
在格線中,按一下您要用來唯一識別資料表中每一列的欄,然後選取 [PK] 核取方塊以將它設為主索引鍵。
-
從 [物件關聯] 或 [實體關聯] 樣板,拖曳 [關聯] 圖形,然後將它拖放到頁面上的空白處。
-
將較高的一端連接到具有父資料表的資料表。
-
將另一端連接到子資料表。
如果第二個資料表沒有包含與主索引鍵名稱相同的欄,模組工具會將它新增到第二個資料表以做為外部索引鍵。
附註: 如果關聯線消失,請在 [資料庫] 索引標籤的 [管理] 群組中,按一下 [顯示選項]。 在 [關聯] 索引標籤的 [顯示] 底下,選取 [關聯] 核取方塊。
設定關聯的基數:
-
按兩下關聯。
-
在 [資料庫屬性] 視窗的 [類別] 底下,按一下 [其他]。
-
在 [基數] 底下,選擇最符合關聯的基數。 針對一對多關聯,最佳選擇為 [零或更多] 或 [一或更多]。 針對一對一關聯,最佳選擇為 [零或一個] 或 [只有一個]。
3:新增搜尋和更新資料的功能
若要對圖表進行其他修飾 (例如建立索引、檢查子句和觸發程序),請選取下方標題以開啟如何新增執行下列任何動作的相關指示:
索引可改善執行查詢時的資料庫效能或速度。
-
開啟資料庫模型圖。
-
按兩下您要新增索引的資料表,然後在 [資料庫屬性] 視窗的 [類別] 清單中,按一下 [索引]。
-
按一下 [新增]。
-
在 [建立索引] 對話方塊中,輸入索引的名稱,然後按一下 [確定]。
-
在 [索引類型] 清單中,選取建立唯一或非唯一索引的選項。
-
在 [可用資料欄] 清單中,選取您要在此索引中包含的每一欄的名稱,然後按一下 [新增 >]。
-
在 [索引欄] 清單中,選取 [遞增] 核取方塊來建立以遞增順序排序的索引,或清除核取方塊來建立以遞減順序排序的索引。
資料庫模型圖隨即更新。
您可將檢視視為已儲存的查詢。 當您需要從多個資料表中重複存取相同的資訊,或想要向使用者公開資料 (而不用讓他們變更實際資料表) 時,檢視會格外實用。
從 [實體關聯] 或 [物件關聯] 樣板中,將 [檢視] 圖形拖曳到繪圖頁面上。
視您的資料庫管理系統 (DBMS) 而定,您可能可以設定資料表或檢視的擴充屬性,來判定它們的儲存位置。
按兩下您要設定擴充屬性的資料表或檢視,然後在 [資料庫屬性] 視窗的 [類別] 清單中,按一下 [擴充]。
使用檢查子句,確保欄中輸入的資料在特定值範圍內。 例如,您可以建立一個要求 [年齡] 欄中,資料超過 65 的檢查子句。
-
按兩下資料表以開啟 [資料庫屬性] 視窗。
-
在 [類別] 底下,按一下 [欄],然後按一下您要新增檢查子句的欄。
-
按一下 [編輯]。
-
在 [欄屬性] 對話方塊的 [檢查] 索引標籤上,輸入您想要的限制。 如需有關您的選擇的詳細資訊,請參閱 [欄] 和 [欄位屬性] 對話方塊 ([檢查] 索引標籤) (英文)。
檢查子句隨即新增到 [程式碼] 視窗的 [本機程式碼] 底下。
使用預存程序和使用者定義函數,建立可重複使用的程式碼封包,以重複執行相同的動作。 這兩者之間的主要差異在於使用者定義函數會傳回值,預存程序則會執行程式碼,而不傳回值。
-
在 [資料庫] 索引標籤的 [顯示/隱藏] 群組中,選取 [程式碼] 核取方塊以開啟 [程式碼] 視窗。
-
按一下 [全域程式碼],然後按一下 [新增]。
-
在 [程式碼編輯器] 的 [屬性] 索引標籤上,按一下您要建立的程式碼類型,然後輸入程式碼的名稱。
-
在 [主體] 索引標籤上,輸入程式碼,然後按一下 [確定]。
觸發程序會導致觸發程序中指定的 SQL 程式碼在資料庫中發生特定事件時執行。
-
按兩下資料表以開啟 [資料庫屬性] 視窗。
-
在 [類別] 底下,按一下 [觸發程序],然後按一下 [新增]。
-
在 [屬性] 索引標籤上,輸入觸發程序的名稱。
-
在 [主體] 索引標籤上,輸入程式碼,然後按一下 [確定]。
觸發程序隨即新增到 [程式碼] 視窗的 [本機程式碼] 底下。
找不到資料庫模型功能?
某些版本的 Visio 缺少部分或所有資料庫模型功能:
-
Visio 標準版不包含資料庫模型圖範本。
-
Visio 專業版和進階版支援資料庫模型圖範本的反向工程功能 (也就是使用現有資料庫在 Visio 中建立模型),但不支援正向工程 (也就是使用 Visio 資料庫模型來產生 SQL 程式碼)。
-
適用於企業架構的 Visio 中具有資料庫模型功能的完整套件,包括反向工程和正向工程。 適用於企業架構的 Visio 隨附於 MSDN 進階版訂閱,可在 Visual Studio Professional 和 Visual Studio Team System 角色型版本中使用。
若要找出您擁有的 Visio 版本,請在 [說明 ] 功能表上 ,選取 [關於] Microsoft Office Visio。 對話方塊中的最上面一行文字會顯示版本名稱。 或者,您可以選取 [ 檔案 > 關於],然後在 [產品資訊 ] 和 [關於 Visio] 底下查看版本資訊。
如果您是使用 Visio 方案 2,並想要了解如何對現有資料庫進行資料庫模型工程,請參閱將現有的資料庫反向工程到資料庫模型中。 Visio 支援 SQL Server 2016 和較舊版本的反向工程。 Visio 不 支援 SQL Server 2019 或較新版本的反向工程。