⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 berkeleydb概述.htm

📁 bdb很重要的数据库, 高效!这是bdb入门学习的好资料
💻 HTM
📖 第 1 页 / 共 2 页
字号:
<P><FONT face=宋体 size=2>&nbsp;&nbsp;&nbsp; 1.数据存取子系统<BR>&nbsp;&nbsp;&nbsp; 数据存取(<a class="channel_keylink" href="http://www.itzhe.cn/databasekf/List/List_53.html" target="_blank">Access</a> Methods)子系统为创建和访问<a class="channel_keylink" href="http://www.itzhe.cn/databasekf/">数据库</a>文件提供了多种支持。Berkeley DB提供了以下四种文件存储方法:<BR>哈希文件、B树、定长记录(队列)和变长记录(基于记录号的简单存储方式),应用程序可以从中选择最适合的文件组织结构。<BR>程序员创建表时可以使用任意一种结构,并且可以在同一个应用程序中对不同存储类型的文件进行混合操作。</FONT></P>

<P><FONT face=宋体 size=2>&nbsp;&nbsp;&nbsp; 在没有事务管理的情况下,该子系统中的模块可单独使用,为应用程序提供快速高效的数据存取服务。<BR>数据存取子系统适用于不需事务只需快速格式文件访问的应用。</FONT></P>

<P><FONT face=宋体 size=2>&nbsp;&nbsp;&nbsp; 2.内存池管理子系统<BR>&nbsp;&nbsp;&nbsp; 内存池(Memory pool)子系统对Berkeley DB所使用的共享缓冲区进行有效的管理。它允许同时访问<a class="channel_keylink" href="http://www.itzhe.cn/databasekf/">数据库</a>的多个进程或者<BR>进程的多个线程共享一个高速缓存,负责将修改后的页写回文件和为新调入的页分配内存空间。<BR>&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp; 它也可以独立于Berkeley DB系统之外,单独被应用程序使用,为其自己的文件和页分配内存空间。<BR>内存池管理子系统适用于需要灵活的、面向页的、缓冲的共享文件访问的应用。</FONT></P>

<P><FONT face=宋体 size=2>&nbsp;&nbsp;&nbsp; 3.事务子系统<BR>&nbsp;&nbsp;&nbsp; 事务(Transaction)子系统为Berkeley DB提供事务管理功能。它允许把一组对<a class="channel_keylink" href="http://www.itzhe.cn/databasekf/">数据库</a>的修改看作一个原子单位,<BR>这组操作要么全做,要么全不做。在默认的情况下,系统将提供严格的ACID事务属性,但是应用程序可以选择不使用系统所作的<BR>隔离保证。该子系统使用两段锁技术和先写日志策略来保证<a class="channel_keylink" href="http://www.itzhe.cn/databasekf/">数据库</a>数据的正确性和一致性。</FONT></P>

<P><FONT face=宋体 size=2>&nbsp;&nbsp;&nbsp; 它也可以被应用程序单独使用来对其自身的数据更新进行事务保护。事务子系统适用于需要事务保证数据的修改的应用。<BR>&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp; 4.锁子系统<BR>&nbsp;&nbsp;&nbsp; 锁(Locking)子系统为Berkeley DB提供锁机制,为系统提供多用户读取和单用户修改同一对象的共享控制。<BR>数据存取子系统可利用该子系统获得对页或记录的读写权限;事务子系统利用锁机制来实现多个事务的并发控制。<BR>&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp; 该子系统也可被应用程序单独采用。锁子系统适用于一个灵活的、快速的、可设置的锁管理器。<BR>&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp; 5.日志子系统&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp; 日志(Logging)子系统采用的是先写日志的策略,用于支持事务子系统进行数据恢复,保证数据一致性。<BR>它不大可能被应用程序单独使用,只能作为事务子系统的调用模块。</FONT></P>

<P><FONT face=宋体 size=2>&nbsp;&nbsp;&nbsp; 以上几部分构成了整个Berkeley DB<a class="channel_keylink" href="http://www.itzhe.cn/databasekf/">数据库</a>系统。各部分的关系如下图所示:<BR>&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp; 在这个模型中,应用程序直接调用的是数据存取子系统和事务管理子系统,这两个系统进而调用更下层的内存管理子系统、<BR>锁子系统和日志子系统。<BR>&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp; 由于几个子系统相对比较独立,所以应用程序在开始的时候可以指定哪些数据管理服务将被使用。可以全部使用,<BR>也可以只用其中的一部分。例如,如果一个应用程序需要支持多用户并发操作,但不需要进行事务管理,那它就可以<BR>只用锁子系统而不用事务。有些应用程序可能需要快速的、单用户、没有事务管理功能的B树存储结构,那么应用程序<BR>可以使锁子系统和事务子系统失效,这样就会减少开销。&nbsp; </FONT></P>

<P><FONT face=宋体 size=2>BerkeleyDB存储功能概述&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp; Berkeley DB所管理数据的逻辑组织单位是若干个独立或有一定关系的<a class="channel_keylink" href="http://www.itzhe.cn/databasekf/">数据库</a>(database),<BR>每个<a class="channel_keylink" href="http://www.itzhe.cn/databasekf/">数据库</a>由若干记录组成,这些记录全都被表示成(key,value)的形式.</FONT></P>

<P><FONT face=宋体 size=2>&nbsp;&nbsp;&nbsp; 如果把一组相关的(key,value)对也看作一个表的话,那么每一个<a class="channel_keylink" href="http://www.itzhe.cn/databasekf/">数据库</a>只允许存放一个table,<BR>这一点不同于一般的关系<a class="channel_keylink" href="http://www.itzhe.cn/databasekf/">数据库</a>。实际上,在Berkeley DB中所提到的&#8220;<a class="channel_keylink" href="http://www.itzhe.cn/databasekf/">数据库</a>&#8221;,相当于一般关系<a class="channel_keylink" href="http://www.itzhe.cn/databasekf/">数据库</a>系统中的表;<BR>而&#8220;key/data&#8221;对相当于关系<a class="channel_keylink" href="http://www.itzhe.cn/databasekf/">数据库</a>系统中的行(rows);Berkeley DB不提供关系<a class="channel_keylink" href="http://www.itzhe.cn/databasekf/">数据库</a>中列直接访问的功能,<BR>而是在&#8220;key/data&#8221;对中的data项中通过实际应用来封装字段(列)。</FONT></P>

<P><FONT face=宋体 size=2>&nbsp;&nbsp;&nbsp; 在物理组织上,每一个<a class="channel_keylink" href="http://www.itzhe.cn/databasekf/">数据库</a>在创建的时候可以由应用程序根据其数据特点来选择一种合适的存储结构。<BR>可供选择的四种文件存储结构分别是:哈希文件、B树、定长记录(队列)和变长记录(基于记录号的简单存储方式)。</FONT></P>

<P><FONT face=宋体 size=2>&nbsp;&nbsp;&nbsp; 一个物理的文件中可以只存放一个单独的<a class="channel_keylink" href="http://www.itzhe.cn/databasekf/">数据库</a>,也可以存放若干相关或不相关的<a class="channel_keylink" href="http://www.itzhe.cn/databasekf/">数据库</a>,而且这些<a class="channel_keylink" href="http://www.itzhe.cn/databasekf/">数据库</a><BR>可以分别采用除队列之外任意不同的组织方式,以队列组织的<a class="channel_keylink" href="http://www.itzhe.cn/databasekf/">数据库</a>只能单独存放于一个文件,不能同其他存储类型混合存放。</FONT></P>

<P><FONT face=宋体 size=2>&nbsp;&nbsp;&nbsp; 一个文件除了受最大文件长度和存储空间的约束之外,理论上可以存储任意多个<a class="channel_keylink" href="http://www.itzhe.cn/databasekf/">数据库</a>。<BR>因此系统定位一个<a class="channel_keylink" href="http://www.itzhe.cn/databasekf/">数据库</a>通常需要两个参数&#8212;&#8212;&#8220;文件名&#8221;和&#8220;<a class="channel_keylink" href="http://www.itzhe.cn/databasekf/">数据库</a>名&#8221;,这也是Berkeley DB不同于<BR>一般关系<a class="channel_keylink" href="http://www.itzhe.cn/databasekf/">数据库</a>的地方。</FONT></P>

<P><FONT face=宋体 size=2>&nbsp;&nbsp; Berkeley DB存储系统为应用程序提供了一系列的接口函数,用于对<a class="channel_keylink" href="http://www.itzhe.cn/databasekf/">数据库</a>的管理和操作。其中包括:<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (1)<a class="channel_keylink" href="http://www.itzhe.cn/databasekf/">数据库</a>的创建、打开、关闭、删除、重命名等,以及对数据的检索和增删改操作;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (2)提供一些附加的功能,例如读取<a class="channel_keylink" href="http://www.itzhe.cn/databasekf/">数据库</a>状态信息、读取所在文件的信息、读取所在<a class="channel_keylink" href="http://www.itzhe.cn/databasekf/">数据库</a>环境的信息、<BR>清空<a class="channel_keylink" href="http://www.itzhe.cn/databasekf/">数据库</a>的内容、<a class="channel_keylink" href="http://www.itzhe.cn/databasekf/">数据库</a>的同步备份、版本升级、提示出错信息等等;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (3)系统还提供了游标机制,用于存取和访问成组的数据,以及对两个或多个相关<a class="channel_keylink" href="http://www.itzhe.cn/databasekf/">数据库</a>进行关联和等值连接操作;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (4)系统还给出了一些接口函数用于对存取策略进行优化配置,比如应用程序可以自己设置B树的排序比较函数、<BR>每页中存放key的最少数目,哈希桶的填充因子、哈希函数、哈希表最大长度,队列的最大长度,<a class="channel_keylink" href="http://www.itzhe.cn/databasekf/">数据库</a>存放的字节顺序,<BR>底层存储页的大小,内存分配函数,高速缓存的大小,定长记录的大小和填充位,变长记录所用的分隔符等等。<BR>&nbsp;&nbsp;&nbsp;&nbsp; </FONT></P>

<br />



	</p>
<!-- google_ad_section_end -->
</div>
<CENTER><BR>
  <Input title="点击复制标题和地址到剪贴版,直&#13;&#10;&#13;&#10;接在POPO/MSN上粘贴即可." onclick=copyToClipBoard() type=button value=点击复制本网址,发给POPO/QQ/MSN好友共享 name=B3> 
<script language='javascript'>
function copyToClipBoard(){
var clipBoardContent=''; 
clipBoardContent+=document.title;
clipBoardContent+=window.location;
window.clipboardData.setData("Text",clipBoardContent);
alert("你已复制链接及标题,请粘贴到POPO/MSN等发给好友!");
}
</script> <BR><BR></CENTER>

<P><SPAN style="DISPLAY: none"></SPAN><BR>
</P>
<P><SPAN 
style="DISPLAY: none"></SPAN><BR>
</P>
</DIV>
<DIV class=xLine></DIV>
<DIV class=cInfo>
  <UL>
  <LI><li>上一篇文章: <a class='LinkPrevArticle' href='/databasekf/HTML/44142.html' title='文章标题:进出口(海关)系统试运行计划--20040923
作&nbsp;&nbsp;&nbsp;&nbsp;者:foreveryday007
更新时间:2002-11-24 10:46:00'>进出口(海关)系统试运行计划--20040923</a></li></LI>
  <LI><li>下一篇文章: <a class='LinkNextArticle' href='/databasekf/HTML/44204.html' title='文章标题:SqlServer实用操作小技巧集合
作&nbsp;&nbsp;&nbsp;&nbsp;者:hansbj
更新时间:2002-11-24 10:46:00'>SqlServer实用操作小技巧集合</a></li></LI>
</UL>
</DIV>
<DIV class=xClass>相关文章</DIV>
<DIV class=cInfo>
<UL><LI><a class='LinkArticleCorrelative' href='/databasekf/HTML/50605.html' title='文章标题:SQL Server日志清除的两种方法
作&nbsp;&nbsp;&nbsp;&nbsp;者:未知
更新时间:2006-8-23 1:54:00' target="_self">SQL&nbsp;Server日志清除的两种方法</a><br><a class='LinkArticleCorrelative' href='/databasekf/HTML/50604.html' title='文章标题:SQL Server中删除重复数据的几个方法
作&nbsp;&nbsp;&nbsp;&nbsp;者:未知
更新时间:2006-8-23 1:53:00' target="_self">SQL&nbsp;Server中删除重复数据的几个方法</a><br><a class='LinkArticleCorrelative' href='/databasekf/HTML/50603.html' title='文章标题:SQL Server存储过程编写和优化措施
作&nbsp;&nbsp;&nbsp;&nbsp;者:未知
更新时间:2006-8-23 1:53:00' target="_self">SQL&nbsp;Server存储过程编写和优化措施</a><br><a class='LinkArticleCorrelative' href='/databasekf/HTML/50598.html' title='文章标题:SQL Server2000数据库系统表的应用
作&nbsp;&nbsp;&nbsp;&nbsp;者:未知
更新时间:2006-8-23 1:47:00' target="_self">SQL&nbsp;Server2000数据库系统表的应用</a><br><a class='LinkArticleCorrelative' href='/databasekf/HTML/50593.html' title='文章标题:SQL Server2005 Analysis服务实践之起步
作&nbsp;&nbsp;&nbsp;&nbsp;者:未知
更新时间:2006-8-23 1:42:00' target="_self">SQL&nbsp;Server2005&nbsp;Analysis服务实践之起步</a><br></LI>
<script type="text/javascript">
<!--
google_ad_client = "pub-6962521868087166";
google_ad_width = 468;
google_ad_height = 15;
google_ad_format = "468x15_0ads_al_s";
//2007-04-16: itzhe内容页连接广告
google_ad_channel = "5564158612";
google_color_border = "F9FCFE";
google_color_bg = "F9FCFE";
google_color_link = "3D81EE";
google_color_text = "000000";
google_color_url = "000000";
//-->
</script> 
<script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script> 
 </UL></DIV>
