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
Смотрите также
- Третий манифест - уточнение идей, которыми руководствовался BS12
- D (спецификация языка данных) - предполагаемый преемник языка запросов BS12