There are several blog post which are really overdue, which I should have posted weeks, if not months earlier. I am going to start in a chronological order, although my most recent news are probably more exciting.
Nevertheless. Back in February my work on implementation of bi-temporal model got stalled. I’ve stumbled on implementation of bi-temporal referential integrity. First I didn’t think it will be a big deal – it seemed very natural, you know exactly what you need to check – that this value is present in this table for this effective period and this asserted period. But when you try to implement it, it becomes way more… interesting, because it does not have to be exactly the same period, there may be multiple periods which being concatenated will include the period we are interested…. and it’s not that easy to check.
My work stopped for over a month, including my sabbatical, and after I came back I was able to give it more thoughts, and realized that giving the set of bi-temporal operations we’ve already defined, the real task is way more simple. I was able to proof, that it’s enough to validate the bi-temporal referential integrity on insert, and then all other cases are covered.
What I have now is the function which generates the check function for any new bitemporal integrity constraint, and I need to write the generation of triggers and other related things. Granted, for the past two weeks I have no time to address this problem, because life got on my way, but I am positive that as soon as I will be able to allocated more time to this problem, it will be completed.