CODASYL
CODASYL (акроним от англ. Conference on Data Systems Languages) — это консорциум, основанный в 1959 году для разработки и стандартизации языков программирования и систем управления базами данных (СУБД). Наибольшую известность CODASYL получила благодаря созданию языка программирования COBOL (Common Business-Oriented Language) и разработке одной из первых моделей данных для сетевых баз данных, известной как «модель CODASYL» или «сетевая модель данных». Деятельность консорциума, продолжавшаяся до начала 1980-х годов, оказала значительное влияние на развитие информационных технологий, особенно в области коммерческой обработки данных и теории баз данных.
История
Предпосылки создания
В конце 1950-х годов, с ростом использования компьютеров в бизнесе, возникла острая потребность в универсальном, машинно-независимом языке программирования для коммерческих задач. Существовавшие языки (например, FORTRAN, ориентированный на научные расчёты) были плохо приспособлены для обработки больших объёмов данных, операций с файлами и генерации отчётов. Правительство США, являвшееся крупным заказчиком вычислительной техники, инициировало создание комитета для стандартизации подходов к программированию.
Основание и первые годы (1959—1960)
Конференция по языкам систем обработки данных была созвана по инициативе Министерства обороны США в Пентагоне 28—29 мая 1959 года. В ней участвовали представители правительства, академических кругов и производителей компьютеров (включая IBM, RCA, Sperry Rand). Целью было создание языка, пригодного для написания коммерческих приложений. Уже к концу 1959 года был разработан первый проект COBOL, а в 1960 году вышла его первая спецификация (COBOL-60). CODASYL стала постоянно действующей организацией, ответственной за дальнейшее развитие и сопровождение языка.
Развитие COBOL (1960—1970-е)
В течение 1960-х годов CODASYL активно работала над расширением и стандартизацией COBOL. Были выпущены версии COBOL-61, COBOL-65, COBOL-68. В 1968 году COBOL был стандартизирован Американским национальным институтом стандартов (ANSI) как ANSI COBOL X3.23-1968, что закрепило его статус доминирующего языка для бизнес-приложений на несколько десятилетий. CODASYL продолжала выпускать рекомендации и расширения, которые затем ложились в основу официальных стандартов.
Разработка сетевой модели данных (1960—1970-е)
Параллельно с работой над COBOL, в рамках CODASYL действовал Комитет по языку управления данными (Data Base Task Group, DBTG), основанный в 1965 году. Задачей DBTG было определение стандартных методов доступа к базам данных из COBOL. Результатом работы стал отчёт DBTG 1969 года (пересмотрен в 1971 году), который предложил концепцию сетевой модели данных. Эта модель стала альтернативой иерархической модели (например, IMS от IBM) и предшествовала реляционной модели Эдгара Кодда. Отчёт DBTG определял структуры данных (записи, наборы, области), язык описания данных (DDL) и язык манипулирования данными (DML), встроенный в COBOL.
Закат и роспуск (1980-е)
К началу 1980-х годов реляционная модель данных, предложенная Коддом в 1970 году, начала вытеснять сетевые и иерархические системы. SQL (Structured Query Language) стал стандартом де-факто для реляционных СУБД. COBOL, хотя и оставался широко используемым, перестал быть объектом активной разработки со стороны CODASYL. Последние значимые публикации консорциума относятся к началу 1980-х годов. Формально CODASYL прекратил своё существование в 1985 году, передав эстафету стандартизации COBOL комитетам ANSI и ISO.
Деятельность и ключевые разработки
Язык COBOL
Основной и наиболее успешной разработкой CODASYL является язык COBOL. Консорциум определил его синтаксис, семантику и набор операторов, ориентированных на обработку данных: работа с файлами, сортировка, генерация отчётов, арифметика с фиксированной точкой (для финансовых расчётов). COBOL отличался английским синтаксисом, что делало его более читаемым для бизнес-пользователей, чем, например, FORTRAN или ассемблер. Стандарты CODASYL обеспечили переносимость кода между разными аппаратными платформами.
Сетевая модель данных (модель CODASYL)
Сетевая модель, предложенная DBTG, была формальной основой для построения баз данных в 1970-х — начале 1980-х годов. Её ключевые элементы:
- Запись (Record): базовая единица данных, состоящая из полей (атрибутов).
- Набор (Set): основная структура, представляющая связь между двумя типами записей — владельцем (owner) и членом (member). Набор реализует отношение «один-ко-многим» (1:N). Владелец может иметь несколько членов, но каждый член может принадлежать только одному владельцу в рамках данного набора.
- Область (Area): логическое подмножество базы данных, используемое для управления размещением данных и параллельным доступом.
- Язык описания данных (DDL): используется для определения схемы базы данных (типы записей, наборы, области).
- Язык манипулирования данными (DML): встроенный в COBOL набор команд для навигации по базе данных (FIND, GET, STORE, MODIFY, ERASE, CONNECT, DISCONNECT). Доступ к данным был навигационным: программа перемещалась по цепочкам записей, связанных наборами.
Стандартизация
CODASYL выполняла роль неформального, но авторитетного органа стандартизации. Её спецификации, хотя и не имели юридической силы, принимались производителями компьютеров (Burroughs, Univac, Honeywell, DEC, IBM в некоторых продуктах) как отраслевые стандарты. Это способствовало совместимости программного обеспечения и снижению затрат на разработку.
Критика и влияние
Критика
Сетевая модель CODASYL подвергалась критике по нескольким причинам:
- Сложность: Навигационный доступ требовал от программиста глубокого понимания физической структуры базы данных и логики связей. Разработка и сопровождение приложений были трудоёмкими.
- Жёсткость: Изменение схемы базы данных (например, добавление нового типа записи или набора) часто требовало переписывания существующих программ.
- Отсутствие независимости данных: Программы были тесно связаны с конкретной реализацией СУБД.
- Конкуренция с реляционной моделью: Реляционная модель, предложенная Коддом, предлагала декларативный (SQL) и более гибкий подход к запросам, что сделало её более привлекательной для конечных пользователей и разработчиков.
Влияние
Несмотря на критику, CODASYL и её сетевая модель оказали огромное влияние:
- Теория баз данных: Работа DBTG заложила основы для формализации понятий схемы, подсхемы, языка описания данных и манипулирования данными. Многие концепции (например, транзакции, блокировки, восстановление) были впервые реализованы в системах, основанных на модели CODASYL.
- Практика: Сетевые СУБД (например, IDMS от Cullinet, DMS-1100 от Univac, DBMS-10/20 от DEC) широко использовались в крупных корпорациях и государственных учреждениях в 1970—1980-х годах. Многие из этих систем продолжали эксплуатироваться и в XXI веке.
- COBOL: Язык COBOL, созданный CODASYL, остаётся одним из самых долгоживущих языков программирования. По оценкам, в 2020-х годах в мире всё ещё работают миллиарды строк кода на COBOL, обслуживающие критически важные системы банков, авиакомпаний, страховых компаний и правительственных организаций.
Примеры систем на основе модели CODASYL
- IDMS (Integrated Database Management System) — разработана компанией Cullinane (позже Cullinet), одна из самых популярных коммерческих реализаций сетевой модели.
- DMS-1100 — СУБД для мейнфреймов Univac.
- DBMS-10/DBMS-20 — СУБД для операционных систем TOPS-10/TOPS-20 компании Digital Equipment Corporation (DEC).
- IMAGE — СУБД для мини-компьютеров HP 3000, хотя и не полностью соответствовавшая стандарту CODASYL, использовала схожие принципы.
Интересные факты
- Название «CODASYL» часто произносится как «КОДАСИЛ» (или «КОДАСАЙЛ»).
- Первый компилятор COBOL был создан в 1960 году для компьютера RCA 501.
- Отчёт DBTG 1971 года считается одним из самых влиятельных документов в истории баз данных, хотя он и не был принят как официальный стандарт ANSI.
- В 1970-х годах существовала конкуренция между сторонниками сетевой модели CODASYL и реляционной модели, известная как «война баз данных» (database wars).
Источники
- CODASYL. COBOL: Report to Conference on Data Systems Languages. Department of Defense, 1960.
- CODASYL Data Base Task Group. April 1971 Report. ACM, 1971.
- Date, C. J. An Introduction to Database Systems. Addison-Wesley, 2003.
- Elmasri, R., Navathe, S. B. Fundamentals of Database Systems. Addison-Wesley, 2016.
- Sammet, J. E. Programming Languages: History and Fundamentals. Prentice-Hall, 1969.
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →