- 1、本文档共21页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
Zope对象数据库(ZODB)
Zope默认将所有数据存放在Zope对象数据库(ZODB)中。ZODB实现了Python对象的透明存储,应用的编写几乎不必考虑数据库的操作。ZODB支持缓存、撤销、事务、可插拔的存储等高级特性。ZODB是Zope自带的数据库,但是也可以脱离于Zope独立使用。
本章适合系统管理员和系统集成人员阅读。本章重点包括:
ZODB的分区存储配置
ZODB的维护方法
ZEO架构的配置
8.1???关系数据库,还是对象数据库
关系数据库(RDBMS)是一个很成熟的技术。这也是大多数软件所采用的存储技术。但是具体应用的编写,需要直接针对对象来操作。因此,往往通过一些O-R映射(对象-关系的映射),来将二者衔接。这最终导致基于关系数据库的开发比较繁琐。
ZODB最大的优点就是透明性,你根本不必编写任何数据库读写的代码,省去了传统的O-R映射代码。Python的所有对象可保存为一个pickle数据块,并可从pickle数据库块中恢复对象;而ZODB数据库实际上就是对象pickle化后的一个数据库。可轻松从ZODB数据库中恢复一个对象。
如果你的应用中有大量不同类型的对象,相互之间有非常复杂的关系,而且可能模型可能经常发生变化的时候,这时候关系数据库可能无法承载了,而采用ZODB则是一个更好的选择。内容管理系统中存在各种不同的内容类型,插件的安装,要求系统能够不断扩展。因此,ZODB特别适合内容管理系统的开发。
和关系数据库一样,ZODB也支持事务:一次操作要么成功提交,要么失败(执行的时候抛出异常)回滚。不会出现事务执行到一半出现异常,而数据已经被改写,导致数据不一致的情况。
和关系数据库相比,ZODB对象也存在一些缺点,包括:
ZODB中的数据,不能脱离软件独立使用,而且目前只能使用python语言访问
自身是个黑箱,不支持跨语言的、通用的、类似SQL的访问接口
是九十年代才开始发展的技术,不如关系数据库从七十年代至现在发展得那么成熟
8.2???Zope中ZODB的使用
8.2.1???查看数据库文件
每个Zope实例中,包括一个var的子目录,ZODB就是存放在这里。Zope服务第一次启动后,会自动生成2个数据库文件:
Data.fs
这就是ZODB的核心数据库文件。网站备份的时候,只需要备份这个文件。
Data.fs.index
ZODB数据库的对象索引文件。这个文件不是必须的,不必备份。启动的时候,可根据Data.fs自动生成。
我们在ZMI中看到的所有对象,均保存在ZODB中。包括:脚本、显示模板、工具对象、内容等。
8.2.2???Zope的默认数据库配置
Zope提供了ZODB的基本管理界面。进入ZMI界面的根目录中,依次单击【Control_Panel】-【DatabaseManagement】,我们可看到这个Zope实例所使用ZODB的清单,如图8.1所示。
【图8.1】Zope使用的数据库
默认包括main和temporary这2个数据库。main数据库对应前面看到Data.fs文件中。而temporary数据库是一个使用内存存储的临时数据库,用于存放session这样一些临时对象。
在Zope实例的etc/zope.conf配置文件末尾,可以相应看到如下配置:
zodb_dbmain
#MainFileStoragedatabase
filestorage
path$INSTANCE/var/Data.fs
/filestorage
mount-point/
/zodb_db
zodb_dbtemporary
#Temporarystoragedatabase(forsessions)
temporarystorage
nametemporarystorageforsessioning
/temporarystorage
mount-point/temp_folder
container-classProducts.TemporaryFolder.TemporaryContainer
/zodb_db
这里包括main和temporary这2个数据库的配置。main数据库采用了filestorage作为存储,这也是Zope默认的存储机制,它最终存储到了实例的var子目录下的Data.fs文件中,mount-point表示这个文件对应ZODB的根节点(/);而temporary数据库采用了temporarystorage作为存储,将对象保存在内存中,它将加载到ZODB的/temp_folder处。
可看到,Zope采用了分区
您可能关注的文档
- 简单介绍科学家的事迹5篇.doc
- 简述abb工业机器人工件坐标系的设定步骤和作用.docx
- 策划的工作内容.docx
- 简述室外设计.docx
- 简述谈判的入题技巧.doc
- 简议EPC总承包项目的管理及其意义[Word文档].pdf
- 第八章--寡头垄断市场的价格和产量(微观经济学-南开大学-耿作石).ppt
- 第八版口腔肿瘤TNM分期更新解读.pptx
- 第二章-医院外部环境.ppt
- 第六章-网络营销广告.ppt
- 2023年江苏省镇江市润州区中考生物二模试卷+答案解析.pdf
- 2023年江苏省徐州市邳州市运河中学中考生物二模试卷+答案解析.pdf
- 2023年江苏省苏州市吴中区中考冲刺数学模拟预测卷+答案解析.pdf
- 2023年江苏省南通市崇川区田家炳中学中考数学四模试卷+答案解析.pdf
- 2023年江西省吉安市中考物理模拟试卷(一)+答案解析.pdf
- 2023年江苏省泰州市海陵区九年级(下)中考三模数学试卷+答案解析.pdf
- 2023年江苏省苏州市高新二中中考数学二模试卷+答案解析.pdf
- 2023年江苏省南通市九年级数学中考复习模拟卷+答案解析.pdf
- 2023年江苏省南通市海安市九年级数学模拟卷+答案解析.pdf
- 2023年江苏省泰州市靖江外国语学校中考数学一调试卷+答案解析.pdf
文档评论(0)