Interpretation of Relations

From: Joe Thurbon <usenet_at_thurbon.com>
Date: Fri, 19 Jan 2007 01:56:59 GMT
Message-ID: <LzVrh.3067$u8.450_at_news-server.bigpond.net.au>



I'm very new to this databases game, and am not even sure I'm using the terminology in the right way. I'd like some feedback as to whether I'm even in the right ballpark. Most of my understanding of the terminology comes from reading this group, and the definitions on Wikipedia.

I've been wrestling with the correct interpretation of a relation. I'm currently working under the assumption that a relation comprises both a Type (or header) and a Body (or values).

I'm going to start small.

Consider modelling a situation in which there are people, and they have eye colour. I'm going to define some very small domains, so that I can enumerate the facts that I believe a given relation represents. I'm sorry if the notation is non-standard, but here it is.

Domain D_People = {Joe}
Domain D_Hair = {Red, Blond}

Relation R_People = <<D_People>: {{Joe}}> Relation R_Hair Colour = <<D_People X D_Hair>: {{Joe, Blond}}>

(The bit in the <> is the relation header, the subsequent sets are the relation body).

So, I should interpret this to mean that "Joes hair is blond". But that is not all, because the closed world assumption means that I have another fact (just one, because the domains are so small). This second fact is "NOT Joes hair is red".

And, in particular, it would be wrong to state that

R_Hair Colour: <<D_People X D_Hair>: {}>

indicates that I don't know the colour of Joe's hair. It really means

NOT Joes hair is Red
NOT Joes hair is Blond

Is this right? If so, it leads me to a question about modelling missing information. (And a lot of other questions, too). If not, is there a simple thing that I've missed?

Thanks,
Joe Received on Fri Jan 19 2007 - 02:56:59 CET

Original text of this message