資料庫設計淺析

來源:互聯網
上載者:User

PowerDesign:PowerDesign是Sybase推出的主打資料庫設計工具。PowerDesign致力於採用基於Entiry-Relation的資料模型,分別從概念資料模型(Conceptual Data Model)和物理資料模型(Physical Data Model)兩個層次對資料庫進行設計。概念資料模型描述的是獨立於資料庫管理系統(DBMS)的實體定義和實體關聯定義。物理資料模型是在概念資料模型的基礎上針對目標資料庫管理系統的具體化。

    ERWin:這個是CA公司的拳頭產品,它有一個兄弟是BPWin,這個是CASE工具的一個裡程碑似的產品。ERWin介面相當簡潔漂亮,也是採用ER模型,如果你是開發中小型資料庫,極力推薦ERWin,它的Diagram給人的感覺十分清晰。在一個實體中,不同的屬性類型採用可定製的表徵圖顯示,實體與實體的關係也一目瞭然。ERWin不適合大型資料庫的設計,因為它對Diagram欠缺更多層次的組織。

如何一次性將表結構的指令碼匯出來?
    Database --->Generate Database ---> Genarate Script 就可實現。

Name用中文英文以便查詢、寫程式的時候方便, Code才是最終產生的Table Name

PowerDesigner中建了模型,如何把它作為文檔匯出?
    利用REPORT。選擇一個模板,然後就產生了RTF或是HTM格式的文檔

如何將已經存在的資料庫所有表,匯入到PowerDesign中?
    用PD裡的反向工程file--->reverse engineering ===> and go on

概念資料模型(CDM)
    CDM表現資料庫的全部邏輯的結構,與任何的軟體或資料儲藏結構無關。一個概念性模型經常包括在物理資料庫中仍然不實現的資料對象。它給運行計劃或商務活動的資料一個正式表現方式。不考慮物理實現細節,只考慮實體之間的關係。

物理資料模型 (PDM)
    PDM敘述資料庫的物理實現。主要目的是把CDM中建立的現實世界模型產生特定的DBMS指令碼,產生資料庫中儲存資訊的儲存結構,保證資料在資料庫中的完整性和一致性。

物件導向模型 (OOM)
    一個OOM包含一系列包,類,介面和他們的關係。這些對象一起形成所有的(或部份)一個軟體系統的邏輯的設計檢視的類結構。一個OOM本質上是軟體系統的一個靜態概念性模型。

業務程式模型(BPM)
    BPM描述業務的各種不同內在任務和內在流程,而且客戶如何以這些任務和流程互相影響。BPM是從業務合伙人的觀點來看商務邏輯和規則的概念性模型,使用一個圖表描述程式,流程,資訊和合作協議之間的互動作用。

正向工程
    你能直接地從PDM產生一個資料庫, 或產生一個能在你的資料庫管理系統環境中啟動並執行資料庫指令碼。可以產生資料庫指令碼,如果選擇ODBC方式,則可以直接連接到資料庫,從而直接產生資料庫表以及其他資料庫物件。

逆向工程
    將已存在的資料庫產生進新的PDM 之內。資料來源可能是從指令檔或一個開放資料庫連接資料來源。

    並不是每個設計都需要用到Power Designer。 例如:小的系統,或Table數比較少的情況下就沒有必要採用Power Designer了。

設計步驟

 

CDM PDM OOM三者轉換關係

 

2004-08-22更新

PowerDesigner僅僅是實現的工具
    不要以為Power能幫你把關係什麼的全部建立好,很多資料庫理論只是還是需要的,設計資料庫的時候,那些範式什麼的,一定要掌握。
    設計一個好的資料庫,最好的工具不是必須的,但是基礎理論是一定要的。

PowerDesigner用途不局限於資料建模
    還可以用PowerDweigner設計web service

並不是每個設計都需要用到PD
    用Powerdesigner對付比較大型的項目,是很好的,對於短平快類型的項目,如果時間要求你1個星期完成一個程式,那麼完全沒有必要用PowerDesigner,直接維護資料庫就可以了,當表的數量超過10個(一個小系統的表在10個左右)的時候,建議還是用用Powerdesigner 。
    我的看法:如果想做成一個比較規範的資料庫,小項目也可以用。畢竟產生報表和正反向工程很有用。

