How does Tamino work internally?

Hello,

allow me to introduce myself. I am Annelies Gijbels, a student at LUC (university of Limburg) in Belgium. I am in the process of making my master’s thesis – A comparison between native XML Databases and relational XML Databases. I have already read information available, but I still have some questions concerning Tamino.

- How does Tamino deal with the XML physically? I mean, does it store the XML nodes in a depth-first manner, does it use a clustering technique?
- According to documentation, ?directory? and ?tree-oriented loading? of XML documents is allowed. What does this mean?
- How much of XQuery is supported, which features?
- What features does Tamino X-Query have? (inserting, deleting, defining a view of the data, arithmetic operations, etc.)
- Does Tamino use indexes? If so, what index methods does it use? (a btree-like index, etc.)
- I assume there is support for concurrency control. What algorithms does Tamino use? Does it lock a whole document at a time? Or does it use more sophisticated locking algorithms?
- Does Tamino support an update like an element name change? Or would that require deleting the subtree, and then add the subtree again with the name changed?

Thanks in advance,

Gijbels Annelies
Ps: I’m sorry for the weird title, I just couldn’t find a decent one.

Hi,

please accept my apologies that Tamino R&D will deliberately not give an answer
to all of your questions - we never publish technical details of some aspects of Tamino. Here are the questions I can frankly answer:
- According to documentation, ?directory? and ?tree-oriented loading? of XML documents is allowed. What does this mean?
Sorry, but could you please indicate which section of the documentation you refer to (and which version of Tamino)? In any case, there is no option available to
users of Tamino to influence the algorithm or format of XML data stored in Tamino.

- How much of XQuery is supported, which features?
Hard to answer in one sentence. For a complete overview, please have a look at the
Tamino 4.2 documentation. To summarize, the core features of XQuery are supported,
of course including: FLOWR expression (order by functionality is supported by the
sort by clause which was part of an earlier version of XQuery), path expressions, arithmetics, many of the functions, the full set of datatypes etc.
In addition there is a rich set of Tamino specific functions for text retrieval. Also, there is an extension of XQuery for update operations.

- What features does Tamino X-Query have? (inserting, deleting, defining a view of the data, arithmetic operations, etc.)
For a complete overview, please have a look at the Tamino 4.2 documentation. In general X-Query (to be distinguished form XQuery!) implements the full XPath 1.0 spec (except some functions), and additionally implements text retrieval.
Insertion, deletion and update/replace of documents are supported, in addition to
the aforementioned XQuery update.

- Does Tamino use indexes? If so, what index methods does it use? (a btree-like index, etc.)
Yes, there are plenty of sophisticated index types in Tamino. For a complete overview, please have a look at the Tamino 4.2 documentation. There are
standard indexes (btree-like), text indexes, reference indexes (i.e. document-level structural indexes), structure indexes (schema level) and several options for these such as multipath indexes and compound indexes.


- I assume there is support for concurrency control.
Yes, there is concurrency control, supporting various isolation levels.

- Does Tamino support an update like an element name change?
yes,this can be specified in the Tamino update language (the XQuery extension mentioned above)
- Or would that require deleting the subtree, and then add the subtree again with the name changed?
no, none of the update operations requires this.


Regards

Harald