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