Открыть сервис

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 →