| Technical specificationsGeneral 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. |