INTRODUCTION

Next Chapter: Working Environment

Welcome to Ovrimos! The current text presents Ovrimos version 2.0. This text is less technical than a programmer's guide and is meant as a concise on-line help text for users who have just obtained a copy of Ovrimos and wish to explore the product features.

Product description

Ovrimos is
a) a complete transactional data storage and retrieval system, based on the relational database model and
b) a programmable Web server.
It is a multi-user, relational database with ODBC and JDBC connectivity, demanding relatively few resources.
The client-server architecture it is based on, allows numerous concurrent users. Moreover, Ovrimos supports CGI, PERL DBI, the Unicode character set, and is ideal for Web databases.

Ovrimos is in the same "league" as other well known and established database engines (i.e. Oracle, Microsoft SQL Server, etc.), but has some distinctive characteristics that differentiate it from the rest and render it attractive and appealing to developers, EDP managers, and end-users. The more important of the above mentioned characteristics are:

Ovrimos AND USER GROUPS

Administrators

Version 2.5 of Ovrimos has features that are attractive to system administrators. The main ones are:

Developers

Ovrimos Version 2.5 is specially designed to cater to the needs of demanding developers. In view of the latter, it has advanced, and sometimes unique, features such as:

ISPs

Ovrimos Version 2.5 has some distinctive advantages for ISPs:

Corporate Users

There are reasons that Ovrimos is attractive to EDP managers and they should consider using it as their database platform:

End-Users

Ovrimos Version 2.5 is very appealing to end-users as well, as:

FEATURES SUPPORTED IN VERSION 2.5

SQL-89 / SQL2 (SQL-92) entry level

ODBC 2.0 support

ODBC 2.0 extended SQL grammar level 2 API plus Integrity Enhancement Facility (IEF): Some extra features are: selects in FROM clauses, updateable views, scrollable cursors, privilege inheritance (roles) for easier administration.

Multi-user operation, multi-CPU support: A very large number of users may connect to each database at the same time. Only about 150 KB of RAM space is required per session, therefore the limit is practically very high.

TCP/IP: The TCP/IP protocol is used as a communication means between client and server, either in single-user or in multi-user version.

Unlimited number of records: Up to a maximum of 4 billion records per table (2^32).

Referential integrity: All data manipulation is restricted by integrity rules specified at data description time. Enforcement of the rules is automatic.

Query optimization: An optimizer uses available keys and information about tables to produce an optimized query.

Data encryption: Data encryption, based on 256 bit keys, may be applied separately on each user database. The option to encrypt is selected at database creation time.

Transactions: A sequence of operations is guaranteed to be atomic for recovery purposes. The user can accept them all (commit) or discard them all (rollback) in a single operation.

Nested transactions: Ovrimos allows nested transactions up to, theoretically, any depth. Commit or rollback of a nested transaction is performed in the confines of its outer transaction.

Error recovery: Rollback of uncommitted transactions or roll-forward of committed ones after any failure.

Simple Backup/Restore facility: Ovrimos allows automatic and fast backup and restore of user's data.

Four isolation levels: All isolation levels, as described by the SQL Standard (i.e. Read uncommitted, Read committed, Repeatable read and Serializable) are implemented.

Interactive DDL (Data Description Language): Table, index, and user creation does not have to be performed by any separate DBA program. Interactive (direct) SQL is used for all DDL operations.

C, C++ API: Programmers may develop C or C++ applications, using Ovrimos through a programmer's library.

32-bit ODBC driver: A 32-bit ODBC driver is supplied for interfacing with other products.

BLOB support: It supports Binary Large Objects (BLOBs) for storing and retrieving arbitrary sized pieces of data.

JDBC 1.1 driver: A JDBC 1.1 driver is offered.

HTTP Server: An integrated HTTP server that can publish documents pertaining to the database, or all databases (e.g. the manual), can deploy Java applets to use the database from within Web browsers, can deliver MIME-typed BLOBs using special URLs.

CGI support: The SQL terminal provided doubles as a CGI program, allowing Web application writers to integrate results from parameterized SQL scripts into HTML pages.

Stored procedures: The users are able to write stored procedures in their favorite language, using a look-alike of the corresponding interface. For example, Java users will use an interface similar to JDBC, Perl users will use an interface similar to DBI. Nick-named AGI (Another Gateway Interface), it allows centralization of the business logic in OLTP (On-line Transaction Processing) applications.

CGI: A usable subset of CGI 1.1 has been implemented.

HTML interface for the user: The user will be able to browse the database catalog, perform SQL transactions and even upload SQL files for execution, using a conventional Web browser. This is possible due to an innovative implementation of persistent HTTP sessions. No client-side cookies are used.

HTML interface for the administrator: The administrator is able to monitor active connections and statements, thread usage and HTTP sessions and even shut down the database, using a conventional Web browser.

Domains: The user can define domains: subsets of basic types using SQL constraints.

Database manager: Database administration and monitoring of several databases handled by Ovrimos will be performed via the user's favorite browser.

Unicode: Unicode support in the form of UNICODE CHAR and UNICODE VARCHAR types.

UTC/Local Time: Times and timestamps are held in UTC (a.k.a. GMT) internally, but are interpreted relative to the session timezone, set by the user.

Bulk updates: Sets of update statements, up to approximately 64 KB worth of text, can be submitted to the server for very fast execution.

Server-side scripts: Users can take advantage of persistent HTTP sessions to write entire HTML applications using Scheme.

Memory mapping: A database file-to-memory mapping mechanism enhances performance since data storage and retrieval is done in the computer's main memory.

Operating System Platforms

Despite being lightweight, Ovrimos version 2.5 has been tested successfully with large databases on both Win 32 and U*x architectures. Particularly, version 2.5 will be available in the following operating systems:

Differences from previous versions

A few shortcomings of the previous versions are now overcome and some new features appear in version 2.5. The main additional features of version 2.5 are the following:

Stored Procedures
The users are now able to write stored procedures in the programming language in which they are fluent, using a look-alike of the corresponding interface. For example, Java users may use an interface similar to JDBC, Perl users may use an interface similar to DBI. Nick-named AGI (Another Gateway Interface), it allows speedups of orders of magnitude in OLTP (On-line Transaction Processing).
 
CGI and CGI scripts
A usable subset of CGI 1.1 is implemented. Besides, Ovrimos may now execute CGI scripts without the need of a separate Web server.
 
HTML interface for the user
The user is now able to browse the database catalog, perform SQL transactions and even upload SQL files for execution using a conventional Web browser. This is possible thanks to the implementation of persistent HTTP sessions. The best point of the technique used is that no client-side cookies are used.
 
HTML interface for the administrator
The administrator is now able to shutdown the database and monitor active connections and statements, as well as HTTP sessions, using a conventional Web browser.
 
Server-side scripts
Users can take advantage of persistent HTTP sessions to write entire HTML applications using Scheme.
 
Database Manager
Database administration and monitoring of several databases handled by Ovrimos is now performed via the user's favorite browser.
 
Domains
The user is now able to define domains: subsets of basic data types using SQL constraints.
 
Unicode
Unicode support is in form of UNICODE CHAR and UNICODE VARCHAR types. The implementation of Unicode allows users to employ Unicode as easily and effectively as ASCII.
 
UTC/Local Time
Times and Timestamps are held in UTC (a.k.a. GMT) internally, but are interpreted relative to the user's time zone. An example that sets the time zone is explained in the SQL Appendix.
 
Bulk Updates
Sets of update statements, up to approximately 64k worth of text, can be submitted to the server for very fast execution.

FUTURE ENHANCEMENTS

Next chapter: Working Environment