Re: [LIU Comp Sci] Need tutoring on Relational Calculus

From: James K. Lowden <jklowden_at_speakeasy.net>
Date: Wed, 31 Dec 2014 17:23:12 -0500
Message-Id: <20141231172312.ea580d34.jklowden_at_speakeasy.net>


On Mon, 22 Dec 2014 02:35:25 -0500
ruben safir <ruben_at_mrbrklyn.com> wrote:

> The concepts of normalization have undergone an up and down road
> nearly from the beginning. The more you read them, you more you
> realize that as a model normalization is a failure.

I don't know what you're referring to. Normalization theory is actually orthogonal to the relational model. Its purpose is to avoid update anomalies. There was some hope in the 80s that the process could be automated, that a 3NF design could be derived from some higher-level data description, but afaik it sprang from the same well that waters hope of programs that write themselves.

I can think of no way in which "normalization is a failure". It's the programmer's precept of "don't repeat yourself" wrought in tablular form.

> Then there is another problem, which is that database academic
> programs are often held hostage to commercial interests. Actually,
> this is a huge problem and it is severe. Reading the text sometimes
> sounded like it was cut and pasted right out of Oracle 8.1 brochures.

I have heard that can be the case.

> Meanwhile, people I know who are writing databases engines, google
> engineers, and such, after speaking with them, they are very
> apologetic about the theory and then say things like, "You have to
> learn it but its BS. We can't build databases that run like that for
> what we do"
>
> That is the definition of a bad data model.

Wait, so the value of a model is whether Google engineers find it useful? Are we to assume they understand it?

I think I would argue that Google is not writing a database engine, properly understood, but that's beside the point.

Because relatively few programmers, even very good ones, understand the RM, the odds of you finding one who does are slim. That's a longstanding problem, and one of the reasons for the poor shape of the DBMS market.

One often hears something along the lines of "relational is slow", which is what I understand "can't build databases that run like that" to mean. The problem with such statements is that they're not even wrong: a theory is neither fast nor slow. It's a representation, a *model*. It doen't tell you anything about how to build a DBMS; it tells you how to represent the data and how the data are represented by the user to the system. Relational algebra and first-order predicate calculus define a domain of problems that can be represented and solved. A simpler system of equal power has yet to be invented.

--jkl Received on Wed Dec 31 2014 - 23:23:12 CET

Original text of this message