NonStop SQL is a database management system designed for 24x7 availability, high scalability, and excellent performance of online transaction processing (OLTP). The availability is achieved by isolation -- the transactions affected by hardware or software failures will be recovered without affecting other transactions. As for scalability, NonStop SQL is able to scale up almost linearly. It's regarded as a base for highly parallel systems. The fast OLTP is due to the row-partition storage model and fine granularity. The lock on data can be at the individual row level. NonStop SQL is widely used in stock exchanges, banks, and telecommunications.
NonStop SQL is the first SQL implementation with fast performance of online transaction processing (OLTP). Previously, all SQL database management systems had a slow OLTP performance, but they were still widely used due to the simplicity of SQL. To compensate, people often used a second, non-SQL database management system for OLTP-heavy tasks. The company who developed NonStop SQL -- Tandem -- decided to relieve people from the double database usage. 25 developers of Tandem spent 3 years to write .5 million lines of code as the code base of NonStop SQL.
NonStop SQL supports the basic features of relational database management systems. What distinguish it from many other relational DBMS are the additional features providing excellent OLTP performance, availability, and scalability.
The query compiler transforms the SQL source commands into executable query plans in host language. The executable query plans and the SQL source commands are stored in a newly created object program file.
NonStop SQL supports B+ tree index. By default, the primary key is used as the index of a table. To speed up the non-primary key look up, an index table can be created based on selected columns.
NonStop SQL uses the N-ary Storage Model, which is appropriate for heavy OLTP workloads.
Whenever a view is created, NonStop SQL stores a view definition instead of the materialized table. Whenever a user selects data from a view, the data is directly retrieved from the underlying base tables.
The data of every table is stored in one or more disk files. Each disk file has a label storing the name and catalog information of the associated table.