| Oracle FAQ | Your Portal to the Oracle Knowledge Grid | |
Home -> Community -> Usenet -> comp.databases.theory -> Re: Normalization and DBMS
"Dawn M. Wolthuis" <dwolt_at_tincat-group.com> wrote in message
news:c7tm9u$3g2$1_at_news.netins.net...
> "x" <x-false_at_yahoo.com> wrote in message
news:40a24b43$1_at_post.usenet.com...
> > **** Post for FREE via your newsreader at post.usenet.com ****
> >
> >
> > "Dawn M. Wolthuis" <dwolt_at_tincat-group.com> wrote in message
> > news:c7tbpg$rtc$1_at_news.netins.net...
> > > "x" <x-false_at_yahoo.com> wrote in message
> news:40a1f159_at_post.usenet.com...> > > > news:c7rti3$m51$1_at_news.netins.net...
> > > > **** Post for FREE via your newsreader at post.usenet.com ****
> > > >
> > > >
> > > > "Dawn M. Wolthuis" <dwolt_at_tincat-group.com> wrote in message
> > > > > system to withstand years of requirements changes. For example,
if
> > > people
> > > > > used to have an e-mail address and now they have several, SOMETIME
> > > > > absolutely NOTHING has to change in the entire application other
> than
> You are right -- if you want just one and the system gives you a set, then > turn around and ask for one. Otherwise you would have to know in advance > whether the answer allowed multiples. For multivalued fields where people > are likely to want either the full list or the top value, there istypically
I think You need to think more about that SOMETIME.
> > > > 2) insert a new e-mail address: will add the address to the set.
This
> is
> > You seem to have a point to make ;-) > and the point is taken
The question is WHEN your applications become broken ?
> > > > 5) equality test on e-mail address: will return a set of common
e-mail
> > > > addreses instead of true or false.
> >
> > > Equality still results in a boolean. You can test for equality of the
> > full
> > > value (all elements, in order) or test to see if a single entry in the
> > list
> > > is also in another list. (and other combinations -- whatever a human
> being
> operators
> I'm looking for -- you have a vocabulary and definitions ;-) >
> > You have a vocabularly and definitions ;-) >
> > You have a vocabulary and definitions ;-) >
Thank you for repeating this: "You have a vocabulary and definitions ;-)"
I think this is not well known, repeated enough and explained enough.
I think this is one of the human abilities least exploited in computer
programming.
Instead of building a vocabulary, we use those ugly procedures calls and
rigid control structures :-)
If I understood you correctly, you are promoting is a tehnique similar to
FORTH language but with polymorphic words.
> > Let's take an example:
> > Suppose you have a table that assign an e-mail address to a person ea(p
> > person, a address).
> > a) Suppose you'll need to find out the e-mail address for each person
from
> a
> E.G. > LIST PEOPLE EmailAddress >
> for
What is the effect of this LIST statement ? Can you use the result for further processing ?
> > Suppose you write 2 "procedures" for solving a) and b)
> OK, like those above. >
> Now there are two likely possibilities: > a) when the person updated the table [sic] they redefined the vocabulary > item EmailAddress to be a derived data field pointing to the top address > (index of 1) and they created a new field at the same location in the file > (just to raise blood pressure in some folks) called EmailAddresses and > described that one as multivalued,while the other remained single-valued. > In this case, the previous query remains unchanged > b) they might keep the same vocabularly name and change it to bemultivalued
That vocabulary updating seems like schema updating. In an SQL-DBMS a DML statement does not change the schema, only the data. In PICK a DML statement is also a DDL statement ? If not,won't a simple update of the data broke some application without warning ?
> > 2) an e-mail address with a set of persons
> > 3) a set of persons with a set of e-mail addresses
> > 4) any combination of the above
> > Unless I'm missing something, I think I cover it with the answer to 1) >
Won't a simple update of the data broke some application without warning ? Won't the set of meaning associated with a term grow with growth in "data types" ?
Are PICK "fields" dynamic typed ?
If not, then there is not that much difference from RM and I think we can
use the tricks from PICK on RM.
> > > > I'm concerned with the case 5) in this list.
> > > > The questions are:
> > > > - How often this case will occur ?
> > > > - What logic we use to deal with this case ?
> > >
> > > Other than using a 2VL rather than 3VL (i.e. NULL is treated as a null
> > set),
> > > equal functions as you would expect. Intersection would be separate
> from
> > > equals.
> > Well, how about nVL as in "any Boolean Algebra" :-)
> peachy, but I haven't had a need to use anything beyond 2VL in a database
as
> yet and it has only been problematic when using 3VL, so I'll stick to 2,
> thanks. Cheers! --dawn
Well, using 2VL feels like programming in assembler ... Hard work this logic stuff.
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
![]() |
![]() |