> Thomas, thanks for your extended remarks. Your point is one you've made for
> a long time, that relational db schemas cannot keep up with the real world.
> I'm just wondering if moving the problem out of the relational DB and into
> blobs (persisted objects, I take it) solves the problem you so eloquently
> depict. Yes, it solves the schema problem. I grant you that. But you're

Well it does more than that - it allows the databse to be used to perform 
optimised querying for a certain category of data (e.g. archetyped, blobbed 
data), rather than for particular content (e.g. path results versus patient 
details).

> still left with imperfect and changing models even with blobs.

imperfect in what sense?

 I've read the
> openEHR specs enough to know that when an archetype version changes, 
one is
> obliged to convert all existing records (blobs) to conform to the new
> version, and that, it seems, would not be trivial. That task would worry

Not, not at all. Archetypes are immutable, and the data always conform to 
thesame archetype. A new 'version' is in fact a new archetype which just 
happens to have a similar name. New versions are not made very often, 
because built-in flexibility (see e.g. generic archetypes like the lab 
archetype) 
new revisions (compatible changes) and specialisations are used to deal with 
almost all new requirements relating to existing archetypes. If a new version 
becomes necessary, it is a new archetype. Data created with the previous 
version still conform to that previous version, which is always available in 
the 
repository. The data could be migrated to conform to the new version, but this 
is only sensible if it is a useful thing to do.

The main thing to understand is that new 'versions' are not the main way of 
dealing with changing requirements in archetypes.

> me. Every affected blob would have to be rewritten. Maybe the only real
> problem you're even trying to solve is that of the relational schema. You
> allow that there are many ways other than the path-blob approach, but you've
> made it clear that your preference is definitely that, another indication of
> how intractable the root problem actually is.

You could just as easily use an object database. We have for example used 
Matisse on other projects - it is an excellent product, and allows object data 
to 
be correctly represented in a language independent way (unlike VM-style 
caches like db4o). It could be used perfectly well with openEHR.

- thomas


Reply via email to