精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Perst嵌入式數據庫介紹

數據庫 其他數據庫
什么是Perst?Perst是McObject 公司發布的一款非常袖珍的開源嵌入式數據庫, 是一個簡單, 快速, 便捷, 面向對象, 適合java 與.NET 的數據庫。Perst 不需要專門的編譯器與預處理器, 支持ACID 事務。

Perst 是McObject 公司發布的一款非常袖珍的開源嵌入式數據庫, 是一個簡單, 快速, 便捷, 面向對象, 適合java 與.NET 的數據庫。Perst 不需要專門的編譯器與預處理器, 支持ACID 事務。官方站點:http://www.mcobject.com/perst

Perst 可以免費自由下載,并免費在非商業用途使用。

McObject 主要銷售技術支持,同時銷售商業license。

在 Perst得dual license下,用戶可以修改源代碼并使用于非商業用途。

      Perst 是一個開源嵌入式數據庫軟件, 能夠有效的處理移動設備上的大量數據。對于在資源受限的移動設備( 如手機, PDA 等)上存儲大量數據和對數據進行頻繁的IO 操作往往要消耗很多的設備資源。由于移動設備內存小, 性能較差, 如果采用關系數據庫( 如SQLServer2000, Oracle) 管理數據, 僅靠其有限的內存資源是不能運行這些數據庫管理系統的, 這樣就有必要采用一些特殊的數據庫系統。Perst 數據庫正是為這類設備研究開發的, 它們的作用是在資源受限的設備上完成大量數據的訪問操作。其實這些設備系統資源主要消耗在從磁盤上讀取數據的IO 操作。如何提供一種有效的文件存儲策略來降低對磁盤的IO 操作是嵌入式數據庫軟件設計的主要任務。

    像其他嵌入式數據庫一樣,Perst沒有管理上的代價,但不同的是Perst直接將對象以Java或者C#對象的形式進行存儲。因此不需要在對象的內部表現形式和Java/C#表現形式之間轉換。這個數據庫引擎非常精悍,只有約5000行代碼,McObject對此感到驕傲。根據訪問模式不同,運行時需要30K到300K的內存
其他特性列舉如下:   
● 垃圾收集   
● 對掛起的引用的探測   
● 自動的schema更新(evolution)   
● XML的導入/導出功能   
● 支持主-從復制   
● 可以過濾任何集合元素的一個SQL子集 ● 與AspectJ和JAssist AOP工具集成   
Perst 支持 .Net 下的 Linq。

下面將著重介紹Perst 嵌入式數據庫的文件存儲策略和B+ 樹索引結構

一、Perst 基本概念介紹
1. 頁Page
    Perst 對數據庫文件的基本操作都是以頁為單位進行的。這些基本操作包括: 內存分配、從數據庫文件中讀取數據、將內存中的數據寫入文件等。Perst 一頁默認的大小是4K。
2. 對象標識符OID
    Perst 創建的每個對象都是可以持久化的, 即它可以被保存在數據庫文件中。每個持久化的對象都會用對象標識符( OID) 引用, 通過對象標識符, 程序可以從數據庫文件中找到該對象在文件中實際存放位置。
3. Root Object
    Perst 的每個數據庫文件都必須有且只能有一個稱作RootObject 的類。在這個類中定義了數據庫文件中的所有索引結構。通過這個類, 程序可以定位到數據庫文件中的所有記錄對象。

二、數據庫Header 信息的存儲格式
    Perst 數據庫文件開始的***頁中, 前139 個字節存放Perst 數據庫使用情況和數據庫當前狀態等Header 信息。它在文件中的數據結構如圖1 所示。表1 到表4 對圖1 中Header 信息中的每個數據做了詳細分析。數據意義如表所示。

 

 

 

 

數組root[ 1] 是root[ 0] 的備份, 每個元素對應的意義相同

 數據庫文件的***頁( 4K) 存放了整個數據庫文件的Header 信息。程序從數據庫文件的Header 信息中分離出數據庫文件的使用

情況和索引結構的存儲位置, 這樣可以很快的定位數據庫中的記錄數據。

