Object/Relational Mapping is the Vietnam of Computer Science

On Mar 22, 10:23 am, Chad P. [email protected] wrote:

On Thu, Mar 22, 2007 at 07:25:09PM +0900, Clifford H. wrote:
One doesn’t lose data because of vendor lock-in. One loses (easy)
access to data because of vendor lock-in (coupled with some form of
vendor lock-out, of course – data locked into a given format, user
locked out of the software one uses to access it).

That raises a little bit of an existential question/argument:

If my data is changed to gibberish (random byte overwrites), it’s
certainly lost. There is no way to recover it.

If my data is strongly encrypted and the original key is lost, is the
data lost? What if it could be recovered by 100 years of parallel
processing by all the computers on the planet brute forcing the key?

If my data is ‘encrypted’ by a vendor and I lose access to the
software needed to decrypt it, is it lost? It could be recovered if I
somehow force the vendor to give me access to the software, or I break
DMCA and reverse-engineer the format, or…

It appears that being lost is not a binary condition, but instead a
gradient whose value is inversely proportional to the ability to
recover/find the data.

Chad P. wrote:

…vendor lock-in (coupled with some form of
vendor lock-out, of course – data locked into a given format, user
locked out of the software one uses to access it).

Ok, I can see why you wouldn’t want to use software like that.
I certainly wouldn’t, and haven’t. In fact I don’t know any
software like that, except what Microsoft tried with XP, but
even that failed. So it’s a bit of a strawman you’re knocking
down, aren’t you?

On 21 Mar 2007, at 21:23, [email protected] wrote:

using logic (aka business rules) that anything meaningful arises.

cast in point : we’ve 260tb of ‘data’ sitting in our mass storage
device.
less than 0.01% ever comes back out. that small percentage is
massaged into
meaningful information via complex application and human logic
though and
it’s those kernels we’re interested in.

Having trained as a physicist before entering IT I’d say that’s a
different usage of the word ‘data’ than in this conversation. I’d
worry about any data entering one of my relational databases that
didn’t pass the basic criterion of being potentially useful
information - of course it’s not provably useful until someone
performs a query to extract it, so perhaps we should class it as
virtual information in its stored form… some kind of superposition
waiting for human intervention ;p

Anyway, if I have the choice between saving my data and saving my
code - data will win every time.

Ellie

Eleanor McHugh
Games With Brains

raise ArgumentError unless @reality.responds_to? :reason

On Fri, Mar 23, 2007 at 12:50:04PM +0900, Clifford H. wrote:

Chad P. wrote:

…vendor lock-in (coupled with some form of
vendor lock-out, of course – data locked into a given format, user
locked out of the software one uses to access it).

Ok, I can see why you wouldn’t want to use software like that.
I certainly wouldn’t, and haven’t. In fact I don’t know any
software like that, except what Microsoft tried with XP, but
even that failed. So it’s a bit of a strawman you’re knocking
down, aren’t you?

Only if I was using that statement as a point of argument. I wasn’t,
really – I just defined vendor lock-in. I suspect you’re making
assumptions about my meaning and intent.

In any case, my usual approach to dealing with the specter of vendor
lock-in is to avoid the vendors’ proprietary formats whenever at all
practical. Sure, I can always use some outside tool to recover that
from which I’ve been locked out, but I’d rather not have to.

On Mar 21, 2007, at 7:29 PM, Ryan D. wrote:

I actually love OODBs, and having worked for a major vendor in that
space, would consider myself knowledgeable in that arena.

Would you care to share any favored links for reading of why OODBs
are a good thing, for those of us who don’t know any better?

James Edward G. II

Chad P. wrote:

In any case, my usual approach to dealing with the specter of vendor
lock-in is to avoid the vendors’ proprietary formats whenever at all
practical.

In that case I think we’re in violent agreement :slight_smile:

On 20 Mar 2007, at 18:23, [email protected] wrote:

has
value beyond a single program than any hierarchical database will
ever
be (and both OO and XML databases are hierarchical databases, make no
mistake about it!).

