IBM System R — различия между версиями

Материал из Национальной библиотеки им. Н. Э. Баумана
(Новая страница: «{{статья пишется}}»)
 
(не показаны 2 промежуточные версии этого же участника)
Строка 1: Строка 1:
{{статья пишется}}
+
{{Infobox software
 +
| name                  = IBM System R
 +
| logo                  = [[Файл:IBM.png|150px]]
 +
| developer              = IBM
 +
| latest release version =
 +
| latest release date    =
 +
| status                = Неактивное
 +
| programming language  = [[C]]
 +
| operating system      =
 +
| license                = IBM
 +
| website                = https://www.ibm.com/ru-ru
 +
}}
 +
'''''IBM System R''''' – это реляционная [[СУБД]], созданная в середине 1970-х – начале 1980-х. System R<ref>{{cite web|url=https://www.mcjones.org/System_R/|title= System R - Main|accessdate=May 22, 2020}}</ref> известна тем, что стала первой реализаций [[SQL]], который сейчас является стандартом языка запросов к реляционным базам данных. Данная система известна также тем, что является первой системой, продемонстрировавшей хорошую производительность реляционных СУБД.
 +
 
 +
== История создания ==
 +
System R – экспериментальная система управления базами данных, сконструированная для демонстрации использования преимуществ модели реляционных данных, реализованных в системе с законченным функционалом и хорошим представлением данных, необходимых для ежедневного использования.
 +
Развитие<ref>{{cite web|url=https://people.eecs.berkeley.edu/~brewer/cs262/SystemR.pdf|title=System R - History|accessdate=May 22, 2020}}</ref> System R проходило в 3 стадии.
 +
 
 +
=== Стадия 0: Начальный прототип (1974-1975 гг.) ===
 +
Так как перед разработчиками стояла задача использования реляционных БД с языком запросов SQL, начальная стадия разработки продукта заключалась в:
 +
• Создании интерпретатора SQL;
 +
• Реализация подмножества функционала SQL, включающего запросы и обновления БД как динамического создания новых связей в БД
 +
Однако, так как SQL являлся новым языком, начальная стадия в основном заключалась в человеческих факторах создания продукта: изучении языка, обсуждения реализации и использования.
 +
 
 +
=== Стадия 1: Создание прототипа мультипользователя (1976-1977 гг.) ===
 +
Данная стадия разработки была сосредоточена на создании интерфейса и реализации полного функционала, мультипользовательской версии System R. В это время разработка была сосредоточена на создании методов доступа к БД и оптимизации обработчика SQL запросов.
 +
Прототип мультиюзера содержал несколько важных подсистем, которые не были введены в Стадии 0. Во избежание «гонки данных» между двумя пользователями при обновлении одних и тех же данных в БД была введена подсистема блокировок. Также были добавлены подсистемы авторизации, подсистемы обработки запросов.
 +
 
 +
=== Стадия 2: Эволюция (1978-1979 гг.) ===
 +
Данная стадия – это эволюция System R как системы, готовой и актуализированной к использованию. Данная стадия заключалась в проведении экспериментов с System R в реальных production-условиях. Результатом данных экспериментов стал выпуск тестовой версии System R.
 +
 
 +
== Разработка ==
 +
Группа разработчиков организовалась в две группы: группу верхнего уровня, которую в конце концов назвали RDS (Relational Data System) и интересы которой относились главным образом к языковым вопросам, и группа нижнего уровня под названием Research Storage System (RSS), которую больше интересовали вопросы физического управления данными.
 +
RSS группа начала разработку нового интерфейса управления данными с поддержкой индексов, блокировок, журнализации, мультидоступа и транзакций и подобного рода вещей. Тем временем разработчики RDS хотели построить прототип своего языка и нуждались в базе, а RSS была не готова. Единственное, чем они могли воспользоваться, - это нечто под названием XRM, разработанное Раймондом Лори в Научном центре Кембриджа. Поэтому в начальные дни был создан прототип языка над XRM. В прототипе были реализованы утверждения целостности.
 +
Приведем рассуждения Дона Чемберлена <ref>{{cite web|url=https://en.wikipedia.org/wiki/Donald_D._Chamberlin|title=Don Chamberlin|accessdate=May 22, 2020}}</ref>:
 +
 
 +
Итак, вот чего хотела делать языковая группа (RDS), когда мы первый раз организовались: мы начали с основы SQUARE, но мы были не слишком удовлетворены этим. Прежде всего, было невозможно вводить текст с помощью клавиатуры, поскольку в языке использовалась куча забавных символов. Поэтому мы начали с разговоров, что нужно адаптировать идеи SQUARE к подходу с применением англоязычных ключевых слов. Такой текст было легче вводить, поскольку он основывался на структурах английского языка. Мы назвали этот язык Structured English Query Language (структурированный англоязычный язык запросов) и использовали акроним SEQUEL. И мы приступили к построению прототипа SEQUEL на основе метода доступа Раймонда Лори под названием XRM<ref>{{cite web|url=http://www.tadviser.ru/index.php/Продукт:Terrasoft_XRM|title=XRM|accessdate=May 22, 2020}}</ref>.
 +
В это время нам захотелось выяснить, годится ли этот синтаксис для чего-либо, а в нашем штате, по непонятным причинам, имелся лингвист.
 +
Результаты исследований показали, что если достаточно усердно трудиться, то можно обучить SQL студентов колледжа. Мы думали, что мы даем возможность взаимодействовать с базами данных непрограммистам. Мы думали, что открываем доступ к данным целому новому классу людей, которые могли бы что-то сделать, но не имели такой возможности, поскольку не умеют программировать. Это происходило до наступления эпохи графических пользовательских интерфейсов, которые, в конечном счете, произвели своего рода революцию; но мы ничего не знали об этом и думали, что мы обогащаем мир, делая данные доступными для непрограммистов.
 +
Однако, реальная проблема, над которой мы не думали - или, по крайней мере, которой не уделяли достаточного внимания, - состояла в том, как встраивать языки запросов в языки программирования и как сделать язык, который служил бы средством обмена между разными системами. Именно в таких применениях язык SQL добился наибольшего успеха, а совсем не как язык конечных незапланированных пользователей. Так что проблема, которую мы решили, была совсем не той, про которую мы думали, что ее решаем.  Так или иначе, мы работали над этим языком, переделывая для этого SQUARE и подлаживая его к английскому языку, а затем мы начали добавлять к языку кучу вещей типа GROUP BY, которые совсем не были унаследованы от SQUARE. Так что нельзя сказать, что мы были очень удовлетворены SQUARE.
 +
 
 +
Далее, вследствие невозможности необходимой реализации System R в то время, группа разработчиков пришла к понятию промежуточного уровня, названного SLI - System Logical Interface. Он должен был обеспечить возможность выполнения запросов над множествами, но только с одним индексом, одним полем и одной таблицей. SEQUEL должен был каким-то образом транслироваться в эти более мелкие вещи, и нужно было склеивать сложные запросы. Над этой идеей приступила работать группа RDS, в то время как разрабатывался прототип Фазы Ноль. Но в действительности никому из разработчиков не нравился SLI, поэтому работа постепенно истощалась.
 +
 
 +
Одна из сильных идей состояла в том, что разработчики хотели поддерживать все модели данных, поэтому в RSS поддерживались связи, фактически, цепочки указателей, и идея состояла в том, чтобы поддерживать иерархические, сетевые и реляционные структуры данных. Было видно явное стремление построить универсальную вещь низкого уровня, независимую от того, что находится на верхнем уровне.
 +
 
 +
Другим важным моментом был упор на то, чтобы многочисленные подсистемы верхнего уровня могли использовать общее ядро нижнего уровня. Такие попытки предпринимались во всех системах, которые появились после System R, и все эти попытки провалились.
 +
 
 +
Таким образом, разработка System R оказала сильное влияние на все последующие реализации СУБД, фактически, положив начало этой отрасли.
 +
 
 +
== Дальнейшая судьба ==
 +
Поскольку System R являлось первой системой<ref>{{cite web|url=http://citforum.ru/database/digest/sql3.shtml|title=System R - About|accessdate=May 22, 2020|}}</ref> для управления реляционными базами данных, она не имела колоссального коммерческого успеха, однако стоит отметить, что именно данный продукт положил начало серьезному рассмотрению реляционных СУБД в архитектурном и коммерческом проектировании. Однако многие архитектурные решения, равно как и некоторые фундаментальные алгоритмы (например, динамическое программирование, использованное в оптимизаторе запросов), повлияли на большинство последующих реляционных СУБД от разных производителей.
 +
Результатом развития System R стала разработка семейства систем управления реляционными БД IBM DB2.
 +
 
 +
== Примечания: ==

Версия 22:48, 22 мая 2020

IBM System R
IBM.png
Разработчики: IBM
Состояние разработки: Неактивное
Написана на: C
Лицензия: IBM
Веб-сайт https://www.ibm.com/ru-ru

IBM System R – это реляционная СУБД, созданная в середине 1970-х – начале 1980-х. System R[1] известна тем, что стала первой реализаций SQL, который сейчас является стандартом языка запросов к реляционным базам данных. Данная система известна также тем, что является первой системой, продемонстрировавшей хорошую производительность реляционных СУБД.

История создания

System R – экспериментальная система управления базами данных, сконструированная для демонстрации использования преимуществ модели реляционных данных, реализованных в системе с законченным функционалом и хорошим представлением данных, необходимых для ежедневного использования. Развитие[2] System R проходило в 3 стадии.

Стадия 0: Начальный прототип (1974-1975 гг.)

Так как перед разработчиками стояла задача использования реляционных БД с языком запросов SQL, начальная стадия разработки продукта заключалась в: • Создании интерпретатора SQL; • Реализация подмножества функционала SQL, включающего запросы и обновления БД как динамического создания новых связей в БД Однако, так как SQL являлся новым языком, начальная стадия в основном заключалась в человеческих факторах создания продукта: изучении языка, обсуждения реализации и использования.

Стадия 1: Создание прототипа мультипользователя (1976-1977 гг.)

Данная стадия разработки была сосредоточена на создании интерфейса и реализации полного функционала, мультипользовательской версии System R. В это время разработка была сосредоточена на создании методов доступа к БД и оптимизации обработчика SQL запросов. Прототип мультиюзера содержал несколько важных подсистем, которые не были введены в Стадии 0. Во избежание «гонки данных» между двумя пользователями при обновлении одних и тех же данных в БД была введена подсистема блокировок. Также были добавлены подсистемы авторизации, подсистемы обработки запросов.

Стадия 2: Эволюция (1978-1979 гг.)

Данная стадия – это эволюция System R как системы, готовой и актуализированной к использованию. Данная стадия заключалась в проведении экспериментов с System R в реальных production-условиях. Результатом данных экспериментов стал выпуск тестовой версии System R.

Разработка

Группа разработчиков организовалась в две группы: группу верхнего уровня, которую в конце концов назвали RDS (Relational Data System) и интересы которой относились главным образом к языковым вопросам, и группа нижнего уровня под названием Research Storage System (RSS), которую больше интересовали вопросы физического управления данными. RSS группа начала разработку нового интерфейса управления данными с поддержкой индексов, блокировок, журнализации, мультидоступа и транзакций и подобного рода вещей. Тем временем разработчики RDS хотели построить прототип своего языка и нуждались в базе, а RSS была не готова. Единственное, чем они могли воспользоваться, - это нечто под названием XRM, разработанное Раймондом Лори в Научном центре Кембриджа. Поэтому в начальные дни был создан прототип языка над XRM. В прототипе были реализованы утверждения целостности. Приведем рассуждения Дона Чемберлена [3]:

Итак, вот чего хотела делать языковая группа (RDS), когда мы первый раз организовались: мы начали с основы SQUARE, но мы были не слишком удовлетворены этим. Прежде всего, было невозможно вводить текст с помощью клавиатуры, поскольку в языке использовалась куча забавных символов. Поэтому мы начали с разговоров, что нужно адаптировать идеи SQUARE к подходу с применением англоязычных ключевых слов. Такой текст было легче вводить, поскольку он основывался на структурах английского языка. Мы назвали этот язык Structured English Query Language (структурированный англоязычный язык запросов) и использовали акроним SEQUEL. И мы приступили к построению прототипа SEQUEL на основе метода доступа Раймонда Лори под названием XRM[4]. В это время нам захотелось выяснить, годится ли этот синтаксис для чего-либо, а в нашем штате, по непонятным причинам, имелся лингвист. Результаты исследований показали, что если достаточно усердно трудиться, то можно обучить SQL студентов колледжа. Мы думали, что мы даем возможность взаимодействовать с базами данных непрограммистам. Мы думали, что открываем доступ к данным целому новому классу людей, которые могли бы что-то сделать, но не имели такой возможности, поскольку не умеют программировать. Это происходило до наступления эпохи графических пользовательских интерфейсов, которые, в конечном счете, произвели своего рода революцию; но мы ничего не знали об этом и думали, что мы обогащаем мир, делая данные доступными для непрограммистов. Однако, реальная проблема, над которой мы не думали - или, по крайней мере, которой не уделяли достаточного внимания, - состояла в том, как встраивать языки запросов в языки программирования и как сделать язык, который служил бы средством обмена между разными системами. Именно в таких применениях язык SQL добился наибольшего успеха, а совсем не как язык конечных незапланированных пользователей. Так что проблема, которую мы решили, была совсем не той, про которую мы думали, что ее решаем. Так или иначе, мы работали над этим языком, переделывая для этого SQUARE и подлаживая его к английскому языку, а затем мы начали добавлять к языку кучу вещей типа GROUP BY, которые совсем не были унаследованы от SQUARE. Так что нельзя сказать, что мы были очень удовлетворены SQUARE.

Далее, вследствие невозможности необходимой реализации System R в то время, группа разработчиков пришла к понятию промежуточного уровня, названного SLI - System Logical Interface. Он должен был обеспечить возможность выполнения запросов над множествами, но только с одним индексом, одним полем и одной таблицей. SEQUEL должен был каким-то образом транслироваться в эти более мелкие вещи, и нужно было склеивать сложные запросы. Над этой идеей приступила работать группа RDS, в то время как разрабатывался прототип Фазы Ноль. Но в действительности никому из разработчиков не нравился SLI, поэтому работа постепенно истощалась.

Одна из сильных идей состояла в том, что разработчики хотели поддерживать все модели данных, поэтому в RSS поддерживались связи, фактически, цепочки указателей, и идея состояла в том, чтобы поддерживать иерархические, сетевые и реляционные структуры данных. Было видно явное стремление построить универсальную вещь низкого уровня, независимую от того, что находится на верхнем уровне.

Другим важным моментом был упор на то, чтобы многочисленные подсистемы верхнего уровня могли использовать общее ядро нижнего уровня. Такие попытки предпринимались во всех системах, которые появились после System R, и все эти попытки провалились.

Таким образом, разработка System R оказала сильное влияние на все последующие реализации СУБД, фактически, положив начало этой отрасли.

Дальнейшая судьба

Поскольку System R являлось первой системой[5] для управления реляционными базами данных, она не имела колоссального коммерческого успеха, однако стоит отметить, что именно данный продукт положил начало серьезному рассмотрению реляционных СУБД в архитектурном и коммерческом проектировании. Однако многие архитектурные решения, равно как и некоторые фундаментальные алгоритмы (например, динамическое программирование, использованное в оптимизаторе запросов), повлияли на большинство последующих реляционных СУБД от разных производителей. Результатом развития System R стала разработка семейства систем управления реляционными БД IBM DB2.

Примечания:

  1. "System R - Main". Retrieved May 22, 2020. 
  2. "System R - History" (PDF). Retrieved May 22, 2020. 
  3. "Don Chamberlin". Retrieved May 22, 2020. 
  4. "XRM". Retrieved May 22, 2020. 
  5. "System R - About". Retrieved May 22, 2020.