適應性調整數據庫結構的方法與調整裝置的制造方法【
技術領域:
】[0001]本發明提供一種調整數據庫結構的方法與調整裝置,且特別是關于一種適應性調整數據庫結構的方法與調整裝置。【
背景技術:
】[0002]目前數據庫(database)中的數據庫結構(databasestructure)大多為客制化的數據庫結構,此客制化的數據庫結構為對數據庫中的數據作分析與管理,且藉由每筆數據的表格(table)的多種字段(column)信息產生數據間的關聯性。工程師可下達數據庫指令(例如SQL指令)來對上述數據進行儲存、查詢、與取用。[0003]然而,此種客制化數據庫結構的流程在遇到預想以外的數據時,就必須重新設計新的數據庫結構(例如重新宣告新數據的表格的多種字段信息)。使得工程師可以對新數據進行儲存、查詢、與取用。若工程師重新設計或修改數據庫結構的次數太多,將耗費許多人力在設計新的數據庫結構上,造成開發應用系統的速度變慢。故若數據庫結構在遇到新數據時可以自動調整為符合新數據的數據庫結構,將可加快開發應用系統的速度。【
發明內容】[0004]本發明實施例提供一種適應性調整數據庫結構的方法,其適用于一調整裝置。調整裝置連接于一數據庫與一用戶端之間,且數據庫儲存有一數據庫結構。上述適應性調整數據庫結構的方法包括:步驟A:接收數據庫執行來自于用戶端的一數據庫指令所產生的一執行結果;以及步驟B:判斷執行結果是否有一錯誤原因是因為數據庫結構不相符于數據庫指令而產生。若執行結果有錯誤原因是因為數據庫結構不相符于數據庫指令而產生,則依據錯誤原因對數據庫結構進行調整;以及若判斷執行結果并沒有錯誤原因是因為數據庫結構不相符于數據庫指令而產生,則回傳執行結果至用戶端。[0005]本發明實施例提供一種適應性調整數據庫結構的調整裝置。調整裝置連接于一數據庫與一用戶端之間,且數據庫儲存有一數據庫結構。上述調整裝置包括一數據庫引擎。數據庫引擎接收數據庫執行來自于用戶端的一數據庫指令所產生的一執行結果,并判斷執行結果是否有一錯誤原因是因為數據庫結構不相符于數據庫指令而產生。若數據庫引擎判斷執行結果有錯誤原因是因為數據庫結構不相符于數據庫指令而產生,則依據錯誤原因對數據庫結構進行調整;以及若數據庫引擎判斷執行結果沒有錯誤原因是因為數據庫結構不相符于數據庫指令而產生,則回傳執行結果至用戶端。[0006]綜合以上所述,本發明實施例所提供的適應性調整數據庫結構的方法與調整裝置可在工程師下達數據庫指令后自動調整所需的數據庫結構,使得調整后的數據庫結構可以符合數據庫指令,以減少工程師在設計新的數據庫結構上的時間。據此,工程師在開發應用系統時不需要一直考慮是否要重新設計新的數據庫結構,進而可加快開發應用系統的速度。[0007]為使能更進一步了解本發明之特征及技術內容,請參閱以下有關本發明之詳細說明與附圖,但是此等說明與所附圖式僅系用來說明本發明,而非對本發明的權利范圍作任何的限制。【附圖說明】[0008]圖1是本發明一實施例的調整裝置設置在用戶端以及數據庫之間的示意圖。[0009]圖2A是本發明一實施例的數據庫結構的示意圖。[0010]圖2B是本發明另一實施例的數據庫結構的示意圖。[0011]圖2C是本發明另一實施例的數據庫結構的示意圖。[0012]圖2D是本發明另一實施例的數據庫結構的示意圖。并且[0013]圖3是本發明一實施例的適應性調整數據庫結構的方法的流程圖。【具體實施方式】[0014]在下文中,將藉由圖式說明本發明之各種例示實施例來詳細描述本發明。然而,本發明概念可能以許多不同形式來體現,且不應解釋為限于本文中所闡述之例示性實施例。此外,在圖式中相同參考數字可用以表示類似的組件。[0015]本發明實施例提供一種適應性調整數據庫結構的方法與調整裝置。上述調整裝置設置于用戶端與數據庫之間,用戶端(例如,終端裝置、電子裝置、計算機等)可產生數據庫指令(例如,結構化查詢語言(StructuredQueryLanguage,SQL))并傳送到數據庫。數據庫將執行數據庫指令,以產生可解讀的訊息供調整裝置來判斷數據庫結構是否需要調整。若數據庫結構需要調整,則調整裝置根據可解讀的訊息調整數據庫中的數據庫結構。若數據庫結構不需要調整,則回傳可解讀的訊息至用戶端,以供工程師進行后續處理。換言之,只要數據庫指令不符合現有的數據庫結構,調整裝置就會自動調整數據庫中的數據庫結構,以符合用戶端所傳送的數據庫指令。[0016]首先,請參考圖1,圖1是本發明一實施例的調整裝置設置在用戶端以及數據庫之間的示意圖。如圖1所示,調整裝置1〇〇連接于數據庫20與用戶端10之間,且數據庫儲存有數據庫結構。在本實施例中,數據庫結構為數據庫綱要(databaseschema),其為用來描述儲存在數據庫2中的數據。數據庫結構亦可為索引數據(indexes)或其他相關于數據庫中的數據的描述,本發明對此不作限制。在此請注意,本文中的「連結」一詞系表示直接或間接的電性連接、有線或無線網絡的連接、或者透過中間設備的有線或無線連結。[0017]在本實施例中,用戶端10可以是任何類型的用戶裝置(例如,可攜式電子裝置、計算機、公用的信息工作站、交互式多媒體信息站KIOSK或其他終端裝置等)。調整裝置100接收用戶端10所發送的數據庫指令,并將數據庫指令傳送至數據庫20。數據庫指令包括一功能函數、至少一表格的表格名稱與表格內至少一變數的變數名稱,且變數對應有一數據型態。而數據庫指令更可包括上述每個變數的一數值。有關數據庫指令中的功能函數、至少一表格的表格名稱與表格內至少一變數的變數名稱、數據型態、與數值的【具體實施方式】會藉由后續的實施例加以說明,故在此不再贅述。[0018]在本實施例中,數據庫指令例如為結構化查詢語言(StructuredQueryLanguage,SQL),其中SQL指令為數據庫領域中常用的數據庫語言,故在此不再贅述。另外,本實施例的數據庫指令雖以SQL指令為例,但本發明并不限制數據庫指令的類型,亦可以是其他兼容于ANSISQL實作的數據庫語言。此外,用戶端10所產生的數據庫指令亦可直接傳送到數據庫20而不需透過調整裝置100來傳送(未繪于圖式中),本發明對此不作限制。[0019]數據庫20接著將執行數據庫指令并據此產生一執行結果。在本實施例中,執行結果系為可解讀的訊息。舉例來說,若數據庫指令為SQL查詢指令,如下所示:[0020][0021]此時,執行結果的內容將為〃CREATETABLEmytable(aint,bint,cint)〃的可解讀訊息。意即,數據庫指令的功能函數為建立表格,表格的表格名稱為〃mytable〃,表格內的變數分別為a、b與c。變數a、b與c的數據型態為整數(即int)的數據型態,且變數a、b與c的數值分別為1、2與3。而上述執行結果的內容亦可為其他描述方式的可解讀訊息,本發明對此不作限制。[002當前第1頁1 2 3