blog




  • Essay / The Reason Jim Gray Won the Turing Award

    This short article is intended to describe to the layman why Jim Gray won so many awards, culminating in his selection to receive the 1998 ACM Turing Award, arguably the " Nobel Prize”. of computing”. It briefly summarizes his major contributions to our field. Say no to plagiarism. Get a tailor-made essay on "Why violent video games should not be banned"? Get the original essay After Ted Codd's pioneering article appeared in CACM in June 1970, there was an immediate debate between: Relational advocates who claimed that a simple data model (tables) and a high-level language (at the time Codd's Data Language Alpha or relational algebra; today SQL) were obviously good and should form the basis of a sensible DBMS architecture. Proponents of IMS and CODASYL, who claimed it was impossible to effectively implement relational query languages. Furthermore, no real programmer could understand Codd's query languages. It was obvious to many researchers that the next steps required were: Specifying more user-friendly relational query languages; Prove that relational DBMSs were practical. The first task led to several new query languages, of which SQL is the one that gained in the market (largely because of the "weight" of IBM). The second task led to a set of implementations, of which Ingres (at Berkeley) and System R (at IBM Research) were the most developed. Jim was one of the researchers working on System R. Two of the complicated problems that had to be solved The problems to be addressed in any implementation were: crash recovery; competition control. Obviously, a DBMS should never lose customer data, regardless of what type of failure occurs. But what exactly does this mean and how should it be implemented? Additionally, most DBMSs must handle parallel updates from multiple users or applications. For example, one user could move all employees in the shoe department to the toy department, while a concurrent user could give all employees in the toy department a 10% raise. Obviously, the set of individuals specified by the first user is modified by the second user. In such a situation, one must decide which semantics to apply and how to do it effectively. Jim wrote a pioneering article in 1976 and followed up with a book in the mid-1980s on this subject. He is largely responsible for the following ideas (very simple in retrospect – but revolutionary at the time). The activity of the DBMS must be divided into work units, called transactions. A transaction consists of one or more statements in SQL (or any other supported interaction language) interspersed with code in a general-purpose programming language. For example, a transaction might involve moving $100 from account A to account B. In SQL (and most other interaction languages), this requires two statements, one to decrement account A and one to increment the Account B. Each transaction must have the following properties: Atomic: Either the entire transaction occurs or none of it occurs. That is, it is illegal to make the decrement occur unless the coupled increment also occurs. Therefore, transactions move the database from one consistent state to another. Consistent: the database is free to define a set of integrity constraints, which define the legal states of the database. One of these.