(轉)使用 PowerDesigner 設計數據庫

          數據庫的結構(例如表、關系、視圖和觸發器)稱為數據庫模式。可使用 SQL 語句創建這些元素并按照所需的方式進行排列,但是如果不使用圖形工具,則可能會造成混淆。

          PowerDesigner 提供了一種數據庫結構的圖形表示。只需繪制新表或輸入信息,即可更好地修改數據庫的結構或創建全新的表。在設計完成后,PowerDesigner 可生成一個 SQL 腳本以生成新的數據庫。

          下面的圖示顯示了示例數據庫的結構,可以使用 PowerDesigner 方便地創建此圖示。


          數據庫的性能主要取決于設計。一般地,應將不同類型對象的信息(例如雇員或產品)存儲在單獨的表中。

          可以使用參照來確定這些表之間的關系,即用一個表中的外鍵來標識另一個表中的特定行。參照可以表示多對一和一對多關系。多對多關系需要兩個參照和另外一個表。

          有關數據庫設計的詳細信息,請參見設計數據庫

          若要了解 PowerDesigner 的詳細信息,請單擊 PowerDesigner 主窗口工具欄中的 [Help] 以訪問下面三本書:PowerDesigner General Features GuidePowerDesigner PDM User's GuidePowerDesigner Report User's Guide

          要獲得更多 PowerDesigner 教程,請打開 PowerDesigner。從 [Help] 菜單中選擇 [Where to Start]  >  [PDM Getting Started]。此操作可訪問 Physical Data Model Getting Started 一書。

          PowerDesigner 可以從用于創建數據庫的腳本文件讀取數據庫的結構。但是,通常更簡便的方法是:從 PowerDesigner 連接到數據庫并使用反向工程特性直接抽取設計。

          下面的教程將示例數據庫作為起點。此教程在闡述 PowerDesigner 時對示例數據庫進行了修改,以改進示例數據庫的設計。

          當前,始終從 product 表中讀取每種產品的價格。因此,如果更新價格,就會相應地更改以前所有訂單上該產品的銷售價格。在 sales_order_items 表中添加 unit_price 列,即可解決此問題。這樣,就可以分別存儲每個客戶的實際銷售價格。product 表中的價格記錄當前的列表價格。

          啟動 PowerDesigner:

          1. 從 [開始] 菜單,選擇 [程序]  >  [SQL Anywhere 9]  >  [PowerDesigner 9]  >  [PowerDesigner]。

            此時,就會出現 PowerDesigner 主窗口:


            PowerDesigner 主窗口包含對象瀏覽器(左側)和輸出窗口(底部)。

          2. 從 [File] 菜單中選擇 [New]。

            即會出現 [New] 對話框。

          3. 在 [New] 對話框中,選擇 [Physical Data Model],然后單擊 [OK]。

            即會出現 [New Physical Data Model] 對話框。

          4. 在 [General] 選項卡上,從下拉列表中選擇 [Sybase AS Anywhere 9]。

          5. 對剩余選項使用缺省設置,然后單擊 [OK]。

            此時,在瀏覽器和標題欄中就會出現模型名稱 PhysicalDataModel_1。

            在本節中,可通過對示例數據庫執行反向工程,以便給其生成一個物理數據模型 (PDM)。

            對數據庫執行反向工程:

            1. 單擊 diagram 窗口(PowerDesigner 中心的大窗格)。

            2. 從 [Database] 菜單中選擇 [Reverse Engineering Database]。

              即會出現 [Database Reverse Engineering] 對話框:


            3. 確保選中了 [Using an ODBC Data Source],并且數據源是 [ASA 9.0 Sample]。

              如果未出現 [ASA 9.0 Sample],請單擊數據源字段右側的圖標。此時,就會出現 [連接到 ODBC 數據源] 對話框。選擇 [計算機數據源],然后從下拉列表中選擇 [ASA 9.0 Sample]。輸入用戶 ID DBA 和口令 SQL。單擊 [連接] 以返回到 [Database Reverse Engineering] 對話框。

            4. 在 [Database Reverse Engineering] 對話框中,單擊 [OK]。

              此時,就會出現 [ODBC Reverse Engineering] 對話框:


              該對話框的下半部分有 7 個復選框,用于選擇鍵、索引等。這些都是反向工程選項。確保選中除 [Permissions] 復選框(缺省值)外的所有選項。還應確保已選中所有的表(也是缺省設置)。

            5. 單擊 [OK] 以進行數據庫反向工程。

              示例數據庫的圖形表示將出現在圖示窗口中,模型對象將出現在瀏覽器中:


            6. 從 [Tools] 菜單中選擇 [Display Preferences] 以查看修改顯示的方式。單擊左側的每個選項以查看顯示首選項參數頁。單擊每頁底部的 [Help] 以查看全部信息。

              查看圖示。可以使用 F6 鍵和 F7 鍵放大和縮小圖示以便于查看。

              數據庫中的每個表均由一個框表示。表的名稱顯示在框的頂部。其下面是列的列表。帶有下劃線的列名是該表主鍵的一部分。每個列的數據類型顯示在右側。在反向工程后,某些表可能會發生重疊。從 [Symbol] 菜單中,選擇 [Auto-Layout] 重新對其進行排列。

              這些表之間的引用是用箭頭表示的。這些箭頭指向父表,即包含主鍵的表。在每個標識引用的箭頭旁邊有一個等式。

            7. 重新排列這些表以便于查看圖示。若要重新排列,請用鼠標拖動這些表。引用箭頭自動隨這些表一起移動。可通過在單擊時按下 Shift 鍵來選擇多個對象。

              下面就是一種可能的排列方式:

              第 2 課:添加列


              現在,就可以向 sales_order_items 表中添加 unit_price 列了。可通過 [Table property] 表訪問列的列表來完成此任務。

              添加列:

              1. 選擇 sales_order_items 表。

              2. 從 [View] 菜單中選擇 [Properties]。

                即會出現 [Table Properties] 對話框。


              3. 單擊 [Columns] 選項卡。

                即會出現列的列表。


              4. 添加新列以存儲單價。

                單擊 [Insert a Row] 按鈕。

                此時,在行首就會出現一個箭頭,并顯示使用缺省名稱 (Column_6) 的列。

              5. 在名稱列中鍵入 unit_price。將此名稱自動作為代碼進行復制。

                在 [Data Type] 列,從下拉列表中選擇 [Numeric]。

                [Data] 字段可能因太窄而無法查看。可以拖動列的兩側以擴展列。

              6. 列屬性 P、F 和 M 分別表示 [主鍵]、[外鍵] 和 [強制](解釋如下):

                • [主鍵] 指定的列的值唯一地標識表中的行。

                • [外鍵] 指定的列取決于另一個表中的主鍵列,并且是從該主鍵列遷移的。

                • [強制] 要求必須給指定的列賦值。

              7. 選擇 [強制],然后單擊 [OK]。

              8. 檢查所做的更改對數據庫圖示產生的影響。

                現在,sales_order_items 表包含一個稱為 unit_price 的新列。

                第 3 課:檢查所做的工作


                PowerDesigner 還可用于快速檢測新模型中的數據庫設計錯誤。

                檢查新的模式:

                1. 從 [Tools] 菜單中選擇 [Check Model]。

                  此時,就會出現 [Check Model Parameters] 對話框。可以使用缺省參數。

                2. 單擊 [確定]。

                  此時,在 [Result List] 中就會顯示 [Check Model] 的結果。

                  第 4 課:保存更改并生成數據庫


                  在 PowerDesigner 中,將描述數據庫設計的物理組件(包括表和列)的模型稱為物理數據模型 (Physical Data Models, PDM)。PowerDesigner 將這些模型存儲在文件(擴展名為 .PDM)中。

                  保存物理數據模型 (PDM):

                  1. 從 [File] 菜單中選擇 [Save As]。

                  2. 鍵入文件名 c:\Temp\NewDemo.pdm

                  3. 單擊 [Save]。

                  可以使用 PowerDesigner 生成一個 SQL 腳本,該腳本用于實施模型的所有組件。然后,使用 SQL 腳本生成一個數據庫。

                  生成 SQL 腳本以新建數據庫:

                  1. 從 [Database] 菜單中選擇 [Generate Database]。

                    此時,就會出現 [Database Generation] 對話框:


                  2. 在 [Directory] 字段中鍵入 c:\Temp\,并在 [File Name] 字段中鍵入 NewDemo.sql

                  3. 確保選中了 [Script Generation]。

                  4. 單擊 [Database] 選項卡,并確保選中了 [Create Database]。

                    瀏覽其它選項卡,以查看控制所生成腳本的許多其它屬性的選項。

                  5. 單擊 [確定]。

                    創建腳本后,就會出現 [Result] 對話框。

                  6. 單擊 [Edit] 以查看腳本。

                    檢查腳本中是否反映了所做的更改。例如,檢查下面顯示的新 office 表的定義。

                    /* ========================================= */
                    /*   Table: office                           */
                    /* ========================================= */
                    create table office
                    (
                       id            integer         not null
                          default autoincrement
                          check (
                             id >= 100),
                       name          char(15)        not null,
                       street        char(30)        not null,
                       city          char(20)        not null,
                       state         char(2)         not null,
                       zip           char(5)         not null,
                       phone         char(10)                ,
                       fax           char(10)                ,
                       primary key (id)
                    );
                  7. 完成后,關閉該對話框:在 [Result] 對話框中,單擊 [Close]。

                  現在,就可以從 Interactive SQL 新建數據庫了。

                  新建數據庫:

                  1. 啟動 Interactive SQL。

                    從 [開始] 菜單中,選擇 [程序]  >  [SQL Anywhere 9]  >  [Adaptive Server Anywhere]  >  [Interactive SQL]。

                  2. 使用 ASA 9.0 Sample ODBC 數據源連接到示例數據庫。

                  3. 創建一個空數據庫:

                    • 執行下面的 SQL 語句,用適當的目錄替代語句中的目錄。

                      CREATE DATABASE 'c:\\Temp\\newdemo.db'
                      提示
                      要在 Interactive SQL 中執行 SQL 語句,請在 [SQL 語句] 窗格中鍵入或復制該語句,然后按 F5 鍵。或者,從 [SQL] 菜單中選擇 [執行]。
                  4. 關閉與示例數據庫的連接。

                    從 [SQL] 菜單中選擇 [斷開連接]。

                  5. 連接到新的數據庫。

                    從 [SQL] 菜單中選擇 [連接]。

                    • 輸入 DBA 作為用戶 ID

                    • 輸入 SQL 作為口令

                    • 單擊 [數據庫] 選項卡,然后在 [數據庫文件] 框中輸入新數據庫文件的完整路徑和文件名。

                    • 單擊 [確定]。

                  6. 使用 read 語句。切記,此語句要求用雙引號將文件名引起來。

                    • 執行該 SQL 語句:

                      READ "c:\\Temp\\newdemo.SQL"

                  可以使用這些基本步驟來修改其它數據庫。

                  小結


                  此教程僅介紹 PowerDesigner 的一些基本特性。實際上,它可以處理數據庫模式的全部設計或修改,其中包括所有的表、視圖、索引、引用、觸發器和過程。

                  可以使用其它特性大大簡化大型數據庫的設計任務。例如,可以指定。域包含特定類型的數據,例如電話號碼。域與某種數據類型關聯,但域更具體一些。例如,可以創建標識號域。當需要表中的某個標識號時,可以將該列與標識號域關聯起來。同時,自動關聯所有與該域關聯的屬性和檢查。

                  域可減少重復性的定義。這樣,不僅減少了您的工作量,而且還降低了誤用其它類型定義或檢查過程的可能性。不應簡單地將列標識為一個整數,而是指定該列包含的具體數據類型。該數據類型的所有實例共享相同的定義。

                  有關詳細信息,請參見使用域

                  業務規則

                  業務規則以書面的形式來表達業務運營的方式。例如,the order shipped date must be greater than or equal to the order date(訂單交貨日期必須晚于或等于訂單日期)就是一條業務規則。

                  業務規則共分為四個類別:

                  • 定義    表示對象的固有屬性。[定義] 通常用于描述實體。

                  • 事實    表示肯定或存在。[事實] 通常用于描述關系。

                  • 校驗    是給值設定的約束。

                  • 公式    用于得出值的計算。

                  業務規則的使用很方便,因為它們與客戶要求數據庫執行的任務直接相關。通過記錄業務規則并將它們與特定對象關聯起來,可以確保數據庫執行所需的任務。

          posted on 2007-11-07 16:46 liujg 閱讀(218) 評論(0)  編輯  收藏


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          <2025年5月>
          27282930123
          45678910
          11121314151617
          18192021222324
          25262728293031
          1234567

          導航

          統計

          常用鏈接

          留言簿(1)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          相冊

          收藏夾

          boddiy

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 乌拉特前旗| 新民市| 呼伦贝尔市| 江源县| 秦皇岛市| 大英县| 姚安县| 福清市| 奎屯市| 抚远县| 诸城市| 靖西县| 石棉县| 岳普湖县| 连城县| 夏津县| 镇江市| 正镶白旗| 泾川县| 宾川县| 巢湖市| 金门县| 井陉县| 南岸区| 南京市| 贵南县| 马鞍山市| 和田县| 康平县| 荆州市| 霍州市| 通江县| 兰州市| 周宁县| 通城县| 郸城县| 扶绥县| 宜州市| 上林县| 游戏| 迁安市|