Anyone have any comments / experience with “associative” databases
like:
AssociativeSolutions.com is for sale | HugeDomains
http://www.lazysoft.com/technology_sentences.htm

Well, it looks interesting so far, thanks. Nice to look at something
new! There’s a free book PDF at the second link (here we go…). The
points that the author makes seem to align with some of my own
thoughts, so he’s either a good salesman, or he’s on to something, or
I’ve poorly analysed the problems I see around me.

On 20 Mar 2007, at 18:43, Austin Z. wrote:

abrasiveness. Here’s three articles:

http://www.dbdebunk.com/page/page/622443.htm
http://www.dbdebunk.com/page/page/622368.htm
http://www.dbdebunk.com/page/page/3278346.htm

I suspect that these are to be heavily avoided in favour of properly
educating oneself about relational data models.

Mr. Pascal is really very abrasive!

I’ve read those three articles now. In general, I’d agree with his
venting - certainly his criticism of people writing about problems in
the relation model / confusing logical with physical, and idiot
marketing speak.

From the little look I’ve had, this associative stuff sounds
interesting though. I suspect that associative’s marketers have gone
out and talked rubbish, and this has obscured any value that might be
in it.

So I’ll go and read more about it now.

Cheers,
Benj

Anyone have any comments / experience with “associative” databases
like:
AssociativeSolutions.com is for sale | HugeDomains
http://www.lazysoft.com/technology_sentences.htm

Well, it looks interesting so far, thanks. Nice to look at something
new! There’s a free book PDF at the second link (here we go…). The
points that the author makes seem to align with some of my own
thoughts, so he’s either a good salesman, or he’s on to something, or
I’ve poorly analysed the problems I see around me.

"(There aren't many of them out there, only one other 'real'
implementation of one that I know of exists anywhere, which is
Sentences by LazySoft. I'll bring it up again, because Relavance
is not like Sentences for a lot of reasons and I'll get into those a 

bit
later.)"

http://davedolan.com/blog/2006/06/28/just-when-things-are-starting-to-solidify-for-me/

On 22 Mar 2007, at 04:03, Joel VanderWerf wrote:

What is Google’s most valuable asset? Not data. They recreate their
data constantly.

From what?

Benjohn B. wrote:

On 22 Mar 2007, at 04:03, Joel VanderWerf wrote:

What is Google’s most valuable asset? Not data. They recreate their
data constantly.

From what?

Data. Other people’s data. Other people’s assets. Good business to be
in.

And what about those of use who don’t speak out of ignorance and
STILL don’t like relational DBs??? Or would you just assume we’re
ignorant too???

And I thought I wouldn’t touch this topic with a 10 foot pole… I
generally won’t touch a thread that is one of your hot topics because
it just isn’t worth it (see your comment about Pascal above). You
entered this thread as abusively as you could, pretty much on par
with all your other hot topic threads. I think you do a lot of good
work, but this regrettably makes pretty much most of it unapproachable.

Unfortunately this is true. Matz is nice so we are nice. Abusiveness
and bad manners are inappropriate.

Even if OO databases are flawed, I’d rather be able to think OO, store
OO, and model things as OO. Yeah, maybe a Smalltalk guy can help. :slight_smile:

I’m not really qualified to say for sure one way or the other, but I
do know Smalltalk guys love OO DBs, and a friend of mine told me that
some significant trading systems run on Gemstone (an OODB with a
pretty strong historical association with Smalltalk).

This was actually a major interest of mine pretty recently, but I got
wrapped up in a bunch of distractions and real-life stuff. If you
really want to explore OODBs, the thing to do is not use Ruby, as far
as I know, but instead use Squeak S., the Seaside web
framework, and Squeak’s open source OODB Magma.

[email protected] of LadyBridge… wrote back to me on
the topic of using
OpenQM with Ruby.

OpenQM is a multi-field database based on Pick/Universe/Everyone…
“OpenQM uses the post-relational model in which the First Law of
Normalisation is discarded, allowing multiple values such as a list of
products in an order to be stored together.”

