Why did we decided on the name


The name Quixote was taken, of course, from the famous novel of the same name by the Spanish writer Cervantes.

Let's first take a look at the history of the development of the database, and hopefully this will give you a clue as to why we decided on the name Quixote.

[Here is a hint: The most important word is missing. Put it on, and use it as an acronym!]

  1. The Birth of the Relational Database
  2. Birth of the Deductive Database, descendant of Logic
  3. Both relational and deductive databases meet an impasse
  4. Fate takes a hand -- the object oriented database appears!
  5. Integrating deductive databases and object-oriented databases
  6. Birth of Quixote

1. The Birth of the Relational Database

Let's start our story in 1970, the year when E.F.Codd designed the first relational database.

In the age of pre-relational databases, users of hierarchical databases or network databases could not easily determine how they should search for data unless they knew how the data in the database was structured. To solve this problem, Dr.Codd used a table format for the basic data structure and built relational algebra and relational calculus into the design. These algebra and calculus were used to allow exact mathematical relations to be set between items stored in the database. This step was a catalyst in encouraging others to further develop the relational database.

As a result of this wave of research, large improvements were made to the search speed, and a consistent basis for database design made updating workable. As a result the overall reliability of databases increased.

During the 1980's the relational database came into its own and made inroads into the office, due mainly to the fact that the table structure of the data matched the way that information is recorded in an office. At the same time, computers became faster to the point where they could easily handle the algebra and calculus involved in relational database access, and user interfaces for database access improved.


2. Birth of the Deductive Database, descendant of Logic

Of course, Dr.Codd didn't suddenly have the idea of relational calculus. We can trace its roots back to the concept of the link between logic and computers in the 1950's. The concept is also an origin of the idea that logic is based on a programming language, for example, the logic programming language Prolog which was born in 1972.

Prolog, which is based on the first-order predicate logic, influenced the development of relational databases because both were developed around the same basic concept. This led people to trying to extend relational logic of relational databases to the first-order predicate logic or looking at the whole database on the basis of logic, not just the query language as in a relational database. This trend in turn led in 1977 to the development of the deductive database as a combination of the relational database and logic programming languages.

Unlike the relational database, the deductive database has built in inference rules. The conventional database is just a flat file which stores data, with the ability to search for a record. However, once inference rules are built in, the deductive database can be used to support problem solving.

In addition the logic of the deductive database system means that it searches only for unique solutions (soundness), and searches until a solution is found (completeness). These characteristics are important because they guarantee the reliability of the database.


3. Both relational and deductive databases meet an impasse

Let's look at the state of affairs in the world of computers when the deductive database appeared.

The number of application software packages which can handle graphics and image data has been increasing steadily since 1980, but during the 1970's, when the relational database first emerged, there were hardly any. Many people tried to link software to relational databases that had been successful in the business area, but they found that it is difficult to use relational databases for complex data items because they have a relatively low processing efficiency for this kind of data. And the same problem occurred with deductive databases, because the beginning of research in deductive databases was to integrate relational databases and programming logic. So both types of databases reached an impasse on the question of how to handle complex data.


4. Fate takes a hand -- the object oriented database appears!

The first thesis on the feasibility of object-oriented databases, written by Copeland and Mayer, appeared in 1984.

Object-oriented programming tools, from which object-oriented databases developed, are rooted in the search for new software programming development techniques and software maintenance. Let's have a look at the most important concepts of object-oriented databases.

The concept of an object first appeared in the mid-60's, in the simulation programming language Simula '67. The attractiveness of object-oriented programming lies in its ability to use abstract objects to represent actual events. Its strength is that it allows any data types and procedures. This saves users time spent in converting data to fit specific data formats and has increased the number of objects that can be represented on a computer. However, since the programmer can now determine freely procedures, it is now the responsibility of the programmer to determine whether the result of them is the correct one or not.

In the 1970's, the field of artificial intelligence started to use the concept of Frame theory, which incorporated the concept of inheritance. This proved an effective method for sharing and reusing code, as well as for organizing information.

Object oriented programming sprang into the limelight in 1980 when it was used in SmallTalk-80, a programming language developed at Xerox USA's Palo Alto Research Center. Following this, related concepts such as multiple inheritance introduced by Flavors, were developed as object oriented programming gradually adopted basic concepts.

These concepts emerged as the result of research and experience with object oriented programming techniques, and were not uniformly integrated into object-oriented databases. Because of the versatility of its programming techniques, a whole range of object-oriented databases with new functions appeared in the late 1980's.


5. Integrating deductive databases and object-oriented databases

Let's now compare the deductive database with the object-oriented database and see how they would get along together.

The deductive database is based on first-order predicate logic, part of formal mathematical logic. This clear logical structure ensures the accuracy of a query result, an important point in database design. It is also upward compatible with conventional relational databases. However predicate representation cannot handle very complex data types. At that time, deductive databases were still under development, and there were as yet none commercially available.

Object-oriented databases allow easy modeling of the target object, and this representation can be further refined by the user. There were many systems in commercial use. However, there was still no formal base for development, and there was no consensus of concept of object-oriented databases. The results of a query and whether a query stops or not are determined by the user's skill in programming. In addition, the object-oriented database is basically not compatible with the relational database.

From the above, it should now be clear that the strengths and weaknesses of the deductive database and the object-oriented database complement each other. This immediately suggests that an appropriate combination of the two types would result in a more powerful database, adopting the strengths and evading the weaknesses of both.

The deductive database has now taken this step forward. As the weaknesses of the deductive database became clearer, people started to integrate the strengths of the object-oriented database to compensate. The term :"Deductive Object-Oriented Database (DOOD)" came into use around 1988, and the first DOOD Conference was held in 1989.

This ends our short tour of the history of the database. Have you guessed yet why we chose the name Quixote for our database language?

Well, the important word that is missing from Quixote is the word "Don," which in normal usage means "to put on." Used as an acronym, DON stands for "Deductive Object-Oriented Nucleus." We developed Quixote using a deductive object-oriented database language, and so the name of the hero in Cervantes' novel seemed just right.

You may well ask why we didn't name it after some other Don. The answer to this lies in the development process for Quixote, during which time its character was formed. Let's look now at that process.


6. Birth of Quixote

The design of Quixote started in 1990, the first version was released in 1991, and the second version in 1992. Actually the basic research on deductive object-oriented databases was started in 1988, but as you can imagine, the design and implementation involved a lot of exploring as most of the techniques had not yet been established. Now Cervantes' hero, the real Don Quixote, was also an explorer, as well as an idealist and a dreamer. Are you starting to see the similarities in character?

When we started to develop Quixote, because our project was so new, and there was nothing similar to compare it with, we often hesitated in making decisions about how to proceed simply because we wondered whether our ideas were too far out, too idealistic.

But we encouraged each other with the thought that without ideals we cannot develop anything new. Although our project seemed like chasing a dream, we believed that we could make our dream of developing a language called Quixote come true. We hoped that the language would be like Don Quixote himself - aiming for the top, even when that involves risks.

Note:
Actually people at ICOT started looking at deductive object-oriented databases in 1988 as a research project, and so by 1989, there already existed the forerunner to Quixote, named Don Juan. Quixote was born out of a tryst between Don Juan and QUINT, an spin-off from the field of natural language processing. People say that Dr.Fuchi, ICOT's then director of research set up the first date between the couple, but the truth is now shrouded in the mists of time... Quixote was the result of many chance encounters like this, just as the real Don Quixote's character was.

Can you see now why we had to choose the name Quixote?