Re: Has this been done before or have I found something new
Date: Sat, 25 Jan 2003 08:56:24 GMT
Message-ID: <3e324f62.483455_at_news.webshuttle.ch>
On Fri, 24 Jan 2003 22:30:59 -0800, "Mitchell Waite" <mitchell.dnai_at_rcn.com> wrote:
>Taking the chance that I am going to get flamed as a real database dummy, a
>programmer I work with has come up with a way of quickly identifying objects
>in a database by what he calls "smart" attribute elimination. I find it hard
>to believe that this idea has not been done before, so I want to know if
>this is something unique or we are just repeating a basic algorithm passed
>down though the ages. So here goes.
>
>The basic idea is that a user wants to identify a particular object from a
>large set that all share common characteristics, for example he wants to
>identify a particular bird from a large group of birds in a database. The
>user selects an attribute that all the bird objects share, like eye color,
>and selects a particular value for it, say yellow. The program then
>eliminates all the bird objects that don't have that yellow value for their
>eye color attribute, reducing the number of birds left to search. There is
>nothing earth shattering about that I but here is the twist...the program
>also eliminates all attributes that are no longer relevant to objects that
>share the selected attribute's value. For example if all birds with yellow
>eyes happen to have the same kind of beaks, the beak attribute would be
>eliminated since it will not help reduce the search any further. This the
>programmer thinks is the smart attribute elimiation process, though I find
>it hard to belive that his idea is not taught as a basic concept of computer
>science.
>
>Taking this idea another step, say in our example that none of the birds
>remaing birds have pointed wings, but do have other kinds of wing shapes,
>the pointed wing value would be eliminated from the wing shape attribute.
>That he calls smart value emlimination. This of course is a great way to
>speed up the search but what I would like to know is this a new idea or is
>this a common algorithm taught in school or does it even have a particular
>name.
>
>Any help on clearing this up will be greatly appreciated.
>
>Sincereley,
>
>Mitchell Waite
>
>
>Publisher, Waite Group Press
>www.mitchwait.com
>mitchell.dnai_at_rcn.com
>
>
It all depends on how the schema is designed. One must also remember that a good database design is something of an art as well as a science. It takes a good deal of experience to know when to break the rules of normalization (and when NOT to ... all too many people have come to the point where they think they can do without any kinds of constraints at the engine level, all in pursuit of better performance).
Is beak size always dependent on eye color? Probably not. If it is, then it would be redundant to even store this information in the database at all. Instead, you would calculate it "on the fly" when needed. However, a poor database design might store the data redundantly or make it otherwise difficult to fetch the required data.
Maybe this example is a little too simple to illustrate what the programmer has obviously come to believe is something new and innovative? Can you give us more of a real-life example?
Bob Hairgrove
rhairgroveNoSpam_at_Pleasebigfoot.com
Received on Sat Jan 25 2003 - 09:56:24 CET