UniVerse was originally developed by VMark Software and UniData was originally developed by the Unidata Corporation. Both Universe and Unidata are used for vertical application development and are embedded into the vertical software applications. In 1997, the Unidata Corporation merged with VMark Systems to form Ardent Software. In March 2000, Ardent Software was acquired by Informix. IBM subsequently acquired the database division of Informix in April 2001, making UniVerse and UniData part of IBM's DB2 product family. IBM subsequently created the Information Management group of which Data Management is one of the sub-areas under which the IBM U2 family comprised UniData and UniVerse along with the tools, SystemBuilder Extensible Architecture, U2 Web Development Environment and wIntegrate. On 1 October 2009 it was announced that Rocket Software had purchased the entire U2 portfolio from IBM. The U2 portfolio is grouped under the name RocketU2.
System structure
Accounts
Systems are made of one or more accounts. Accounts are directories stored on the hostoperating system that initially contain the set of files needed for the system to function properly. This includes the system's VOC file that contains every command, filename, keyword, alias, script, and other pointers. Each of these classes of VOC entries can also be created by a user.
Files
Files are similar to tables in a relational database in that each file has a unique name to distinguish it from other files and zero to multiple unique records that are logically related to each other. Files are made of two parts: a data file and a file dictionary. The data file contains records that store the actual data. The file dictionary may contain metadata to describe the contents or to output the contents of a file.
Hashed files
For hashed files, a U2 system uses a hashing algorithm to allocate the file's records into groups based on the record IDs. When searching for data in a hashed file, the system only searches the group where the record ID is stored, making the search process more efficient and quicker than searching through the whole file.
Nonhashed files
Nonhashed files are used to store data with little or no logical structure such as program source code, XML or plain text. This type of file is stored as a subdirectory within the account directory on the host operating system and may be read or edited using appropriate tools.
Records
Files are made of records, which are similar to rows within tables of a relational database. Each record has a unique key to distinguish it from other records in the file. These record IDs are typically hashed so that data can be retrieved quickly and efficiently. Records store the actual data as pure ASCII strings; there is no binary data stored in U2. For example, the hardware representation of a floating-point number would be converted to its ASCII equivalent before being stored. Usually these records are divided into fields. Each field is separated by a "field mark". Thus this string: might represent a record in the EMPLOYEE file with 123-45-6789 as the Record ID, JOHN JONES as the first field, jjones@company.com as the second field and $4321.00 as a monthly salary stored in the third field.. Thus the first three fields of this record, including the record ID and trailing field mark, would use 49 bytes of storage. A given value uses only as many bytes as needed. For example, in another record of the same file, JOHN JONES may be replaced by MARJORIE Q. HUMPERDINK yet each name uses only as much storage as it needs, plus one for the field mark. Fields may be broken down into values and even subvalues. Values are separated by value marks ; subvalues are separated by subvalue marks. Thus, if John Jones happened to get a second email address, the record may be updated to: where the close bracket represents a value mark. Since each email address can be the ID of a record in separate file, this provides the reason why U2 may be classified as a MultiValued database.
Data
Raw information is called Data. A record is a set of logical grouped data. e.g. an employee record will have data stored in the form of fields/attributes like his name, address etc.
Programmability
Both UniVerse and UniData have a structured BASIC language, similar to Pick/BASIC which naturally operates on the structures of the MultiValue database. They also have a structured database query language used to select records for further processing and for ad hoc queries and reports. RocketU2 provides a set of Client Tools to allow software developers to access U2 databases from other software languages. Client Tool interfaces include:
Both UniVerse and UniData support TLS transport level data encryption and record and file level encryption of data at rest using OpenSSL. Additional API encryption functionality is also available to allow custom solutions or meet specific regulatory requirements.
Rocket Software Universe and Unidata have limited ability to create web-based front-ends to Universe/UniData content. Since Rocket Software provides SQL access to its database products, a SQL-based product can be used to build a web-based UI to the databases; regardless of using Files or Tables in U2. A third-party application framework, can be used to build such web interfaces.