国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種嵌入式環(huán)境下數(shù)據(jù)字典的實(shí)現(xiàn)方法

      文檔序號(hào):6518333閱讀:232來源:國(guó)知局
      專利名稱:一種嵌入式環(huán)境下數(shù)據(jù)字典的實(shí)現(xiàn)方法
      技術(shù)領(lǐng)域
      本發(fā)明涉及嵌入式環(huán)境下數(shù)據(jù)庫(kù)領(lǐng)域,提供了一種嵌入式環(huán)境下數(shù)據(jù)字典的實(shí)現(xiàn)方法。按照層次關(guān)系和哈希索引組織數(shù)據(jù)字典結(jié)構(gòu),實(shí)現(xiàn)定義和操縱數(shù)據(jù)字典的模式函數(shù)庫(kù),確定數(shù)據(jù)庫(kù)的啟動(dòng)、運(yùn)行和關(guān)閉方式,以及相關(guān)數(shù)據(jù)實(shí)體的基本存取方法,并提供數(shù)據(jù)保護(hù)功能。
      背景技術(shù)
      數(shù)據(jù)字典是數(shù)據(jù)庫(kù)管理系統(tǒng)的基礎(chǔ),它存儲(chǔ)和維護(hù)了數(shù)據(jù)庫(kù)的模式信息。不僅可以用于數(shù)據(jù)分析、數(shù)據(jù)統(tǒng)計(jì),更主要的是為了對(duì)數(shù)據(jù)庫(kù)進(jìn)行控制,是實(shí)現(xiàn)數(shù)據(jù)資源管理的工具。數(shù)據(jù)字典屬于系統(tǒng)模式,只能由系統(tǒng)管理員進(jìn)行更改。對(duì)系統(tǒng)模式的修改可危及數(shù)據(jù)庫(kù),因此必須保證管理員帳號(hào)的安全性。
      數(shù)據(jù)字典包含了三種類型數(shù)據(jù)實(shí)體的信息,用戶數(shù)據(jù)實(shí)體、系統(tǒng)數(shù)據(jù)實(shí)體和物理數(shù)據(jù)實(shí)體。數(shù)據(jù)字典除了包含字典本身的信息,還包括其管理系統(tǒng),主要包括元數(shù)據(jù)定義、維護(hù)、保護(hù)、統(tǒng)計(jì)和查詢功能,可能還需要提供一定的軟件接口。
      數(shù)據(jù)庫(kù)模型包括層次模型、網(wǎng)狀模型、關(guān)系模型、面向?qū)ο竽P鸵约皩?duì)象關(guān)系的混合模型。目前主流的關(guān)系數(shù)據(jù)庫(kù)商業(yè)產(chǎn)品如ORACLE,都支持對(duì)象關(guān)系模型,SQL98標(biāo)準(zhǔn)也提供對(duì)象關(guān)系概念的支持。對(duì)象關(guān)系型數(shù)據(jù)庫(kù)繼承了關(guān)系數(shù)據(jù)的優(yōu)點(diǎn),有堅(jiān)實(shí)的理論基礎(chǔ),通過規(guī)范化關(guān)系模式,能夠設(shè)計(jì)出合理的表結(jié)構(gòu),是當(dāng)前得到廣泛應(yīng)用的領(lǐng)域。
      以O(shè)RACLE為例,數(shù)據(jù)字典的基本配置是一組只讀的、難以閱讀和標(biāo)準(zhǔn)化的表,因此需要另外創(chuàng)建用戶可以訪問的視圖以使數(shù)據(jù)易于閱讀。例如用戶可使用數(shù)據(jù)字典視圖的公共同義詞和結(jié)構(gòu)化查詢語(yǔ)句(Structure Query Language),列出用戶擁有的表、視圖和序列等。
      但是在嵌入式環(huán)境下,使用關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)的數(shù)據(jù)字典及其SQL語(yǔ)言存在障礙,因?yàn)閭鹘y(tǒng)的數(shù)據(jù)庫(kù)系統(tǒng)通常難以在嵌入式環(huán)境下部署,即使可以應(yīng)用在嵌入式環(huán)境下,它們的存取效率也難以達(dá)到前臺(tái)的業(yè)務(wù)數(shù)據(jù)訪問要求。嵌入式環(huán)境下的前臺(tái)業(yè)務(wù)數(shù)據(jù)組織相對(duì)簡(jiǎn)單,沒有復(fù)雜的依賴關(guān)系,不需要使用基于范式的模式定義語(yǔ)言,其許多不需要的特性會(huì)引起額外開銷,例如在設(shè)計(jì)數(shù)據(jù)庫(kù)的時(shí)候,盡量避免使用外鍵,因?yàn)榧线\(yùn)算、笛卡兒積運(yùn)算和聯(lián)接運(yùn)算的代價(jià)都非常高。
      除了傳統(tǒng)的關(guān)系型數(shù)據(jù)庫(kù),還存在一種嵌入式數(shù)據(jù)庫(kù)系統(tǒng),這些系統(tǒng)直接鏈接到使用它們的應(yīng)用上,提供簡(jiǎn)單的語(yǔ)言級(jí)的API,而不是用SQL來管理數(shù)據(jù)。它們的優(yōu)點(diǎn)主要在于更快的執(zhí)行效率,由于數(shù)據(jù)庫(kù)操作運(yùn)行在單獨(dú)的服務(wù)器上,不需要板間通信,省去了SQL語(yǔ)句解析、查詢優(yōu)化和執(zhí)行查詢計(jì)劃等步驟。還具有高可靠性,由于在嵌入式系統(tǒng)上需要更少的運(yùn)行組件。但這類庫(kù)產(chǎn)品也有嚴(yán)重的不足要求開發(fā)者掌握不標(biāo)準(zhǔn)的程序設(shè)計(jì)接口。此外如RDM DB、gdbm都沒有關(guān)于數(shù)據(jù)模式的管理,業(yè)務(wù)處理和數(shù)據(jù)庫(kù)存取代碼耦合度高,不利于軟件開發(fā)和維護(hù)。嵌入式數(shù)據(jù)庫(kù)系統(tǒng)和關(guān)系數(shù)據(jù)庫(kù)兩者互有優(yōu)劣,因此必須揚(yáng)長(zhǎng)避短。
      專利00801814.6僅只用簡(jiǎn)單的表結(jié)構(gòu)和小型軟件支持就可將所有的事件或者事物作為登記對(duì)象。以及通過行單位形式,將登記對(duì)象的分類標(biāo)識(shí)信息、涉及表示該屬性及/或者是功能的各項(xiàng)目的項(xiàng)目名和表示該項(xiàng)目名的實(shí)體內(nèi)容時(shí)的數(shù)據(jù)所具有的屬性(項(xiàng)目數(shù)據(jù)屬性)登記在數(shù)據(jù)屬性表格中的各數(shù)據(jù)單元。同樣以行單位形式將分類標(biāo)識(shí)信息、標(biāo)題名和涉及各項(xiàng)目的實(shí)體內(nèi)容登記在主數(shù)據(jù)表格中的各數(shù)據(jù)單元。通過借助于數(shù)據(jù)單元號(hào)碼,使表格中的項(xiàng)目名和表格中的實(shí)體內(nèi)容相對(duì)應(yīng)。數(shù)據(jù)庫(kù)系統(tǒng)在執(zhí)行數(shù)據(jù)輸入、存儲(chǔ)、檢索和輸出時(shí),把表格中的行方向數(shù)據(jù)作為信息來生成各方法。
      該發(fā)明中的簡(jiǎn)單的表結(jié)構(gòu),實(shí)現(xiàn)了數(shù)據(jù)字典的部分功能,并使用文件方式存儲(chǔ)。數(shù)據(jù)字典是數(shù)據(jù)操縱經(jīng)常訪問的對(duì)象,必然引起大量的磁盤I/O,影響系統(tǒng)存取效率。該表單結(jié)構(gòu)使用行單位形式登記在數(shù)據(jù)屬性表格中的各數(shù)據(jù)單元,沒有明確說明使用索引的方法,如果登記對(duì)象的數(shù)量或結(jié)構(gòu)比較復(fù)雜,也會(huì)降低對(duì)象訪問速度。
      在通信領(lǐng)域的前臺(tái)應(yīng)用程序,通常在嵌入式環(huán)境下運(yùn)行,并存在數(shù)據(jù)庫(kù)存取和管理需求。數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)聯(lián)系相對(duì)簡(jiǎn)單。如何實(shí)現(xiàn)以較小的系統(tǒng)代價(jià)描述數(shù)據(jù)實(shí)體及其關(guān)系和存取速度高的數(shù)據(jù)字典,是解決上述問題的關(guān)鍵。

      發(fā)明內(nèi)容
      本發(fā)明是為了克服傳統(tǒng)關(guān)系數(shù)據(jù)庫(kù)的數(shù)據(jù)字典復(fù)雜的實(shí)現(xiàn),供了一種嵌入式環(huán)境下數(shù)據(jù)字典的實(shí)現(xiàn)方法,使用簡(jiǎn)單數(shù)據(jù)結(jié)構(gòu)和較小的系統(tǒng)代價(jià)描述了前臺(tái)業(yè)務(wù)的數(shù)據(jù)結(jié)構(gòu)及數(shù)據(jù)聯(lián)系,提高了數(shù)據(jù)的存取速度,有助于簡(jiǎn)化數(shù)據(jù)庫(kù)應(yīng)用的開發(fā)流程。
      為實(shí)現(xiàn)以上目標(biāo),本發(fā)明的技術(shù)解決方案如下所述一種嵌入式環(huán)境下數(shù)據(jù)字典的實(shí)現(xiàn)方法,將數(shù)據(jù)庫(kù)、表或索引和列對(duì)象的數(shù)據(jù)字典信息存放在計(jì)算機(jī)系統(tǒng)緩沖池中,其特征在于計(jì)算機(jī)內(nèi)存中按照層次關(guān)系組織數(shù)據(jù)字典的結(jié)構(gòu),具體包括數(shù)據(jù)字典總體信息、數(shù)據(jù)庫(kù)、表或索引和列,分為數(shù)據(jù)庫(kù)、表或索引和列3層,采用開鏈?zhǔn)焦7▽?duì)數(shù)據(jù)庫(kù)對(duì)象進(jìn)行索引,一級(jí)哈希表以數(shù)據(jù)庫(kù)名稱為散列關(guān)鍵字,二級(jí)哈希表以表名稱為散列關(guān)鍵字,三級(jí)哈希表以列名稱為散列關(guān)鍵字;數(shù)據(jù)庫(kù)屬性主要包括數(shù)據(jù)庫(kù)名稱、數(shù)據(jù)庫(kù)的緩存大小、數(shù)據(jù)庫(kù)工作路徑;表單或索引屬性主要包括表的名稱、基表名稱、關(guān)鍵字名稱、類型、數(shù)據(jù)字段長(zhǎng)度;列屬性主要包括名稱、長(zhǎng)度、序號(hào)、類型、偏移量;提供一種數(shù)據(jù)模式函數(shù)庫(kù),具體包括數(shù)據(jù)庫(kù)、表或索引和列及其屬性的操縱函數(shù),模式函數(shù)庫(kù)對(duì)數(shù)據(jù)字典中數(shù)據(jù)庫(kù)、表或索引和列及其屬性的操縱步驟如下步驟1,定義數(shù)據(jù)庫(kù),檢查數(shù)據(jù)庫(kù)名稱的唯一性,定位數(shù)據(jù)庫(kù)信息的存儲(chǔ)位置,并設(shè)定數(shù)據(jù)庫(kù)緩存的大小、數(shù)據(jù)庫(kù)的工作目錄;步驟2,定義表,檢查表名稱的唯一性,定位表信息的存儲(chǔ)位置,并設(shè)定表的關(guān)鍵字名稱、類型和數(shù)據(jù)字段長(zhǎng)度,基表名稱置為空;步驟3,如果表中存在索引,則定義索引,檢查索引名稱的唯一性,并設(shè)定基表的名稱、關(guān)鍵字的名稱、類型;步驟4,定義列,檢查列名稱的唯一性,定位列信息的存儲(chǔ)位置,并設(shè)定列長(zhǎng)度、序號(hào)、類型和偏移量;如果存在多個(gè)數(shù)據(jù)庫(kù),則重復(fù)執(zhí)行步驟1至4;如果存在多個(gè)表,則重復(fù)執(zhí)行步驟2至4;如果存在多個(gè)索引,則重復(fù)執(zhí)行步驟3至4;如果存在多列,則重復(fù)執(zhí)行步驟4。
      2、根據(jù)權(quán)利要求1所述的嵌入式環(huán)境下數(shù)據(jù)字典的實(shí)現(xiàn)方法,,其特征在于將數(shù)據(jù)庫(kù)、表或索引和列對(duì)象的數(shù)據(jù)字典信息從系統(tǒng)緩沖池備份到外存設(shè)備上的XML文件中。
      數(shù)據(jù)字典結(jié)構(gòu)的定義,具體實(shí)現(xiàn)方法為數(shù)據(jù)字典結(jié)構(gòu)按分層次組織,包括數(shù)據(jù)字典總體信息、數(shù)據(jù)庫(kù)、表或索引和列等層次。首先定義數(shù)據(jù)字典的總體信息,如數(shù)據(jù)庫(kù)個(gè)數(shù)、版本;其次定義各數(shù)據(jù)庫(kù)的屬性,包括數(shù)據(jù)庫(kù)名稱、緩存大小、工作路徑、環(huán)境標(biāo)志、封鎖粒度等信息;再次在數(shù)據(jù)庫(kù)上定義表的屬性,包括表名稱、關(guān)鍵字及其數(shù)據(jù)類型、長(zhǎng)度,數(shù)據(jù)項(xiàng)長(zhǎng)度、配置屬性(如是否允許有重復(fù)關(guān)鍵字等)、索引數(shù)據(jù)頁(yè)面大小和字節(jié)序等信息,如果是索引表,還要指定基表名稱和索引字段的信息,索引表定義必須在基表定義之后;最后定義每張表的列屬性,列屬性主要包括名稱、數(shù)據(jù)最大長(zhǎng)度、序號(hào)、數(shù)據(jù)類型、偏移量和約束信息。對(duì)于索引表,其索引字段的信息可以從基表獲取,無(wú)需進(jìn)一步定義索引屬性。
      數(shù)據(jù)字典將數(shù)據(jù)庫(kù)名稱、表單或索引名稱或列名稱作為散列關(guān)鍵字,使用開鏈?zhǔn)焦7▽?duì)數(shù)據(jù)庫(kù)對(duì)象進(jìn)行索引以提高存取速度。具體實(shí)施時(shí)需要根據(jù)業(yè)務(wù)數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)聯(lián)系、數(shù)據(jù)量和數(shù)據(jù)備份等信息,使用模式函數(shù)庫(kù)定義數(shù)據(jù)字典的實(shí)際內(nèi)容。數(shù)據(jù)字典除了描述了前臺(tái)業(yè)務(wù)的數(shù)據(jù)結(jié)構(gòu)及數(shù)據(jù)的簡(jiǎn)單聯(lián)系,還確定了數(shù)據(jù)庫(kù)的啟動(dòng)、運(yùn)行和關(guān)閉方式,以及相關(guān)數(shù)據(jù)實(shí)體的基本存取方法??梢酝ㄟ^組合基本的數(shù)據(jù)存取方法,實(shí)現(xiàn)體現(xiàn)更多業(yè)務(wù)規(guī)則的數(shù)據(jù)庫(kù)業(yè)務(wù)處理函數(shù),建立和維護(hù)更為復(fù)雜的數(shù)據(jù)聯(lián)系,做到靈活性和高效性的統(tǒng)一??傊?,使用上述數(shù)據(jù)字典能更好的控制數(shù)據(jù)庫(kù)系統(tǒng),有助于實(shí)現(xiàn)數(shù)據(jù)資源的自管理和簡(jiǎn)化數(shù)據(jù)庫(kù)應(yīng)用的開發(fā)流程。
      模式函數(shù)庫(kù)具體實(shí)現(xiàn)方法如下1,聲明模式函數(shù)庫(kù)。將數(shù)據(jù)字典結(jié)構(gòu)放在函數(shù)實(shí)現(xiàn)體內(nèi),實(shí)現(xiàn)數(shù)據(jù)隱藏,優(yōu)化程序結(jié)構(gòu),并只允許模式函數(shù)操縱數(shù)據(jù)字典,保證數(shù)據(jù)字典的安全性。
      2,實(shí)現(xiàn)不同的函數(shù)體,包括數(shù)據(jù)字典的插入、刪除和修改操作,描述各種數(shù)據(jù)實(shí)體、屬性及數(shù)據(jù)實(shí)體聯(lián)系。操作中涉及到訪問鏈表、數(shù)組等數(shù)據(jù)結(jié)構(gòu)。
      3,數(shù)據(jù)字典操作如果包含寫操作,則將數(shù)據(jù)字典同步到外存儲(chǔ)的XML文件上。數(shù)據(jù)字典更新操作相對(duì)較少,因此這種方法既保證數(shù)據(jù)字典的一致性,也不會(huì)影響數(shù)據(jù)存取效率。
      數(shù)據(jù)模式函數(shù)庫(kù)用于描述各種數(shù)據(jù)實(shí)體、屬性及數(shù)據(jù)實(shí)體聯(lián)系,以及支持對(duì)數(shù)據(jù)字典的插入、刪除和修改操作,能實(shí)現(xiàn)數(shù)據(jù)字典直觀、靈活的定義以及快速的訪問。
      數(shù)據(jù)字典的備份步驟如下步驟1,訪問數(shù)據(jù)字典,將層次、哈希表的混合性結(jié)構(gòu)轉(zhuǎn)換為一個(gè)樹形結(jié)構(gòu)。
      步驟2,將該樹結(jié)構(gòu)轉(zhuǎn)化為XML文件格式。
      步驟3,釋放樹結(jié)構(gòu)。
      數(shù)據(jù)字典的導(dǎo)入是備份的逆過程,可以用于數(shù)據(jù)字典的恢復(fù)。
      綜上所述,本發(fā)明的優(yōu)點(diǎn)如下幾點(diǎn)①使用簡(jiǎn)單數(shù)據(jù)結(jié)構(gòu)和較小的系統(tǒng)代價(jià)描述了前臺(tái)業(yè)務(wù)的數(shù)據(jù)結(jié)構(gòu)及數(shù)據(jù)聯(lián)系。
      ②提高了數(shù)據(jù)字典的存取效率,實(shí)現(xiàn)數(shù)據(jù)字典直觀、靈活的定義以及快速的訪問。
      ③優(yōu)化數(shù)據(jù)庫(kù)系統(tǒng)的控制,有助于實(shí)現(xiàn)數(shù)據(jù)資源的自管理和簡(jiǎn)化數(shù)據(jù)庫(kù)應(yīng)用的開發(fā)流程。
      ④提供了數(shù)據(jù)保護(hù)功能,實(shí)現(xiàn)數(shù)據(jù)字典的備份和恢復(fù)。
      說明書附1典型的嵌入式數(shù)據(jù)庫(kù)系統(tǒng)示意圖。
      圖2本發(fā)明的數(shù)據(jù)字典結(jié)構(gòu)示意圖。
      圖3本發(fā)明的數(shù)據(jù)字典的索引表的定義過程示意圖。
      具體實(shí)施例方式
      下面結(jié)合附圖,對(duì)本發(fā)明的實(shí)施例做詳細(xì)描述。


      圖1是嵌入式數(shù)據(jù)庫(kù)系統(tǒng)的示意圖。從該圖可以看到數(shù)據(jù)庫(kù)系統(tǒng)一個(gè)完整的輪廓以及數(shù)據(jù)字典所處的位置。該系統(tǒng)有三個(gè)層面,包括數(shù)據(jù)庫(kù)應(yīng)用層、數(shù)據(jù)庫(kù)核心層和文件系統(tǒng)層。
      數(shù)據(jù)應(yīng)用通常以用戶線程或任務(wù)的形式存在,但任何時(shí)刻只允許一個(gè)線程/任務(wù)訪問數(shù)據(jù)庫(kù)。雖然按數(shù)據(jù)庫(kù)的粒度進(jìn)行封鎖,但由于單個(gè)事務(wù)的執(zhí)行時(shí)間通常非常小,在幾納秒到幾十納秒之間,因此不會(huì)使單個(gè)數(shù)據(jù)庫(kù)操作產(chǎn)生明顯的時(shí)間延遲。
      數(shù)據(jù)庫(kù)核心層數(shù)據(jù)庫(kù)核心層放置在系統(tǒng)內(nèi)存中,包括模式函數(shù)庫(kù)、數(shù)據(jù)字典、數(shù)據(jù)庫(kù)執(zhí)行引擎、數(shù)據(jù)存取方法、緩沖區(qū)管理等模塊。數(shù)據(jù)庫(kù)采用簡(jiǎn)單的并發(fā)控制策略,實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)的存取和管理。數(shù)據(jù)字典是數(shù)據(jù)庫(kù)的關(guān)鍵數(shù)據(jù),以XML文件進(jìn)行配置或者固化在應(yīng)用程序中。模式函數(shù)庫(kù)是操縱數(shù)據(jù)字典的接口,以函數(shù)庫(kù)的形式提供給應(yīng)用,定制各種數(shù)據(jù)需求。
      文件系統(tǒng)的支持是提高數(shù)據(jù)庫(kù)可靠性的可選項(xiàng)。將數(shù)據(jù)字典信息和數(shù)據(jù)庫(kù)數(shù)據(jù)導(dǎo)出到外部的磁盤文件上,即使系統(tǒng)意外崩潰,也能恢復(fù)最近一次的數(shù)據(jù)備份。
      數(shù)據(jù)庫(kù)管理員負(fù)責(zé)建立數(shù)據(jù)庫(kù)的結(jié)構(gòu)和模式。數(shù)據(jù)庫(kù)管理員可以修改數(shù)據(jù)字典的信息,類似于使用關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)中的數(shù)據(jù)定義語(yǔ)言命令,通過使用模式函數(shù)庫(kù),改變數(shù)據(jù)庫(kù)的模式信息。數(shù)據(jù)字典描述了數(shù)據(jù)庫(kù)結(jié)構(gòu)和數(shù)據(jù)約束的數(shù)據(jù)庫(kù)模式信息。
      數(shù)據(jù)字典可導(dǎo)出到外存的XML文件上。XML文件的每個(gè)元素的基本格式包括數(shù)據(jù)標(biāo)識(shí),數(shù)據(jù)類型和數(shù)據(jù)值,并按照一定的邏輯關(guān)系組織。數(shù)據(jù)字典備份到外存儲(chǔ)數(shù)據(jù)文件上,可以防止系統(tǒng)崩潰后數(shù)據(jù)字典信息的丟失。還可整合到應(yīng)用程序中,提高數(shù)據(jù)庫(kù)的自管理性。
      圖2是本發(fā)明的數(shù)據(jù)字典結(jié)構(gòu)示意圖。該圖顯示了數(shù)據(jù)字典在內(nèi)存中的組織方式和邏輯結(jié)構(gòu)。它采用開鏈?zhǔn)焦7涌鞌?shù)據(jù)查找速度。一級(jí)哈希表對(duì)數(shù)據(jù)庫(kù)名稱散列,二級(jí)哈希表對(duì)表名稱散列,三級(jí)哈希表對(duì)列名稱散列。散列函數(shù)簡(jiǎn)單的從字符串計(jì)算一個(gè)16位的整數(shù),然后根據(jù)數(shù)組的長(zhǎng)度取模。只要給出數(shù)據(jù)庫(kù)名稱、表名稱或列名稱的組合,就可定位數(shù)據(jù)庫(kù)對(duì)象存儲(chǔ)位置。
      圖3本發(fā)明的數(shù)據(jù)字典的索引表的定義過程示意圖。具體步驟為步驟301,給出新增索引所在的數(shù)據(jù)庫(kù)名稱、基表名稱、索引表名稱和索引字段的名稱。步驟302,使用散列函數(shù)查找哈希數(shù)組的入口。步驟303,比較首個(gè)元素的數(shù)據(jù)庫(kù)名稱是否等于查找的數(shù)據(jù)庫(kù)名稱。如果不等,則轉(zhuǎn)到步驟304,按順序遍歷鏈表,直到找到滿足要求的成員。如果沒有滿足的節(jié)點(diǎn),那么查找失敗,函數(shù)進(jìn)入結(jié)束狀態(tài)306。否則繼續(xù)執(zhí)行步驟307,根據(jù)索引表名稱散列。步驟309,比較首個(gè)元素的數(shù)據(jù)庫(kù)名稱是否等于查找的索引表名稱。如果查找成功,則表明定義重復(fù),違反了表/索引名稱唯一性,因此進(jìn)入結(jié)束狀態(tài)311。否則執(zhí)行步驟309,按順序遍歷鏈表,查找滿足要求的成員。執(zhí)行步驟310,如果查找成功,進(jìn)入結(jié)束狀態(tài)311。否則執(zhí)行步驟312,在二級(jí)索引中增加索引項(xiàng)。執(zhí)行步驟313,設(shè)置索引表屬性,包括索引字段名稱,是否允許索引字段可重復(fù)、索引的基表名稱等信息。最后進(jìn)入結(jié)束狀態(tài)311。
      本發(fā)明已經(jīng)在嵌入式環(huán)境下進(jìn)行了應(yīng)用實(shí)施,達(dá)到了預(yù)期的發(fā)明目的。嵌入式數(shù)據(jù)庫(kù)使用本發(fā)明,在50萬(wàn)記錄數(shù)據(jù)量、多線程并發(fā)情況下,平均每秒鐘可以完成10,000次以上數(shù)據(jù)庫(kù)操作。滿足前臺(tái)數(shù)據(jù)存取性能要求的同時(shí),也能夠靈活的定制數(shù)據(jù)庫(kù)的應(yīng)用服務(wù)。
      雖然通過參考實(shí)施例已經(jīng)詳細(xì)的公開和說明了本發(fā)明,但是本領(lǐng)域的技術(shù)人員會(huì)理解無(wú)需脫離本發(fā)明的精神和保護(hù)范圍,就可以做出過各種形式上和細(xì)節(jié)上的改變。
      權(quán)利要求
      1.一種嵌入式環(huán)境下數(shù)據(jù)字典的實(shí)現(xiàn)方法,將數(shù)據(jù)庫(kù)、表或索引和列對(duì)象的數(shù)據(jù)字典信息存放在計(jì)算機(jī)系統(tǒng)緩沖池中,其特征在于計(jì)算機(jī)內(nèi)存中按照層次關(guān)系組織數(shù)據(jù)字典的結(jié)構(gòu),具體包括數(shù)據(jù)字典總體信息、數(shù)據(jù)庫(kù)、表或索引和列,分為數(shù)據(jù)庫(kù)、表或索引和列3層,采用開鏈?zhǔn)焦7▽?duì)數(shù)據(jù)庫(kù)對(duì)象進(jìn)行索引,一級(jí)哈希表以數(shù)據(jù)庫(kù)名稱為散列關(guān)鍵字,二級(jí)哈希表以表名稱為散列關(guān)鍵字,三級(jí)哈希表以列名稱為散列關(guān)鍵字;數(shù)據(jù)庫(kù)屬性主要包括數(shù)據(jù)庫(kù)名稱、數(shù)據(jù)庫(kù)的緩存大小、數(shù)據(jù)庫(kù)工作路徑;表單或索引屬性主要包括表的名稱、基表名稱、關(guān)鍵字名稱、類型、數(shù)據(jù)字段長(zhǎng)度;列屬性主要包括名稱、長(zhǎng)度、序號(hào)、類型、偏移量;提供一種數(shù)據(jù)模式函數(shù)庫(kù),具體包括數(shù)據(jù)庫(kù)、表或索引和列及其屬性的操縱函數(shù),模式函數(shù)庫(kù)對(duì)數(shù)據(jù)字典中數(shù)據(jù)庫(kù)、表或索引和列及其屬性的操縱步驟如下步驟1,定義數(shù)據(jù)庫(kù),檢查數(shù)據(jù)庫(kù)名稱的唯一性,定位數(shù)據(jù)庫(kù)信息的存儲(chǔ)位置,并設(shè)定數(shù)據(jù)庫(kù)緩存的大小、數(shù)據(jù)庫(kù)的工作目錄;步驟2,定義表,檢查表名稱的唯一性,定位表信息的存儲(chǔ)位置,并設(shè)定表的關(guān)鍵字名稱、類型和數(shù)據(jù)字段長(zhǎng)度,基表名稱置為空;步驟3,如果表中存在索引,則定義索引,檢查索引名稱的唯一性,并設(shè)定基表的名稱、關(guān)鍵字的名稱、類型;步驟4,定義列,檢查列名稱的唯一性,定位列信息的存儲(chǔ)位置,并設(shè)定列長(zhǎng)度、序號(hào)、類型和偏移量;如果存在多個(gè)數(shù)據(jù)庫(kù),則重復(fù)執(zhí)行步驟1至4;如果存在多個(gè)表,則重復(fù)執(zhí)行步驟2至4;如果存在多個(gè)索引,則重復(fù)執(zhí)行步驟3至4;如果存在多列,則重復(fù)執(zhí)行步驟4。
      2.根據(jù)權(quán)利要求1所述的嵌入式環(huán)境下數(shù)據(jù)字典的實(shí)現(xiàn)方法,,其特征在于將數(shù)據(jù)庫(kù)、表或索引和列對(duì)象的數(shù)據(jù)字典信息從系統(tǒng)緩沖池備份到外存設(shè)備上的XML文件中。
      全文摘要
      一種嵌入式環(huán)境下數(shù)據(jù)字典的實(shí)現(xiàn)方法,按照層次結(jié)構(gòu)將數(shù)據(jù)庫(kù)、表和列對(duì)象及其屬性存儲(chǔ)在系統(tǒng)緩沖池中,分為數(shù)據(jù)庫(kù)、表或索引和列3層,采用開鏈?zhǔn)焦7▽?duì)數(shù)據(jù)庫(kù)對(duì)象進(jìn)行索引,一級(jí)哈希表以數(shù)據(jù)庫(kù)名稱為散列關(guān)鍵字,二級(jí)哈希表以表名稱為散列關(guān)鍵字,三級(jí)哈希表以列名稱為散列關(guān)鍵字;采用數(shù)據(jù)模式函數(shù)庫(kù),描述各種數(shù)據(jù)實(shí)體、屬性及簡(jiǎn)單的實(shí)體聯(lián)系,支持對(duì)數(shù)據(jù)字典的插入、刪除和修改操作。本發(fā)明使用簡(jiǎn)單數(shù)據(jù)結(jié)構(gòu)和較小的系統(tǒng)代價(jià)描述了前臺(tái)業(yè)務(wù)的數(shù)據(jù)結(jié)構(gòu)及數(shù)據(jù)聯(lián)系,實(shí)現(xiàn)對(duì)數(shù)據(jù)對(duì)象的快速訪問;有助于簡(jiǎn)化數(shù)據(jù)庫(kù)應(yīng)用的開發(fā)流程。
      文檔編號(hào)G06F17/30GK1652112SQ200510018318
      公開日2005年8月10日 申請(qǐng)日期2005年3月2日 優(yōu)先權(quán)日2005年3月2日
      發(fā)明者涂小明, 陳勇, 葉磊 申請(qǐng)人:北京北方烽火科技有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1