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

IBM System R

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

История

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

В 1970 году Эдгар Кодд, работавший в IBM, опубликовал статью «A Relational Model of Data for Large Shared Data Banks», в которой предложил новую модель организации данных, основанную на математическом понятии отношения (таблицы). В отличие от существовавших тогда иерархических и сетевых СУБД (например, IBM IMS), реляционная модель обещала более простой и гибкий доступ к данным через декларативные запросы, а не через навигационные процедуры.

Однако в IBM первоначально скептически отнеслись к идеям Кодда. Для проверки их практической реализуемости в 1974 году был запущен проект System R. Руководителями проекта стали Дональд Чемберлин (Donald D. Chamberlin) и Рэймонд Бойс (Raymond F. Boyce), а в команду вошли такие исследователи, как Майкл Стоунбрейкер (Michael Stonebraker), Джим Грей (Jim Gray) и другие.

Разработка и прототипы

Проект System R прошёл несколько этапов:

Влияние на индустрию

System R оказала огромное влияние на развитие баз данных. В 1979 году, после завершения проекта, IBM выпустила коммерческий продукт — IBM SQL/DS (позже переименованный в IBM DB2), который был основан на архитектуре System R. Параллельно некоторые участники проекта, включая Майкла Стоунбрейкера, основали компанию Oracle (изначально называвшуюся Software Development Laboratories), которая выпустила первую коммерческую реляционную СУБД в 1979 году, также основанную на принципах System R.

Архитектура и ключевые особенности

Язык SQL

Система R ввела в обиход язык SQL (Structured Query Language), который стал стандартом для реляционных баз данных. SQL в System R поддерживал:

SQL в System R был декларативным: пользователь описывал, какие данные нужны, а не как их получить. Это кардинально отличалось от навигационных языков того времени.

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

System R использовала трёхуровневую архитектуру:

  1. Внешний уровень (External Level): представление данных для пользователей (виртуальные таблицы — представления, views).
  2. Концептуальный уровень (Conceptual Level): логическая структура всей базы данных (таблицы, связи, ограничения целостности).
  3. Внутренний уровень (Internal Level): физическое хранение данных на диске (методы доступа, индексы, страницы).

Такая архитектура позволяла изменять физическое хранение без изменения логической структуры, что обеспечивало физическую независимость данных.

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

System R включала один из первых оптимизаторов запросов. Он анализировал SQL-запрос и выбирал наиболее эффективный план выполнения, используя:

Оптимизатор System R базировался на динамическом программировании и мог обрабатывать запросы с несколькими соединениями.

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

Система R поддерживала транзакции с свойствами ACID (атомарность, согласованность, изолированность, долговечность). Для этого использовались:

Индексы

System R поддерживала индексы для ускорения поиска. Использовались:

Классификация

System R относится к следующим категориям:

Применение

Внутреннее использование в IBM

System R использовалась внутри IBM для:

Влияние на коммерческие продукты

System R стала основой для:

Наследие

System R продемонстрировала, что реляционная модель может быть эффективно реализована на практике. Её идеи (SQL, оптимизация запросов, управление транзакциями, индексы) стали стандартом для всех современных СУБД, включая PostgreSQL, MySQL, SQLite и другие.

Критика

Несмотря на успех, System R имела ряд недостатков:

Интересные факты

Источники

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

На главную BFOmetr →