Prerequisites: Basic Tcl programming knowledge and a grasp of database
fundamentals
Ever wanted to use advanced database features like join, project in
Tcl? What about changing schemas on the fly - all scripted and with no
database server necessary? The good news is that you can - using the
new oomk interface to Metakit.
The Metakit database is a small, efficient embedded library that fills
the gap between flat-file, relational, object-oriented, and
tree-structured databases. It supports advanced features such as
relational joins, serialization, nested structures, and instant schema
evolution. Metakit works well for moderate-size (a hundred Mb)
datasets, and offers good performance well beyond that size when its
column-wise data model is fully taken advantage of.
Metakit is included in Tclkit and ActiveState's TclDevKit - and so is
already available in the most popular Tcl/Tk distributions.
This tutorial covers the basic metakit concepts (including column-wise
storage and dynamic schema evolution), but also introduces the
advanced features of Metakit, newly available to Tcl programmers via
the oomk extension. These features include:
- relational operators like project, select, join and groupby
- hierarchical operations involving subviews
- set operators like concat, different, intersect, minus, product, union
- hashed and indexed access for performance
- blocked access for scalability