Re: SQL programming fundamentals
Date: Fri, 12 Sep 2008 11:21:15 -0700
Does the question pertain to SQL coders or data analysts? It is possible to be one and not the other or both. The SQL coder has only a tangential need for understanding relational theory. The coder may come across relational theory terminology in discussion and documentation and it would be helpful to understand the language of relational theory. Byond that, I can think of no benefit for the pure SQL coder.
As for the analyst, the knowledge of relational calculus could be either a help or a hindrance depending his/her personality. Consider two boys that were taught to fish using fishing poles. One boy might explore other ways to catch fish such as using a net, spears, hands, dynamite etc. The other will cling to his fishing pole and and study his fishing pole and even write books about his fishing pole and condemn anybody who does not use a fishing pole.
Part of the difficulty in answering your question is that that question includes no objective. What is the objective of the data analyst? Hopefully, the broader objective it to make money for his company. But will it be 'make long term money' or 'make short term money'. In this respect the good data analyst will align himself with the goals of his management. The successful data analyst/designer will need to balance several factors:
- interpersonal relationships If you can't get along with people you are likely to do more harm than good
- interpersonal communication Knowing how to ask the right questions Knowing how to educate management about the trade off between short term hacks and producing immediate results. There is no point in implementing a wonderful database design that will take two months if you are going to be out of business in two weeks.
- compromise - The Best Possible Hack Knowing when the best academic database design will be too costly to meet the deadlines and to be willing to implement hacks in order to meet the goals of management.
- knowledge of good database design principles Should understand data normalization including there various anomalies that result in unnormalized data. Should understand the circumstances under which data should be denormalized.
So, that was a long winded, rather pedantic way of saying: No, relational calculus is not terribly important to understand for SQL users. If fact, I believe that had there never been a relational calculus, databases would have evolved pretty much along the same path anyway. I've worked many years on IDMS, a network structured database, and some on IMS and on Magnum which the first commercially available relational database and several others. It's all just sequential or random access. Relational is just a way of abstracting the pointers for random access.
I would much rather see people spend time in the psychological study of cognition and the philosophical study of epistemology. These studies will allow for the provisioning of 'meaningful' data, of 'actionable' data, not merely the efficient production squiggles on a computer monitor.
Of course all in my oh so humble opinion.
Michael J. Moore
On Fri, Sep 12, 2008 at 2:37 AM, Peter Robson <peter.robson_at_gmail.com>wrote:
> Hello Oracle-L,
> I have been 'lurking' on this list for manyyears. Time was when I
> contributed regularly, but now I'm content to read. Until now...
> I have been reviewing the latest volume by Chris Date due for imminent
> publication by O'Reilly, and I want to test within the wider SQL community
> some of the assertions that Chris makes. My own position is studiously
> neutral for the purposes of this exchange.
> How important do you believe it to be that any person who uses SQL in the
> context of their profession, should understand the relational theory and its
> logical underpinnings? Should such practitioners understand relational
> calculus (specifically the 'tuple relational calculus')?
> Thanks for your thoughts! And by the way, I am arranging a seminar in
> Edinburgh, UK on November 10-12 at which Chris will be presenting on 'A
> Relational Approach to SQL'. Attendance free - just intimate to me your
> interest in attending.
> Peter Robson