使用PowerDesigner進行資料庫建模入門

來源:互聯網
上載者:User

  PowerDesigner(簡稱PD)是一種強大的資料庫建模工具,使用PD可以建立業務模型,UML類圖等,當然最主要的功能是資料庫建模。我打算分以下幾個部分來講如何使用PD。

  1,兩種重要模型,概念性模型和物理模型
  2,建立表和主外鍵
  3,建立視圖和預存程序
  4,產生資料庫

兩種重要模型

  首先說概念性模型,概念性模型是一個抽象的宏觀層次的業務模型,比如E-R(實體關聯)圖,在概念性模型中最重要的對象是實體和關係。

  根據概念性模型可以產生邏輯模型,邏輯模型是概念性模型的延伸,表示概念之間的邏輯次序,是一個屬於方法層次的模型。具體來說,邏輯模型中一方面顯示了實體、實體的屬性和實體之間的關係,另一方面又將繼承、實體關聯中的引用等在實體的屬性中進行展示。邏輯模型介於概念性模型和物理模型之間,具有物理模型方面的特性,在概念性模型中的多對多關係,在邏輯模型中將會以增加中間實體的一對多關聯性的方式來實現。邏輯模型主要是使得整個概念性模型更易於理解,同時又不依賴於具體的資料庫實現,使用邏輯模型可以產生針對具體資料庫管理系統的物理模型。邏輯模型並不是在整個步驟中必須的,可以直接通過概念性模型來產生物理模型。

  其次物理模型依賴於具體的物理實現,使用的是資料庫物件,原來的“實體-關係”轉換成“表-外鍵”,實體的屬性轉換為表的列,同時每個列的資料類型轉換為對應的DBMS中支援的資料類型。

  對於SQL Server 2008的物理模型,如果主鍵需要使用自增長,那麼需要修改具體的列,設定該列為Identity。如果產生的資料類型不合理,也可以調整資料類型,使得資料類型使用得更恰當。在物理模型中除了產生的表外,還可以手動增加視圖、預存程序、商務規則等在概念性模型和邏輯模型中無法表達的資料庫物件。

  對物理模型調整好後,就可以將模型應用到SQL Server資料庫中。在資料庫中實現物理模型的方法有兩種,一種是使用PD串連到SQL Server資料庫,然後將模型同步到資料庫中,另一種方法就是產生資料庫指令碼。

建立表和主外鍵

  1,建立表:

  建立物理模型時需要指定物理模型對應的DBMS,這裡我們使用Sql server 2008,建立一個物理模型後,系統會顯示一個專門用於物理模型設計的工具列,如:

  若要在物理模型中添加一個表,單擊“表”按鈕,然後再到模型設計面板中單擊一次便可添加一個表,系統預設為表命名為Table_n,這裡的n會隨著添加的表增多而順序增加。添加的表是沒有任何列的,:

  單擊工具列的滑鼠指標按鈕,將滑鼠切換回指標模式,然後雙擊一個表,系統將開啟表屬性視窗,在General選項卡中可以設定表的Name、Code等屬性。例如我們要建立一個教室表(ClassRoom),則可修改Name和Code。Name是在模型中顯示的名稱,Code是產生資料庫表的時候的實際表名。另外Name中的內容還會作為SQL Server中的表備忘。

  單擊Columns切換到列選項卡,在下面的列表中可以添加表中的列。Name是模型上顯示的名稱,Code是產生的實際的表名,後面的3個複選框P代辦主鍵、F代表外鍵,M代表不可為空。為教室表設計了兩個列,:

  2,設定主鍵

  在設計一個表時,一般情況下每個表都會有一個主鍵,主鍵分為單列主鍵和複合主鍵。在為表設定主鍵時有以下幾種辦法:

  1>在Columns選項卡中,直接選中主鍵列的P列複選框,這是最簡單的方式。

  2>選中一個列,然後單擊工具列中的“屬性”按鈕,系統將彈出列屬性視窗,在該視窗中可以設定該列的各種屬性,當然也包括該列是否是否是主鍵。另外還有一個很重要的複選框是“Identity”。選中Identity複選框則表示該列為自增列。

  3> 切換到Keys選項卡中,在其中添加一行命名為PK_ClassRoom,然後單擊工具列的“屬性”按鈕,開啟鍵屬性視窗,在該視窗中切換到Columns選項卡,單擊添加列按鈕,彈出列選擇視窗,選中主鍵中應該包含的列,單擊確定按鈕即可完成主鍵的建立。

  另外需要注意的是,在建立主鍵時,系統會在主鍵上建立索引,索引分為叢集索引和非叢集索引,在“鍵屬性”視窗的General選項卡中可以設定該主鍵上建立的索引是叢集索引還是非叢集索引,:

  3,設定外鍵

  如果是由概念性模型或者邏輯模型產生物理模型,那麼外鍵是通過Relationship產生的,也可以通過工具列中的Reference來實現兩表之間的外鍵關係。假如一個課程只會在一個固定的教室上課,而一個教室會安排多個課程在不同的時間上課,所以教室和課程是一對多的關係,那麼課程表中就需要添加RoomID列以形成外鍵列,具體操作方法就是在工具列中單擊“Reference”按鈕,然後在設計面板中,課程表上按下滑鼠左鍵,並拖拽到教師表中放開滑鼠,這時如果課程表中沒有RoomID列,系統會自動建立RoomID列並建立該列上的外鍵引用,如果已經存在RoomID列,則只添加外鍵引用,不會再添加新列。

  切換到滑鼠指標模式,雙擊箭頭,系統將彈出引用的屬性視窗,在屬性視窗中可以設定該引用的Name、Code、關聯的列、約束名、更新策略和刪除策略等。其它約束還包括check約束,預設值約束,非空約束等等

