IBM Peterlee Relational Test Vehicle

PRTV (Peterlee Relational Test Vehicle) was the world's first relational database management system that could handle significant data volumes.

It was a relational query system with powerful query facilities, but very limited update facility and no simultaneous multiuser facility. PRTV was a successor from the very first relational implementation, IS1.

Features
PRTV included several firsts in the relational database area:
 * implemented relational optimizer
 * implemented cost-based relational optimizer
 * handle tables of 1,000 rows up to 10,000,000 rows
 * user-defined functions (UDFs) within an RDB (also a large suite of built-in functions such as trigonometric and statistical)
 * geographic information system based on an RDB (using UDFs such as point-in-polygon).

PRTV was based on a relational algebra, Information Systems Base Language (ISBL) and followed the relational model very strictly. Even features such as user-defined functions were formalized within that model. The PRTV team also introduced surrogates to the relational model to help formalize relational update operations; and a formalisation for updating through views. However neither of these was implemented within PRTV. PRTV emphatically did not implement NULL values, because this conception was introduced only in 1979.

PRTV was itself never available as a product, but the Urban Management System built on it was available as a limited IBM product.

Implementation
PRTV was written in a mixture of languages. The higher layers were written in MP/3 and PL/I, whereas the lower layers were written in PL/I and System/370 assembler language. MP/3 was a macro processing language developed at Peterlee from 1973 onwards, similar to ML/I or TRAC. PRTV ran on System/370 IBM mainframes.