| Oracle FAQ | Your Portal to the Oracle Knowledge Grid | |
Home -> Community -> Usenet -> comp.databases.theory -> Re: Base Normal Form
dawn wrote:
> Jan Hidders wrote:
>
>>dawn wrote: >> >>>Jan Hidders wrote: >>> >>> >>>>dawn wrote: >>>> >>>> >>>>>Jan Hidders wrote: >>>>> >>>>> >>>>>>It's really not a good idea to confuse the concept of >>>>>>relation and function. >>>>> >>>>>I definitely agree! >>>> >>>>And yet that seems to be the consequence of what you are proposing. I >>>>could be wrong but I interpreted your suggestion as that every relation >>>>with a candidate key is a function. >>> >>>Yes, that is what I am saying, but I'll try to say it better. >> >>Ok. That might well solve it because basically my point was that your >>terminology was too sloppy for my taste.
Oh, come on, Dawn. Really! It is quite clear that there is a close relationship between a relation as defined in the relational model and the usual mathematical notion of relation. Just take a look in the "Foundations of databases" book by Abiteboul, Hull and Vianu. (That's a graduate text I usually recommend to PhD students.) They happily switch between the two definitions and use whichever one is most practical for the thing they want to present in the full knowledge they could use either of them.
> A candidate key of a relation could be modeled as the
> domain of a function -- gotta love language, eh?
That's still way too sloppy and I think you can do better than that.
>>>Every database relation that has a candidate key can be modeled as a >>>mathematical function as well. >> >>Sure. But let me emphasize once more that *every* database relation has >>at least one candidate key. This is not up for discussion, it's a simple >>mathematical fact.
Mathematical relations also have always at least one candidate key, but here you represent them as a set of numbers instead of a set of column names. For every mathematical relation it is true that there is a set of positions such that no two distince tupels in the relation have the same values in these positions.
>>>Did that clarify? Does it make sense? Do you accept it? >> >>I have no problem with statements like "I can model every relation with >>a candidate key CK as a function that maps a value for the CK to a tuple >>of that relation".
I also have no problem with the additional statement. :-)
>>But for me that is very different from saying that >>the two concepts are the same.
How about "a relation is a set, so every tuple in it occurs at most once". Is that too difficult for you? :-)
>>Note by the way that the link between functional dependencies and >>interpreting relations as functions is very close. If the relation >>R(A,B,C,D,E) has the dependencies AB->C and BD->E and ABD->C the I >>wouldn't say it represents a function, I would say it represents three >>functions.
I'm sorry? Explaining the relational model gets simpeler if you don't use or define the word "relation"?
![]() |
![]() |