He said if Ruby can do cgi-bin, then it can access the OpenQM DB.
Intriguing.
On this page there is a clue to access techniques:
http://www.openqm.com/id57.htm

Q: When you put this against node-xml access, does xml imply it also
discards the First Law?
A: Normalizing XML, Part 1

Markt

Unfortunately this is true. Matz is nice so we are nice. Abusiveness
and bad manners are inappropriate.

Maybe so, but IMHO directness is often interpreted as abusiveness or bad
manners. I personally appreciate Austin’s directness, and that of many
others (although it would probably sting if it were me on the receiving
end:) Then again, I usually try very hard to do my research before I
post a (technical) opinion. Sometimes I post in haste and get slammed; I
usually deserve it.

Some very smart or successful (or both) people were and are considered
by many to be rude or abusive (for example, Theo de Raadt, Charles
Babbage, Eric Raymond, Bill Gates, Steve Jobs, and Richard Stallman).
I’m sure there are many reasons for this; still, one thought is that
people like these get incredibly frustrated by receiving opinions that
are not based on much (or any) due diligence, and questions that have
been asked (and answered) a million times and are usually easy (or at
least possible) to find using Google. One’s patience would imaginably
wear very thin when the signal to noise ratio of posts or emails is
regularly low. Then again, sometimes people are just plain rude.

Bottom line is, I agree with ESR:

“Much of what looks like rudeness in hacker circles is not intended to
give offense. Rather, it’s the product of the direct,
cut-through-the-bullshit communications style that is natural to people
who are more concerned about solving problems than making others feel
warm and fuzzy.”

My 2c.

[email protected] wrote:

Anyone have any comments / experience with “associative” databases like:
AssociativeSolutions.com is for sale | HugeDomains
http://www.lazysoft.com/technology_sentences.htm

Ooooh, Omnicompetent programming, that must be good… Application
feature
partitioning… sort of like schema access rights… What a lot of
mumbo-
jumbo.

Data is as useful as it is trustworthy and unambiguous. If you build a
DBMS
that allows you to stash facts without having to think about what they
mean
and under what conditions they mean it, and to avoid constraining them
so
only such facts can be stored, it becomes a nice way to build a personal
filofax, or any other system where a human must do all the
interpretation,
but it’s a completely useless way to build a software application. If a
developer likes such a system and finds it works well, it’s because s/he
believes that all constraints on the data structure should be hidden
inside
the application code. I think you can make up your own mind about
whether
that is smart…

That said, these tools are actually seeking after a holy grail… how to
allow us to store facts in the same structure in which we think of them,
but retain the efficiency and transaction reliability of traditional
tools.

A direct approach to this problem is already well-understood in the form
of fact-based modeling. Austin would like it, as it’s a hyper-normalised
relational form, yet it can be invisibly mapped to an efficient
relational
and transactional storage structure, leaving the queries against the
user
friendly fact-based schema. It truly is time that this technology leaves
the academic domain where three decades of work have yielded nothing but
a
few CASE tools, and finds its home in the heart of a dynamic development
environment like Ruby… It’s because I believe this that I’ve left my
job
of 17 years, in a company I co-founded, to build the ActiveFacts project
for Rubyists everywhere. My last day is Friday :-). Really. I almost
can’t
believe it myself :-). I’ve allocated myself 6 weeks full-time to build
a
credible first release.

If anyone wants more information on fact-based modelling, take a look at
www.orm.net, http://www.casetalk.com,
Object-Role Modeling download | SourceForge.net,
www.objectrolemodeling.com, or some of the other sites they point to. Or
join the new Yahoo information_modeling mailing list. Please Austin,
find
the time to look at it. Terry Halpin’s book “Information Modeling and
Relational Databases” will be proved to be one of this century’s most
influential works.

Clifford H…

On 28 Mar 2007, at 09:41, Edwin F. wrote:

Bottom line is, I agree with ESR:

“Much of what looks like rudeness in hacker circles is not intended to
give offense. Rather, it’s the product of the direct,
cut-through-the-bullshit communications style that is natural to
people
who are more concerned about solving problems than making others feel
warm and fuzzy.”

