在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

    
    
    <address id="vxupu"><td id="vxupu"></td></address>

      <pre id="vxupu"><small id="vxupu"></small></pre>
      <dfn id="vxupu"></dfn>
      <div id="vxupu"><small id="vxupu"></small></div>
    1. 新聞中心

      EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > Perst嵌入式數(shù)據(jù)庫(kù)存儲(chǔ)結(jié)構(gòu)分析與研究

      Perst嵌入式數(shù)據(jù)庫(kù)存儲(chǔ)結(jié)構(gòu)分析與研究

      作者: 時(shí)間:2012-03-20 來源:網(wǎng)絡(luò) 收藏

      表2.3 數(shù)組root[1]結(jié)構(gòu)

      00 00 00 00 00 01 60 00

      00 00 00 00 00 00 A0 00

      00 00 00 00 00 00 00 10 00

      8 bytes

      8 bytes

      8 bytes

      00 00 00 00 00 01 42 80

      00 00 12 00

      00 00 12 00

      8 bytes

      4 bytes

      4 bytes

      00 00 10 08

      00 00 00 00

      00 00 00 02

      4 bytes

      4 bytes

      4 bytes

      00 00 10 01

      00 00 10 02

      00 00 00 00

      4 bytes

      4 bytes

      4 bytes

      表2.4 事務(wù)id

      00 00 00 00 00 00 00 01

      8 bytes

      事務(wù)id


      數(shù)據(jù)庫(kù)文件的第一頁(yè)(4K)存放了整個(gè)數(shù)據(jù)庫(kù)文件的Header信息。程序從數(shù)據(jù)庫(kù)文件的Header信息中分離出數(shù)據(jù)庫(kù)文件的使用情況和索引結(jié)構(gòu)的存儲(chǔ)位置,這樣可以很快的定位數(shù)據(jù)庫(kù)中的記錄數(shù)據(jù)。

      3 Perst的Object Index

      Perst專門開辟了一段空間,稱Object Index區(qū),存放持久化對(duì)象在文件中的實(shí)際存儲(chǔ)位置。一般這個(gè)區(qū)在文件的第2-10頁(yè),第11-19頁(yè)存放這個(gè)區(qū)的備份。第2-9頁(yè)的數(shù)據(jù)被標(biāo)識(shí)為空閑文件區(qū),第10頁(yè)存放實(shí)際Object Index。

      在Object Index區(qū)中,每個(gè)元素稱為Object Handle,每Object Handle用8個(gè)字節(jié)表示,存放對(duì)應(yīng)對(duì)象在文件中的實(shí)際存儲(chǔ)位置,即對(duì)象的OID。對(duì)于4K的頁(yè),可以存放512個(gè)Object Handles。Object Index區(qū)的結(jié)構(gòu)如圖3.1所示。

      圖3.1 Object Index結(jié)構(gòu)圖

      在圖3.1的0x00012000h位置以前都是空閑區(qū),之后的才是真正存放Object Handle的Object Index區(qū)。如果Perst數(shù)據(jù)庫(kù)文件中的持久化對(duì)象的OID個(gè)數(shù)超過512個(gè),Perst會(huì)在數(shù)據(jù)庫(kù)文件的另一個(gè)區(qū)開辟更大的存儲(chǔ)空間充當(dāng) Object Index區(qū),以存放更多的Object Handle。

      4 Perst記錄數(shù)據(jù)及類的

      Perst中記錄數(shù)據(jù)存放位置是根據(jù)當(dāng)前數(shù)據(jù)庫(kù)的使用情況來為記錄數(shù)據(jù)分配存儲(chǔ)空間。Perst中每個(gè)記錄數(shù)據(jù)的存放格式都是統(tǒng)一的,每個(gè)記錄數(shù)據(jù)的開頭占用8個(gè)字節(jié)存放記錄數(shù)據(jù)的基本信息。前4個(gè)字節(jié)存放這條記錄占用的字節(jié)個(gè)數(shù),后4個(gè)字節(jié)存放構(gòu)建這個(gè)記錄對(duì)象的類的 OID,通過這個(gè)OID就可以動(dòng)態(tài)的加載該類的對(duì)象。以類Test.User的記錄為例,該記錄包含一個(gè)int類型的數(shù)據(jù)和一個(gè)變量名為“name”的 String類型,其如圖4.1所示:

      占的總字節(jié)數(shù)

      類Test.User的OID

      Int類型的值

      “name”的字符個(gè)數(shù)M

      “name”的字節(jié)數(shù)組形式

      4 bytes

      4 bytes

      4 bytes

      4 bytes

      2*M bytes

      圖4.1 記錄數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)



      評(píng)論


      相關(guān)推薦

      技術(shù)專區(qū)

      關(guān)閉