建立視圖和預存程序

  1,建立視圖

  在SQL Server中視圖定義了一個SQL查詢,一個查詢中可以查詢一個表也可以查詢多個表,在PD中定義視圖與在SQL Server中定義查詢相似。例如要創幾個所有學生的所有選課結果的視圖,那麼在工具列中選擇視圖按鈕,然後在設計面板中單擊滑鼠一次便可添加一個空白的視圖,切換到滑鼠指標模式,雙擊該視圖便可開啟視圖的屬性視窗。在General選項卡中,可以設定視圖的名字和其他屬性。

  Usage是表示視圖是唯讀視圖還是可更新的視圖,還有一個是check option選項,指定了 CHECK OPTION,也不能依據視圖來驗證任何直接對視圖的基礎資料表執行的更新。如果我們只建立一般的視圖,那麼就選擇只查詢選項。

  Dimensional Type指定該視圖表示的是維度還是事實,這個主要是在進行資料倉儲多維資料建模時使用,一般情況下不需要指定。後面的兩個複選框也不需要進行修改。Type使用預設的view選項。

  切換到SQL Query選項卡,在文字框中可以設定視圖定義的查詢內容,建議直接先在SSMS中驗證視圖定義SQL語句的正確性,然後再將SQL語句複製粘貼到該文字框中。在定義視圖時最好不要使用*,而應該使用各個需要的列名,這樣在視圖屬性的Columns中才能看到每個列。設計SQL Query。

  當然,也可以在PD中使用內建的SQL編輯器編寫SQL語句,單擊右下角的“Edit with SQL Editor”按鈕,即可彈出SQL Editor編輯器,編寫SQL語句。

  2,建立預存程序

  在工具列中單擊Procedure按鈕,然後在設計面板中單擊一次便可添加一個Procedure。例如要建立一個預存程序根據學生的學號獲得學生所選的課程,那麼對於的操作如下:在指標模式下雙擊添加的Procedure,開啟Procedure屬性視窗,在General選項卡中可以設定該預存程序的名字。

  然後切換到Definition選項卡,該選項卡中定義了預存程序的定義,在下拉式清單方塊中,選擇<Default Procedure>選項,如果是要定義函數,那麼就需要選擇<Default Function>選項,系統會根據選擇的類型建立SQL語句的模板。

  在下面的SQL語句中,可以將create procedure [%QUALIFIER%]%PROC%保留,其他的刪除,根據自己要建立的預存程序編寫SQL語句。
create procedure [%QUALIFIER%]%PROC%
@StudentID int
as
begin
select CourseName
from vwStudentCourse
where StudentID=@StudentID
end
  單擊確定按鈕,系統會根據編寫的SQL語句,將所使用的表、視圖與預存程序關聯起來,:

  這樣,預存程序在PD的物理模型中的建立就算完成了。

產生資料庫

  第一步:配置資料來源

  1,選擇菜單"Database-->Configure connections"

  2,開啟”Configure Data Connections“視窗

  3,選擇系統資料來源

  4,選擇資料來源驅動程式

  5,資料來源名稱和sql server伺服器選擇,伺服器即SSMS登陸的伺服器名稱

  6,選擇驗證模式及填寫登陸ID和密碼

  7,更改預設資料庫,這一步很重要,否則會覆蓋預設的資料庫,資料庫即為要產生的資料名

  8,確認完成即建立好了資料來源

  第二步:產生資料庫

  1,選擇菜單"Database--->generate database",開啟database generation視窗,選擇Direct generation直接產生資料庫

  注意:這一步可以點擊資料庫表徵圖重新設定資料來源

  2,點擊確定後開啟"Execute SQL Query"視窗,點擊Run按鈕後即可執行SQL建立資料表。

註:本文引用了深藍居博文:http://www.cnblogs.com/studyzy/archive/2009/12/15/1624899.html

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.