包含 '' 标签的文章

Introducing Berkeley DB XML

Berkeley DB XML入门
For dbxml-2.2.13
第一章 概观
本章内容的以dbxml-2.2.13为例,请使用dbxml-2.2.13
基础
BDB xml 以库的形式直接练到用户的应用程序,BDB XML也有一个命令提示符让用户在脱离编程环境的情况下访问xml文档,你可以把命令提示符作为你应用程序的管理工具.
在DBD xml中,所有的数据存储在成为”容器”(containers)的文件中,BDB xml shell
提供了简便的方式操纵”容器”和所有的DBD功能.
容器可以把整个XML文档存储为一个文档,或把其中的节点单独存储,当整体存储时,XML文档就是一个”容器”或一个系统文件,当存储节点时,xml被分割成小块,存储在”容器”中.
在”节点存储”模式下,取出的文档的格式就是你存储的的格式(除非你指定了格式输出),区别就在于你是怎么存储的.”节点存储”模式比”整个文档存储”提供更好的性能.所有默认是”节点存储”模式
使用SHELL
shell命令在BDB xml的安装目录的bin目录下,进入bin目录输入dbxml启动shell
如下
Bin>dbxml
d’b’xml>
BDB xml的语句有单行的和多行的.
BDB xml 用容器来存储文档 ,容器包含文档的集合,在一个容器中的多个文档可以结构不同,也可以相同.
开始我们的BDB xml之旅,首先创建一个容器,我们的第一个例子是一个简单的电话本,容器的名字叫phone.dbxml(扩展名不是必须为dbxml,但推荐这么写)
dbxml>createContainer phone.dbxml
因为我们现在所在的目录是bin>,所以phone.dbxml创建在bin目录下
创建完成后,shell会自动打开最后一个创建的容器.
接下来输入xml到phone.dbxml
(以’(单引号)包含输入的数据)
dbxml>putDocument phone1 ‘
(回车)
(回车)
Tom(回车)
Jones(回车)
(回车)
420-203-2033(回车)
‘(空格)s(回车)(s表示输入结束)
如果成功,则显示
Document added,name=phone1
再输入一条记录
dbxml> putDocument phone2 ‘
(回车)
(回车)
Lisa(回车)
Smith(回车)

