Re: Which normal form is this violating?
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