第二十章 資料庫設計輔助工具 開發資料庫由於需要和資料庫進行連線,所以動作上比一般的程式來的繁瑣,不論是檢視或建立資料表皆需要額外的工具輔助,為此,C++ Builder提供了一些實用的輔助工作來協助程式設計師開發資料庫程式,本章節將就這些工作進行介紹,以使身為設計師的你更能得心應手的開發資料庫程式。
大綱 20-1 Database Desktop的使用 20-2 Datapump工具使用 20-3 SQL Explorer工具使用 20-4 SQL Monitor工具使用
20-1. Database Desktop的使用 Database Desktop為C++ Builder內所附的應用程式,允許使用者利用該軟體對資料庫內的資料表進行讀取、修改、新增等動作,而開啟的資料庫類型除了Paradox和dBase外,亦支援BDE Administrator中所設定的各類型資料庫,但不論資料庫怎麼改變,基本的操作方式仍然大同小異,後面的小節中我們就檢視、編輯和建立資料表進行介紹,至於Database Destop程式的開啟可經由【開始】【程式集】【Borland C++ Builder6】【Database Desktop】開啟或是從C++ Builder開發環境的【tools】中開啟,如右圖所示:
20-1-1. 檢視資料表 執行Database Desktop應用程式後,點選【File】【New】【Table】即可選取所要檢視的資料表,如右圖。 在彈出的對話框中選擇所要檢視的資料表,如下所示
20-1-1. 檢視資料表 調整資料表結構 移動檢視紀錄指標 檢視資料 編輯資料 在上面的畫面中,我們可以直接選取所要的資料表,也可以根據BDE Administrator中的Alias設定來選擇資料表,透過Alias的選擇可以顯示該Alias所能檢視的資料表,至於檔案類型的選擇,則依檢視的資料表類型而調整,預設的檢視類型為Paradox(*.db)和dBase(*.dbf)。上圖為選擇Paradox格式的employee.db檔案所作的示範,在這裡我們使用Alias為BCDEMOS作為選擇資料表的依據,右圖則為開啟資料表後的Database Desktop程式畫面。 檢視模式不允許資料的修改 編輯模式允許修改資料表中的內容 調整資料表結構僅限dBase, Paradox, FoxPro和Access
20-1-1. 檢視資料表 下圖為調整資料表結構的對話框,可修改的資料包括欄位型態、欄位大小、是否設定主鍵和Index等。 欄位型態的設定則隨所選的資料表類型而有所不同。選取所欲修改的資料表欄位,在Type欄中按下滑鼠右鍵即會彈出可供設定的資料型別。
20-1-2. 建立資料表 除了檢視資料表外,Database Desktop也支援建立資料表的能力,首先,請選擇主選單中的【File】【New】【Table】來開啟一個資料表,如右所示。 接著將會出現選擇資料表類型的對話框要求就新增的資料表類型進行設定,為一下拉式的選單,提供了對Paradox、dBase、FoxPro、MS Access等不同資料表類型的支援,雖然格式允許不同,但整個新增資料表的方式仍然相同。
20-1-2. 建立資料表 說明: 以新增MySQL格式的資料表作為示範,對話框如右所示。 在Database Desktop中建立MySQL類型的資料表時,必須先安裝MySQL的ODBC驅動程式MyODBC,和利用BDE Administrator設定連結MySQL的Alias。
20-1-2. 建立資料表 選定新增的資料表類型後,即可就該資料表的各欄位與欄位型態進行設定,不外乎就是欄位名稱、欄位型態、欄位大小與是否允許空值等,其中的欄位型態允許以下拉選單的方式進行選擇,且會根據當初所選的表格類型提供不同的欄位型態選項,至於空值的設定則為旁邊的Required field選項,當選項呈選取狀態時不允許空值的存在,反之則允許空值的存在,最後,亦可設定資料表的Index,而整個畫面則如右所示。
20-1-2. 建立資料表 最後,完成了整個表格格式的設定後,即可進行儲存的動作,以右圖中含有三個欄位的表格為例,按下【Save As】按鈕後即可開啟儲存表格的對話框。 右下圖為儲存表格的對話框,由於我們希望能儲存該表格於遠端的MySQL伺服器中,所以選擇透過MySQL連結的Alias,而畫面上也顯示了該Alias目前存在的資料表名稱。此時,只需在檔案名稱中輸入所要儲存的檔案名稱並按下【存檔】按鈕即完成了儲存資料表格的動作,至於存檔類型則不需理會。 MySQL資料庫中現存的資料表 輸入欲存資料表名稱 連結MySQL資料庫的Alias
20-2. Datapump工具使用 Datapump工具的主要功用在於幫助使用者進行資料移轉的工作,也就是把某個資料庫內的資料表轉移到另外一個資料庫內,或是把資料表的內容全部讀取出來,這對於資料庫系統的移轉十分方便,譬如公司原來使用的Paradox資料庫隨著公司規模擴大或資料量增加而效能低落,此時必須改用效能較好的遠端資料庫系統如MySQL來代替原有的Paradox資料庫,此時利用Datapump程式能快速的將原有存在於Paradox中的資料表內容原封不動的轉移到MySQL資料庫內,節省重新輸入的麻煩,所以對於有資料移轉需求的讀者來說,Datapump程式是一個十分有用的工具。 透過【開始】【程式集】【Borland C++ Builder 6】【Datapump】開啟Datapump程式,該程式沒有繁複花俏的介面,直接透過表單畫面以Step By Step的方式要求使用者就移轉的來源、移轉的目標和欄位的對應關係等進行設定,因此,我們直接以每個表單畫面的內容進行說明,就每個表單教導讀者進行設定,而第一個表單即就移轉的來源進行設定。
20-2. Datapump工具使用 Step1 移轉來源的設定 所要移轉的資料來源可直接使用BDE Administrator中的設定,也就是把一個BDE Administrator的Alias當作移轉的資料來源,而表單畫面中也會顯示目前BDE Administrator可用的Alias。在這裡我們選擇一個使用ODBC連結MS Access的資料來源,選定後按下【Next】進入下一步驟的設定。
20-2. Datapump工具使用 Step2 移轉目標的設定 選定移轉資料的來源後,接著選擇移轉的目標,同樣也是從BDE Administrator中設定的Alias選擇,只不過不允許來源和目標為同一alias。在這裡我們選擇C++ Builder所提供的BCDEMOS資料來源,選定後按下【Next】進入第三步的設定。
20-2. Datapump工具使用 Step3 移轉內容的選定 選定來源和目標的資料連結後,Datapump會嘗試和來源資料庫進行連線並讀取可供移轉的資料表,並透過選單的方式供使用者選擇,在畫面中我們可看到所有可讀取的資料表均顯示在表單的左側,透過【>】(選取)或【>>】(全部選取)按鈕選擇所要移轉的資料表,這裡以employee資料表作為移轉的資料表,如右所示:
20-2. Datapump工具使用 Step4 檢視移轉訊息 不同資料庫紀錄資料表的格式不盡相同,在儲存資料上的資料型態也不完全一樣,所以在移轉的過程中可能發生資料表欄位設定不相容於目標資料庫的情形,為此,在選定移轉的資料表後,Datapump會檢查轉移過程中可能產生的問題,如每個欄位的型態是否皆能對應到目標資料庫所提供的欄位型態,並以如下圖的畫面呈現給使用者,如果畫面中出現"Has Problem"或"Modified"就代表Datapump無法判斷欄位間的對應關係或是已經作了修正,此時就必須按下【Modified Table Name or Field Mapping Information For Selected Item】按鈕進行修正,當然,在沒有錯誤的情況下,也可以透過該按鈕了解兩個資料庫間欄位型態的對應關係或是設定轉移後的資料表名稱。不需修正者可直接按下【Upsize】按鈕完成轉移資料表的動作,此時,選定的資料表將會複製一份在目標資料庫中。
20-2. Datapump工具使用 Step5 欄位對應設定 Step4中按下【Modified Table Name or Field Mapping Information For Selected Item】按鈕後將會彈出如右圖的設定畫面。該畫面顯示來源資料表和目標資料表每個欄位的對應情形,包括欄位名稱和欄位型態等,並可針對這些預設的選定值做些修正。修正完成後按下【Next】可回到Step4的畫面,按下【Upsize】完成轉換動作。
20-3. SQL Explorer工具使用 SQL Explorer為一個檢視資料庫內容的程式,可由【開始】【程式集】【Borland C++ Builder 6】【SQL Explorer】內點選開啟,而開啟後的畫面乍看之下有點類似BDE Administrator,整個畫面分成左右兩部分,其中的左半部顯示了各資料庫連結的名稱,右半部則為一多功能顯示區負責顯示左邊選取項目的相關訊息,畫面如下圖顯示
20-3. SQL Explorer工具使用 然而和BDE Administrator相比,SQL Explorer仍然有其特殊之處,以上頁的畫面來說,至少它能在右半部的樹狀圖中顯示資料庫內的表格與函式,當我們仔細點選資料庫內的表格時又可清楚的顯示該資料表中的相關資料,包括資料表的欄位與Indexes等,如下所示。
20-3. SQL Explorer工具使用 不過,最重要的在於其檢視資料表內容的方式允許直接檢視或是透過SQL語法的使用來達成,分別由右半部的【Data】和【Enter SQL】頁次負責,其中的【Data】頁次能檢視該資料表中的所有資料;【EnterSQL】頁次則提供透過SQL語法的輸入來檢視資料,兩者的畫面分別如下兩圖所示: 樣的功能除了讓使用者可以清楚了解資料表的結構外,亦能檢示其中的內容,或是當作練習SQL語法的好工具。
20-4. SQL Monitor工具使用 SQL Monitor輔助程式的主要目的在於當資料庫程式透過BDE和資料庫連結時,可以監控和遠端資料庫間訊息傳遞的情形,而透過這層的監控也讓程式設計師可以更清楚的了解究竟傳遞了哪些訊息至資料庫或是從資料庫裡傳回了哪些資料,對於開發資料庫程式時的除錯是非常有幫助的,而使用方法則只需執行該程式即可,所有BDE連結間的訊息傳遞便可清楚的顯示在該程式中,如下圖所示: 該程式唯一的缺點就在於只限BDE連結方式使用,對於ADO連結方式的使用者來說,便無法透過該工具的輔助了解應用程式和資料庫間的訊息傳遞情形,至於使用dbExpress連結的程式,則可以透過SQLMonitor這個C++ Builder所提供的元件來完成監督應用程式和資料庫間訊息傳遞的目的。
本章習題 習題 簡述Database Desktop工具的主要用途。 簡述Datapump工具的用途,並試著透過Datapump工具轉移資料表內容。 簡述SQL Monitor工具的用途,是否有其受限的地方?