三、Perst 的Object Index 存儲結構
    Perst 專門開辟了一段空間, 稱Object Index 區, 存放持久化對象在文件中的實際存儲位置。一般這個區在文件的第2- 10 頁, 第11- 19 頁存放這個區的備份。第2- 9 頁的數據被標識為空閑文件區, 第10 頁存放實際Object Index。在Object Index 區中, 每個元素稱為Object Handle, 每Object Handle 用8 個字節表示, 存放對應對象在文件中的實際存儲位置, 即對象的OID。對于4K 的頁, 可以存放512 個Object Handles。Object Index 區的結構如圖2 所示。

 

在圖2 的0x00012000h 位置以前都是空閑區, 之后的才是真正存放Object Handle 的Object Index 區。如果Perst 數據庫文件中的持久化對象的OID 個數超過512 個, Perst 會在數據庫文件的另一個區開辟更大的存儲空間充當Object Index區, 以存放更多的Object Handle。

四、Perst 記錄數據及類的存儲結構
    Perst 中記錄數據存放位置是根據當前數據庫的使用情況來為記錄數據分配存儲空間。Perst 中每個記錄數據的存放格式都是統一的, 每個記錄數據的開頭占用8 個字節存放記錄數據的基本信息。前4 個字節存放這條記錄占用的字節個數, 后4 個字節存放構建這個記錄對象的類的OID, 通過這個OID 就可以動態的加載該類的對象。以類Test. User 的記錄為例, 該記錄包含一個int 類型的數據和一個變量名為 name 的String 類型, 其存儲結構如表5 所示

 

在Perst 中數據都是保存在對象中的, 首先要將對象的每個成員轉換成字節數組的形式, 然后在此字節數組前面加上8 個字節的記錄數據基本信息, 然后將該對象的整個字節數組保存在文件的相應位置。
    實際上Perst 在保存記錄數據之前都要將記錄數據的類信息保存在數據庫文件中, 主要目的是實現類對象的動態加載。以類Test. User 為例說明類的存儲結構, 它的兩個成員int 類型( Id) 和String 類型( Name) 。Perst 先保存類的成員變量Id 和Name 的信息, 然后保存類信息。圖2 是Test. User. Id 的存儲結構,Test.User. Name 的存儲結構和表6 類似。

 類Test.User 的存儲結構如表7 所示:

 以上是Perst 保存記錄對象類相關信息的存儲結構, 這樣Perst 可以動態的加載類對象。

五、B+ 樹的存儲結構
    Perst 之所以能夠應用在移動設備上, 最主要的原因是它采用了存取方式效率高的B+ 樹結構。Perst 定義的B+ 樹節點大, 使得構建出的B+ 樹寬度大而深度小, 這樣設備進行檢索的時候, 減少了對磁盤IO 操作的次數, 從而降低了設備的資源消耗。

1. B+ 樹的節點及其構成
    Perst 的B+ 樹節點用一個頁來表示( 4K) , 每個節點中包含4 個字節的節點信息和多個< key, value> , 節點信息中前2 個節點表示節點中< key , value> 對的個數, 后2 個字節表示索引值占用的總字節數。< key, value> 中value 表示索引值, key 表示對子節點或者是記錄數據對象的OID。索引值的類型不同, Perst 節點的結構也不同。
( 1) 索引值的類型是類
    當索引是用類創建的時候, 在節點的< key, value> 對中,索引值就是該記錄對象的OID, key 是該記錄對象的OID 或者是子節點頁對象的OID。以< OID1, OID3> , < OID2, OID4> 為例, 其中OID1 和OID2 是key, OID3 和OID4 是索引值, 且OID3< OID4 其結構如下圖3 所示:圖3

( 2) 索引值的類型是數值類型( 如int, long, short 等)
    當創建索引的類型是數值類型時, 節點< key, value> 中,索引值就是該數值, key 是子節點的OID 或者是和索引值相關的記錄對象的OID。以< OID1, 100> , < OID2, 125> 為例說明其存儲結構, 其中索引值的類型是int, 存儲結構如圖4所示:

對于這種類型的索引值, value 占用多大的空間, 是根據數值類型實際占用的空間進行分配的。
( 3) 索引值的類型是字符串或字節數組類型
    對于這種類型的索引結構, 在保存索引值的時候并不只是保存字符串或字節數組, 還會保存字符串的一些信息, 如字符串的字符個數, 字符串在該節點中存放的相對位置。以< OID1, teacher > 為例, 其存儲結構如下圖所示:

從以上三種不同類型的節點存儲結構, 可以看出B+ 樹節點存儲結構的共同點。( 1) 節點的前4 個字節保存該節點的基本信息;

( 2) < key, value> 的存放:一個從節點頁的開頭按照其插入的順序存放( 從前向后) , 另一個則是從節點頁的末尾開始存放( 從后向前) 。這樣處理的好處是可以很快地從節點中取出< key,value> , 不用經過很復雜的計算過程, 節省了設備資源的使用。

2. B+ 樹在內存中的重建
    Perst 將整個B+ 樹的結構保存在數據庫文件中, 當程序對數據操作的時候如何將整個B+ 樹裝入內存呢?Perst 中有一個可以引用所有記錄對象的Root Object 的類, 通過這個類Perst 除了可以動態的加載B+ 樹類對象, 而且可以很快的從數據庫文件中定位B+ 樹根節點的文件存儲位置。
    Perst 找到相應的B+ 樹根節點的時候, 會一次性的從數據庫文件中讀取一個節點大小( 4K) 的數據到內存中。由于在節點構建的時候索引值是順序存放的, 因此程序可以用二分查找的算法在節點中查找符合條件的索引值, 如果找到就可以定位到此節點的子節點或者是和索引值對應的記錄對象。如果節點是葉節點, 程序就可以從這個節點中找出和索引值對應的對象的OID, 通過OID,Perst 就可以從文件中讀取到整個記錄的字節數組形式, 通過類對象的動態加載機制可以把字節數組還原為記錄對象的形式。

     如果是內部節點, 根據內部節點的OID, Perst 會將內部節點的數據讀取到內存中。這些被加載到內存中的數據會臨時的存放在一個對象緩沖區, 當需要的時候就可以直接從對象索引區讀取數據,而不用重復的進行I􀀁O 操作。只有對象緩沖區滿時, Perst 采用LRU 置換機制把內存中的數據寫入數據庫文件中。

參考文獻《Perst 嵌入式數據庫存儲結構分析與研究 》

原文鏈接:http://www.cnblogs.com/linzheng/archive/2011/03/06/1972282.html

【編輯推薦】

  1. 嵌入式數據庫系統Perst***結合Silverlight
  2. 黑莓客戶端選擇Perst Lite嵌入式數據庫

 

責任編輯:艾婧 來源: 博客園
相關推薦

2010-02-24 16:02:45

PerstSilverlight

2011-06-15 10:18:12

Windows PhoPerst

2010-03-19 13:05:11

Perst Lite

2013-09-22 10:39:00

MeayunDB

2011-03-11 11:19:05

嵌入式數據庫

2009-01-18 15:36:04

2011-07-08 10:45:19

SqlceSqlCeConnec

2009-12-17 10:33:05

嵌入式Linux

2013-09-02 14:41:05

Java嵌入式SQLite

2010-03-23 09:08:05

2009-11-19 09:35:36

eXtremeDB嵌入式實時數據庫McObject

2023-02-09 08:35:39

Spring嵌入式容器

2009-06-11 16:34:19

2010-07-05 13:36:21

SQL Server

2009-12-28 17:54:49

WPF嵌入式資源

2013-04-09 16:47:19

iOS嵌入式數據庫SQLit

2024-03-05 18:40:15

LiteDB數據庫NoSQL

2009-12-23 13:05:22

Linux嵌入式

2009-02-05 11:46:22

Oracle嵌入式數據庫

2010-05-18 16:20:15

數據庫索引
點贊
收藏

51CTO技術棧公眾號

