• ScottPletcher (3/2/2015)


    Codd was working for IBM at the time, and IBM asked him to do it. To be fair, a lot of it was not just "ill-conceived". Computers were vastly less powerful back then, and some compromises had to be made to get any style of relational db functioning. The first one or two SystemR versions were known for horrible performance at times.

    Codd was indeed working for IBM at the time but was denied any influence on the SEQUEL project. Various IBM people have denied that, of course, but Codd made it very clear that SEQUEL was in his opinion nothing like a relational calculus, and he had practically no influence at all on it because he had blotted his copy-book by talking to customers about the relatonal model (which IBM didn't want as a rival to its non-relational DBMS).

    The compromises were needed not because the computers were not sufficiently powerful, but because the team didn't understand the basics of language design and comilation/interpretation. Allowing speculative computation to cause a failure which rolls back lots of work does NOT improve performance - in fact it is fairly unusual for speculative computation to improve performance unless both (a) it isn't allowed to cause unwanted aborts and (b) there is more parallelism available than can be exploited by non-speculative computation; clearly the team disregarded (a) and if you think (b) was satisfied you clearly have an interesting view of the amount of parallelism available on typical IBM hardware in the 1970s.

    Tom