Oracle Rdb
Original author(s) | Digital Equipment Corporation |
---|---|
Developer(s) | Oracle Corporation |
Initial release | 1984 |
Stable release | |
Operating system | OpenVMS Previously: Tru64, Windows NT, VAXELN |
Platform | VAX, Alpha, IA-64 Planned: x86-64 |
Type | Relational database management system |
License | Proprietary |
Website | oracle |
Oracle Rdb is a relational database management system (RDBMS) for the OpenVMS operating system. It was originally created by Digital Equipment Corporation (DEC) in 1984[2] as part of the VMS Information Architecture, intended to be used for data storage and retrieval by high-level languages and/or other DEC products such as DATATRIEVE, ACMS, RALLY, and TEAMDATA. The original name was VAX Rdb/VMS.[3]
Product history
In 1994 DEC sold the Rdb division to Oracle Corporation where it was rebranded Oracle Rdb. As of 2020, Oracle is still actively developing Rdb, with over half of the codebase developed under Oracle's ownership.[4] It currently runs on OpenVMS for VAX, Alpha and IA-64 (Itanium).
Rdb featured one of the first cost-based optimizers, and after acquisition Oracle introduced a cost-based optimizer in its regular Oracle RDBMS product.
On March 22, 2011, Oracle announced it has decided to end all software development on the Itanium, and that Oracle Rdb 7.3 would be the last major version released by Oracle. Due to a lawsuit filed by HP against Oracle, Oracle was ordered to continue porting its software to Itanium computers for as long as HP (now Hewlett-Packard Enterprise) sells Itanium computers.[5]
Despite the previous announcement that 7.3 would be the last major release, Oracle released version 7.4.1.0 of Rdb in August 2020 for both the Itanium and Alpha releases of OpenVMS.[1]
In November 2020, Oracle announced that they are in the process of porting Rdb 7.4 to the x86-64 port of OpenVMS.[6]
Data access
Interactive access to the Oracle Rdb can be by SQL (Structured Query Language), RDO (Relational Database Operator), or both.
High level languages usually access Oracle-Rdb by:
- embedding RDO statements in the source file then running it through a precompiler
- (example: "file.RCO" is pre-compiled into "file.COB")
- embedding SQL statements in the source file then running it through a precompiler
- (example: "file.SCO" is pre-compiled into "file.COB")
- placing the SQL statements in a file external to the source code; this separate file is converted to object code by the "SQL Module Language" compiler, and the source code then references these SQL statements and, after compilation, the two are joined by the OpenVMS linker.
example: $ SQL$MOD file_bas.sqlmod → file_bas.obj $ BASIC file.bas → file.obj $ LINK file.obj,file_bas.obj → file.exe
A variation of example 3 allows "Dynamic SQL" to be created in the source code, and then used to communicate with Rdb via a structure known as SQLDA (SQL Descriptor Area).
On OpenVMS systems, Oracle Rdb is a popular (although expensive) upgrade path for applications written using Record Management Services (RMS) files.
Architecture
Rdb is built on top of a low-level database kernel named KODA, which handles functionality such as locking, journaling, and buffering of data.[7] The KODA kernel is shared with Oracle's CODASYL DBMS (originally known as VAX DBMS) which is a network model database.[8]
Rdb on other platforms
VAX Rdb/ELN was the name of Digital's relational database for the VAXELN operating system. Despite sharing the Rdb name, and being announced at the same time, Rdb/ELN was not based on Rdb/VMS, or vice-versa.[9] Rdb/ELN was created by Jim Starkey, and was the first commercially available database to use Multiversion concurrency control.[10]
Ports of Rdb previously existed or were planned for Tru64 and Microsoft Windows NT. Demand for the Tru64 version was so low that support was dropped. The Windows NT port was never released as Oracle could not obtain support on the compilers necessary for this platform. In order to port Rdb to these platforms, an abstraction layer named the Common Operating System Interface (COSI) was implemented to isolate the database from the underlying operating system.[11]
Digital provided a relational database for their Ultrix operating system named ULTRIX/SQL, but it was based on Ingres instead of Rdb.[12]
References
- ^ a b "Oracle Rdb Product Family Compatibility Matrix". oracle.com.
- ^ Ian Smith (2004). "Rdb's First 20 Years: Memories and Highlights" (PDF). Archived from the original (PDF) on 2005-11-03. Retrieved 2021-01-24.
- ^ http://gordonbell.azurewebsites.net/digital/timeline/1984-1.htm
- ^ Oracle Rdb Statement of Direction // Oracle
- ^ Oracle Itanium
- ^ "Rdb/x86". group.google.com. 2020-11-12. Retrieved 2020-11-12.
- ^ Mark Bradley (August 2003). "Guide to Database Performance and Tuning: Predicate Estimation" (PDF). Oracle Corporation. Retrieved 2021-01-29.
- ^ Gopalan Arun; Ashok Josh (August 1998). KODA - The Architecture And Interface Of A Data Model Independent Kernel. VLDB '98: Proceedings of the 24rd International Conference on Very Large Data Bases. Morgan Kaufmann Publishers Inc. Retrieved 2021-01-29.
- ^ "DEC launches new top-end VAX". April 1984. Retrieved 2020-11-12.
- ^ "A not-so-very technical discussion of Multi Version Concurrency Control". firebirdsql.org. Retrieved 2020-11-12.
- ^ "Porting Rdb to Itanium" (PDF). oracle.com. 2002. Retrieved 2020-11-15.
- ^ "ULTRIX/SQL Database Administrator's Guide" (PDF). bitsavers.org. June 1990. Retrieved 2020-11-12.