× The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.


  • Subject: Re: DDS Support
  • From: "James W. Kilgore" <eMail@xxxxxxxxxxxxxxxxxxx>
  • Date: Tue, 27 Jun 2000 11:01:20 -0700
  • Organization: Progressive Data Systems, Inc.

Nathan,

You points are well taken, but my discussion is limited in scope to a
database definition tool, not the database itself.

I'm a strong proponent of normalization, but IMHO, normalization, like
RPG, is a tool that has it's place and that place is -not- everywhere.

The use of a flat file was a deliberate design choice.  It's not that
hard to have one physical file, 18 bogus files in order to obtain an
externally defined data structure then do a CHAIN by file name with the
data structure named in the result field to map the fields.

If you want a real word example that may be closer to home, take a look
at the most common multi format flat file on your AS/400, your RPG
source.  I'm willing to bet that if you had to have your source in
multiple normalized PF's it wouldn't be pretty.

"Nathan M. Andelin" wrote:
> 
> Response to James W. Kilgore:
> 
> >Now I know, you're thinking how did you define records and fields in the
> >same file, not to mention files, programs, commands and what not and
> >have a normalized data base.  Simple answer: we didn't.  I know, shame
> >on us.
> 
> Any benefit of a non-normalized database?  Did it give you any more
> flexibility or extensibility?  Was it easier to design?  Was it easier to
> get data from or put data into?  More efficient?  Higher performance? Or did
> it result from a lack of planning - failure to see any future needs beyond
> the specific task at hand?
> 
> >There was an early discussion on the openerp400 mailing list that
> >pointed out that by having a service program perform all file I/O, you
> >would not need to define the file in the program, just the record
> >format.  It was promoted as "a good thing".
> 
> I don't agree that service programs should perform all file I/O.  Over time,
> the exported APIs get to complicated and inflexible.  I do agree that
> service programs are good for some file I/O.
> 
> >Now since I don't have to define the file, just the format of a record,
> >the old (multiple format files) can be resurrected by having a service
> >program that you pass FORMAT and KEY and it will pass back to
> >you DATA.
> 
> This may work fine for database maintenance, but what happens when you add
> inquiry, reporting, and business intelligence needs to the mix?
> 
> >The calling program does not need to know, nor need to care,
> >if the data came from a single file or multiple files.  And through
> >hiding the actual physical layer from the logical layer you can now
> >have multi format flat files and call it "modern". <VBG>
> 
> The problem with this "modern" solution is inefficiency.  The calling
> program (and users) wait while the service program wades through multiple
> record formats, "looking" for the correct data.  Works fine when the
> database is small.  Falls apart in large data stores.
> 
> >On the other hand you can define the 18 different formats as 18
> >different physical files and exponentially increase the difficulty of
> >the project and feel good about the amount of time spent doing it
> >"right", what ever that is.
> 
> Although a normalized database may require more thought and planning up
> front, it more than pays for itself in maintainability and flexibility in
> the long run.
> 
> >So, if you can write getCustomerNumber(definition), "how" is not really
> >important. Or is it?
> 
> It may be getCustomerNumber() today.  Tomorrow, someone wants:
> 
> getCustomerByCity()
> getCustomerByState()
> getCustomerByOrderStatus()
> getCustomerByProductCode()
> getCustomerAndOrder()
> getCustomerAndOrderAndItem()
> 
> and the needs never end.
>
+---
| This is the Midrange System Mailing List!
| To submit a new message, send your mail to MIDRANGE-L@midrange.com.
| To subscribe to this list send email to MIDRANGE-L-SUB@midrange.com.
| To unsubscribe from this list send email to MIDRANGE-L-UNSUB@midrange.com.
| Questions should be directed to the list owner/operator: david@midrange.com
+---

As an Amazon Associate we earn from qualifying purchases.

This thread ...

Replies:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.