IBM Db2 is a relational database management system that is focused on transactional and warehousing workloads.
IBM Db2 was originally designed for mainframe environments (z/OS). The original code was later ported to Db2 for Linux, UNIX, and Windows (LUW). The main difference between IBM Db2 z/OS and LUW is the database administration, but basic operations are similar. Nowadays, it can support many other platforms including i, VSE, and VM.
IBM Db2 came after System R and improved the SEQUEL in System R to SQL. In 2017, IBM Db2 was announced which is the successor name of DB2 (introduced in the 1980s).
IBM Db2 has four different code bases. The main reason is that in the early development, IBM had to meet the requirements of different customers and support different hardware and operating systems.
Two-Phase Locking (Deadlock Prevention) Optimistic Concurrency Control (OCC)
IBM Db2 supports OPTIMISTIC CONCURRENCY CONTROL (OCC) and Two-Phase Locking (2PL). OCC believes that values are unlikely to change before the update or deletion operations but will incur more retry logic in the application. IBM Db2 supports OCC since version 9.5, and the history of 2PL, which was first invented by IBM, can be dated back to 1970s.
Read Uncommitted Repeatable Read Cursor Stability
IBM Db2 supports four different kinds of isolation level, which are Repeatable read, Read stability, Cursor stability and Uncommitted read. The default level is cursor stability.
Nested Loop Join Hash Join Sort-Merge Join
IBM Db2 can support three different kinds of join algorithms, which are nested-loop join, merge join, and hash join. Hash join has the best performance among the three algorithms if memory is large enough to ensure hash loops will not interact with disks too often. To make the hash join works better, it is recommended to estimate and then set the memory large enough but without exceeding the memory limit.
IBM Db2 use disk as the primary storage location of data. Therefore, it is a disk-oriented DBMS. It is worth to mention that IBM Db2 can support multiple buffer pools, which is the connection between volatile and non-volatile storage. Multiple buffer pools have many advantages. For example, it can accelerate queries that need temporary storage by storing temporary data into separate buffer pools. Also, the data of some seldom-used applications can be stored separately to avoid flushing some hot data.
Decomposition Storage Model (Columnar)
IBM Db2 stores the values of a single attribute continuously in disk, i.e. DECOMPOSITION STORAGE MODEL (DSM). DSM is suitable for OLAP workloads as queries usually perform large scan over a subset of the attributes.
IBM Db2 supports three different kinds of Stored Procedures, which are external stored procedures, external SQL procedures (execute like external stored procedures), and native SQL procedures (create by a single SQL statement). The latter two are written entirely in SQL while the first one can be written in a host language.
Virtual Views Materialized Views
IBM Db2 supports both views and materialized views. For materialized views, it can be specified maintaining by system clause or user clause.
http://ibm.com/software/data/db2/
http://www-01.ibm.com/support/docview.wss?uid=swg27009474
IBM
1983