It is possible to be both polite and terse, but the effort required
is often much higher than that required to do some basic fact-
checking with Google. Each time someone fires off an ill-considered
opinion based on fashion, marketing hype or religious predilection
they’re effectively polluting our shared intellectual space, and yet
somehow it’s those who suffer this on a daily basis who’re the
offensive ones…

Ellie

Being and Doing are merely useful abstractions for the ‘time’-
dependent asymmetries of phase space.

On 3/28/07, Giles B. [email protected] wrote:

Even if OO databases are flawed, I’d rather be able to think OO, store
OO, and model things as OO. Yeah, maybe a Smalltalk guy can help. :slight_smile:

I’m not really qualified to say for sure one way or the other, but I
do know Smalltalk guys love OO DBs, and a friend of mine told me that
some significant trading systems run on Gemstone (an OODB with a
pretty strong historical association with Smalltalk).

Gemstone is/was basically a Smalltalk dialect with persistent shared
objects.

It got some mindshare from Smalltalkers, but then again so did object
relational mappers like Toplink and the database stuff built into
VisualAge.

Although Toplink is known now mostly as a Java thing, it started out
in Smalltalk. It was originally produced by The Object People, a
Smalltalk-based company in Ottawa. The Top in Toplink is an acronym
for The Object People.


Rick DeNatale

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

On 3/28/07, Mark T [email protected] wrote:

OpenQM is a multi-field database based on Pick/Universe/Everyone…
“OpenQM uses the post-relational model in which the First Law of
Normalisation is discarded, allowing multiple values such as a list of
products in an order to be stored together.”

This is complete and utter nonsense. “Post-relational” is a completely
nonsensical term, and the understanding of the first law of
normalisation is incorrect or incomplete or both to be able to say
that.

I wouldn’t trust OpenQM for anything given this response you were
given. The list of products in an order are related to the order;
how you store those values physically is completely irrelevant to
how you model that relationship. There’s no such thing as
“post-relational” with a theory of data that is even remotely
comprehensible in any way. “Post-relational” is short for “I don’t get
relational theory, therefore, I’m going to try to sound like I know
better than Codd.” You don’t.

If I’m understanding the physical structure correctly, Oracle offers
something similar; it’s called a table column such that you can define
a column in a table as an array or table to tightly tie the data
together in a relationship. Interestingly, Oracle will often store the
table column data externally to the container table – that is,
Oracle will still represent it as a traditional table/related-table
model even though they’re allowing the user to do stupid things with
normalisation.

Q: When you put this against node-xml access, does xml imply it also
discards the First Law?
A: Normalizing XML, Part 1

XML as a data storage technique is no more than old-style hierarchical
datastores returned to haunt us. (It does have a couple of techniques
that IMO are mildly interesting, in that you can use XLink and
references to get proper normalization, but vanilla XML is purely
hierarchical.)

-austin

Hi Austin:

I don’t know how I happened to recieve this email. But, if I understand
the
content properly, I agree. I am an older programmer.

My main occupation is writing a book, “WHAT-AM-I?”. I am taking some
of the ideas
developed in the above book to programs that demonstrate the concepts
in software simulations and active displays.

I think that I have a solution to the carrying out of these programs
in Java Applets
plus some old programs in object format from Eric Isaacson’s A86 Macro
Assembler.

However, I just learned that I have both Ruby and Python on my new
computer (in
addition to Perl and Java). Of these, Perl is the only one that I have
used before. But, I do want the easiest language to work into the HTML
content of the book.

The book is written in HTML and I need to add some action displays
that describe
how my senses (eye, ear, etc) seem to be mechanized.

Could you spare just a moment to give me your opinion on which way to
go? I
would really appreciate your opinion.

My previous experience has been in FORTRAN, C, asm, and FORTH.

The book is not finished, but it is out on the web at:

http://homepage.mac.com/jhmurray/a_html/toc.html

Have a great day!

Joe Murray