欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

智能卡中數(shù)據(jù)庫的查詢方法及裝置的制作方法

文檔序號:6615744閱讀:210來源:國知局

專利名稱::智能卡中數(shù)據(jù)庫的查詢方法及裝置的制作方法
技術(shù)領(lǐng)域
:本發(fā)明涉及智能卡技術(shù),尤其涉及一種在智能卡數(shù)據(jù)庫中的查詢方法及裝置。
背景技術(shù)
:隨著智能卡技術(shù)的不斷發(fā)展,智能卡的硬件工藝水平也不斷的增長,例如以CPU為例,智能卡的CPU從智能卡技術(shù)發(fā)展初期的8位,發(fā)展到廣為使用的16位。智能卡的存儲容量也由最初的幾十字節(jié),發(fā)展到現(xiàn)在的幾十K、上百K字節(jié)。在智能卡硬件工藝發(fā)展的同時,智能卡的片上操作系統(tǒng)也不斷的成熟與完善,這就使得應(yīng)用于傳統(tǒng)計算機(jī)上的數(shù)據(jù)庫技術(shù),延伸到了智能卡的片上操作系統(tǒng)中,這也為更豐富的移動數(shù)據(jù)服務(wù)提供了一個嶄新的實現(xiàn)平臺。凄t據(jù)查詢技術(shù)是數(shù)據(jù)庫的核心技術(shù)之一。對于智能卡的數(shù)據(jù)庫查詢技術(shù)而言,位圖索引(BitmapIndex,BMI)技術(shù)是應(yīng)用最為廣泛的一種。傳統(tǒng)的基于位圖索引技術(shù)的數(shù)據(jù)庫查詢方法包括如下步驟1)將用戶輸入的數(shù)據(jù)庫查詢技術(shù)轉(zhuǎn)化成復(fù)雜的邏輯運算表達(dá)式;2)利用正則表達(dá)式,對所述邏輯運算表達(dá)式進(jìn)行邏輯優(yōu)先級處理,以確定各BMI之間的相關(guān)性,及優(yōu)先級,得到多個BMI位串;3)將目標(biāo)數(shù)據(jù)表內(nèi)同一記錄集上生成的多個BMI位串,按照經(jīng)邏輯優(yōu)先級處理后的邏輯運算表達(dá)式進(jìn)行相應(yīng)的邏輯位運算,如與運算,或運算,或者是非運算操作等,得到最終的查詢結(jié)果,顯示給用戶。但是,現(xiàn)有技術(shù)中基于位圖索引技術(shù)進(jìn)行數(shù)據(jù)庫查詢的過程中,存在如下問題1)在步驟(2)中,利用正則表達(dá)式對邏輯運算表達(dá)式進(jìn)行相應(yīng)處理的時候,由于正則表達(dá)式的處理過于復(fù)雜,因此,利用上述的算法,耗用了智能卡操作系統(tǒng)中大量的CPU資源和內(nèi)存資源,從而降低了查詢的速度;2)在步驟(3)中,在對BMI位串進(jìn)行邏輯位運算的時候,需要在智能卡內(nèi),保存每步邏輯位運算的計算結(jié)果,并將保存的結(jié)果再進(jìn)行最后的運算,才能得到最終的查詢結(jié)果。因此,在保存每步邏輯位運算的計算結(jié)果的時候,占用了智能卡的內(nèi)存空間,浪費了智能卡的資源。
發(fā)明內(nèi)容本發(fā)明提供了一種智能卡中數(shù)據(jù)庫的查詢方法及裝置,利用本發(fā)明所述的方法及裝置,能夠提高查詢速度。本發(fā)明一種智能卡中數(shù)據(jù)庫的查詢方法采用以下技術(shù)方案一種智能卡中數(shù)據(jù)庫的查詢方法,包括如下步驟對查詢條件進(jìn)行分類;將分類結(jié)果進(jìn)行排序,得到查詢條件序列;根據(jù)所述查詢條件序列,生成操作數(shù);按照所述操作數(shù)確定的運算規(guī)則,對所述查詢條件序列進(jìn)行運算,得到查詢結(jié)果。其中,所述對查詢條件進(jìn)行分類的步驟具體為按照"可能包含的查詢條件"、"必須包含的查詢條件"、"不能包含的查詢條件"將所述查詢條件進(jìn)行分類。其中,所述對分類結(jié)果進(jìn)行排序,得到查詢條件序列的步驟具體為定義"不能包含的查詢條件"分類中,各查詢條件所對應(yīng)的邏輯位操作類型為"非"操作;定義"可能包含的查詢條件"分類中,各查詢條件之間的邏輯位操作類型為"或"操作;定義"必須包含的查詢條件"以及"不能包含的查詢條件,,分類中,各查詢條件之間的邏輯位操作類型為"與"操作;定義"可能包含的查詢條件"、"必須包含的查詢條件,,以及"不能包含的查詢條件"三個分類之間的邏輯位操作類型為"與,,操作;排列與所述三種邏輯位操作類型相對應(yīng)的三類查詢條件,得到查詢條件序列。其中,所述排列與所述三種邏輯位操作類型相對應(yīng)的三類查詢條件的步驟具體為按照進(jìn)行"或"、"與"、"非"邏輯位操作的順序,排列分別與所述三種邏輯位纟乘作類型相對應(yīng)的分類,得到查詢條件序列("可能包含的查詢條件"、"必須包含的查詢條件"、"不能包含的查詢條件,,)。其中,根據(jù)所述查詢條件序列,生成操作數(shù)的步驟具體為在所述查詢條件序列中,根據(jù)是否為定義的"不能包含的查詢條件"分類中各查詢條件所對應(yīng)的邏輯位4喿作類型,生成第一操作數(shù);在所述查詢條件序列中,根據(jù)每兩個查詢條件之間的邏輯位運算關(guān)系,生成第二操作數(shù)。其中,所述第一操作數(shù)和第二操作數(shù)的位數(shù),與智能卡操作系統(tǒng)中CPU的位數(shù)相同;若所述第一操作數(shù)或第二操作數(shù)小于所述智能卡操作系統(tǒng)中CPU的位數(shù),不足的位用0補(bǔ)足。其中,所述生成第一操作數(shù)的步驟為在所述查詢條件序列中,用l表示進(jìn)行"非"邏輯位運算的查詢條件;用0表示進(jìn)行其他類型邏輯位運算的查詢條件;所述生成第二操作數(shù)的步驟為在所述查詢條件序列中,用"1"表示每兩個查詢條件之間進(jìn)行的"或"運算,用"0"表示每兩個查詢條件之間進(jìn)行的"與"運算。其中,所述按照所述操作數(shù)確定的運算規(guī)則,對所述查詢條件序列進(jìn)行運算的步驟具體為按照第一操作數(shù)確定的運算規(guī)則,對"不能包含的查詢條件"分類的各查詢條件進(jìn)行"非"運算,得到"不能包含的查詢條件"分類中各查詢條件的運算結(jié)果;按照第二操作數(shù)確定的運算規(guī)則,對"可能包含的查詢條件"分類的各查詢條件進(jìn)行"或"運算,得到"可能包含的查詢條件"分類的運算結(jié)果;并與"必須包含的查詢條件,,分類的各查詢條件,以及按照第一操作數(shù)運算獲得的"不能包含的查詢條件"分類中各查詢條件的運算結(jié)果進(jìn)行"與"運算。本發(fā)明所述的智能卡中數(shù)據(jù)庫的查詢方法,首先對用戶輸入的查詢條件進(jìn)行分類,得到查詢條件序列,并根據(jù)在查詢條件序列中各查詢條件或各查詢條件之間的邏輯位操作類型,得到第一操作數(shù)和第二操作數(shù)。通過得到的第一操作數(shù)和第二操作數(shù)所定義的運算規(guī)則,對查詢條件序列進(jìn)行計算,最終得到查詢結(jié)果。這樣,就避免了現(xiàn)有技術(shù)數(shù)據(jù)庫查詢技術(shù)中需要利用正則表達(dá)式進(jìn)行的復(fù)雜運算。因此,本發(fā)明的方法大大提高了CPU的處理速度,加快了查詢的速度。本發(fā)明智能卡數(shù)據(jù)庫的查詢裝置采用以下技術(shù)方案一種智能卡數(shù)據(jù)庫的查詢裝置,包括分類單元,用于對查詢條件進(jìn)行分類;序列生成單元,用于對分類結(jié)果進(jìn)行排序,得到查詢條件序列;操作數(shù)生成單元,用于根據(jù)所述查詢條件序列,生成操作數(shù);運算單元,用于按照所述操作數(shù)確定的運算規(guī)則,對所述查詢條件序列進(jìn)行運算,得到查詢結(jié)果。其中,所述序列生成單元包括第一操作類型定義模塊,用于定義"不能包含的查詢條件"分類中,各查詢條件所對應(yīng)的邏輯位操作類型為"非"操作;第二操作類型定義模塊,用于定義"可能包含的查詢條件"分類中,各查詢條件之間的邏輯位操作類型為"或"操作;第三搡作類型定義模塊,用于定義"必須包含的查詢條件"以及"不能包含的查詢條件"分類中,各查詢條件之間的邏輯位操作類型為"與"操作;第四操作類型定義模塊,用于定義"可能包含的查詢條件"、"必須包含的查詢條件"以及"不能包含的查詢條件"三個分類之間的邏輯位操作類型為"與:操作;排序單元,用于排列與所述三種邏輯位4喿作類型相對應(yīng)的三類查詢條件,得到查詢條件序列,并將所述查詢條件序列送入運算單元。其中,所述操作數(shù)生成單元包括第一操作數(shù)生成單元,用于在查詢條件序列中,根據(jù)是否為定義的"不能包含的查詢條件"分類中各查詢條件所對應(yīng)的邏輯位操作類型,生成第一<作數(shù);第二操作數(shù)生成單元,用于在查詢條件序列中,根據(jù)定義的每兩個查詢條件之間的邏輯位運算關(guān)系,生成第二操作數(shù)。其中,所述第一操作數(shù)和第二操作數(shù)的位數(shù),與智能卡操作系統(tǒng)中CPU的位數(shù)相同;若所述第一操作數(shù)或第二操作數(shù)小于所述智能卡操作系統(tǒng)中CPU的位數(shù),不足的位用0補(bǔ)足。其中,運算單元按照第一操作數(shù)確定的運算規(guī)則,對"不能包含的查詢條件"分類的各查詢條件進(jìn)行"非"運算,得到"不能包含的查詢條件"分類中各查詢條件的運算結(jié)果;按照第二操作數(shù)確定的運算規(guī)則,對"可能包含的查詢條件"分類的各查詢條件進(jìn)行"或"運算,得到"可能包含的查詢條件"分類的運算結(jié)果;并與"必須包含的查詢條件"分類的各查詢條件,以及按照第一操作數(shù)運算獲得的"不能包含的查詢條件"分類中各查詢條件的運算結(jié)果進(jìn)行"與"運算。本發(fā)明所述的智能卡中凝:據(jù)庫的查詢裝置,首先由分類單元對用戶輸入的查詢條件進(jìn)行分類,并由排序單元對所述查詢條件進(jìn)行排序,得到查詢條件序列;并根據(jù)在查詢條件序列中各查詢條件或各查詢條件之間的邏輯位操作類型,由操作數(shù)生成單元分別得到第一操作數(shù)和第二操作數(shù)。通過得到的第一操作數(shù)和第二操作數(shù)所定義的運算規(guī)則,對查詢條件進(jìn)行計算,最終由運算單元得到查詢結(jié)果。這樣,就避免了現(xiàn)有技術(shù)數(shù)據(jù)庫查詢技術(shù)中需要利用正則表達(dá)式進(jìn)行的復(fù)雜運算。因此,本發(fā)明的方法大大提高了CPU的處理速度,加快了查詢的速度。圖1是本發(fā)明智能卡中數(shù)據(jù)庫的查詢方法的流程圖;圖2是本發(fā)明智能卡中數(shù)據(jù)庫的查詢方法具體流程圖;圖3是本發(fā)明智能卡中數(shù)據(jù)庫的查詢裝置的結(jié)構(gòu)圖;圖4是本發(fā)明智能卡中數(shù)據(jù)庫的查詢裝置的具體結(jié)構(gòu)圖。具體實施方式為使本發(fā)明技術(shù)方案的優(yōu)點更加清楚,下面結(jié)合附圖對本發(fā)明做進(jìn)一步的詳細(xì)說明。為了解決現(xiàn)有技術(shù)數(shù)據(jù)庫查詢技術(shù)中,需要利用正則表達(dá)式進(jìn)行的復(fù)雜運算,而導(dǎo)致查詢速度降低的問題,本發(fā)明提供了一種在智能卡中數(shù)據(jù)庫的查詢方法。如圖1所示,所述方法包括Sl:對查詢條件進(jìn)行分類;S2:將分類結(jié)果進(jìn)行排序,得到查詢條件序列;S3:根據(jù)所述查詢條件序列,生成操作數(shù);S4:按照所述操作數(shù)確定的運算規(guī)則,對所述查詢條件序列進(jìn)行運算,得到查詢結(jié)果。本發(fā)明所述的智能卡中數(shù)據(jù)庫的查詢方法,首先對用戶輸入的查詢條件進(jìn)行分類,得到查詢條件序列,并根據(jù)在查詢條件序列中各查詢條件或各查詢條件之間的邏輯位操作類型,得到第一操作數(shù)和第二操作數(shù)。通過得到的第一操作數(shù)和第二操作數(shù)所定義的運算規(guī)則,對查詢條件序列進(jìn)行計算,最終得到查詢結(jié)果。這樣,就避免了現(xiàn)有技術(shù)數(shù)據(jù)庫查詢技術(shù)中,需要利用正則表達(dá)式進(jìn)行的復(fù)雜運算。因此,本發(fā)明的方法大大提高了CPU的處理速度,加快了查詢的速度。此外,利用本發(fā)明所述的方法,對查詢條件進(jìn)行分類,并利用生成的才喿作數(shù)進(jìn)行搡作,得到最終的運算結(jié)果,占用內(nèi)存資源少,進(jìn)一步的提高了查詢的速度。下面以查詢條件為BMI為例,詳細(xì)iJL明本發(fā)明所述方法的實現(xiàn)過程。在本發(fā)明中,設(shè)定智能卡芯片的CPU位數(shù)為W,用戶輸入的查詢條件BMI個數(shù)為N。鑒于智能卡應(yīng)用的特殊性,設(shè)定iVS『。Tl:分析輸入的查詢條件BMI,將輸入的查詢條件BMI按照"可能包含的BMI"、"必須包含的BMI"、"不能包含的BMI"將查詢條件BMI進(jìn)行分類。在此,"可能包含的BMI"是指當(dāng)用戶同時輸入多個的查詢條件BMI,可能包含的某幾個查詢條件;"必須包含的BMI"是指,查詢條件BMI中全部都包含的查詢條件;"不能包含的BMI",則是指在輸入的查詢條件BMI中不能包含的查詢條件。經(jīng)分析得出,在查詢條件中,"可能包含的BMI"為",個,為"2個,"不能包含的BMI"為"3個,其中,<formula>formulaseeoriginaldocumentpage12</formula>。在此,用如下的方式表示對BMI的分類結(jié)果<formula>formulaseeoriginaldocumentpage12</formula>T2:定義所述"不能包含的BMI"分類中,各BMI所對應(yīng)的邏輯位操作類型,以及三種分類中各BMI之間的邏輯位操作類型。在本發(fā)明的實施例中,將"不能包含的BMI"的各BMI所對應(yīng)的邏輯位運算類型定義為進(jìn)行邏輯"非"操作。同時,定義"可能包含的BMI"分類中,各查詢條件之間的邏輯位操作類型為"或,,操作;定義"必須包含的BMI"以及"不能包含的BMI"分類中,各查詢條件之間的邏輯位操作類型為"與"操作。行定義。T3:定義"可能包含的BMI"、"必須包含的BMI"、"不能包含的BMI"三個分類之間的邏輯位操作類型為"與"操作。T4:將按照上述方式定義的三種類型的BMI進(jìn)行排序。在具體應(yīng)用中,可按照任意的順序?qū)ι鲜鋈N類型的查詢條件BMI進(jìn)行排序。在本發(fā)明中,為了保證三種類型邏輯位操作的優(yōu)先級相同,保證查詢速度,按照如表1的方式對三種類型的BMI組合進(jìn)行排序。表l<table>tableseeoriginaldocumentpage12</column></row><table>按照表1所示的順序,得到排序后的BMI序列<formula>formulaseeoriginaldocumentpage12</formula>層",……層w)。T5:按照T2中定義的三類BMI中,各BMI的邏輯位操作類型,得到第一操作數(shù)0P1。第一操作數(shù)的生成規(guī)則如下在所述查詢條件序列中,根據(jù)是否為定義的"不能包含的查詢條件"分類中各查詢條件所對應(yīng)的邏輯位操作類型,生成第一操作數(shù)。針對本發(fā)明,在所述BMIs中,用l表示需要進(jìn)行"非"操作的BMI所對應(yīng)的邏輯位操作類型,用0表示不需要進(jìn)行"非"操作的BMI。當(dāng)然還可用其他的方式對上述的邏輯為操作類型進(jìn)行定義,只要能區(qū)分開是否為"非"操作即可。為了操作方便,按照上述的規(guī)則,從BMIs的低位開始(也可從高位開始定義),分別對BMIs中的各BMI進(jìn)行定義,得到操作數(shù)0P1。0P1(左低位右高位)的格式如下BMIs:(層/,,,層/,2,……服/,w)(崖/",層/乂2,……窗/"2)(,顏u,……服4J<formula>formulaseeoriginaldocumentpage13</formula>T6:在所述查詢條件序列中,根據(jù)每兩個查詢條件之間的邏輯位運算關(guān)系,生成第二操作數(shù)0P2。在本發(fā)明中,用1表示查詢條件序列中前后兩個BMI之間進(jìn)行"或"運算,用O表示前后兩個BMI之間進(jìn)行"與,,運算。各分類之間的邏輯運算關(guān)系為進(jìn)行"與,,運算,也即進(jìn)行"或,,運算的分類的計算結(jié)果,要分別與進(jìn)行"與"運算的各查詢條件,以及進(jìn)行了"非,,運算的各查詢條件之間再進(jìn)行"與"運算。按照上述的規(guī)則,從BMIs的低位開始(也可從高位開始定義),得到操作數(shù)0P2。BMIs:(層/",冊/,2,……艦/,w)(艦/",5M/p,……艦々2)(,層h,……層J<formula>formulaseeoriginaldocumentpage13</formula>由于0P2描述的是查詢序列中,兩個查詢條件之間的關(guān)系。當(dāng)只有一個查詢條件時是沒有意義的,因此第一個查詢條件對應(yīng)的位恒置0,利用0P2進(jìn)行運算時,該位對應(yīng)為無操作。通過上面的分析可以看出,0P1和0P2的位數(shù)均為W,與智能卡中CPU的位數(shù)相同,這就保證了利用本發(fā)明的方法進(jìn)行查詢的速度。因此,若得到的0P1和0P2的位數(shù),與智能卡中CPU的位數(shù)不同,則用0補(bǔ)足。T7:將BMIs和OPl、0P2送入到智能卡操作系統(tǒng)中的運算單元,利用0P1和0P2確定的運算規(guī)則,對BMIs進(jìn)行運算,得到最終的查詢結(jié)果SM/^。具體如下T71:對BMIs先用0P1所確定的運算規(guī)則進(jìn)行計算,即對各個查詢條件^M^,5M/t2,……SM/^分別進(jìn)行"非"運算,得到各個查詢條件的計算結(jié)果,表示形式如下層w、層*2、層w.......層^、層^T72:對BMIs按照0P2確定的規(guī)則,對(5M/n,SM/,2,…...)進(jìn)行"或"運算,得到結(jié)果5M/u。T73:然后,將S似/u、BM/"、SM/"……BM/"2、、BM/i2……萬似43之間進(jìn)行"與"運算,得到最終的查詢結(jié)果。謝U嵐/,,A謝/"A謝/"A……A層/"2A層/"A5M^2A......A皿U。通過執(zhí)行上述過程,避免了復(fù)雜的正則表達(dá)式的運算,快速的得到了最終的查詢結(jié)果。同時,通過將進(jìn)行"或"運算的分類的計算結(jié)果,分別與進(jìn)行"與"運算分類中的各個查詢條件,以及進(jìn)行"非,,運算后的"不能包含的查詢條件"分類中的各個查詢條件進(jìn)行"與"運算,避免了現(xiàn)有技術(shù)中需要不斷的將每兩個查詢條件的計算結(jié)果進(jìn)行保存的步驟,節(jié)約了內(nèi)存的占用,提高了查詢的速度。下面以一個具體的例子描述以下上述方法的具體實施過程。假設(shè)當(dāng)前有BMI序列BMIs包括BMI"BMI2,BMI3,BMI4,BMI5,BMI"BM"。對所述BMI進(jìn)行分類,-假設(shè)其中"可能包含的BMI"的有BML、BMI7,"必須包含的BMI"的有BML、BMI""不包含的BMI,,有BMI!、BMI4、BMI5,求此BMI序列的邏輯操作結(jié)果。1)將BMIs分類排序得出操作序列(BMI3MI7)(BMI2BMI6)(BMI^MLBMIs),并確定n為2,112為2,113為3,N=n2+n產(chǎn)7。2)才艮據(jù)BMIs各BMI以及相互之間的邏輯:操作,生成操:作數(shù)0P1和0P2,具體編碼見下表所示<table>tableseeoriginaldocumentpage15</column></row><table>假定當(dāng)前智能卡CPU的位數(shù)W:8,將0P1、0P2補(bǔ)足為8位,則可得出0P1,用十六進(jìn)制表示為0x70(二進(jìn)制表示為01110000,不足8位時,在高位補(bǔ)0),0P2的十六進(jìn)制表示為0x02(二進(jìn)制表示為00000010,不足8位時,在高位補(bǔ)0)。將BMI序列BMIs和OPl、0P2送入運算模塊進(jìn)行運算,得出最終結(jié)果BMI印d。本發(fā)明所述的方法不4又僅局限于應(yīng)用在智能卡的數(shù)據(jù)庫查詢中,還可應(yīng)用在其他領(lǐng)域中的數(shù)據(jù)庫查詢技術(shù)。與本發(fā)明所述的智能卡中數(shù)據(jù)庫的查詢方法相對應(yīng),本發(fā)明還提供了一種智能卡中數(shù)據(jù)庫的查詢裝置。如圖3所示,所述智能卡中數(shù)據(jù)庫的查詢裝置包括如下模塊分類單元,用于對查詢條件進(jìn)行分類;序列生成單元,用于對分類結(jié)果進(jìn)行排序,得到查詢條件序列;操作數(shù)生成單元,用于根據(jù)所述查詢條件序列,生成4喿作數(shù);運算單元,用于按照所述操作數(shù)確定的運算規(guī)則,對所述查詢條件序列進(jìn)行運算,得到查詢結(jié)果。本發(fā)明所述的智能卡中數(shù)據(jù)庫的查詢裝置,首先由分類單元對用戶輸入的查詢條件進(jìn)行分類,并由排序單元對所述查詢條件進(jìn)行排序,得到查詢條件序列;并根據(jù)在查詢條件序列中各查詢條件或各查詢條件之間的邏輯位操作類型,由操作數(shù)生成單元分別得到第一操作數(shù)和第二操作數(shù)。通過得到的第一操作數(shù)和第二操作數(shù)所定義的運算規(guī)則,對查詢條件進(jìn)行計算,最終由運算單元得到查詢結(jié)果。這樣,就避免了現(xiàn)有技術(shù)數(shù)據(jù)庫查詢技術(shù)中需要利用正則表達(dá)式進(jìn)行的復(fù)雜運算。因此,本發(fā)明的方法大大提高了CPU的處理速度,加快了查詢的速度。如圖4所示,所述序列生成單元包括第一操作類型定義模塊,用于定義"不能包含的查詢條件"分類中,各查詢條件所對應(yīng)的邏輯位操作類型。在本發(fā)明中,將"不能包含的查詢條件"分類中,各查詢條件所對應(yīng)的邏輯位l喿作類型定義為"非"運算。第二操作類型定義沖莫塊,用于定義"可能包含的查詢條件"分類中,各查詢條件之間的邏輯位操作類型為"或"操作。第三操作類型定義沖莫塊,用于定義"必須包含的查詢條件"以及"不能包含的查詢條件"分類中,各查詢條件之間的邏輯位l喿作類型為"與"操作。第四操作類型定義模塊,用于定義"可能包含的查詢條件"、"必須包含的查詢條件"以及"不能包含的查詢條件"三個分類之間的邏輯位操作類型為"與"操作。排序單元,用于按照一定的順序,排列與所述三種邏輯位操作類型相對應(yīng)的三類查詢條件,得到查詢條件序列,并將所述查詢條件序列送入到運算單元中。為了提高查詢速度,所述排序單元在排列順序的時候,按照進(jìn)行"或"、"與"、"非"邏輯位操作的順序進(jìn)行排序,得到查詢條件序列("可能包含的查詢條件"、"必須包含的查詢條件"、"不能包含的查詢條件")。所述操作數(shù)生成單元包括第一操作數(shù)生成單元,用于在查詢條件序列中,根據(jù)是否為定義的"不能包含的查詢條件"分類中各查詢條件所對應(yīng)的邏輯位操作類型,生成第一操作數(shù)。在所述查詢條件序列中,用l表示進(jìn)行"非"邏輯位運算的查詢條件;用0表示其它的查詢條件。按照上述的方式,得到第一操作數(shù)。第二操作數(shù)生成單元,用于在查詢條件序列中,才艮據(jù)定義的每兩個查詢條件之間的邏輯位運算關(guān)系,生成第二操作數(shù)。在所述查詢條件序列中,用"0"表示"每兩個查詢條件之間進(jìn)行的"與,,運算;用'T,表示每兩個查詢條件之間進(jìn)行的"或"運算,同時,第一個查詢條件對應(yīng)的位置0。按照上述的方式,得到第二操作數(shù)。為進(jìn)一步提高查詢速度,所述第一操作數(shù)和第二操作數(shù)的位數(shù),與智能卡操作系統(tǒng)中CPU的位數(shù)相同,若第一操作數(shù)和第二操作數(shù)少于所述智能卡的CPU位數(shù),則在第一操作數(shù)和第二操作數(shù)中用0補(bǔ)足。在運算單元計算最終的查詢結(jié)果時,首先按照第一操作數(shù)確定的運算規(guī)則,對"不能包含的查詢條件"分類的各查詢條件進(jìn)行"非"運算,得到"不能包含的查詢條件"分類中各查詢條件的運算結(jié)果。再按照第二操作數(shù)確定的運算規(guī)則,對"可能包含的查詢條件"分類的各查詢條件進(jìn)行"或,,運算,得到"可能包含的查詢條件"分類的運算結(jié)果;并與"必須包含的查詢條件"分類的各查詢條件,以及按照第一操作數(shù)運算獲得的"不能包含的查詢條件,,分類中各查詢條件的運算結(jié)果進(jìn)行"與"運算。綜上所述,利用本發(fā)明所述的裝置,根據(jù)定義的各BMI的邏輯位操作類型,以及各BMI之間的邏輯位操作類型,對各BMI進(jìn)行排序所得到的BMIs,以及由第一、第二操作單元生成的0P1和0P2,所述的運算單元能夠快速的計算出最終的查詢結(jié)果,避免了現(xiàn)有的數(shù)據(jù)庫查詢技術(shù)中,需要利用正則表達(dá)式進(jìn)行復(fù)雜的邏輯運算的麻煩。當(dāng)然,本發(fā)明的實施例還可有很多種,在不背離本發(fā)明的實施例精神及其和變形,但這些相應(yīng)的改變和變形都應(yīng)屬于本發(fā)明的實施例所附的權(quán)利要求的保護(hù)范圍。權(quán)利要求1、一種智能卡中數(shù)據(jù)庫的查詢方法,其特征在于包括如下步驟對查詢條件進(jìn)行分類;將分類結(jié)果進(jìn)行排序,得到查詢條件序列;根據(jù)所述查詢條件序列,生成操作數(shù);按照所述操作數(shù)確定的運算規(guī)則,對所述查詢條件序列進(jìn)行運算,得到查詢結(jié)果。2、根據(jù)權(quán)利要求1所述的智能卡中數(shù)據(jù)庫的查詢方法,其特征在于,所述對查詢條件進(jìn)行分類的步驟具體為按照"可能包含的查詢條件"、"必須包含的查詢條件"、"不能包含的查詢條件"將所述查詢條件進(jìn)行分類。3、根據(jù)權(quán)利要求1所述的智能卡中數(shù)據(jù)庫的查詢方法,其特征在于,所述對分類結(jié)果進(jìn)行排序,得到查詢條件序列的步驟具體為定義"不能包含的查詢條件"分類中,各查詢條件所對應(yīng)的邏輯位操作類型為"非"操作;定義"可能包含的查詢條件"分類中,各查詢條件之間的邏輯位#:作類型為"或"操作;定義"必須包含的查詢條件"以及"不能包含的查詢條件,,分類中,各查詢條件之間的邏輯位操作類型為"與"操作;定義"可能包含的查詢條件"、"必須包含的查詢條件,,以及"不能包含的查詢條件"三個分類之間的邏輯位4喿作類型為"與"才喿作;排列與所述三種邏輯位操作類型相對應(yīng)的三類查詢條件,得到查詢條件序列。4、根據(jù)權(quán)利要求3所述的智能卡中數(shù)據(jù)庫的查詢方法,其特征在于,所述排列與所述三種邏輯位操作類型相對應(yīng)的三類查詢條件的步驟具體為按照進(jìn)行"或"、"與"、"非"邏輯位4喿作的順序,排列分別與所述三種邏輯位操作類型相對應(yīng)的分類,得到查詢條件序列("可能包含的查詢條件"、"必須包含的查詢條件"、"不能包含的查詢條件,,)。5、根據(jù)權(quán)利要求3所述的智能卡中數(shù)據(jù)庫的查詢方法,其特征在于,根據(jù)所述查詢條件序列,生成操作數(shù)的步驟具體為在所述查詢條件序列中,根據(jù)是否為定義的"不能包含的查詢條件"分類中各查詢條件所對應(yīng)的邏輯位操作類型,生成第一操:作數(shù);在所述查詢條件序列中,根據(jù)每兩個查詢條件之間的邏輯位運算關(guān)系,生成第二操作數(shù)。6、根據(jù)權(quán)利要求5所述的智能卡中數(shù)據(jù)庫的查詢方法,其特征在于,所述第一操作數(shù)和第二操作數(shù)的位數(shù),與智能卡操作系統(tǒng)中CPU的位數(shù)相同;若所述第一操作數(shù)或第二操作數(shù)小于所述智能卡操作系統(tǒng)中CPU的位數(shù),不足的位用0補(bǔ)足。7、根據(jù)權(quán)利要求5或6所迷的智能卡中數(shù)據(jù)庫的查詢方法,其特征在于,所述生成第一操作數(shù)的步驟為在所述查詢條件序列中,用l表示進(jìn)行"非"邏輯位運算的查詢條件;用0表示進(jìn)行其他類型邏輯位運算的查詢條件;所迷生成第二4乘作數(shù)的步驟為在所迷查詢條件序列中,用"1"表示每兩個查詢條件之間進(jìn)行的"或,,運算,用"0"表示每兩個查詢條件之間進(jìn)行的"與,,運算。8、根據(jù)權(quán)利要求1或5所述的智能卡中數(shù)據(jù)庫的查詢方法,其特征在于,所述按照所述操作數(shù)確定的運算規(guī)則,對所述查詢條件序列進(jìn)行運算的步驟具體為按照第一操作數(shù)確定的運算規(guī)則,對"不能包含的查詢條件"分類的各查詢條件進(jìn)行"非"運算,得到"不能包含的查詢條件"分類中各查詢條件的運算結(jié)果;按照第二操作數(shù)確定的運算規(guī)則,對"可能包含的查詢條件"分類的各查詢條件進(jìn)行"或"運算,得到"可能包含的查詢條件"分類的運算結(jié)果;將所述"可能包含的查詢條件"分類的運算結(jié)果、"必須包含的查詢條件"分類的各查詢條件、按照第一操作數(shù)運算獲得的"不能包含的查詢條件"分類中各查詢條件的運算結(jié)果進(jìn)行"與"運算。9、一種智能卡數(shù)據(jù)庫的查詢裝置,其特征在于,所述裝置包括分類單元,用于對查詢條件進(jìn)行分類;序列生成單元,用于對分類結(jié)果進(jìn)行排序,得到查詢條件序列;操作數(shù)生成單元,用于根據(jù)所述查詢條件序列,生成操作數(shù);運算單元,用于按照所述操作數(shù)確定的運算規(guī)則,對所述查詢條件序列進(jìn)行運算,得到查詢結(jié)果。10、根據(jù)權(quán)利要求9所述的智能卡中數(shù)據(jù)庫的查詢裝置,其特征在于,所述序列生成單元包括第一操作類型定義模塊,用于定義"不能包含的查詢條件"分類中,各查詢條件所對應(yīng)的邏輯位操作類型為"非"操作;第二操作類型定義模塊,用于定義"可能包含的查詢條件"分類中,各查詢條件之間的邏輯位操作類型為"或"操作;第三操作類型定義模塊,用于定義"必須包含的查詢條件,,以及"不能包含的查詢條件"分類中,各查詢條件之間的邏輯位操作類型為"與"操作;第四操作類型定義模塊,用于定義"可能包含的查詢條件"、"必須包含的查詢條件,,以及"不能包含的查詢條件"三個分類之間的邏輯位操作類型為"與,操作;排序單元,用于排列與所述三種邏輯位操作類型相對應(yīng)的三類查詢條件,得到查詢條件序列,并送入運算單元。11、根據(jù)權(quán)利要求9所述的智能卡中數(shù)據(jù)庫的查詢裝置,其特征在于,所述操作數(shù)生成單元包括第一操作數(shù)生成單元,用于在查詢條件序列中,根據(jù)是否為定義的"不能包含的查詢條件"分類中各查詢條件所對應(yīng)的邏輯位操作類型,生成第一4喿作數(shù);第二操作數(shù)生成單元,用于在查詢條件序列中,4艮據(jù)定義的每兩個查詢條件之間的邏輯位運算關(guān)系,生成第二梯:作數(shù)。12、根據(jù)權(quán)利要求11所述的智能卡中數(shù)據(jù)庫的查詢裝置,其特征在于,所述第一操作數(shù)和第二操作數(shù)的位數(shù),與智能卡操作系統(tǒng)中CPU的位數(shù)相同;若所述第一操作數(shù)或第二操作數(shù)小于所述智能卡操作系統(tǒng)中CPU的位數(shù),不足的位用Q補(bǔ)足。13、根據(jù)權(quán)利要求ll或12所述的智能卡中數(shù)據(jù)庫的查詢裝置,其特征在于,運算單元按照第一操作數(shù)確定的運算規(guī)則,對"不能包含的查詢條件"分類的各查詢條件進(jìn)行"非,,運算,得到"不能包含的查詢條件"分類中各查詢條件的運算結(jié)果;按照第二操作數(shù)確定的運算規(guī)則,對"可能包含的查詢條件"分類的各查詢條件進(jìn)行"或"運算,得到"可能包含的查詢條件"分類的運算結(jié)果;并與"必須包含的查詢條件,,分類的各查詢條件,以及按照第一操作數(shù)運算獲得的"不能包含的查詢條件,,分類中各查詢條件的運算結(jié)果進(jìn)行"與"運算。全文摘要本發(fā)明公開了一種智能卡中數(shù)據(jù)庫的查詢方法及裝置,涉及數(shù)據(jù)庫查詢技術(shù),為提高查詢速度而發(fā)明。所述方法包括對查詢條件進(jìn)行分類;將分類結(jié)果進(jìn)行排序,得到查詢條件序列;根據(jù)所述查詢條件序列,生成操作數(shù);按照所述操作數(shù)確定的運算規(guī)則,對所述查詢條件序列進(jìn)行運算,得到查詢結(jié)果。所述裝置包括分類單元,排序單元,操作數(shù)生成單元以及運算單元。本發(fā)明能夠提高數(shù)據(jù)庫的查詢速度。文檔編號G06F17/30GK101216827SQ20071030434公開日2008年7月9日申請日期2007年12月27日優(yōu)先權(quán)日2007年12月27日發(fā)明者馮秀濤,新葉,松高申請人:北京握奇數(shù)據(jù)系統(tǒng)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
凌海市| 台安县| 永春县| 肃宁县| 河东区| 高陵县| 横山县| 从江县| 厦门市| 旅游| 遂溪县| 吴川市| 龙江县| 漾濞| 万载县| 禄丰县| 崇文区| 湘潭县| 水城县| 迁安市| 秦皇岛市| 红原县| 沙雅县| 海南省| 黄石市| 绿春县| 东源县| 永城市| 大连市| 保山市| 新野县| 甘孜县| 凤阳县| 青铜峡市| 建湖县| 霍林郭勒市| 定兴县| 策勒县| 漳州市| 都江堰市| 高邑县|