IBM Business System 12 - IBM Business System 12

Бизнес - система 12 , или просто BS12 , был один из первых полностью реляционных систем управления базами данных , разработанных и реализованных IBM «s Бюро обслуживания дочерней компании в международном центре развития компании в Uithoorn , Нидерланды . Программирование началось в 1978 году, а первая версия была выпущена в 1982 году. Она никогда не использовалась широко и практически исчезла вскоре после закрытия подразделения в 1985 году, возможно, потому, что IBM и другие компании остановились на SQL в качестве стандарта.

Неизменным вкладом BS12 в историю стало использование нового языка запросов на основе ISBL , созданного в британском научном центре IBM . С разработчиками знаменитой System R, находившейся в то же время в США, также консультировались по определенным вопросам, касающимся движка, но команда BS12 однозначно отвергла SQL , будучи убеждена, что этот явно ненадежный и сложный в использовании язык (который в то время был также относительно неполным) никогда не завоевал популярность.

BS12 включает ряд интересных функций, которые еще не появились в большинстве систем на основе SQL, некоторые из которых являются следствием прецедента ISBL, другие - преднамеренным дизайном. Например, представление может быть параметризовано, а параметры могут иметь тип TABLE. Таким образом, представление может фактически быть новым оператором отношения, определенным в терминах существующих операторов. Оператор Codd 's DIVIDE был фактически реализован таким образом.

Еще одна особенность, которую можно было бы легко включить в системы SQL, - это поддержка операций обновления таблиц каталога (системные таблицы, описывающие структуру базы данных, как в SQL). Новую таблицу можно создать, вставив строку в TABLESкаталог, а затем добавив в нее столбцы путем вставки в COLUMNS.

Вдобавок BS12 опередил SQL в поддержке определяемых пользователем функций и процедур, используя полный вычислительный подъязык, триггеры и простой интерфейс «вызова» для использования прикладными программами, и все это в своей самой первой версии в 1982 году.

пример

Пример запроса для определения того, какие отделы превышают бюджет заработной платы:

 T1 = SUMMARY(EMP, GROUP(DEPTNUM), EMPS=COUNT, SALSUM=SUM(SALARY))
 T2 = JOIN(T1, DEPT) 
 T3 = SELECT(T2, SALSUM > BUDGET)

Обратите внимание на «естественное соединение» в общем столбце DEPTNUM . Хотя некоторые диалекты SQL поддерживают естественные соединения, для ознакомления в примере будет показано только «традиционное» соединение. Вот эквивалентный SQL для сравнения:

  -- (SQL Version) 
  SELECT d.Deptnum, Count(*) as Emps, 
    Sum(e.Salary) as Salsum, Budget
  FROM Emp as e
  JOIN Dept as d ON e.Deptnum = d.Deptnum
  GROUP BY d.Deptnum, Budget
  HAVING Sum(e.Salary) > Budget

Смотрите также

Ссылки

внешние ссылки