420-992-4801(回车)
390-812-4292(回车)
‘(空格)s(回车)
如果成功,则显示
Document added, name = phone2
现在phone.dbxml中有了两条记录,在下面的例子中应用了几个基本的基于XPath 语句的XQuery查询 ,以后会有更复杂的XQuery 语句.
XPath语句是XQuery规范的一个主要部分,就像SELECT语句在sql中一样//注意collection (”phone.dbxml”)这个语句,我们也可以简单的写为collection ()表示我们的操作对象是当前打开的容器.
dbxml>query ‘collection (”phone.dbxml”) /phonebook/name/last/string();
查询成功后显示
2 objects returned for eager expression ‘
collection(”phone.dbxml”)/phonebook/name/last/string()’
显示一下找到的last name
dbxml>print
Jones
Smith
至此,第一个小试验已经成功
下面我们找一下 lisa的home phone number
dbxml>query ‘collection(”phone.dbxml”)/phonebook[name/first=”Lisa”]/phone[@type=”home”]/string()’
查询成功后显示
1 objects returned for eager expression ‘
collection(”phone.dbxml”)/phonebook[name/first […]

| 标签: , ,

Berkeley DB XML and python

Berkeley DB XML是一种原生的XML数据库,它允许将XML文档内容直接存储在数据库中。
由此,我想可以用它来存储一些简单的、不经常更新的、但是要求快速查询的数据。
我们通过一个简单的例子来说明,如何针对Berkeley DB XML来存储XML文档:
#!/usr/bin/python
# -*- coding: utf-8 -*-
 
from bsddb.db import *
from dbxml import *
 
mgr = XmlManager()
uc = mgr.createUpdateContext()
 
container = mgr.openContainer("demo.dbxml", DB_CREATE)
 
filename = ‘demo’
fileContents = """<?xml version="1.0" encoding="UTF-8"?>
<result>OK</result>
"""
 
container.putDocument(filename, fileContents, uc)
在这个例子中,会创建一个名为demo.dbxml的数据库文件。
相应的,我们读取刚刚存储的内容,可以使用:
#!/usr/bin/python
# -*- coding: utf-8 -*-
 
from bsddb.db import *
from dbxml import *
 
mgr = XmlManager()
 
container = mgr.openContainer("demo.dbxml")
container.addAlias("demo")
 
qc = mgr.createQueryContext()
 
results = mgr.query("collection(’demo’)/result", qc)
 
for value in results:
    document = value.asDocument()
    print document.getName(), "=", value.asString()
在实际应用过程中,发现当大量数据同时插入的时候,会产生类似以下的错误:

Traceback […]

| 标签: , , ,

Berkeley DB XML for PHP 方法总结

原文点击这里查看:(1), (2), (3)。
DBXML for PHP 并没有提供全部的 for C 方法
XmlManager
XmlManager::existsContainer()
XmlManager::createContainer()
XmlManager::openContainer()
XmlManager::removeContainer()
XmlManager::renameContainer()
XmlManager::createMemBufInputStream()
XmlManager::createDocument()
XmlManager::createQueryContext()
XmlManager::createUpdateContext()
XmlManager::prepare()
XmlManager::query()
XmlManager::createResults()
XmlManager::createModify()
XmlManager::createTransaction()
XmlManager::createIndexLookup()
XmlManager::upgradeContainer()
XmlContainer
XmlContainer::addAlias()
XmlContainer::addDefaultIndex()
XmlContainer::addIndex()
XmlContainer::close()
XmlContainer::deleteDefaultIndex()
XmlContainer::deleteDocument()
XmlContainer::deleteIndex()
XmlContainer::getAllDocuments()
XmlContainer::getContainerType()
XmlContainer::getDocument()
XmlContainer::getIndexNodes()
XmlContainer::getIndexSpecification()
XmlContainer::getName()
XmlContainer::getNumDocuments()
XmlContainer::lookupIndex()
XmlContainer::lookupStatistics()
XmlContainer::putDocument()
XmlContainer::removeAlias()
XmlContainer::replaceDefaultIndex()
XmlContainer::replaceIndex()
XmlContainer::setIndexSpecification()
XmlContainer::updateDocument()
XmlIndexLookup
XmlIndexLookup::execute()
XmlIndexLookup::getContainer()
XmlIndexLookup::getHighBoundOperation()
XmlIndexLookup::getHighBoundValue()
XmlIndexLookup::getIndex()
XmlIndexLookup::getLowBoundOperation()
XmlIndexLookup::getLowBoundValue()
XmlIndexLookup::getNodeName()
XmlIndexLookup::getNodeURI()
XmlIndexLookup::getParentName()
XmlIndexLookup::getParentURI()
XmlIndexLookup::setContainer()
XmlIndexLookup::setHighBound()
XmlIndexLookup::setIndex()
XmlIndexLookup::setLowBound()
XmlIndexLookup::setNode()
XmlIndexLookup::setParent()
附:安装PHP的dbxml扩展(windows下的暂时没有找到)
载 wget http://download.oracle.com/berkeley-db/dbxml-2.2.13.tar.gz
tar zxvf dbxml-2.2.13.tar.gz
cd dbxml-2.2.13
./buildall.sh
编译 Berkeley DB for php 模块
cd dbxml-2.2.13/db-4.3.29/php_db4
phpize
./configure –with-db4
make
make install
编译 Berkeley DB XML for php 模块
cd dbxml-2.2.13/dbxml/src/php
phpize
make
make install
修改php.ini
extension=db4.so
extension=dbxml.so
重启 apache

| 标签: , ,

关于原生XML数据库指导性的介绍

关于原生XML数据库指导性的介绍
from: http://xiaohublog.bokee.com/4019048.html
by:小虎的网络生活
原文章: http://berkeleydb.net/man/bdbxml/intro_xml/index.html
关键词: BerkeleyDB ,BDB XML ,BDBXML
Berkeley DB 介绍
关于原生XML数据库指导性的介绍
法律通知
这个文档按照Sleepycat公共授权规定发布,你能够在http://www.sleepycat.com/download/oslicense.html查看这个授权文档。
Sleepycat软件,Berkeley DB, Berkeley DB XML和Sleepycat Logo是Sleepycat软件公司的商标或者服务标志,这些标志的版权是保留的,在没有经Sleepycat软件公司明确同意前,不允许第三方使用。
Java(TM)和所有基于Java的标志是Sun Micorsystems公司在美国和其它国家的商标或者注册商标。
要获取这个文档的原始源代码,请发邮件到:.
内容列表
1.介绍
基本概念
运行Shell
获取帮助
2.XQuery和Berlekey DB XML
加入数据
依靠文档结构查询
值查询
索引介绍
改造结果
排序结果
在多个容器的数据中工作
在特定文档数据中工作
用元数据
修改文档
Schema约束
Berkeley DB XML API
3.封装
好处
XML特征
数据库特征
语言和平台
4.哪里学习更多
Berkeley DB XML资源
XML资源
XQuery资源
Sleepycat软件的Berkeley DB XML(BDB XML)是一个嵌入式数据库规范,用来存储和获取XML格式的文档,它建立在成功的Berkeley DB之上, BDB XML支持用XQuery 1.0有效的查询上百万的XML文档。XQuery是设计用来验证和返回XML文档部分数据的查询语言。
本文档介绍BDB XML,以及用BDB XML命令行介绍一下它的一些特征。这是一个高层次的介绍,提供关于系统能做什么以及它如何应用到你的项目的一些基本介绍。本文档不是详细指南和参考手册,所以我们将省略技术细节,着重于用BDB XML能够做什么事情。你应该熟悉XML和XQuery基本概念。依照本文档,你能够用BDB XML shell来运行例子,并且很快熟悉BDB XML的能力。
第一章. 介绍
内容列表
基本概念
运行Shell
获取帮助
欢迎来到Berkeley DB XML(BDB XML),一个提供XQuery查询支持的原生XML数据库(NXD)引擎。这个文档将向你介绍BDB XML的特征。在读完这篇文档之后,你应该非常清楚BDB XML能为你做什么,并且知道如何在你的系统和应用程序中如何用它来管理数据。
基本概念
典型的,BDB XML是一个库,直接联结到你的程序中,另外,BDB XML有一个命令行工具Shell,允许你与BDB XML交互,而不用通常使用的程序语言。你能够将Shell作为你的应用程序的一部分,当作一个管理工具,或者简单的解释产品特征工具。
在BDB XML中,所有XML数据是存储在叫做容器的文件中,BDB XML Shell提供一个简单和方便的方法在这些容器中工作,并用友好的,交互式的环境暴露大多数BDB XML的功能,而不需要用程序语言。
允许Shell
Shell命令定位在/bin目录,名字未dbxml.
要运行shell,简单的在你的操作系统的命令行输入dbxml。假设你在操作系统命令行路径中包含dbxml shell,那么你将看到dbxml>提示。
user>dbxml
dbxml>
在后面的例子中,你将看到dbxml>提示后跟你要输入的命令,许多命令是简单的一行。可是,复杂的XQuery例子将分成多行。每个例子将展示输入的命令和输出结果。当输出太长时,省略号(…)将被用来代替中间结果。
当用BDB XML,你将发现文档内容时存储在一个容器中,这是BDB XML的第一个基本概念:容器装载XML文档。在一个容器中的文档可能也可能不共享同样的schema。
要开始探索BDB XML,建立一个容器。我们第一个例子模型是一个简单的电话本数据库。容器名称将是phone.dbxml。
dbxml>createContainer phone.dbxml
Creating document storage […]

| 标签: ,