Re: MV counterexample

From: Dawn M. Wolthuis <dwolt_at_tincat-group.com>
Date: Tue, 11 May 2004 14:56:11 -0500
Message-ID: <c7rb5e$tuv$1_at_news.netins.net>


"Anthony W. Youngman" <wol_at_thewolery.demon.co.uk> wrote in message news:W02yWkLIi9mAFwaE_at_thewolery.demon.co.uk...
> In message <409b4ddf$1_at_post.usenet.com>, x <x-false_at_yahoo.com> writes
> >> Bearing in mind that apparently, in order to have real data integrity,
> >> we need user-defined primary data types, how on earth is that going to
> >> be PRACTICAL without pushing at least some integrity checks into
> >> user-space.
> >
> >> A database relies on metadata to do integrity checks. Certainly with
> >> current RDBMSs, a major function of analysis is to convert metadata
into
> >> data. Without some way of converting that data back into metadata (ie
> >> giving the user the ability to modify the operation of the database
> >> engine) there is no way the dbms is going to be able to apply any
> >> integrity check that relies on that sort of (meta)data.
> >
> >I don't understand this.
> >Could you be more specific ?
>
> Okay. Simple. Let's take a data type of "sex".
>
> According to ISO, this has four values, namely "male", "female",
> "irrelevant", "unknown".
>
> We can enforce this (do our integrity check) with a trigger - that's
> user space.
>
> Or we can use a foreign key into a lookup table - at which point it
> ceases to be a "user defined data type", because we may have a situation
> where the data consists of a (variable) range and/or special values -
> for example "age" is normally a number but can have the values "unknown"
> or "dead".
>
> If we want to have user-defined datatypes like "age" or "sex", the user
> is going to have to be able to program (in some sense or other) the
> integrity checks, therefore integrity checking must be a user-space
> phenomenon. I just don't see how you can get round it. By definition,
> the database itself cannot use data to do primary integrity checks - it
> needs metadata. But the user can't provide metadata because the database
> itself has no way of understanding it - it'll think it's data. Catch 22.

I definitely think you are onto something there, Wol. If you look at "tree structures" (or graphs of any sort), it is easy enough for any derived data, defined by an end-user or end-end-user to be specified with metadata to indicate links. But that is not just true for graphs compared to relations -- I think the issue here is the difference between descriptive metadata and constraining metadata. It is hard to roll metadata out to end-users if it can impact the entire system.

Thanks. --dawn Received on Tue May 11 2004 - 21:56:11 CEST

Original text of this message