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

Отчет CODASYL DBTG

Отчет CODASYL DBTG — это итоговый документ, опубликованный в 1971 году рабочей группой по базам данных (Data Base Task Group, DBTG) Комитета по языкам систем анализа и проектирования данных (Conference on Data Systems Languages, CODASYL). Отчет содержал спецификации языка описания данных (Data Description Language, DDL) и языка манипулирования данными (Data Manipulation Language, DML) для сетевой модели данных, став одним из первых стандартизированных предложений по управлению базами данных (СУБД) и оказав значительное влияние на развитие реляционной и постреляционной теории.

История

В конце 1960-х годов, с ростом объемов обрабатываемой информации, возникла потребность в систематизации подходов к хранению и доступу к данным. Комитет CODASYL, известный созданием языка COBOL, в 1969 году сформировал специальную группу DBTG для разработки общих принципов построения баз данных. Первый предварительный отчет был опубликован в октябре 1969 года, а финальная версия — в апреле 1971 года.

Основной целью DBTG было создание универсального стандарта, который позволил бы описывать структуры данных независимо от конкретной реализации СУБД и обеспечивал бы переносимость приложений между разными системами. Отчет 1971 года стал результатом интенсивных дискуссий между представителями академического сообщества (в частности, Чарльза Бахмана) и промышленности (IBM, Honeywell, Univac и др.).

Содержание отчета

Отчет CODASYL DBTG 1971 года состоял из двух основных частей, описывающих два взаимосвязанных языка.

Язык описания данных (DDL)

DDL предназначался для определения схемы базы данных — её логической и физической структуры. Ключевые понятия DDL:

  • Запись (Record): Основная единица данных, состоящая из набора полей (элементов данных). Запись могла быть как логической, так и физической единицей.
  • Набор (Set): Основной механизм связывания записей. Набор представлял собой иерархическую структуру, где одна запись была «владельцем» (owner), а несколько других — «членами» (member). Связь устанавливалась через указатели, а не через значения полей.
  • Область (Area): Логическая или физическая единица размещения данных, позволявшая группировать записи для оптимизации доступа.
  • Типы данных: Поддерживались стандартные типы (числа, строки, даты) и специальные типы для хранения указателей.

DDL определял не только структуру, но и правила целостности, такие как обязательность членства в наборе (MANDATORY/AUTOMATIC) и порядок сортировки членов.

Язык манипулирования данными (DML)

DML был встроенным языком, предназначенным для использования внутри программ на COBOL (а позже — на других языках, таких как FORTRAN и PL/I). Основные команды DML включали:

  • FIND: Поиск записи по ключу, по текущей позиции в наборе или по значению поля.
  • GET: Чтение найденной записи.
  • STORE: Создание новой записи.
  • MODIFY: Изменение существующей записи.
  • ERASE: Удаление записи (с каскадным удалением связанных записей).
  • CONNECT: Включение записи в набор.
  • DISCONNECT: Исключение записи из набора.
  • RECONNECT: Перемещение записи из одного набора в другой.

DML оперировал понятием «текущей записи» (current record) и «текущего набора» (current set), что позволяло навигировать по структуре базы данных вручную, шаг за шагом.

Сетевая модель данных

Отчет DBTG формализовал сетевую модель данных, которая является обобщением иерархической модели. В отличие от иерархической модели, где каждая запись-потомок могла иметь только одного предка, сетевая модель допускала, чтобы запись-член входила в несколько наборов (то есть имела несколько «владельцев»). Это позволяло моделировать более сложные отношения «многие-ко-многим».

Основные характеристики сетевой модели по DBTG:

  • Навигационный доступ: Данные извлекаются путём последовательного перемещения по связям между записями, а не через декларативные запросы (как в реляционной модели).
  • Явные связи: Связи между записями определяются на этапе проектирования схемы с помощью наборов, а не через значения ключей.
  • Ориентация на производительность: Оптимизирована для быстрого доступа к данным по известным путям, что было критично для транзакционных систем 1970-х годов.

Влияние и критика

Отчет CODASYL DBTG оказал огромное влияние на индустрию СУБД. На его основе были созданы коммерческие системы, такие как IDMS (Cullinane), DMS-1100 (Univac), IMAGE (Hewlett-Packard) и ADABAS (Software AG). Эти системы доминировали на рынке в 1970-х и начале 1980-х годов.

Однако отчёт подвергался критике по нескольким причинам:

  • Сложность: Сетевая модель была значительно сложнее для понимания и проектирования, чем иерархическая или реляционная модели. Разработчикам приходилось вручную управлять навигацией по структуре.
  • Отсутствие независимости данных: При изменении физической структуры базы данных (например, добавлении нового набора) требовалось переписывать все прикладные программы, которые использовали изменённые пути доступа.
  • Неполнота: Отчёт не определял стандартного языка запросов (SQL), оставляя это на усмотрение разработчиков СУБД. Это привело к фрагментации рынка и отсутствию переносимости.
  • Конкуренция с реляционной моделью: В 1970-х годах Эдгар Кодд предложил реляционную модель, которая была проще, более гибкой и обеспечивала лучшую независимость данных. К концу 1980-х годов реляционные СУБД (например, Oracle, DB2) вытеснили сетевые системы.

Наследие

Несмотря на уход с массового рынка, идеи, заложенные в отчёте CODASYL DBTG, продолжают жить:

  • Многие современные СУБД (например, объектно-ориентированные, графовые) используют концепции навигационного доступа и явных связей.
  • Принципы описания данных через DDL и манипулирования через DML стали основой для стандартов SQL (DDL и DML части).
  • Понятие «набора» (set) как механизма связи между записями повлияло на развитие графовых баз данных, где связи являются первоклассными сущностями.
  • Отчёт DBTG стал важным этапом в формализации теории баз данных, продемонстрировав необходимость стандартизации и разделения логического и физического уровней.

Источники

  • CODASYL Data Base Task Group Report, April 1971. ACM Digital Library.
  • Date, C. J. (2003). An Introduction to Database Systems (8th ed.). Addison-Wesley.
  • Elmasri, R., & Navathe, S. B. (2016). Fundamentals of Database Systems (7th ed.). Pearson.
  • Ullman, J. D. (1988). Principles of Database and Knowledge-Base Systems (Vol. 1). Computer Science Press.

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →