Открыть сервис

System R

System R — это экспериментальная реляционная система управления базами данных (СУБД), разработанная в исследовательской лаборатории компании IBM в Сан-Хосе (Калифорния) в 1970-х годах. Она стала первой реализацией реляционной модели данных, предложенной Эдгаром Коддом в 1970 году, и оказала определяющее влияние на развитие современных реляционных СУБД, включая коммерческие продукты IBM (SQL/DS, DB2) и других вендоров.

История

Предпосылки и создание

Идея реляционной модели, предложенная Эдгаром Ф. Коддом в статье 1970 года «A Relational Model of Data for Large Shared Data Banks», предполагала организацию данных в виде таблиц (отношений) с операциями реляционной алгебры, что позволяло избавиться от сложных навигационных связей, характерных для иерархических и сетевых СУБД того времени. Руководство IBM, однако, первоначально не проявило значительного энтузиазма, так как компания уже имела успешную иерархическую СУБД IMS (Information Management System). Тем не менее, под влиянием Кодда и других учёных, в 1974 году в лаборатории IBM в Сан-Хосе был запущен проект по созданию экспериментальной реляционной СУБД. Проект получил название System R (буква «R» — от «relational» — «реляционная»).

Ключевые этапы разработки

Разработка System R велась с 1974 по 1979 год. Проект прошёл несколько фаз:

Архитектура и особенности

Многоуровневая архитектура

System R использовала многоуровневую архитектуру, изолирующую пользовательскую логику от физического хранения данных:

Язык SQL (SEQUEL)

Язык запросов SEQUEL (позднее — SQL, Structured Query Language) стал главным наследием System R. Он включал команды для определения данных (CREATE TABLE), манипулирования данными (SELECT, INSERT, UPDATE, DELETE) и управления доступом. SQL был объявлен стандартом ANSI и ISO в 1986–1987 годах (SQL-86), после чего стал основным языком реляционных СУБД.

Оптимизация запросов

В System R был реализован один из первых оптимизаторов запросов на основе стоимости (cost-based optimizer). Он анализировал статистику по таблицам (кардинальность, распределение значений) и выбирал наиболее эффективный план выполнения запроса из нескольких альтернативных. Эта техника лежит в основе всех современных реляционных СУБД.

Управление транзакциями

Для обеспечения изоляции параллельных транзакций System R использовала механизм двухфазной блокировки (Two-Phase Locking, 2PL), предложенный Джимом Греем. Транзакции могли быть откатаны (ROLLBACK) в случае ошибки, а система поддерживала ацидность (атомарность, согласованность, изолированность, долговечность — свойства ACID) с помощью журнала упреждающей записи (WAL, Write-Ahead Logging).

Влияние и наследие

System R никогда не была коммерчески продаваемым продуктом, но её архитектурные решения и языковые разработки стали основой для практически всех реляционных СУБД, созданных впоследствии. Среди прямых потомков:

Ключевые технологические инновации, внедрённые в System R:

Критика и ограничения

Несмотря на огромное влияние, System R имела ряд недостатков, позже устранённых в её коммерческих версиях:

Тем не менее, экспериментальный характер System R позволил разработать и протестировать фундаментальные принципы, которые сделали возможным массовое внедрение реляционных баз данных в корпоративных и веб-системах.

Источники

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →