DBLock Context Manager

Consider, for a moment, the shelve and dbm packages for storing things in a “database.” Built-in. Lightweight. The database is essentially a mapping from identifiers to objects. It can be quite nice.

The shelve module directly puts Python objects in a file. It’s an ideal database structure for Python …

more ...

The Schema Evolution Problem

Fundamentally, we need to provide explicit version identification on a schema. This is technically easy, but organizationally nearly impossible.

Technically, we need to use some kind of version control software for our model and the resulting DDL. We need some meta-meta-data to track schema names and version numbers. If we …

more ...


Denormalization or "What did you mean by that?"

I use the word denormalization heavily, to make a point to a certain class of developers. Other developers object to the term, since it doesn't have a precise meaning.

The point I often have to make this:

  1. 3rd Normal Form is for Updates.
  2. Data Warehousing is about Insert and Select …
more ...

Genius Move -- Characteristic Functions

The comment was eaten by Haloscan, but here's the text...

You need to read Rozhenstein on characteristic functions.

select
sum(case when a < .5 then 1 else 0 end) 'A'
,sum(case when a >= .5 and a < .75 then 1 else 0 end) 'B'
,sum(case when a >= .75 then …
more ...



Another Dimensional Model Implementation

The Cubulus project and Alexandru Toth 's page describe an "OLAP Aggregation Engine". It is very nice to see advanced work done on the dimensional model.

The cited research dates from 1999 (V. Markl, F. Ramsak, R. Bayer, "Improving OLAP Performance by Multidimensional Hierarchical Clustering", Proceedings of the Intl. Database …

more ...