Отчет 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 →