久久精品国产一区二区三区免费看| 亚洲开心激情| 亚洲视频一区二区在线观看| 成人精品一二区| 超碰中文字幕在线| 日韩av免费大片| 精品处破学生在线二十三| 国产精品无码专区av在线播放| 99免在线观看免费视频高清| 国产成人在线看| 国产精品2018| 久久中文字幕在线观看| 欧美一区二区三区激情视频| 欧美成人精品福利| 激情 小说 亚洲 图片: 伦| 亚洲按摩av| 国产欧美精品区一区二区三区 | 亚洲欧美成人网| 色黄视频免费看| 成人看片网页| 精品女厕一区二区三区| 97精品国产97久久久久久粉红| 亚洲日本国产精品| 国产精品99久久久久| 国产精品欧美日韩| 最新中文字幕一区| 99xxxx成人网| 欧美国产一区二区三区| 永久免费未视频| 欧美熟乱15p| 精品国产91久久久久久久妲己| 91视频这里只有精品| 国产综合av| 色偷偷成人一区二区三区91| 久久久久久人妻一区二区三区| 麻豆视频在线播放| 久久亚洲一级片| 欧美久久久久久一卡四| 天天射天天色天天干| 久久国产乱子精品免费女| 国产成人拍精品视频午夜网站| 日韩精品在线不卡| 亚洲福利电影| 午夜精品久久久久久久99热| 免费网站观看www在线观| 午夜日韩激情| 欧美风情在线观看| 免看一级a毛片一片成人不卡| 久久久9色精品国产一区二区三区| 中文字幕日韩高清| 免费成人深夜蜜桃视频| 日韩电影一区| 久久精品一本久久99精品| 老司机精品免费视频| 久久国产电影| 久久夜色精品国产亚洲aⅴ| 亚洲国产美女视频| 午夜精品久久99蜜桃的功能介绍| 美女性感视频久久久| 强行糟蹋人妻hd中文| 国产综合网站| 97国产精品免费视频| 成人免费a视频| 天堂资源在线中文精品| 国产精品久久久久久亚洲影视| 成人黄色三级视频| 精品一区二区影视| aa日韩免费精品视频一| 日韩一卡二卡在线| 久久久久久久久久久久久女国产乱| 欧美成人一区二区在线| 成人午夜影视| 亚洲精品视频免费看| www.日本少妇| 国产另类xxxxhd高清| 3d动漫精品啪啪1区2区免费 | 亚洲 小说区 图片区| 美美哒免费高清在线观看视频一区二区| 国产有码在线一区二区视频| 亚洲精品久久久狠狠狠爱| 91农村精品一区二区在线| 日本一区二区三区免费看| 免费在线观看黄色| 午夜久久久久久电影| av丝袜天堂网| 伊人久久精品| 日韩精品免费在线视频| 亚洲女同二女同志奶水| 精品1区2区3区4区| 国产精品免费小视频| www.久久久久久久久久| 26uuu亚洲综合色| 国产麻豆电影在线观看| 日韩精品美女| 5858s免费视频成人| 在线观看国产网站| 不卡在线一区二区| 高清视频欧美一级| 中文字幕有码视频| a在线欧美一区| 亚洲一区三区视频在线观看| 69av成人| 欧美一区午夜精品| 欧美熟妇激情一区二区三区| 一区福利视频| 成人深夜直播免费观看| 日本一二三区在线视频| 亚洲精品v日韩精品| 国产自偷自偷免费一区| 成人激情自拍| 精品国产依人香蕉在线精品| 伊人手机在线视频| 成人一区二区三区在线观看| 亚洲欧美日韩精品在线| 欧美激情20| 精品国产a毛片| 卡通动漫亚洲综合| 青青青伊人色综合久久| 欧美精品一区二区三区久久| 女同一区二区免费aⅴ| 欧美日韩一级片网站| 欧美无人区码suv| 亚洲一级黄色| 114国产精品久久免费观看| 3p在线观看| 91黄色激情网站| 亚洲国产综合视频| 韩日成人av| 91九色极品视频| 顶级网黄在线播放| 欧美日韩三级在线| 欧美激情久久久久久久| 久久国产高清| 鲁片一区二区三区| 亚洲同志男男gay1069网站| 精品国产一区二区三区久久久蜜月| 久久久久人妻一区精品色| 日韩精品一区第一页| 欧美日韩一区二区三区在线视频| 日韩精品极品| 亚洲欧美视频在线| 亚洲欧美综合自拍| 久久精品水蜜桃av综合天堂| 播放灌醉水嫩大学生国内精品| 精品网站aaa| 91国产视频在线播放| 五月婷婷在线观看视频| 欧美日韩国内自拍| 特级西西人体wwwww| 噜噜噜久久亚洲精品国产品小说| 美女视频久久| 456亚洲精品成人影院| 国产一级揄自揄精品视频| 久久久蜜桃一区二区| 久久久国际精品| 天堂中文视频在线| 久久在线免费| 亚洲qvod图片区电影| 性欧美ⅴideo另类hd| 欧美成人精品二区三区99精品| 国产一级在线观看视频| 97精品视频在线观看自产线路二| 无码aⅴ精品一区二区三区浪潮| 亚洲免费福利一区| 国产免费观看久久黄| 国产激情在线视频| 亚洲成人黄色在线观看| 欧美国产成人精品一区二区三区| 国产精品色在线观看| 51自拍视频在线观看| 精品1区2区3区4区| 日韩av大全| 精品视频91| 91精品国产一区| av在线免费播放网站| 777xxx欧美| 日韩黄色精品视频| 国产精品人成在线观看免费| aaaaa黄色片| 亚洲男人影院| 在线免费一区| 国产精品一线| 国产精品入口福利| av丝袜在线| 色偷偷av一区二区三区| 欧美一级性视频| 欧美视频你懂的| 在线观看一区欧美| 天天做夜夜爱爱爱| 成人福利视频在线| 中文字幕欧美人妻精品一区| 91av精品| 日本一区二区三区视频在线观看| 91成人app| 欧美最猛性xxxxx免费| 免费不卡视频| 亚洲男人的天堂网站| 国产精品女同一区二区| 黑人狂躁日本妞一区二区三区 | 欧美亚洲在线日韩| 国产精品二区二区三区| 99只有精品| 91高潮精品免费porn| 黄色网页网址在线免费| 亚洲精品自产拍| 亚洲国产成人一区二区| 欧美视频精品在线观看| 欧美精品二区三区| 一区二区三区毛片| 成人无码精品1区2区3区免费看| 成人sese在线| 亚洲涩涩在线观看| 日韩制服丝袜av| 欧美精品一区免费| 欧美色123| 亚洲最新免费视频| 久久99国产成人小视频| 国产v亚洲v天堂无码| 日本午夜精品久久久久| 日韩免费av一区二区| 欧美videosex性极品hd| 久久久精品影院| 成人资源www网在线最新版| 日韩电影中文字幕在线| www.av导航| 91麻豆精品国产91久久久更新时间| www.久久久久久久| 青青操在线视频| 黑人巨大精品欧美一区二区免费| 久久亚洲av午夜福利精品一区| 国产精品嫩草久久久久| japanese中文字幕| 97久久久精品综合88久久| 韩国av中国字幕| 国产精品夜夜嗨| 日本在线观看视频一区| 久久精品国产精品青草| www.这里只有精品| 久久精品国产网站| 少妇一级淫免费播放| 日韩国产一区二| 人妻内射一区二区在线视频 | 国产女人18毛片水真多| 欧美日韩成人综合天天影院| 在线免费看毛片| 欧洲一区在线电影| 一级黄色在线观看| 色偷偷一区二区三区| 亚洲大片免费观看| 色哟哟一区二区在线观看| 亚洲第一在线播放| 动漫精品一区二区| 一级黄色在线观看| 欧美色涩在线第一页| 一区二区三区在线免费观看视频| 在线观看av不卡| 91在线视频国产| 91精品久久久久久久99蜜桃| 国产免费的av| 日韩欧美一区二区视频| 国产综合在线播放| 亚洲国产精品美女| 免费福利在线观看| 在线观看久久久久久| jizz在线观看视频| 久久香蕉国产线看观看av| av免费网站在线观看| 欧美国产视频日韩| 久久青青视频| 国产日韩欧美91| 影音先锋欧美激情| 久久国产精品久久精品国产| 免费一区二区| 自拍另类欧美| 亚洲黄色天堂| 国产精品无码一本二本三本色| 另类调教123区| 国产国语老龄妇女a片| 懂色一区二区三区免费观看| 泷泽萝拉在线播放| 国产精品国模大尺度视频| 日本青青草视频| 色综合久久天天| 国产男男gay体育生白袜| 欧美精品一区二区三区高清aⅴ| 天堂av在线7| 啊v视频在线一区二区三区| 人人超在线公开视频| 日本成人黄色片| 欧美一级片网址| 久久国产主播精品| 99精品视频在线观看播放| 男女视频网站在线观看| 日韩在线一二三区| 欧美久久久久久久久久久| 国产清纯白嫩初高生在线观看91| 91日韩中文字幕| 91豆麻精品91久久久久久| 亚洲精品久久久久久久久久 | 久久精品女人的天堂av| 999久久久精品国产| 男女激情无遮挡| 国产揄拍国内精品对白| 丰满少妇高潮一区二区| 亚洲人成在线播放网站岛国| 日本在线观看视频网站| 欧美日韩在线电影| 天天爽夜夜爽夜夜爽| 九九久久综合网站| 久久免费影院| 欧美久久久久久一卡四| 韩国自拍一区| 图片区乱熟图片区亚洲| 国产日韩精品视频一区| 日本少妇毛茸茸高潮| 欧美一级日韩一级| 91caoporm在线视频| 日本精品在线视频| 九色丨蝌蚪丨成人| 国产精品日韩三级| 寂寞少妇一区二区三区| 蜜桃久久精品成人无码av| 香蕉影视欧美成人| 午夜精品久久久久久久99热黄桃| 色噜噜久久综合伊人一本| 成人影院大全| 国产一区在线免费观看| 欧美日韩综合| 两性午夜免费视频| 18欧美亚洲精品| 中文在线免费看视频| 亚洲石原莉奈一区二区在线观看| 超碰在线视屏| 国产一区喷水| 亚洲成色精品| 国产一线在线观看| 亚洲国产日韩av| 亚洲精品综合网| 欧美片一区二区三区| 日韩精品久久久久久久软件91| 一本久道久久综合狠狠爱亚洲精品| 久久一区亚洲| 日韩毛片无码永久免费看| 日韩欧美第一页| 男人的天堂av高清在线| 国产成人精品在线| 激情五月色综合国产精品| 国产一区亚洲二区三区| 国产午夜三级一区二区三| 波多野结衣视频在线观看| 亚洲片av在线| 成人在线视频免费看| 亚洲人成网站在线观看播放| 免费观看久久久4p| 91ts人妖另类精品系列| 91精品国产综合久久精品性色| 国产黄a三级三级三级av在线看| 国产欧美精品在线| 女主播福利一区| 亚洲天堂2024| 狠狠躁夜夜躁久久躁别揉| 韩国中文免费在线视频| 国产精品极品美女在线观看免费| 欧美三级美国一级| 亚洲高清视频免费| 亚洲一区二区影院| 亚洲aaaaaaa| 国产精品夜色7777狼人| 天天影视综合| 日本性生活一级片| 色婷婷av久久久久久久| 日本暖暖在线视频| 99精彩视频| 老鸭窝91久久精品色噜噜导演| 日本高清www| 在线成人av网站| 免费毛片在线看片免费丝瓜视频| 久久99精品国产一区二区三区| 日本视频在线一区| 日日骚一区二区三区| 日韩av在线最新| 农村妇女一区二区| av免费观看国产| 国产精品视频观看| 成人爽a毛片一区二区| 国产精品av在线播放| 亚洲精品国产偷自在线观看| 午夜视频在线观看国产| 欧美亚洲禁片免费| 国产美女一区视频| 亚洲国产一区二区三区在线播| 国产精品一区二区x88av| 亚洲图片在线视频| 欧美日韩成人精品| av亚洲在线观看| 亚洲激情 欧美| 91精品国产综合久久久久久漫画| 男女羞羞在线观看| 男同互操gay射视频在线看| 久久在线观看免费|