Today we released DivConq Framework 0.4.5 to introduce “dcTables” a new feature which supplements the benefits of stored procedures. Download.
As you know, the main purpose of our open-source DivConq Framework is to let Java developers quickly harness the power of MUMPS-compatible “NoSQL” databases. To fully harness that power you need to code stored procedures in MUMPS. But sometimes you just need something *like* a relational table, and why should you have to code that?
At DivConq we say you can have your cake and eat it too. With dcDb you get the power, flexibility and speed of NoSQL when coding stored procedures in MUMPS. But, with dcTables you get the rapid development and ease of use of relational databases too. Furthermore, all your data – dcDb and dcTables – can reside in one database. Easy to administer (setup, backup and restore) and very helpful for developers. Your stored procedures can access not only your NoSQL (dcDb) data but also your dcTables data – all in the same routine using only standard MUMPS commands. For those occasions when data in NoSQL refers to data dcTables (or vice versa) nothing beats the convenience and speed of having all your data in one place.
dcTables provides Tables with Fields (columns) and Records (rows). There are methods to Insert, Update, Retire (delete), Revive (undelete) and Load records. There also also methods for loading lots of records, including a simple paging mechanism so you get only the subset of your query that you need for display. There are Select, Where and Order clauses – like SQL.
While there is a lot to like in dcTables if you know SQL, we developed dcTables to be best of breed and not a mere clone. There are differences, and mostly for the better, though every design has trade offs. Some key differences include multi-valued fields (columns), replication (eventually consistent) friendly design, and inherent data over time orientation.
It seems intuitive to say that data changes over time, for example a person’s name may change overtime. When querying a dcTable you provide a date and you get back the value(s) for that time – for 1980 you might get “Fred Smith” and for 1997 you might get “Fred Hanson” for the same record. The time orientation of data is entrenched within dcTables and encourages developers to associate data with the time period that the data is valid.
Further, dcTables are replication ready – once DivConq enables the active-active database replication feature all the data in your dcTables (as well as the operations we provide) will be ready for the migration to a replicated deployment.
Our MUMPS connection manager has also gotten a connectivity and threading face lift which should provide more reliable and efficient use of connections. Look for additional posts about the new features of dcDb and dcTables.
Published on Friday December 30, 2011 at 12:30pm