Re: Do Data Models Need to built on a Mathematical Concept?

From: Paul Vernon <paul.vernon_at_ukk.ibmm.comm>
Date: Mon, 28 Apr 2003 14:54:07 +0100
Message-ID: <b8jcp9$3u0g$1_at_gazette.almaden.ibm.com>


"Marshall Spight" <mspight_at_dnai.com> wrote in message news:tV3ra.647534$3D1.359624_at_sccrnsc01... > "Paul Vernon" <paul.vernon_at_ukk.ibmm.comm> wrote in message news:b8hirr$3kgo$1_at_gazette.almaden.ibm.com...
> > "Marshall Spight" <mspight_at_dnai.com> wrote in message
> > news:WcBqa.632745$L1.180197_at_sccrnsc02...
> > > > To me, this lecture shows that the wider academic community never
really
> > *got*
> > > > the Relational Model. They got the relational algebra/calculus (albeit
> > mostly
> > > > restricting themselves to binary relations), they could see the
benefit of
> > > > data independence, but they missed the equally important *application
> > > > independence* that relationally defined data can provide.
> > >
> > > While I agree, I think there's still more. For example, the fact that
> > relational
> > > data is content-addressable is huge. Lots of other things, too.

> >

> > I'd be interested in your list.
>
> Let's see:
>
> relational calculus

I noted that one

> content-addressable data

> a *formal* way to prove that your data is free of redundancies, and > therefor immune to update, insert, and delete anomalies. And if it isn't,
> a set of algorithms to transform it so that it is. (the Normal Forms.)

Frankly I've always thought that normalisation is overblown. Redundancy is a semantic matter. The database only know the semantics if you declare them to it with integrity constraints. If you then want to keep more redundancies by not normalising your database, then so be it. The DBMS won't allow you to break the constraints so there is no problem. All you will find is that fewer single relvar updates will work, and you will need to use multiple relvar updates instead. Big deal.

> persistence

Hardly specifc to DBMSes. I think punch-cards got there first

> transactions

Dead wrong. Transactions are bad, real bad. In short they are not compatible with the 'arrow of time'. They let you freeze time and that is not a good model of reality. Start a new thread if you want to discuss the details, I've a draft paper on the subject and a could do with some intelligent challenges to sharpen up my argument.

> declarative integrity constraints

Yep, that is a big one, but again for me it is subsumed by application independence. To use the terminology, unless all your business rules are declared and enforced by the database, then each application will have to reimplement your rules and be vetted before being given database access. The goal of *strong application independence* is to allow any 'application' whatsoever to access and update your database, and still gureantee maintian a correct and working system even in a 'hostile' environment like the net.

> the ability to alter the performance characterstics of data access > at *runtime* by, say, adding an index.

Just a consequence of data independence.

> I suppose a number of those are RDBMS features, and not features of
> the relational model per se. But still. (I really ought to write that list
> down; it comes out different every time I try to reproduce it.)
>
>

> > Although I think I would consider content addressed data as but an aspect
of
> > the Information Principle which for me, is itself just a weak version of
> > application independence.
> > All data is equal - all is relations. If data was index addressed, or
> > positionally addressed or whatever, then there is information embedded in
the
> > addressing scheme that is not relations, not equal. Anything but content
> > addressing is going to be specific to some set of applications.
>
> Hmm. It appears I have a very different definition of application independence
> than you do. Maybe I'm too narrow about it. Come to think of it, I don't
> think I've ever seen the term defined. I've always just thought of it as the
> fact that your data is independent of your applications. That is, it
survives
> them and isn't directly tied to them, but rather accessed through some
> API.
>
> I definitely agree, though, that the Information Principle is key.

Its a term I use and possibly hasn't been defined. It's the independence of a database from the applications that use it - the ability of a database to stand alone and be valid even if it's only 'application' is the relational language used dynamically directly by users.

> > In a way, XML is our failiure, or at least it stems from the failure to
bridge
> > your two continents.

>
> Wow. "XML is our failure" is a very powerful way of saying it.
>

Thank you. Of course it's not just our (by which I mean the 'database community') failure. Some would even say it is the failure of society as a whole, I would certainly not go that far, but it is certainly also a failure of the 'programming community'. E.g. I saw this today on comp.lang.functional:
} Lately, I've spent some time working with Joe Armstrong's UBF
} (http://www.sics.se/~joe/ubf/site/home.html). In Joe's own words:
}
} "UBF is a language for transporting and describing complex
} data structures across a network. It has three components:
}
}     * UBF(A) is a data transport format, roughly equivalent
}       to well-formed XML.
}     * UBF(B) is a programming langauge for describing types
}       in UBF(A) and protocols between clients and servers.
}       UBF(B) is roughly equivalent to to Verified XML,
}       XML-schemas, SOAP and WDSL.
}     * UBF(C) is a meta-level protocol between used between
}       UBF servers."

[and Joe responded..]
}  Actually this was the reason I designed UBF - it all goes back
} to a discussion that was floating around about 15 years ago -
} "wouldn't it be nice is Lisp could talk to Prolog and smalltalk etc...."
[snip]
} ..it appears to be at least as expressive as XML + WSDL but
} at a fraction of the complexity - UBF was *designed* to be easy
} to implement


> > I'ld be very interested to know what Tim-Berners Lee
> > knows of the relational model. (ho-ho maybe this is it
> > http://www.w3.org/2002/Talks/1107-marconi-tbl/slide13-2.html (found using
his
> > marvellous WWW I must add) )

>
> I am very fond of saying, to whoever will listen, that Tim Berners-Lee set
> computing back by decades.

I agree with you below, but man, without TimBL there would be no WWW. Even I find it difficult to see how the relational model could have done a better job at spreading the networked world than HTML and web browsers.

> His sucess in pushing hierarchical XML for
> data transfer takes data management back to the 1960s, and what's less
> of a regression but perhaps a worse sin, he's taken user interfaces back
> to about 1985. Having written both GUI client apps and web apps, it
> is appalling to me how primitive the UI the web provides is. Where's
> the tree control? Where are the menus? How about a sortable table?
> It just sucks. And don't even talk to me about Javascript as being some
> kind of cure. :-) And now the insult of the frickin' "semantic web." Argh,
> I hate that guy.

The 'semantic web' is obviously something that should be relational, and indeed it is a shame that few seem to realise it.

[snip]

Regards
Paul Vernon
Business Intelligence, IBM Global Services Received on Mon Apr 28 2003 - 15:54:07 CEST

Original text of this message