[烏龜訂購系統開發與實作-10]-從 EA 工具建立資料模型,並產出 DDL SQL敘述

下列步驟主要目地在於建立資料庫的資料表格,並實現由中間層控制物件連結至資料庫,以達成實際存取資料的目地。

十、從 EA 工具建立資料模型,並產出 DDL SQL敘述

  • 透過 EA 建立資料模型 (Data Model)的原因,在於 EA 具備了視覺化的資料塑模機制。且透過其轉換 (transform)功能,可以產出支援多達十數種資料庫的 DDL (Data Definition Language) SQL敘述。
  • 當然也可以使用如 eclipse 插件 (plugin)的資料庫管理工具,來規劃與建立資料表格。
  1. 在 [Logical View] 套件內,新增子套件 (sub-package)名為「Data Model」。
  2. 在該套件內新增一設計圖名為「Order Model」,設計圖類型為「Data Modeling」。
  3. 打開設計圖,從工具箱 (toolbox)中將「Table」圖形元件拖曳至設計圖內。本例會使用到兩個表格,其表格名稱與資料欄位參考如下:
    CREATE TABLE ORDER
    (
    	id INTEGER AUTO_INCREMENT,
    	item_no VARCHAR(3) NOT NULL,
    	order_date DATE,
    	PRIMARY KEY (id)
    )
    CREATE TABLE Item
    (
    	id VARCHAR(3) NOT NULL,
    	name VARCHAR(24),
    	price INTEGER,
    	PRIMARY KEY (id)
    )
  4. 在 Table 的屬性 (property)視窗內,填入「Name」、「Alias」、「Database」等資訊。在本例中,可以選擇支援標準 SQL 語法 (ANSI-SQL)的 MySql 資料庫。

    圖 16、設計資料表格屬性、指定轉換資料庫版本
    (點擊圖片鏈接看原圖)圖 16、設計資料表格屬性、指定轉換資料庫版本

  5. 切換至 [Table Detail] 標籤,點擊 [Columns/Attributes],在出現的 Columns 視窗內,新增 column 與設定相關的屬性。

     圖 17、新增 Column,設定相關屬性
    (點擊圖片鏈接看原圖) 圖 17、新增 Column,設定相關屬性

  6. 產出 DDL (Data Definition Language) SQL 敘述檔 (純文字檔)。
    點選 [Project Browser] → [Data Model] 套件,右鍵選擇 [Code Engineering] → [Generate DDL...],在出現的對話框內,指定所產出 DDL 檔案的目錄與檔名,以及勾選相關的資料庫設定項目,按下 [Gererate]。

     圖 18、產出 DDL SQL 敘述檔
    (點擊圖片鏈接看原圖) 圖 18、產出 DDL SQL 敘述檔

文章導覽

   

共有 3 則迴響

  1. 我試了老半天, 原來是在 Code Engineering 的 Comment 項目要改啊..
    真是萬分感謝!!

  2. 1.在Notes中設定描述:
    EA-SQL-001

    2. 產生DDL的對話框中,Comment選擇「Column」(若是Table跟Column都要產生Comment,選擇All):
    EA-SQL-002

    3.3. 按下Generate即可(產生的SQL檔):

    CREATE TABLE BlameEmployee (
            MS_Description nvarchar(50)    -- 案件編號
    );
     
    EXEC sp_addextendedproperty 'MS_Description', '案件編號', 'Schema', dbo, 'table', BlameEmployee, 'column', MS_Description;
  3. 請問一下, 產出的 SQL 敘述檔, 如果要有”描述”欄位的建立, 在 EA 工具中要如何設定呢??
    例如像這樣的指令
    exec sp_addextendedproperty N’MS_Description’, N’案件編號’, N’user’, N’dbo’, N’table’, N’BlameEmployee’, N’column’, N’CaseNo’

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *