Sunday, December 22, 2024

The Associative Model of Data

Share

About thirty years ago, a guy named Codd invented the relational database model based on predicate logic. It took the database world by storm and the companies that adopted it early won a large competitive edge. As you now can see, the relational model of data is by far the powerhouse in today’s database systems.

However, a new model of data called the Associative Model has been proposed and developed by the Chief Executive of LazySoft Ltd, Simon Williams. He claims that the relational model has deficiencies that the associative model fulfils while retaining the power of the relational model. He states, “The most visible limitation of the relational model has been its inability to handle multimedia files, but the importance of this has been overstated. In fact, the relational model has some far more significant limitations that have not yet been challenged:

1. Every new relational application needs a new set of programs developed from scratch, which is labor-intensive, expensive and wasteful.

2. Relational applications cannot be readily tailored to the needs of large numbers of individual users, which is an issue for Application Service Providers.

3. Relational applications cannot record a piece of information about an individual thing that is not relevant to every other thing of the same type. This limits our ability to continually improve customer service levels.

4. Information about identical things in the real world is structured differently in every relational database, so it is difficult and expensive to amalgamate two databases.” (Simon Williams, “The Associative Model of Data”)

I would have to agree with him. The third point I can directly relate to a problem I have in designing a table in my database. I want to store information about questions, but the number of possible responses is different for each question. Do I make a field for each possible response for every question or do I make one field with hundreds of possible values? The former leads to a lot of null values stored in the table and the third makes it almost impossible to query. I guess I’ll just have to go with null values. However, the associative model would cure this according to Simon Williams.

The associative model sees information like we read English. It is in the form of the subject-verb-object syntax like English sentences. Here are a few examples. “John likes apples”, “Mike sends email”. “John”, “apples”, “Mike”, and “email” are all entities. “likes” and “sends” are the associations between these entities. Entities are defined as having an independent existence from other things. Associations are defined as being dependent on other things. A person is an entity, but the role that person plays as programmer, soccer player, or guitarist is an association. If the person dies, so does the programmer, soccer player, and guitarist. However, if the person stops playing soccer, only that association dies, not the person or other associations.

You can also make more complex sentences. For example, “Mike sends email on Tuesdays before 10:30.” The way this would be structured in the associative database would be the following:

Mike sends email
…on Tuesdays
…before 10:30

The associations are the links between the entities. A preceding ellipsis (…) means the link before it is its source. You can also express this information in parenthesis form. For example,

((Mike sends email) on Tuesdays) before 10:30

Now, back to my problem on designing my table for questions. The associative model would cure this by allowing me to have an entity that represents the number of responses instead of having a column in my table for every possible response. Then, questions with one answer only store one response spot, and questions with 10 answers hold 10 response spots, thus eliminating the first question from having to hold 9 empty spots solely to accommodate the question with
10 responses.

So far, this is the biggest advantage that the associative model has demonstrated to me, but there are others. For example, it is very easy to combine two associative databases compared to combining two relational databases. Since the associative database is basically a bunch of sentences defining what entities are associated with each other all you have to do is add the extra sentences from the other database to define more entity-to-entity associations. The only thing to watch out for are ambiguities and duplicates, which would take a trivial amount of time to scan through and edit. To combine two relational databases you would have to totally restructure tables if new data fields were to be added, change the programs that access this data, and redefine all queries, stored procedures, and diagrams that relate to this database. Whoa! NO THANKS!

Although I am still very new to the whole idea of the associative model of data, I am convinced that it has a place in the world of databases. It would take years for any product to take over an industry that is dominated by one product by 95%, but it will most definitely find a niche. If you are interested in exploring this further, check out http://www.associativemodelofdata.com or to get the free personal edition of “Sentences”, which is the DBMS that runson the associative model, by LazySoft LTD then go to http://www.lazysoft.com. Again, if you have and questions, would like to comment on anything above, or just want to say hi, feel free to contact me.

Nick Pile is an murdok staff writer

Table of contents

Read more

Local News