零碎

    PD中的CDM設計時,可以將所有需要的欄位都定義好。然後在設計實體是直接取出來。PD提供了這樣的統一管理的工具。在PD功能表列-Model-Data Item下。

    為了使自己設計的CDM看起來象樣一點,可以從工具列中,拖動一個Title。其顯示的資訊,是當前CDM的屬性值。

    為了使實體等Symbol看起來顯眼和舒服。可以根據個人喜好進行外觀上的調整。當前設計介面中,右鍵-Display Perferences中進行設定。還可以增加shadow效果。選中Symbol後,Ctrl+W。或者右鍵菜單。

    為了使布局整齊。選中需要調整的Symbol後,菜單-Symbol-Align進行設定。快速鍵:ctrl+UP,ctrl+Down,ctrl+Left,ctrl+Right即為上下左靠右對齊。

    設計實體屬性時注意的細節:M:表示強制非空;P:是否為主鍵;D:是否在模型中顯示。gerenate:表示是否作為表產生。

    預設情況下,CDM的實體會顯示Identifier一欄。如果不想其顯示出來,在右鍵-Display Perferences中ObjectView-Entity中設定。

    關係的命名方法是:實體名1 實體名2。

    關係中的角色(Role)表示聯絡線上一個方向上的含義。用一個動詞來描述。Role只是起一個描述作用。

    依賴(Dependency):表示在聯絡中一個實體的存在是否依賴於另一個實體。寄生實體(Dependent Entity)是一種部分地被另一實體確定的實體。在依賴聯絡中,一個實體與另一實體通過標識符相聯絡,當一個實體的存在沒有另一個實體的存在作為參考就不能唯一確定時,兩個實體間就存在依賴聯絡。
    主從表就是典型的依賴關係。

    中間實體(Associative Entity):是為瞭解決多對多聯絡而產生的一個人工實體,能夠為中間實體定義屬性。用滑鼠右鍵單擊多對多聯絡線,在彈出的菜單中選擇“Change to entity”,能夠把這個聯絡轉換成串連兩個實體的中間實體。
    善於利用自動產生的中間實體,可以簡化設計工作,提高資料庫設計的正確性。
    中間實體一般不用再加入新的欄位。

    牢記:外鍵是通過關係Relationship自動來建立的,不需要手動建立。不然會產生多餘的鍵。所以設計時,關注實體本身的欄位,以及實體間的關係,特別是多對多和依賴關係。

    從CDM到PDM的轉換需要注意:

不能改變Diagram的名稱
在樹狀圖中,如果鉤選紅色標出的Symbol表示覆蓋修改,不鉤選表示保護修改。

    資料庫為了保證資料完整性和一致性,提出了約束。即資料表條件約束,列約束以及參照完整性條件約束。通常資料庫設計和程式開發不是絕對的分離的。所以前兩者在實際開發過程中逐漸的完善。需要注意的還是參照完整性條件約束。
    在PD中前兩者的設定是對欄位,後者是對關係。

    參照完整性條件約束

限制(Restrict)。不允許進行修改或刪除操作。若修改或刪除主表的主鍵時,如果子表中存在子記錄,系統將產生一個錯誤提示。這是預設的參照完整性設定。
置空(Set Null)。如果外鍵列允許為空白,若修改或刪除主表的主鍵時,把子表中參照的外鍵列設定為空白值(NULL)。
置為預設(Set Default)。如果指定了預設值,若修改或刪除主表的主鍵時,把子表中參照的外鍵設定為預設值(Default)。
級聯(Cascade)。把主表中主鍵修改為一個新的值時,相應修改子表中外鍵的值;或者刪除主表中主鍵的記錄時,要相應刪除子表中外鍵的記錄。

    注意理解以上的約束時,抓住操作的都是主表。子表的操作都是相對主表來說的。操作方式就是Update和Delete。

    引用基礎資料表的資料時,可以建立對應的視圖。選中需要作為視圖的表,功能表列-Tools-Create View

    PD支援對已有資料的表更新表結構。不過需要謹慎操作,檢查產生的SQL指令碼。

    PD也可以產生隨機的測試資料。

    觸發器就是DBMS中提供的事件驅動機制。發生在表的Insert,Update和Delete。執行SQL語句或預存程序。

    在PD中可以完成預存程序的編寫,也便於管理。

    逆向工程可以通過資料庫指令碼或者通過ODBC資料來源來實現。

 
 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.