數(shù)據(jù)處理裝置及數(shù)據(jù)處理方法
【技術領域】
[0001] 本發(fā)明提供一種數(shù)據(jù)處理裝置及數(shù)據(jù)處理方法,且特別是涉及一種等效上可以提 升數(shù)據(jù)庫系統(tǒng)的負載能力的數(shù)據(jù)處理裝置及數(shù)據(jù)處理方法。
【背景技術】
[0002] 對于數(shù)據(jù)庫系統(tǒng)而言,處理指令或數(shù)據(jù)自然是最主要也是耗費時間的工作,且數(shù) 據(jù)庫系統(tǒng)每處理一次指令或數(shù)據(jù)都會消耗數(shù)據(jù)庫系統(tǒng)的工作時間。以訂票系統(tǒng)來說明,當 一個使用者在訂票系統(tǒng)中提出訂票需求時,訂票系統(tǒng)將傳送訂票請求至數(shù)據(jù)庫系統(tǒng),使得 數(shù)據(jù)庫系統(tǒng)可根據(jù)訂票需求更新或確認數(shù)據(jù)庫數(shù)據(jù)。不論使用者提出的訂票需求會不會更 新數(shù)據(jù)庫數(shù)據(jù),使用者提出的訂票需求都會傳送到數(shù)據(jù)庫系統(tǒng)并請求執(zhí)行,而消耗數(shù)據(jù)庫 系統(tǒng)的工作資源和時間。
[0003] 然而,在大型且可供眾多使用者使用的數(shù)據(jù)庫系統(tǒng)中,當很多使用者(例如,十萬 個使用者)同時傳送指令,例如在訂票系統(tǒng)中提出訂票、退票、改位等需求時,數(shù)據(jù)庫系統(tǒng)將 同時處理大量的指令,一旦超過該數(shù)據(jù)庫系統(tǒng)的負荷,將會造成數(shù)據(jù)庫系統(tǒng)當機。一般來 說,業(yè)者往往需要增加硬件資源來提高數(shù)據(jù)庫系統(tǒng)的負荷,或是修改數(shù)據(jù)庫系統(tǒng)中的相關 指令,但這些都會增加業(yè)者的成本。
[0004] 在另外一方面,當大量指令涌進數(shù)據(jù)庫系統(tǒng),無論這些指令的結果是否會改變數(shù) 據(jù)庫中的數(shù)據(jù)(例如是否可訂到票),數(shù)據(jù)庫系統(tǒng)都需要進行處理,導致數(shù)據(jù)庫系統(tǒng)的效能 緩慢,使得應該可不執(zhí)行指令,將影響可執(zhí)行的指令,例如,當訂票系統(tǒng)中的某些票已售完 無法在售出時,訂票系統(tǒng)卻仍需處理這些指令,而其他原本可訂到票的使用者無法順利訂 到票,導致使用者訂票上的不方便。若能夠在用戶端以及數(shù)據(jù)庫系統(tǒng)之間預先處理,將明確 無法訂到票的訂票指令攔截下來,將可減輕數(shù)據(jù)庫系統(tǒng)的負荷,并加快其他可訂到票的訂 票指令的處理速度。
【發(fā)明內(nèi)容】
[0005] 本發(fā)明實施例提供一種數(shù)據(jù)處理裝置,上述數(shù)據(jù)處理裝置連接于用戶端與數(shù)據(jù)庫 系統(tǒng)之間。數(shù)據(jù)庫系統(tǒng)中具有多個數(shù)據(jù)庫數(shù)據(jù)。數(shù)據(jù)處理裝置包括解析單元以及判斷單 元。解析單元接收來自用戶端傳送的用戶指令,并根據(jù)數(shù)據(jù)庫語法分析用戶指令以對應產(chǎn) 生解析結果數(shù)據(jù)。以及判斷單元連接于解析單元與數(shù)據(jù)庫系統(tǒng)之間。判斷單元具有快取數(shù) 據(jù),且判斷單元根據(jù)快取數(shù)據(jù)及解析結果數(shù)據(jù)判斷用戶指令是否會改變多個數(shù)據(jù)庫數(shù)據(jù)的 至少其中之一,其中快取數(shù)據(jù)記錄有前一次的用戶指令是否改變的多個數(shù)據(jù)庫數(shù)據(jù)的至少 其中之一。若判斷單元判斷用戶指令不會改變上述多個數(shù)據(jù)庫數(shù)據(jù)的至少其中之一,則判 斷單元根據(jù)傳送預設信息至用戶端,且判斷單元不會將用戶指令傳送到數(shù)據(jù)庫系統(tǒng)。
[0006] 本發(fā)明實施例題提供一種數(shù)據(jù)處理方法,上述數(shù)據(jù)處理方法適用于數(shù)據(jù)處理裝 置。數(shù)據(jù)處理裝置連接于用戶端與數(shù)據(jù)庫系統(tǒng)之間,且數(shù)據(jù)庫系統(tǒng)中具有多個數(shù)據(jù)庫數(shù)據(jù)。 上述數(shù)據(jù)處理方法的步驟如下。接收來自用戶端傳送的用戶指令,并根據(jù)數(shù)據(jù)庫語法分析 用戶指令,以對應產(chǎn)生解析結果數(shù)據(jù)。根據(jù)快取數(shù)據(jù)及解析結果數(shù)據(jù)判斷用戶指令是否會 改變多個數(shù)據(jù)庫數(shù)據(jù)的至少其中之一,其中快取數(shù)據(jù)記錄有前一次的用戶指令是否改變的 多個數(shù)據(jù)庫數(shù)據(jù)的至少其中之一。若判斷用戶指令不會改變多個數(shù)據(jù)庫數(shù)據(jù)的至少其中之 一,則根據(jù)傳送預設信息至用戶端,且不會將用戶指令傳送到數(shù)據(jù)庫系統(tǒng)。
[0007] 綜合以上所述,本發(fā)明實施例所提供的數(shù)據(jù)處理裝置及數(shù)據(jù)處理方法可降低數(shù)據(jù) 庫系統(tǒng)同時處理大量的資料的負擔,并等效上地提升數(shù)據(jù)庫的負載能力。
[0008] 為使能更進一步了解本發(fā)明的特征及技術內(nèi)容,請參閱以下有關本發(fā)明的詳細說 明與附圖,但是此等說明與所附圖式僅是用來說明本發(fā)明,而非對本發(fā)明的權利要求范圍 作任何的限制。
【附圖說明】
[0009] 圖1是本發(fā)明一實施例的數(shù)據(jù)處理裝置設置在用戶端與數(shù)據(jù)庫系統(tǒng)之間的示意 圖。
[0010] 圖2是本發(fā)明一實施例的數(shù)據(jù)處理方法的流程圖。
[0011] 圖3是本發(fā)明另一實施例的數(shù)據(jù)處理裝置設置在用戶端與數(shù)據(jù)庫系統(tǒng)之間的示 意圖。
[0012] 圖4是本發(fā)明另一實施例的數(shù)據(jù)處理裝置設置在用戶端與數(shù)據(jù)庫系統(tǒng)之間的示 意圖。
[0013] 圖5是本發(fā)明另一實施例的數(shù)據(jù)處理方法的流程圖。
[0014] 圖6A~圖6E是本發(fā)明一實施例的用戶端利用具有數(shù)據(jù)處理裝置的數(shù)據(jù)庫系統(tǒng)訂 購電影票的示意圖。
[0015] 【符號說明】
[0016] 10:用戶端
[0017] 12A:屏幕
[0018] 20 :數(shù)據(jù)庫系統(tǒng)
[0019] 22:數(shù)據(jù)庫引擎
[0020] 24 :數(shù)據(jù)庫
[0021] 30 :數(shù)據(jù)處理裝置
[0022] 32 :解析單元
[0023] 34 :判斷單元
[0024] 40 :數(shù)據(jù)處理裝置
[0025] 40' :數(shù)據(jù)處理裝置
[0026] 42 :解析單元
[0027] 44 :判斷單元
[0028] 46 :封包單元
[0029] 48 :切換單元
[0030] 58 :切換單元
[0031] S210、S220、S230、S240 :步驟
[0032] S510、S520、S530、S535、S540、S545 :步驟
【具體實施方式】
[0033] 本發(fā)明實施例提供一種數(shù)據(jù)處理裝置及用于數(shù)據(jù)處理裝置的數(shù)據(jù)處理方法。所述 數(shù)據(jù)處理裝置設置于用戶端與數(shù)據(jù)庫系統(tǒng)之間,用戶端(如終端裝置、電子裝置、電腦等)可 產(chǎn)生用戶指令并傳送到數(shù)據(jù)庫系統(tǒng),以請求執(zhí)行用戶指令,所述數(shù)據(jù)處理裝置及數(shù)據(jù)處理 方法可以預先地判斷用戶端所傳送的用戶指令是否會改變數(shù)據(jù)庫系統(tǒng)中的多個數(shù)據(jù)庫數(shù) 據(jù)的至少其中之一。若判斷用戶指令不會改變數(shù)據(jù)庫系統(tǒng)中的數(shù)據(jù)庫數(shù)據(jù)的至少其中之 一,則預設信息會被傳送至用戶端,而不會傳送用戶指令到數(shù)據(jù)庫系統(tǒng)。換言之,只有在用 戶指令會改變數(shù)據(jù)庫系統(tǒng)中的數(shù)據(jù)庫數(shù)據(jù)的至少其中之一時,用戶指令才會被傳送至數(shù)據(jù) 庫系統(tǒng)進行處理。據(jù)此,所述數(shù)據(jù)處理裝置與數(shù)據(jù)處理方法可協(xié)助數(shù)據(jù)庫系統(tǒng)處理用戶指 令,以降低數(shù)據(jù)庫系統(tǒng)同時處理大量的資料的負擔,并等效上地提升數(shù)據(jù)庫的負載能力。
[0034] 首先,請參考圖1,圖1是本發(fā)明一實施例的數(shù)據(jù)處理裝置設置在用戶端與數(shù)據(jù)庫 系統(tǒng)之間的示意圖。如圖1所示,數(shù)據(jù)處理裝置30連接于用戶端10與數(shù)據(jù)庫系統(tǒng)20之間, 且數(shù)據(jù)庫系統(tǒng)20具有多個數(shù)據(jù)庫數(shù)據(jù)。在此請注意,本文中的"連接"一詞表示直接或間 接地電性連接、有線或無線網(wǎng)絡的連接、或者通過中繼裝置的有線或無線連接。
[0035] 在本實施例中,用戶端10可以是任何類型的用戶裝置(例如,可攜式電子裝置、電 腦、公用的信息工作站、交互式多媒體信息站KIOSK或其他終端裝置等),數(shù)據(jù)處理裝置30 接收用戶端10所發(fā)送的用戶指令,并進一步判斷多個用戶裝置所提出的用戶指令是否會 改變數(shù)據(jù)庫系統(tǒng)20中的多個數(shù)據(jù)庫數(shù)據(jù)的至少其中之一。若用戶指令不會改變數(shù)據(jù)庫系 統(tǒng)20中的多個數(shù)據(jù)庫數(shù)據(jù)的至少其中之一,則數(shù)據(jù)處理裝置30將不傳送用戶指令給數(shù)據(jù) 庫系統(tǒng)20,而直接回傳預設信息給用戶端10。而用戶指令是否會改變數(shù)據(jù)庫系統(tǒng)20中的 多個數(shù)據(jù)庫數(shù)據(jù)的至少其中之一,可依據(jù)快取數(shù)據(jù)中所記錄的前一次的用戶指令是否改變 這些數(shù)據(jù)庫數(shù)據(jù)的至少其中之一而決定。
[0036] 數(shù)據(jù)處理裝置30包含解析單元32以及判斷單元34。解析單元32為接收來自 用戶端10傳送的用戶指令,并根據(jù)數(shù)據(jù)庫語法分析用戶指令以對應產(chǎn)生解析結果數(shù)據(jù) 至判斷單元34。在本實施例中,數(shù)據(jù)庫語法例如為結構化查詢語言(Structured Query Language,SQL),其中SQL語法為數(shù)據(jù)庫管理系統(tǒng)中常用的數(shù)據(jù)庫語法,故在此不再贅述。 另外,本實施例的數(shù)據(jù)庫語法雖以SQL為例,但本發(fā)明并不限制數(shù)據(jù)庫語法的類型,也可以 是其他兼容于ANSI SQL實作的查詢語言。
[0037] 判斷單元34連接于解析單元32與數(shù)據(jù)庫系統(tǒng)20之間。判斷單元34具有快取數(shù) 據(jù),且判斷單元34根據(jù)快取數(shù)據(jù)及解析結果數(shù)據(jù)判斷用戶指令是否會改變數(shù)據(jù)庫系統(tǒng)20 中的多個數(shù)據(jù)庫數(shù)據(jù)的至少其中之一。快取數(shù)據(jù)記錄前一次的用戶指令是否改變的多個數(shù) 據(jù)庫數(shù)據(jù)的至少其中之一。在一些實施例中,快取數(shù)據(jù)也可記錄前數(shù)次的用戶指令是否改 變的多個數(shù)據(jù)庫數(shù)據(jù)的至少其中之一。在本實施例中,快取數(shù)據(jù)為儲存在判斷單元34中的 儲存裝置中,且所述儲存裝置的類型并無任何限制。
[0038] 舉例來說,在一訂票系統(tǒng)中,所訂的票不需要指定座位、時間、場次或其他特定數(shù) 據(jù),僅有數(shù)量限制。數(shù)據(jù)庫系統(tǒng)20所儲存的數(shù)據(jù)庫數(shù)據(jù)可為訂票數(shù)量。而快取數(shù)據(jù)則可記 錄可銷售的訂票數(shù)量。例如當前一次"訂票"指令執(zhí)行成功時,因可銷售的訂票數(shù)量減少使 得數(shù)據(jù)庫數(shù)據(jù)有改變,快取數(shù)據(jù)將目前可銷售的訂票數(shù)量記錄下來。接著,在快取數(shù)據(jù)紀錄 目前有可銷售的訂票數(shù)量的情況下,當下一次的用戶指令為"訂票"時,判斷單元34根據(jù)快 取數(shù)據(jù)判斷會改變數(shù)據(jù)庫數(shù)據(jù)(即目前有可銷售的訂票數(shù)量),判斷單元34接著將"訂票"指 令送往數(shù)據(jù)庫系統(tǒng)20執(zhí)行。但是在快取數(shù)據(jù)記錄目前沒有可銷售的訂票數(shù)量的情況下,當 下一次的用戶指令為"訂票"時,判斷單元34根據(jù)快取數(shù)據(jù)判斷不會改變數(shù)據(jù)庫數(shù)據(jù)(即沒 有可銷售的訂票數(shù)量),判斷單元34不會將"訂票"指令送往數(shù)據(jù)庫系統(tǒng)20執(zhí)行。直到其 他用戶指令如"退票"指令送到數(shù)據(jù)庫系統(tǒng)20中,且改變數(shù)據(jù)庫數(shù)據(jù)時,再下一次的"訂票" 指令才會被判斷單元34判