Object/Relational Mapping is the Vietnam of Computer Science

On Mar 20, 8:53 pm, “Austin Z.” [email protected] wrote:

ignorance, especially when they say stupid things like “I think
relational databases are evil.”

Oh, like you’ve never said anything “stupid” before. Ha! :slight_smile:

T.

On 3/20/07, Gary W. [email protected] wrote:

I’m curious as to why query language development got hung up on SQL.
I’ve read a little bit about Tutorial D. Is SQL simply
another example of pre-mature standardization?

From memory, and as far I’ve understood it: Sometime during the early
80s there was a rush to get relational databases out there, with
several vendors producing databases and wanting an interoperable query
language. As a result of some sort of differences, two different
groups were formed, both creating their own attempt at a standard
query language. Over time, a bunch of rivalry formed between the
groups, and each of the languages they developed had advantages in
some areas and disadvantages in others, so it wasn’t possible to pick
a single “winner”, and everything kept bickering back and forth.
Prestige entered, and none of the groups were politically able to give
in to the other.

Along came SQL, which was a toy language made by a single developer to
just show have SOMETHING. It was worse than either of the proposals
from the other groups, from a usability point of view (though with a
couple of extra features I don’t remember what was that were useful),
and it was a possible political compromise. So, by shooting down BOTH
groups for something that was worse, a solution was possible. Thus,
we standardized on SQL.

Take with a grain of salt - this is based on renderings of history
I’ve read on the net, and reproduced from my spotty memory. Yet it’s
a nice story that fits very well with my feeling about SQL (“Nobody
could really have meant that language SERIOUSLY, could they?”)

Eivind.

Reality was uglier than that. More comparable to the browser wars and
implementations of html of the 90’s.
But worse.
All the database makers had their own ways of doing things. SQL was a
pseudo-standard middle between systems that always offered their own
proprietary things as well. Like html and C/C++ and JavaScript and
everything else out there, vendors slowly merged toward more fully
supporting a standard by customer demand. You don’t think Microsoft
was the first to think up the idea of using proprietary things to
lock in customers, do you?
Databases were the original home of neckties running IT.
Everyone was calling their SQL the real one, but none were the same.
(still aren’t really) because they don’t want you to jump ship so
easily! Long term licensing revenues with low support costs.

Austin Z. wrote:

relational databases are evil."

Having read Pascal’s articles (and a few posts by some notable others on
comp.databases.theory), I’d say you’re remarkably mild and
restrained…

On 20.03.2007 17:55, John J. wrote:

I would argue that part of the problem is SQL being very unlike any
non-database programming language.

That may be because SQL is not a programming language although it is
often mistaken for one. SQL, more precisely the query part of it,
describes data sets via set operations.

Although there are declarative languages around (IIRC Prolog is one of
them) most programming languages are procedural (even OO languages) and
so people tend to expect SQL to be similar.

Kind regards

robert

I hate to say this, but 10 seconds of fact checking says shenanigans.

Summary,
It wasn’t some toy language, it was a research paper by a Dr Codd
working for IBM.
In the 70s IBM made a relational database system and based the
language off of Dr Codd’s paper, the language was called “Structured
English Query Language”, later shortened for copyright/trademark
reasons :slight_smile:

Read the article for the rest.

–Kyle

Ok, if you say so. Let’s call it a describing language, but
operations like AUTO INCREMENT seem an awful lot like programming. I
guess we have to say Ruby is not a programming language either. It is
a scripting language.
hmm…
many sources do describe (no pun intended) SQL as a declarative
programming language. It isn’t ‘Turing complete’ because it can’t
create an infinite loop. Big deal.
That’s academic nitpicking.

On 20.03.2007 21:35, Anthony E. wrote:

