SQL/DS
SQL/DS (Structured Query Language/Data System) — это реляционная система управления базами данных (СУБД), разработанная корпорацией IBM. Она стала первой коммерчески доступной СУБД, реализующей язык SQL (Structured Query Language), который впоследствии превратился в международный стандарт для работы с реляционными базами данных. SQL/DS была выпущена в 1981 году для мейнфреймов IBM, работающих под управлением операционной системы DOS/VSE (Disk Operating System / Virtual Storage Extended), а затем и для VM/CMS (Virtual Machine / Conversational Monitor System).
История
Предпосылки создания
В начале 1970-х годов исследовательская лаборатория IBM в Сан-Хосе (ныне — Almaden Research Center) начала работу над проектом System R, целью которого было доказать практическую применимость реляционной модели данных, предложенной Эдгаром Коддом в 1970 году. В рамках проекта был разработан язык SEQUEL (Structured English Query Language), позже переименованный в SQL. System R не была коммерческим продуктом, но продемонстрировала, что реляционная модель может быть эффективно реализована на практике.
Разработка и выпуск
Успех прототипа System R побудил IBM начать разработку коммерческой версии. Первым продуктом стала SQL/DS, выпущенная в 1981 году. Она была ориентирована на операционную систему DOS/VSE, которая была широко распространена на мейнфреймах IBM среднего уровня. В 1982 году вышла версия для VM/CMS, более продвинутой операционной системы, поддерживающей виртуализацию.
Влияние и конкуренция
SQL/DS стала важной вехой в истории баз данных. Она доказала, что реляционные СУБД могут быть коммерчески успешными и эффективными. Однако в 1983 году IBM выпустила более мощную и функциональную СУБД — DB2 (Database 2), которая была ориентирована на операционную систему MVS (Multiple Virtual Storage) — флагманскую платформу для крупных мейнфреймов. DB2 быстро стала основным продуктом IBM в этой области, в то время как SQL/DS оставалась решением для менее требовательных сред. Тем не менее, именно SQL/DS, а не DB2, стала первой коммерческой реализацией SQL.
Дальнейшая судьба
SQL/DS активно развивалась и поддерживалась IBM до середины 1990-х годов. Последние версии продукта были выпущены в 1995 году. Впоследствии IBM прекратила поддержку SQL/DS, сосредоточив все усилия на развитии семейства DB2, которое стало основой для её стратегии в области управления данными. SQL/DS также оказала влияние на другие ранние реляционные СУБД, такие как Oracle (первая версия которой вышла в 1979 году, до SQL/DS, но на основе тех же идей) и Informix.
Архитектура и особенности
Реляционная модель
SQL/DS полностью реализовывала реляционную модель данных. Данные представлялись в виде таблиц (отношений), состоящих из строк (кортежей) и столбцов (атрибутов). Связи между таблицами устанавливались через общие значения, а не через указатели (как в иерархических или сетевых моделях). Это обеспечивало высокую гибкость и простоту запросов.
Язык SQL
SQL/DS поддерживала все основные операции языка SQL, определённые в проекте System R:
- DDL (Data Definition Language): команды
CREATE TABLE,CREATE INDEX,ALTER TABLE,DROP TABLEдля создания и изменения структуры базы данных. - DML (Data Manipulation Language): команды
SELECT,INSERT,UPDATE,DELETEдля манипуляции данными. - DCL (Data Control Language): команды
GRANTиREVOKEдля управления правами доступа.
SQL/DS также поддерживала подзапросы, соединения (JOIN), агрегатные функции (COUNT, SUM, AVG, MIN, MAX) и группировку (GROUP BY). Это был полноценный декларативный язык, позволяющий пользователям описывать, какие данные нужны, не указывая, как их получить.
Многоуровневая архитектура
SQL/DS имела многоуровневую архитектуру, которая обеспечивала изоляцию между физическим хранением данных и логическим представлением:
- Уровень хранилища (Storage System): отвечал за физическое размещение данных на дисках, управление памятью и буферами.
- Уровень доступа (Access Method): реализовывал индексы (B-деревья) и другие методы доступа к данным.
- Уровень ядра СУБД (RDS — Relational Data System): обрабатывал SQL-запросы, оптимизировал их выполнение, управлял транзакциями и поддержанием целостности.
Управление транзакциями
SQL/DS поддерживала транзакции — логически завершённые последовательности операций, которые выполняются атомарно (все или ничего). Для управления транзакциями использовались команды BEGIN TRANSACTION, COMMIT (фиксация изменений) и ROLLBACK (откат изменений). Это обеспечивало надёжность данных даже при сбоях системы. SQL/DS не поддерживала многоверсионность (MVCC), а использовала блокировки для обеспечения изоляции транзакций.
Ограничения и недостатки
По сравнению с современными СУБД, SQL/DS имела ряд ограничений:
- Ограниченная масштабируемость: была ориентирована на мейнфреймы среднего класса и не могла эффективно работать с очень большими объёмами данных (терабайтами).
- Отсутствие поддержки хранимых процедур и триггеров: вся логика обработки данных должна была быть реализована в прикладном коде.
- Ограниченная поддержка целостности: не было поддержки внешних ключей (
FOREIGN KEY) на уровне СУБД, что требовало от разработчиков самостоятельно обеспечивать ссылочную целостность. - Текстовый интерфейс: не имела графического интерфейса пользователя; все операции выполнялись через командную строку.
Применение
Основные сферы
SQL/DS использовалась в корпоративных средах, где требовалась надёжная и относительно недорогая система управления данными на мейнфреймах IBM. Основные области применения:
- Учёт и отчётность: ведение бухгалтерского учёта, складских запасов, кадрового учёта.
- Обработка транзакций: системы бронирования, заказов, управления финансами.
- Хранение справочной информации: каталоги, классификаторы, базы данных клиентов.
Примеры использования
SQL/DS активно применялась в государственных учреждениях, банках, страховых компаниях и производственных предприятиях, которые использовали мейнфреймы IBM. Она была особенно популярна в средах, где уже была развёрнута операционная система DOS/VSE, и требовалась миграция с устаревших иерархических СУБД (например, IMS) на реляционную модель.
Влияние на индустрию
Стандартизация SQL
SQL/DS, наряду с DB2, стала основой для стандартизации языка SQL. Первый международный стандарт SQL-86 (SQL1) был во многом основан на реализации SQL/DS и DB2. Это обеспечило переносимость приложений между различными СУБД, что стало важным фактором развития рынка баз данных.
Образовательная роль
SQL/DS часто использовалась в учебных заведениях для обучения основам реляционных баз данных и языка SQL, так как была доступна для мейнфреймов, которые были распространены в университетах. Многие специалисты, начавшие свою карьеру в 1980-х годах, получили первый опыт работы с реляционными БД именно на SQL/DS.
Наследие
Хотя SQL/DS больше не используется, её концепции и архитектура оказали глубокое влияние на все последующие реляционные СУБД. Многие идеи, впервые реализованные в SQL/DS (многоуровневая архитектура, оптимизация запросов, управление транзакциями), стали стандартом де-факто. SQL/DS доказала жизнеспособность реляционной модели и SQL, открыв дорогу для таких гигантов, как Oracle, Microsoft SQL Server и PostgreSQL.
Источники
- Chamberlin, D. D., et al. "SEQUEL 2: A Unified Approach to Data Definition, Manipulation, and Control." IBM Journal of Research and Development, 1976.
- Date, C. J. "An Introduction to Database Systems." Addison-Wesley, 1975 (и последующие издания).
- IBM Corporation. "SQL/DS: General Information." IBM Manuals, 1981.
- IBM Corporation. "SQL/DS: Database Administration." IBM Manuals, 1982.
- McJones, P. "The 1995 SQL Reunion: People, Projects, and Politics." Hewlett-Packard Laboratories, 1997.
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →