# OpenQM

</td></tr>
Developer(s) Ladybridge Systems Limited 15 March 2001 3.4-6 / April 13, 2016 {{#property:P1324}} Active C++, JavaScript Windows, Linux, OS X,FreeBSD English Open QM www.openqm-zumasys.com

OpenQM, more commonly abbreviated to QM, is the only MultiValue database available both as a fully supported commercial product and in open source form under the General Public License. The name OpenQM is a generic term used to describe both the open source and the commercial ‘closed source’ versions of the QM database.

QM is a combined development and runtime environment that allows construction of application software in a fraction of the time taken with some other widely used but significantly more expensive development toolsets.

QM has a managed application environment in which user programs run, resulting in high reliability and ease of maintenance. Compiled applications are portable across all platforms (Windows, Linux, AIX, PDA, etc.) unless operating specific features are incorporated into the application by the developer.

The environment is built around an integrated database package that uses the power and simplicity of the MultiValue data model but can also support fully normalized relational data structures. The Virtual File System can be used to provide access to data in other data stores.

Proponents of the well-known (and often expensive) relational database products sometimes dismiss MultiValue databases as being an insignificant or antiquated technology that has no relevance in today’s business world. This is simply not true. Many of the world’s largest and most successful companies use MultiValue technology.

The relational and MultiValue data models were created at about the same time. There is a growing recognition that the relational model has significant flaws and this has given rise to the NoSQL movement and a range of alternative new database technologies striving to capture users for whom the modern world of big data cannot be implemented effectively in the relational model. MultiValue is well established as a proven technology that can handle big data and the complexity of today’s applications.

Perhaps one of the reasons why MultiValue is not more widely known is that it does not make the news headlines with massive overspends, project failures and similar disasters. MultiValue applications are usually simpler, faster and significantly lower cost than their relational equivalents. They also have much longer lives, developing in step with business changes rather than needing to be rewritten every few years. The financial savings over whole project lifetimes can be massive. Alongside this, businesses are able to react to new requirements much more quickly than with alternative technologies.

## The History of OpenQM

QM started life in 1993 as an embedded database in applications from Ladybridge Systems where the end user did not need to know about the underlying data storage technology. It was released in its own right in mid-2001 on Windows systems and extended to Linux in 2003 and FreeBSD in 2004. The users of this product can be found worldwide and span a wide range of industries.

Although QM is highly compatible with other MultiValue environments it is a totally independent product. Where functions are widely supported across MultiValue products, QM usually supports them too. Features that are unique to a specific MultiValue product are usually implemented in a different way in QM. The internal code is 100% proprietary with the exception of a few public domain items such as the data encryption algorithms.

## Managed Application Environment

QM applications are developed using a modern derivative of the Basic programming language, QMBasic, which is easy to learn and provides powerful data manipulation operations that can significantly increase developer productivity. Combined with the advantages offered by the MultiValue data model, development times as low as one tenth of those for other methodologies have been reported.

QMBasic is a managed environment in which tasks such as memory management, low level file handling, etc. are handled by QM, simplifying development and reducing errors. Although it is a derivative of the original Basic language (much like Visual Basic and others), QMBasic includes fully integrated object oriented programming capabilities, powerful string manipulation functions and many other advanced features.

The application environment has a very small resource footprint and is highly scalable for systems with large user populations.

Although historically MultiValue database environments have used character mode (“green screen”) interfaces, QM allows rapid development of graphical user interfaces for web browsers and other GUI technology such as Visual Basic. The QMClient API allows connection from a wide variety of other programming languages such as C, PHP, Java, ASP, etc. The AccuTerm™ terminal emulator bundled with every QM license provides support for both character mode and advanced GUI applications and there are advanced tools to make development even faster.

The QM environment needs little or no routine maintenance. Many QM sites have no System Administrator. Just about the only administrative task that needs to be performed is regular backup of data to protect from disk drive failures and similar events.

## The MultiValue Data Model

QM uses the MultiValue or post-relational model in which the First Law of Normalization is discarded, allowing multiple values such as a list of products in an order to be stored together. The result is a data model that is more closely related to the real world and has the opportunity of giving significant performance improvements by keeping associated data together rather than being forced to separate it in order to comply with an apparently arbitrary rule. Whereas a fully normalized set of data can be represented in a post-relational database such as QM with no modification, the converse is not true.

Combine the power of multivalued data with a natural language query processor for report generation and the QMBasic programming language for application development and you have OpenQM. A wide range of tools for use in both development and live environments further enhance the capabilities of this product.

MultiValue database technology has been around for about as long as the fully normalized relational model but has not received the recognition that it deserves due to low levels of advertising, lack of use within educational environments and, perhaps most importantly of all, high prices charged by some vendors. OpenQM aims to bring MultiValue database technology into far wider use by providing a powerful MultiValue product and associated support services at a sensible price.[1]

## References

Cite error: Invalid <references> tag; parameter "group" is allowed only.

Use <references />, or <references group="..." />

## Notes

• Detailed description see MultiValue Data Model in Documentation of OpenQM. - http://www.openqm-zumasys.com/openqm/what-is-multivalue/