systems. One of the most promising is the Dwarf algorithm
(http://citeseer.ist.psu.edu/sismanis02dwarf.html by Sismanis et. al)
which I’ve been reading about for about 2 weeks now.

That sounds interesting. Thanks!

My general assumption so far was that every DWH is different and you
need to create custom solutions for specific applications - just to cope
with the exceptional data volume. But then again, maybe most DWH’s
aren’t that big and can be tackled with a more standardized solution.

Kind regards

robert

of them) most programming languages are procedural (even OO
many sources do describe (no pun intended) SQL as a declarative
programming language. It isn’t ‘Turing complete’ because it can’t
create an infinite loop. Big deal.
That’s academic nitpicking.

And I thought SQL could be classified as a functionnal programming
language.
But yes, “describing language” seems to be an appropriate definition.

Ok, I read it. But never call wikipedia fact-checking!

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Austin Z. wrote:

Data is king. Applications are pawns.
-austin

You know, that is a profound statement.


David M.
Maia Mailguard - http://www.maiamailguard.com
Morton Software Design and Consulting - http://www.dgrmm.net
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.2.2 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFGAWr0Uy30ODPkzl0RAk6kAJ49IfzXcB2qCLRdp3gbHB87RWPECgCgpReL
LSYpqahSMJxD0rD50UJYcSo=
=/Y5y
-----END PGP SIGNATURE-----

John J. DE I. P.

JJ> Ok, I read it. But never call wikipedia fact-checking!
History of System R/SQL:
http://www.mcjones.org/System_R/SQL_Reunion_95/index.html

On Wed, Mar 21, 2007 at 10:45:13AM +0900, gregarican wrote:

yet. But after years of working with databases I haven’t discovered
anything that beats SQL.

I tend to find that the DBI interfaces for languages like Perl and Ruby
are usually a better choice when you have the option, if only because
SQL syntax sucks – but an SQL-based relational database does seem to be
what works in 98% of cases.

On 3/21/07, John J. [email protected] wrote:

Ok, I read it. But never call wikipedia fact-checking!

Well, for what it’s worth, as someone who toiled at IBM from 1974 to
2005, that wikipedia article jibes with my memories.

But then what do I know?


Rick DeNatale

My blog on Ruby
http://talklikeaduck.denhaven2.com/

On Thu, Mar 22, 2007 at 12:47:50AM +0900, John J. wrote:

Ok, I read it. But never call wikipedia fact-checking!

That’s only slightly disingenuous. I’d put it this way:

“Never call a general resource ‘fact-checking’, regardless of the
specific example of a general resource.”

If you want to check facts, you need to go after the specific,
stand-alone, specialized resources. Always check with primary sources,
or be aware you could be wrong. It doesn’t matter whether it’s Google,
Wikipedia, Britannica, the OED for etymology, or Ask Chad – general
resources are not authoritative primary sources on specifics (generally
speaking, har har).

Sorry. I just tend to get my back up a little when someone singles out
a specific general resource, as though the problem isn’t endemic to
general resources in general, almost tautologically.

On Thu, Mar 22, 2007 at 02:27:27AM +0900, David M. wrote:

Austin Z. wrote:

Data is king. Applications are pawns.
-austin

You know, that is a profound statement.

It’s not a new idea to me, but it’s an excellent formulation of the
idea.

Austin – is that original? Should we call it Ziegler’s Law?

On Thu, Mar 22, 2007 at 12:20:05AM +0900, Robert K. wrote:

On 20.03.2007 17:55, John J. wrote:

I would argue that part of the problem is SQL being very unlike any
non-database programming language.

That may be because SQL is not a programming language although it is
often mistaken for one. SQL, more precisely the query part of it,
describes data sets via set operations.

That’s certainly a reason for the difference, but not the reason.
There’s also the simple fact that SQL is just kind of broken by design.

On Thu, Mar 22, 2007 at 01:29:18AM +0900, Olivier R. wrote:

And I thought SQL could be classified as a functionnal programming language.
But yes, “describing language” seems to be an appropriate definition.

Technically, it’s a “query language”. Why come up with more names for
it?

On Thu, Mar 22, 2007 at 01:01:14AM +0900, John J. wrote:

Ok, if you say so. Let’s call it a describing language, but
operations like AUTO INCREMENT seem an awful lot like programming. I
guess we have to say Ruby is not a programming language either. It is
a scripting language.
hmm…
many sources do describe (no pun intended) SQL as a declarative
programming language. It isn’t ‘Turing complete’ because it can’t
create an infinite loop. Big deal.
That’s academic nitpicking.

If you want a “real programming language” version of SQL, just use
PL/SQL with Oracle. Ew.

On 3/21/07, Chad P. [email protected] wrote:

If you want a “real programming language” version of SQL, just use
PL/SQL with Oracle. Ew.

Which is a better language than most people think. What’s interesting
is that it isn’t a version of SQL, but a version of Ada (or Modula 2?)
with SQL cursors as a native data type and built-in recognition of
existing database data types and SQL statements. It’s closer to Pro*C
(C/C++ with embedded SQL) than a programming language version of SQL.

It’s still saddled with the limitations of SQL.

-austin