Re: 3vl 2vl and NULL
Date: 16 Feb 2006 11:52:47 -0800
Marshall Spight wrote:
> dawn wrote:
> > Once
> > you normalize the data, your solution is no better than the average SQL
> > implementation so you lose the charm
> Wait-- are you saying you *advocate* denormalization? Can you clarify
> this please?
Yes. I advocate data not being in 1NF (as indicated in the Is Codd Dead? blog entry I've mentioned before). When you move from PICK to a SQL-DBMS, you have to split out the data into 1NF.
> > I'm trying to convince
> > "the industry" to adopt more flexible (dare I say "agile") data models
> > and related tools.
> Can you be specific about the features of the model you want,
non-1NF (including ordered lists) and 2VL might be a good place to start
I've mention the ripple delete (remove a value from the midst of a list and rest of the list moves up). Many others too, of course.
> the problems
> with SQL that these problems will solve, and how to use the
> new model and operations/tools to solve those problems?
The key issue is flexibility, making the development and maintenance of software less costly. Individual vendors of tools, such as IBM, Intersystems, Revelation, jBASE have details on how to use their products. There are a number of well-documented issues with SQL, including both theory and practical issues. The two I'm starting with are 1NF and 3VL.
> Note that I am not asking for "proof" of anything. Proof of
> cost/benefit is not possible
> and I suggest you abandon that
It isn't proof, but don't you think some emperical data would be helpful?
> Instead I am simply asking for examples. Sort
> of like, here's a problem I had once, and it was solved
> with MV like this, and see how much harder the SQL
> version of this solution is? Even the last is optional.
It is complex enough that any example would be some tiny look. That is why I thought perhaps I should get an MV and SQL solution to the same problem in order to illustrate. But to answer your question, here is an example of a pattern that is repeated often that obviously could be solved by SQL systems (all examples I care about can be).
A system includes a single e-mail address and there is a new requirement to collect all such e-mail addresses, with the best one to use first and so on for as many as we have for an individual. The change is made to describe the e-mail value as a list. This can be done with changes to anything but this description to start with, requiring no changes to regular reports or queries (they will simply list the values one under another), although output forms need to be changed if there are such. Even the input systems and other processes continue to work and can be changed as needed to take in a list instead of a single value.
> My big frustration with your quest is that for all the
> messages you post, I still really don't know anything
> *specific* you think would be beter with MV than with SQL.
What format would such specific information take? I'm OK with XML (it permits non-1NF and 2VL), JSON, and OO, as well as MV, and I'm not trying to design some altogether new data model. The problem I have is with the RM, including the 1NF and 3VL aspects of it among other things. I'm trying to make it clearer in my blog in case that helps. --dawn Received on Thu Feb 16 2006 - 20:52:47 CET