Re: Which normal form is this violating?

From: Paul Vernon <paul_vernon_at_ukk.ibmm.comm>
Date: Sun, 12 May 2002 23:13:58 +0000 (UTC)
Message-ID: <abmsvm$bnb$1_at_helle.btinternet.com>


> >So, if I have two tables with the same predicate (which, if I followed
the
> >thread correctly we *are* allowed - albeit in contradiction to Date's
> >principle of Orthogonal Design),
>
> That principle talks about the design of your base tables, not derived
> tables.

But aren't we talking about base tables here anyway?

>
> >But then again, what about a view that was a union of the two tables?
Would
> >I receive a run time error if the tables ever came to state contradictory
> >facts, or would the view creation have a side effect of constraining the
> >tables to not get in such a state?
>
> If you cannot define extra constraint upon the view then it will not cause
> contradictions that were not already contradictions before.

Ok. I wasn't thinking about what my view should be stating. Unless I have a constraint that stops contradictions between the tables, then in general the PK of such a view would include all the attributes, rather than being the 'common' PK of the two tables.
If I am trying to integrate two data sources and given a target set of integrated keys and constraints, I would have to enforce that my two sources don't contradict my target model as part of the integration task. Seems sensible.

> What would be wrong is to encode this information in the names themselves.

I agree, but if Relvar names are in the catalog, does that mean they are allowed meanings?
I have wondered whether any given formulation of the Relational Model also implies a single, normalised minimal model for the Catalog? In this case is a Table Name dependent upon a set of attributes, or on a table variable? If the later, then again in contradiction to Date, a table name would not just be a 'short cut' for a predicate.

I think all I want to answer is, do I need distinct attribute names in the following database, or are the different table names enough?

People (Person Person_id, Name String, BirthDate Date); Admin_Auth (Person Person_id);
User_Auth (Person Person_id);

Regards
Paul Vernon Received on Mon May 13 2002 - 01:13:58 CEST

Original text of this message