</DIV></DIV>

<DIV class=Right>
<DIV id=SPOS>NEWS REPORT CENTER - www.itzhe.cn </DIV>
<DIV class=xClass></DIV>
<script language='javascript' src='/AD/200705/13.js'></script>
<DIV class=xClass>推荐文章</DIV>
<script language="javascript" src="/databasekf/JS/Article_Elite2.js">
                                                                        </script>
<DIV class=xClass>热门文章</DIV>
<script language="javascript" src="/databasekf/JS/Article_Hot2.js"></script> 
<DIV class=xClass><A href="http://blog.itzhe.cn/html/news.html">最新资讯</A></DIV>
<DIV class=xInfoL>
<UL class=xInfoLR>
  <script language="JavaScript" src="http://blog.itzhe.cn/batch.javascript.php?param=XzwHbAJuUzBVaw1%2FCipWdFE%2FAy0FcFUiWDxTN1diB2sKbgh4B3cGKQgyAnYNMFRjBXxUeg9gACkEZQBmDSkBZl8yB2kCb1M2VSANTwoWVldRGQMtBW9VO1gwUz1XcwcqCjsIIwc1BjYIcgJnDTVUZQVmVDAPfQBuBGwAYg1yATpfbgcwAi5TIFV1DWkKOVZhUTkDdgVvVTdYM1N7VzMHNQokCHsHdAZqCHICdw0hVGQFZFQwD2oAcwReAGsNNA%3D%3D"></script></UL></DIV>

<DIV class=xClass><A href="http://blog.itzhe.cn/">最新博客</A></DIV>
<DIV class=xInfoL>
<UL class=xInfoLR>
<script language="JavaScript" src="http://blog.itzhe.cn/batch.javascript.php?param=DW4Aa1U5VzQBP1EjCChWdAZoBylSJ1AnBGBWMldiUjJYNQZuUzcFKgAmVzkANlJ3CnJWJ1I1UDRUNFozV2ZSPQ1pAChVZ1d4ATtRJQg1VmEGfwcpUj1QeQRlVjBXc1I1WDUGaFM%2BBWAAdVcVABxSUwpCVnhSOFA%2BVDxaNFdzUn8NPAArVWdXZwF7UTQIMFZnBmUHY1IgUD4EbFY0VyhSaVhpBjFTfwV2ACBXMwAzUmUKYlYjUjhQMlQ%2FWnJXNFJgDSMAc1UmVzsBe1EkCCRWZgZnB2NSN1AjBF5WJFd0UjVYKwZvUzEFaAAwVw4ANVJp"></script></UL></DIV>

<DIV class=xClass></DIV>
<DIV class=xInfoL>
<UL class=xInfoLR>
  <LI><script language='javascript' src='/AD/200705/14.js'></script>
</LI></UL></DIV>
</DIV></DIV>
<DIV id=BottomLine>
<DIV id=BottomLineL></DIV>
<DIV id=BottomLineR></DIV></DIV>
<DIV id=footer><A href="http://www.itzhe.cn/a/introduce" 
target=_self>公司简介</A> <SPAN>-</SPAN> <A href="http://www.itzhe.cn/a/contact" 
target=_self>联系方法</A> <SPAN>-</SPAN> <A href="http://www.itzhe.cn/a/invite" 
target=_self>招聘信息</A> <SPAN>-</SPAN> <A href="http://www.itzhe.cn/a/service" 
target=_self>客服中心</A> <SPAN>-</SPAN> <A href="http://www.itzhe.cn/a/law" 
target=_self>相关法律</A> <SPAN>-</SPAN> <A href="http://www.itzhe.cn/a/ad" 
target=_self>广告服务</A> <SPAN>-</SPAN> <A href="http://www.itzhe.cn/a/atlas" 
target=_self>网站导航</A> </DIV>
<DIV id=copyright>版权所有:IT者 未经授权禁止复制或建立镜像
<SPAN style="DISPLAY: none">
</SPAN><script src='http://s72.cnzz.com/stat.php?id=271636&web_id=271636&show=pic' language='JavaScript' charset='gb2312'></script></DIV>
</body></html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -