Бизнес - система 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 году.
Пример
Пример запроса для определения того, какие отделы превышают бюджет заработной платы: [1]
T1 = СВОДКА (EMP, ГРУППА (DEPTNUM), EMPS = COUNT, SALSUM = SUM (SALARY)) T2 = ПРИСОЕДИНИТЬСЯ (T1; ОТДЕЛЕНИЕ) T3 = ВЫБРАТЬ (T2; ОСНОВНАЯ СУММА> БЮДЖЕТ)
Обратите внимание на «естественное соединение» в общем столбце DEPTNUM . Хотя некоторые диалекты SQL поддерживают естественные соединения, для ознакомления в примере будет показано только «традиционное» соединение. Вот эквивалентный SQL для сравнения:
- (Версия SQL) ВЫБРАТЬ d . Столбец DEPTNUM , Count ( * ) , как EMPS , Сумма ( е . Заработная плата ) в качестве Salsum , бюджет ОТ Emp в электронных РЕГИСТРИРУЙТЕСЬ Dept , как д ВКЛ е . Deptnum = d . Deptnum GROUP BY d . Столбец DEPTNUM , бюджет HAVING Sum ( е . З ) > Бюджет
См. Также
- Третий манифест - уточнение идей, которыми руководствовался BS12
- D (спецификация языка данных) - предполагаемый преемник языка запросов BS12