Читаю про System R и пребываю в тихом шоке. Оказывается, к 1979 году мы имели (в современной терминологии Oracle):
- полноценный SQL, в том числе поддержку динамических запросов;
- многопользовательский доступ, обеспечиваемый механизмом транзакций (несколько уровней изоляции) и блокировок (включая латчи);
- стоимостной оптимизатор с учётом ввода-вывода и процессорного времени (!), работающий на основе собираемой статистики;
- библиотечный кэш: предварительная компиляция полученного плана выполнения, механизм инвалидации на основе отслеживания зависимостей;
- восстановление после сбоев на основе журналов отката и повторного выполнения;
- индексы B-tree, методы соединения nested loops и sort merge join.
Всего добра было порядка 80 тысяч строк кода (PL/I и ассемблер), работала система на одном мегабайте ОЗУ. Признаться, я проникся серьёзным уважением к команде, которая придумала техническую реализацию, актуальную по сей день, и воплотила её. Снова убеждаюсь в том, что всё великое уже было сделано в 60-е и 70-е...