專利名稱:一種交互應(yīng)用多媒體數(shù)據(jù)的查詢方法及其裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)字電視技術(shù)領(lǐng)域,尤其涉及一種交互應(yīng)用多媒體數(shù)據(jù)的查詢方法及其裝置。
背景技術(shù):
在當(dāng)前數(shù)字電視的發(fā)展中,為了增強(qiáng)與用戶的交互性,提高用戶體驗(yàn)質(zhì)量,越來越多的數(shù)據(jù)需要傳輸,并且在與傳統(tǒng)電視的對比中,由于用戶的交互性增強(qiáng),需要保證用戶檢索各類數(shù)據(jù)時(shí)具有一定的實(shí)時(shí)性。在現(xiàn)有的海量數(shù)據(jù)處理的處理手段中,主要有Bloom Filter、哈希(Hash)、位圖等方法。Bloom Filter是一種空間效率很高的隨機(jī)數(shù)據(jù)結(jié)構(gòu),它利用位數(shù)組簡潔地表示一個(gè)集合,并能判斷一個(gè)元素是否屬于這個(gè)集合。初始狀態(tài)時(shí),Bloom Filter是一個(gè)包含m 位的位數(shù)組,每一位置為O。為了表達(dá)一個(gè)集合,Bloom Filter使用k個(gè)相互獨(dú)立的哈希函數(shù),分別用來將集合中的每個(gè)元素映射到(l,..,m)范圍中,對任意一個(gè)元素χ,第i個(gè)哈希函數(shù)映射位置會(huì)被置為1,如果一個(gè)位置多次被置為1,只有第一次會(huì)起作用。哈希是通過把關(guān)鍵碼值映射到表中一個(gè)位置來訪問記錄,以加快查找的速度,對不同的關(guān)鍵字可能得到同一散列地址,即keyl ^ key2,而f(keyl) = f (key2),這種現(xiàn)象稱為沖突。具有相同函數(shù)值的關(guān)鍵字對該散列函數(shù)來說稱做同義詞。綜上所述,根據(jù)散列函數(shù)H(key)和處理沖突的方法將一組關(guān)鍵字映象到一個(gè)有限的連續(xù)的地址集(區(qū)間)上,并以關(guān)鍵字在地址集中的“象”作為記錄在表中的存儲(chǔ)位置,這種表便稱為散列表,這一映象過程稱為散列造表或散列,所得的存儲(chǔ)位置稱為散列地址。若對于關(guān)鍵字集合中的任一個(gè)關(guān)鍵字,經(jīng)散列函數(shù)映象到地址集合中任何一個(gè)地址的概率是相等的,則稱此類散列函數(shù)為均勻散列函數(shù)(Uniform Hash function),這就是使關(guān)鍵字經(jīng)過散列函數(shù)得到一個(gè)“隨機(jī)的地址”,從而減少?zèng)_突。Bloom Filter雖然具有高效的特點(diǎn),但是在判斷一個(gè)元素是否屬于某個(gè)集合時(shí), 有可能會(huì)把不屬于這個(gè)集合的元素誤認(rèn)為屬于這個(gè)集合,因此Bloom Filter不適合“零錯(cuò)誤”的應(yīng)用場合,在數(shù)字電視中,如果出現(xiàn)用戶看到不是自己所選擇的具體內(nèi)容,會(huì)降低用戶的體驗(yàn)性。而哈希由于一次讀入總數(shù)據(jù)量,而數(shù)字家庭中數(shù)據(jù)量過于龐大,因此并不能很好地一次讀入,而且哈希索引在范圍查詢時(shí)查詢時(shí)間很長,會(huì)增加用戶等待的時(shí)間,這也會(huì)影響用戶的體驗(yàn)。
發(fā)明內(nèi)容
本發(fā)明的目的在于克服現(xiàn)有技術(shù)的不足,本發(fā)明提供了一種交互應(yīng)用多媒體數(shù)據(jù)的查詢方法及其裝置,可以實(shí)現(xiàn)互動(dòng)多媒體數(shù)據(jù)的快速查詢。為了解決上述問題,本發(fā)明提出了一種交互應(yīng)用多媒體數(shù)據(jù)的查詢方法,所述方法包括為儲(chǔ)存所述交互應(yīng)用多媒體數(shù)據(jù)的數(shù)據(jù)庫建立表;
為所述表建立索引,所述索引包括B+樹索引或者哈希Hash索引;根據(jù)所述索弓I在數(shù)據(jù)庫中查詢所需要的數(shù)據(jù)。優(yōu)選地,所述為所述表建立索引,所述索引包括B+樹索引或者哈希Hash索引的步驟包括判斷所述表是否存在頻繁操作,所述操作包括插入、刪除、更新;若是,則不為所述表建立索引;若否,則判斷所述表是否存在頻繁的大范圍查詢;若是,則為所述表建立B+樹索引;若否,則為所述表建立Hash索引。優(yōu)選地,所述根據(jù)所述索引在數(shù)據(jù)庫中查詢所需要的數(shù)據(jù)的步驟包括根據(jù)所接收到的查詢指令獲得關(guān)系代數(shù)表達(dá)式;對所述關(guān)系代數(shù)表達(dá)式進(jìn)行優(yōu)化并獲得優(yōu)化后的關(guān)系代數(shù)表達(dá)式;根據(jù)所述優(yōu)化后的關(guān)系代數(shù)表達(dá)式在數(shù)據(jù)庫中查詢所需要的數(shù)據(jù),并獲得查詢結(jié)^ ο優(yōu)選地,所述根據(jù)所接收到的查詢指令獲得關(guān)系代數(shù)表達(dá)式的步驟包括對接收到的查詢指令進(jìn)行語法分析及翻譯,并獲得關(guān)系代數(shù)表達(dá)式。相應(yīng)地,本發(fā)明實(shí)施例還公開了一種交互應(yīng)用多媒體數(shù)據(jù)的查詢裝置,其特征在于,所述裝置包括表建立模塊,用于為儲(chǔ)存所述交互應(yīng)用多媒體數(shù)據(jù)的數(shù)據(jù)庫建立表;索引建立模塊,用于為所述表建立索引,所述索引包括B+樹索引或者哈希Hash索引;查詢模塊,用于根據(jù)所述索引在數(shù)據(jù)庫中查詢所需要的數(shù)據(jù)。優(yōu)選地,所述索引建立模塊包括
判斷單元,判斷所述表是否存在頻繁操作,所述操作包括插入、刪除、更新;所述判斷單元還用于當(dāng)不存在頻繁操作,判斷所述表是否存在頻繁的大范圍查詢;索引建立單元,用于當(dāng)存在頻繁的大范圍查詢時(shí),為所述表建立B+樹索引;或者, 用于當(dāng)不存在頻繁的大范圍查詢時(shí),為所述表建立Hash索引。優(yōu)選地,所述查詢模塊包括獲得單元,用于根據(jù)所接收到的查詢指令獲得關(guān)系代數(shù)表達(dá)式;優(yōu)化單元,用于對所述獲得單元所獲得的關(guān)系代數(shù)表達(dá)式進(jìn)行優(yōu)化并獲得優(yōu)化后的關(guān)系代數(shù)表達(dá)式;查詢單元,用于根據(jù)所述優(yōu)化單元所優(yōu)化后的關(guān)系代數(shù)表達(dá)式在數(shù)據(jù)庫中查詢所需要的數(shù)據(jù),并獲得查詢結(jié)果。優(yōu)選地,所述獲得單元還用于對接收到的查詢指令進(jìn)行語法分析及翻譯,并獲得關(guān)系代數(shù)表達(dá)式。實(shí)施本發(fā)明實(shí)施例,通過動(dòng)態(tài)查詢及查詢優(yōu)化以實(shí)現(xiàn)在數(shù)字電視的海量數(shù)據(jù)中進(jìn)行快速查詢的目的,實(shí)現(xiàn)互動(dòng)多媒體數(shù)據(jù)的快速查詢,減少用戶等待的時(shí)間,同時(shí)能夠提高數(shù)據(jù)查詢的準(zhǔn)確率,從而提高用戶的體驗(yàn)度及滿意度。
為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其它的附圖。圖1是本發(fā)明實(shí)施例的交互應(yīng)用多媒體數(shù)據(jù)的查詢方法的流程示意圖;圖2是本發(fā)明實(shí)施例的數(shù)據(jù)庫結(jié)構(gòu)設(shè)計(jì)示意圖;圖3是本發(fā)明實(shí)施例中數(shù)據(jù)庫根據(jù)日期區(qū)分的表的示意圖;圖4是現(xiàn)有中采用過程化方式編寫的程序示意圖;圖5是本發(fā)明實(shí)施例的采用并行化處理方式對數(shù)據(jù)庫進(jìn)行處理的示意圖;圖6是本發(fā)明實(shí)施例的組合索引中列的判定準(zhǔn)則的示意圖;圖7是本發(fā)明實(shí)施例的為表建立索引的過程示意圖;圖8是本發(fā)明實(shí)施例的散列索引的構(gòu)造示意圖;圖9是本發(fā)明實(shí)施例的交互應(yīng)用多媒體數(shù)據(jù)的查詢裝置的結(jié)構(gòu)組成示意圖。
具體實(shí)施例方式下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例。基于本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。圖1是本發(fā)明實(shí)施例的交互應(yīng)用多媒體數(shù)據(jù)的查詢方法的流程示意圖,如圖1所示,該方法包括S101,為儲(chǔ)存交互應(yīng)用多媒體數(shù)據(jù)的數(shù)據(jù)庫建立表;S102,為表建立索引,該索引包括B+樹索引或者哈希Hash索引;S103,根據(jù)索引在數(shù)據(jù)庫中查詢所需要的數(shù)據(jù)。 實(shí)施本發(fā)明實(shí)施例,通過動(dòng)態(tài)查詢及查詢優(yōu)化以實(shí)現(xiàn)在數(shù)字電視的海量數(shù)據(jù)中進(jìn)行快速查詢的目的,實(shí)現(xiàn)互動(dòng)多媒體數(shù)據(jù)的快速查詢,減少用戶等待的時(shí)間,同時(shí)能夠提高數(shù)據(jù)查詢的準(zhǔn)確率,從而提高用戶的體驗(yàn)度及滿意度。具體實(shí)施時(shí),由于在數(shù)字電視交互應(yīng)用服務(wù)中,圖像、音頻、視頻等多媒體的數(shù)據(jù)量巨大,針對交互應(yīng)用多媒體數(shù)據(jù)存取效率問題,本發(fā)明的方案中涉及的數(shù)據(jù)庫采用海量數(shù)據(jù)庫的形式實(shí)現(xiàn),具體的數(shù)據(jù)庫結(jié)構(gòu)可參見圖2,圖2是本發(fā)明實(shí)施例的數(shù)據(jù)庫結(jié)構(gòu)設(shè)計(jì)示意圖。圖3是本發(fā)明實(shí)施例中數(shù)據(jù)庫根據(jù)日期區(qū)分的表的示意圖,在具體實(shí)施中,可通過確定的歸檔機(jī)制,定期、按規(guī)則將歷史數(shù)據(jù)只讀、分離和歸檔,提高用戶在數(shù)字電視的交互應(yīng)用中的體驗(yàn)性。另外,本發(fā)明實(shí)施例的海量數(shù)據(jù)庫的架構(gòu)設(shè)計(jì)是基于要求來分表、分區(qū)或分庫的。具體實(shí)施中,本發(fā)明采用以結(jié)構(gòu)化查詢語言(Structured Query Language, SQL) 為主的程序設(shè)計(jì)海量數(shù)據(jù)庫,而非按照過程化的方法編寫程序。圖4是現(xiàn)有中采用過程化方式編寫的程序示意圖,如圖4所示,在過程化方式編寫的程序中,即使實(shí)現(xiàn)了各個(gè)SQL的最優(yōu)化也并不意味著能夠?qū)崿F(xiàn)整體SQL的最優(yōu)化,優(yōu)化器的最優(yōu)化操作單位是SQL,而對過程化的數(shù)據(jù)處理進(jìn)行優(yōu)化的優(yōu)化器是不可能存在的。在按照過程化的方式編寫程序時(shí)由于可以直接決定執(zhí)行步驟,因而改變執(zhí)行步驟需要調(diào)整整個(gè)程序的邏輯順序。而在本發(fā)明實(shí)施例所采用的以SQL為主的程序中,能夠?qū)崿F(xiàn)整個(gè)SQL執(zhí)行過程的最優(yōu)化。在以SQL為主的程序中,只需要通過調(diào)整SQL、調(diào)整索引結(jié)構(gòu)、提示使用等就可以很容易地改變執(zhí)行步驟。 圖5是本發(fā)明實(shí)施例的采用并行化處理方式對數(shù)據(jù)庫進(jìn)行處理的示意圖,如圖5所示,在過程化編寫的程序中,按照并行化處理方式所處理的部分在全部內(nèi)容中的比重遠(yuǎn)遠(yuǎn)低于在 SQL為主的程序中,由于性能會(huì)隨著SQL的使用方法的不同而存在很大的差異,且根據(jù)資源的使用情況調(diào)整并行處理度至關(guān)重要,因此以SQL為主的程序比用過程化編寫的程序在簡易性,維護(hù)性,且較大地提高了效率性。在海量數(shù)據(jù)庫的設(shè)計(jì)中,需要建立廣泛的索引來對海量數(shù)據(jù)進(jìn)行處理,對大表建立索引是必需的,索引的建立必須要考慮到具體情況,例如針對大表的分組,排序等字段, 都需要建立索引,一般還可以建立復(fù)合索引,索引的設(shè)計(jì)要滿足所有的讀取要求。在建立索引過程中有時(shí)需要確定是否進(jìn)行索引合并還是組合索引,索引合并相對于組合索引具有成本低,速度快的特點(diǎn),而組合索引具有靈活性高,成本高的特點(diǎn),在具體實(shí)施中,是否進(jìn)行索引合可采用以下準(zhǔn)則1,盡量不要對離散程度差別較大的索引進(jìn)行合并;2,對離散程度比較好的索引進(jìn)行合并;3,禁止基于離散程度不好的列建立索引。而在組合索引中,離散度與之相關(guān)的關(guān)系不如索引合并,運(yùn)算符比離散度更加重要。如圖6所示,圖6是本發(fā)明實(shí)施例的組合索引中列的判定準(zhǔn)則的示意圖。索引的建立與表的大小以及表經(jīng)常所需要的操作有關(guān),假如在表的建立過程中, 能夠預(yù)知需要頻繁的進(jìn)行插入、刪除、更新等操作,而表的大小也沒有超過一定的范圍,這時(shí),為該表建立索引是不恰當(dāng)?shù)男袨?,頻繁的刪除等操作會(huì)導(dǎo)致索引的頻繁更新,從而導(dǎo)致效率低下。當(dāng)索引所建立的表中需要頻繁的大范圍的查詢時(shí),建立B+樹索引結(jié)構(gòu)比建立哈希索引結(jié)構(gòu)的代價(jià)在一般情況下要小,但在表中所需要的是頻繁的單個(gè)選擇查詢時(shí),哈希索引的代價(jià)在一般情況下比B+樹索引結(jié)構(gòu)要小。圖7是本發(fā)明實(shí)施例的為表建立索引的過程示意圖,如圖7所示,S102進(jìn)一步包括S1021,判斷表是否存在頻繁操作,該操作包括插入、刪除、更新;若否,則執(zhí)行S1022 ;若是,則不為表建立索引;S1022,判斷表是否存在頻繁的大范圍查詢;若是,則執(zhí)行S1023,若否,則執(zhí)行SlOM ;S1023,為表建立B+樹索引;S1024,為表建立Hash索引。B+樹的查找過程中,先選擇大于給定值的最小碼值,再逐層開始查找,直到找到給定值結(jié)束,B+樹的查找偽代碼的代碼實(shí)現(xiàn)如下
權(quán)利要求
1.一種交互應(yīng)用多媒體數(shù)據(jù)的查詢方法,其特征在于,所述方法包括 為儲(chǔ)存所述交互應(yīng)用多媒體數(shù)據(jù)的數(shù)據(jù)庫建立表;為所述表建立索引,所述索引包括B+樹索引或者哈希Hash索引; 根據(jù)所述索引在數(shù)據(jù)庫中查詢所需要的數(shù)據(jù)。
2.如權(quán)利要求1所述的交互應(yīng)用多媒體數(shù)據(jù)的查詢方法,其特征在于,所述為所述表建立索引,所述索引包括B+樹索引或者哈希Hash索引的步驟包括判斷所述表是否存在頻繁操作,所述操作包括插入、刪除、更新; 若是,則不為所述表建立索引; 若否,則判斷所述表是否存在頻繁的大范圍查詢; 若是,則為所述表建立B+樹索引; 若否,則為所述表建立Hash索引。
3.如權(quán)利要求1或2所述的交互應(yīng)用多媒體數(shù)據(jù)的查詢方法,其特征在于,所述根據(jù)所述索引在數(shù)據(jù)庫中查詢所需要的數(shù)據(jù)的步驟包括根據(jù)所接收到的查詢指令獲得關(guān)系代數(shù)表達(dá)式;對所述關(guān)系代數(shù)表達(dá)式進(jìn)行優(yōu)化并獲得優(yōu)化后的關(guān)系代數(shù)表達(dá)式;根據(jù)所述優(yōu)化后的關(guān)系代數(shù)表達(dá)式在數(shù)據(jù)庫中查詢所需要的數(shù)據(jù),并獲得查詢結(jié)果。
4.如權(quán)利要求3所述的交互應(yīng)用多媒體數(shù)據(jù)的查詢方法,其特征在于,所述根據(jù)所接收到的查詢指令獲得關(guān)系代數(shù)表達(dá)式的步驟包括對接收到的查詢指令進(jìn)行語法分析及翻譯,并獲得關(guān)系代數(shù)表達(dá)式。
5.一種交互應(yīng)用多媒體數(shù)據(jù)的查詢裝置,其特征在于,所述裝置包括 表建立模塊,用于為儲(chǔ)存所述交互應(yīng)用多媒體數(shù)據(jù)的數(shù)據(jù)庫建立表;索引建立模塊,用于為所述表建立索引,所述索引包括B+樹索引或者哈希Hash索引; 查詢模塊,用于根據(jù)所述索引在數(shù)據(jù)庫中查詢所需要的數(shù)據(jù)。
6.如權(quán)利要求5所述的交互應(yīng)用多媒體數(shù)據(jù)的查詢裝置,其特征在于,所述索引建立模塊包括判斷單元,判斷所述表是否存在頻繁操作,所述操作包括插入、刪除、更新;所述判斷單元還用于當(dāng)不存在頻繁操作,判斷所述表是否存在頻繁的大范圍查詢;索引建立單元,用于當(dāng)存在頻繁的大范圍查詢時(shí),為所述表建立B+樹索引;或者,用于當(dāng)不存在頻繁的大范圍查詢時(shí),為所述表建立Hash索引。
7.如權(quán)利要求5或6所述的交互應(yīng)用多媒體數(shù)據(jù)的查詢裝置,其特征在于,所述查詢模塊包括獲得單元,用于根據(jù)所接收到的查詢指令獲得關(guān)系代數(shù)表達(dá)式; 優(yōu)化單元,用于對所述獲得單元所獲得的關(guān)系代數(shù)表達(dá)式進(jìn)行優(yōu)化并獲得優(yōu)化后的關(guān)系代數(shù)表達(dá)式;查詢單元,用于根據(jù)所述優(yōu)化單元所優(yōu)化后的關(guān)系代數(shù)表達(dá)式在數(shù)據(jù)庫中查詢所需要的數(shù)據(jù),并獲得查詢結(jié)果。
8.如權(quán)利要求6或7所述的交互應(yīng)用多媒體數(shù)據(jù)的查詢裝置,其特征在于,所述獲得單元還用于對接收到的查詢指令進(jìn)行語法分析及翻譯,并獲得關(guān)系代數(shù)表達(dá)式。
全文摘要
本發(fā)明實(shí)施例公開了一種交互應(yīng)用多媒體數(shù)據(jù)的查詢方法及其裝置,其中,所述方法包括為儲(chǔ)存所述交互應(yīng)用多媒體數(shù)據(jù)的數(shù)據(jù)庫建立表;為所述表建立索引,所述索引包括B+樹索引或者哈希Hash索引;根據(jù)所述索引在數(shù)據(jù)庫中查詢所需要的數(shù)據(jù)。實(shí)施本發(fā)明實(shí)施例,通過動(dòng)態(tài)查詢及查詢優(yōu)化以實(shí)現(xiàn)在數(shù)字電視的海量數(shù)據(jù)中進(jìn)行快速查詢的目的,實(shí)現(xiàn)互動(dòng)多媒體數(shù)據(jù)的快速查詢,減少用戶等待的時(shí)間,同時(shí)能夠提高數(shù)據(jù)查詢的準(zhǔn)確率,從而提高用戶的體驗(yàn)度及滿意度。
文檔編號G06F17/30GK102253990SQ20111018684
公開日2011年11月23日 申請日期2011年7月5日 優(yōu)先權(quán)日2011年7月5日
發(fā)明者林格, 羅育澤, 胡浩, 薛凱軍 申請人:中山大學(xué), 廣東星海數(shù)字家庭產(chǎn)業(yè)技術(shù)研究院有限公司