Unibase is a combined noSQL database and language that can specify an application and execute that specification directly. Unibase has been designed from the ground up as the ideal tool for agile development.
Unibase developers can modify the live application; DBAs are not required; the underlying database maintains efficient record storage and retrieval; and internal consistency checks protect the application and users from corrupt data and data definitions.
Unibase has built applications as diverse as retailing , POS, ERP, payroll, accounting, systems.
It incorporates in a loose but unified framework;
- a database manager
- an active data dictionary
- integrated web forms and reports
- data entry program
- report generator
- batch update program
- reliable communications between servers and applications
- interface to other utilities and scripting languages
- secure, user sensitive menu system
- http session control
- pdf generator
- several handy utilities
Unibase is a Fifth Generation Language (5GL) which offers:
- At lease one order of magnitude productivity increase
- Artificial Intelligence Engine
- Equation solving
- Natural or pictorial language
Unibase uses Artificial Intelligence (AI) to carry out many of the tasks usually done by the programmer such as working out how to find records in the database and what order to do calculations.
Unibase understands data models and application specifications which are executed directly without any compilation.
The distinguishing features of Unibase are the inherent reliability of developed applications, the low cost of maintenance, speed of application development, consistency of the user interface, and raw performance of the product.
Unibase applications are very robust and can be extensively modified while in service without interruption to working users.
Studies have shown that over the life of an application, 80% of the total cost can be attributed to maintenance, this being both the time taken to rectify the problem and the loss of productive work.
Unibase applications run on Linux.
Since the days of Charles Babbage the basic functions of a computer have not changed.
A computer collects information, optionally stores it, manipulates it, and presents it. That’s it.
An application is one or more instances of these four functions.
Each of the four functions has been studied extensively but up to now the solutions have always been one dimensional in their view and do not attempt to do something other than directly translate the data.
What does Unibase add?
Unibase adds the ability to describe how these functions relate and a tool that can use the description.
Unibase adds a semantic layer and research done by Zenucom shows that this layer changes completely the way an application is built.
The Semantic Layer
Semantics deals with the nature of things and that is just what Unibase does.
An easy comparison is the SQL join and the Unibase association.
A join is a command to join the data in two tables to produce a third table with attributes that are the combination of the two tables.
It is a mathematical statement.
An association describes the relationship between two tables so that if the Unibase engine needs to retrieve attributes from an associated table it has enough information to find the attributes.
It is a semantic statement.
Associations aren’t a simple join as the engine understands 1:n relationships, it understands unique relationships (eg foreign keys), etc and it treats them differently.
Unibase also understands that numbers aren’t numbers.
Counters and sequence numbers aren’t really numbers and shouldn’t be stored that way. It might be sensible to add something to a sequence, but it is not sensible to add two sequence numbers.
This is semantics.
Unibase uses a new kind of database technology called associative databases.
The difference between this and previous database structures is that an association tells Unibase how to find information in other files, but not when.
Unibase decides for itself when to use the associative information.
Associative databases are active in that reading a record from one file will read other records and do calculations if necessary.
The programmer does not program file opens, closes, reads, writes, selects, or calculations in the normal sense of programming.
These decisions are made by the Unibase programs.
All the programmer does is supply a specification of what is required, not how to do it.
In this sense an associative database is the next generation from current database technology.
The sum of things
Two unique things about the Unibase associations:
- When a report, or expression asks for a value from another table Unibase will work out how to get to the other table – and it might be a few hops away – and return a value that is the sum of that value from all the records taking part in the association.
- All required calculations required along the way are completed.
- The sum can be used directly in another calculation or displayed.
- The programmer does not need to know how Unibase got the value.
- In fact if any required associations or calculations are changed new values will be calculated without the programmer needing to know about the changes.
- Associations do not have to be based on exact matches. If a numeric field is part of an association the records in the association will be all the records that have the numeric attribute less than or equal to the value in the association.
- This means that Unibase can be used directly for curve fitting applications.
A normal RDBMS (Oracle etc) has a table with attributes that are stored.
A normal RDBMS also has stored procedures to make repetitive tasks easy.
Unibase has stored attributes and calculated attributes.
Calculated attributes are not stored procedures. They are expressions involving attributes in the current table and associated tables.
Calculated attributes can’t be stored, but that can be used to specify associations and they can be used in reports as if they were stored attributes.
This is a significant difference between Unibase and other database systems.
The data dictionary is meta data that describes the tables, their associations, expressions, and restrictions.
It is at the heart of Unibase and is required for the utilities to make sense of stored information.
To produce an application, two things are essential: data and knowledge about the data.
Knowledge about the table structures is stored in the data dictionary.
Unibase has a rich set of field types designed to make application building easy.
All data is stored as character text and table records can be remapped with a completely different record structure in the mapped table.
Reports are just layouts that specify page headers and footers, record formats, subtotals, totals, selection conditions, user input, page breaks, as well as miscellaneous data processing options such as moving parts of records between files, deleting records and updating records.
Like reports, web forms are layouts that specify data to be input – controlled by a local data dictionary; an input layout; and multiple scripts that can be called based on button clicks.
Unibase applications can communicate securely using a store and forward message system and an xml based transaction processor.
This is both a general purpose message system that can run remote commands and transfer data as well as special purpose system that knows about Unibase and can directly update tables.
Long before Docker, Unibase restricted user access to a working directory for a client and an application. Unibase is safe to use on a server shared by many clients and applications.
Unibase comes with a session management system to provide controlled access to applications.
Even more important, though, is that Unibase data and programs are not directly exposed to the internet. They can only be accessed through the Unibase cgi script (see below).
http and cgi
Unibase uses a single program to accept well formed get and post requests to run programs, update data, and store data.
Only users with valid sessions can use this program and it uses the session information to restrict more general system access.
Unibase includes a pdf generator for building simple and complex business documents.
- Data dictionary
- Equation solving
- Database navigation
- Layout language
- Alias tables
- Single dimension arrays (vectors)
- Active optimisation
- Automatic, optimistic table locking
- Direct execution of specifications (no compilation)
- High performance B+ tree structures
- Messaging system