Home    Products    Services    Resources
Products
 
XSL-FO Converter
Qizx/db XML Database
    Whether and why use Qizx/db
    Product
        Technical Specifications
        Server License
        Site License
        About Developer License
        Price List
    Free Engine
    Download Free Engine
    Documentation
    Evaluate
    Buy
    Upgrade
    Support
    Qizx/open
XML Editor

 

Site Map
Contact

Technical specifications

General Features

Query oriented

Qizx/db is designed to provide high-speed querying and retrieval of XML contents.

Updating is currently possible at the document level only (see below).

Native optimized XML proprietary storage

The internal representation of Documents follows the XQuery/XPath 2 Data-Model: it preserves the structure and makes possible the round-tripping of normalized documents.

Compressed documents

Documents are compressed. This allows a significant reduction of disk space use and IO throughput: a Library with all indexes (structure, values and full-text) is usually 5% to 20% smaller than the source XML.

Qizx/db does not currently support the storage of non-XML data, such as images. However properties associated with Documents, Collections or Libraries make it easy to keep links to data stored on other media.

No need for DTD or Schema

Qizx/db works with well-formed XML documents. It does not require DTD or Schema.

Automatic indexing

By default, the full contents of documents are indexed: elements, attribute values (in text/numeric/date forms when applicable), simple element content, full-text.

Consequence: out of the box, queries work at maximum speed.

Customizable indexing

For advanced needs, the indexing process in an XML Library can be configured with "Indexing Specifications", containing context-sensitive rules for elements and attributes or specifying pluggable value converters and full-text word analyzer.

Hierarchical collections

A repository (named a XML Library) is organized as a hierarchical structure of Collections, which in turn contain Documents (similar to a file-system, with collections playing the role of directories and XML documents the role of plain files).

Both Documents and Collections can bear properties of any type, including XML. These properties are can be queried.

Querying

XQuery as query language.

XML Query (or XQuery) is now a W3C standard.

XQuery is more than "the SQL of XML": it is a full-blown programming language with user-defined functions and extended processing capabilities.

The XQuery interpreter of Qizx/db is one of the most advanced, complete and efficient XQuery implementations available today: as of end 2007, it is one of the two XQuery implementations that pass more than 99.9% of the official XQuery Test Suite; it has been noted in several research papers for its speed. It is one of the rare engines that detect and optimize joins.

Efficient querying

Qizx works with a cost-based query plan optimizer which exploits indexes automatically.

The optimizer detects and optimizes most types of joins.

See here for concrete speed measurements.

Query by meta-data

Documents and Collections can bear user-defined properties. This allows associating meta-data with documents and collections without modifying their contents. Property values can have basic types (string, number, date etc) or be XML fragments (for example structured annotations).

Such properties can be efficiently queried. This is a very powerful mechanism that can be used for example for:

  • restricting general queries to only those documents that match certain property values (e.g search only documents whose modification date is more recent than a given date).
  • Manage custom indexes (for example store statistics computed from a document -like sum, average- as properties, then use the properties to very quickly find the matching documents).

Updating

Document level updates

Qizx/db can store, replace or remove entire documents in an XML Library. Metadata properties can be modified independently.

Qizx/db cannot insert, replace, or delete individual nodes inside a document. This is a deliberate design choice, allowing much faster queries: Qizx/db is a query-oriented engine and does not claim to be suitable for frequent updates of large documents.

We believe this limitation to be only rarely an issue in practice. If updateable units (documents) are kept sufficiently small (by small we mean up to a few hundreds of kilobytes), Qizx/db will be as efficient in updating as any other XML database system, while being significantly faster in querying. The XQuery language makes it easy to rebuild a large document from a collection of smaller parts.

ACID transactions

Updates operations are performed in transactions, providing Atomicity, Consistency, Isolation and Durability.

One-phase commit, concurrent transactions are supported, with short-term locking of Collections and Documents.

Queries are isolated from concurrent transactions. Backups can be performed while the engine is running.

Modifications are journaled, allowing crash recovery.

API and extension modules

Java API

Java API for management of XML Libraries and querying.

This API is simple and open: extension points allow for custom filters, observers, indexing, data import/export, access control, XQuery module resolving, etc.

The querying part of the API is very similar to XQJ (XQuery for Java, JSR 225). Full support for XQJ be provided when its final specifications are available.

XQuery extensions

Extended XQuery functions:

  • Full-text search: boolean and phrase queries.
  • General extensions (serialization, XSLT, dynamic evaluation, error-catching, etc).
  • Library handling in XQuery.
  • Java binding (automatic plugging of Java methods as XQuery functions).

Other extensions

Some extensions available in Qizx Milestone 1 are temporarily disabled: SQL connectivity and server mode. Regarded as essential features, both are under redesign and will be available as soon as possible. See roadmap.

XML standards

XQuery / XPath 2

Conformant with W3C: as of end 2007, passes 99.9% of the official XQuery Test Suite (v1.0.2).

Complete implementation, except schema related features.

Optional features:
  • Full-axis: yes.
  • Module import: yes.
  • Schema import and validation: no.
  • Static typing: partially.

XSLT

XSLT output through API and extension functions (JAXP based).

SAX2 and DOM

Through API: input (document import) and output.

System Requirements and Support

Platform independence

Entirely written in Java.

Officially supported platforms:

  • Windows 2000, XP, Vista
  • Linux 2.4 +
  • Mac OS X 10.4+

Java runtime

JRE 1.4.2+

Required third-party Software

None.

 


© 2008 Pixware. Updated 2008/1/14 using Qizx/open.

Java and all Java-based marks are trademarks or registered trademarks of Sun Microsystems, Inc. in the U.S. and other countries.
Acrobat and PostScript are trademarks of Adobe Systems Incorporated.