Отчёт CODASYL DBTG
Отчёт CODASYL DBTG — это документ, опубликованный в 1971 году Конференцией по языкам систем данных (CODASYL), который описывает спецификации для управления базами данных с сетевой моделью данных. Отчёт, формально озаглавленный «CODASYL Data Base Task Group Report», заложил основы для первой стандартизированной системы управления базами данных (СУБД) и оказал значительное влияние на развитие реляционных и постреляционных моделей данных.
История и контекст
Предпосылки создания
В конце 1960-х годов, с ростом объёмов обрабатываемой информации, возникла потребность в более эффективных способах организации и доступа к данным, чем традиционные файловые системы. Комитет CODASYL, ранее известный разработкой языка COBOL, в 1965 году создал подгруппу Data Base Task Group (DBTG) для изучения возможностей создания универсальной модели базы данных. Задачей группы было определение языка описания данных (DDL) и языка манипулирования данными (DML) для работы с базами данных, которые могли бы быть поддержаны на разных аппаратных и программных платформах.
Разработка и публикация
Работа DBTG велась под руководством председателя Чарльза В. Бахмана, который ранее разработал сетевую СУБД IDS (Integrated Data Store) для компании General Electric. Первый промежуточный отчёт был представлен в 1969 году, а окончательная версия, известная как «Отчёт DBTG», была опубликована в апреле 1971 года. В 1973 году вышла уточнённая версия, включающая рекомендации по реализации. Отчёт не был принят в качестве официального стандарта ISO или ANSI в полном объёме, однако многие его концепции легли в основу стандарта CODASYL DDL, принятого в 1978 году.
Концептуальная модель данных
Отчёт DBTG определил сетевую модель данных, которая представляет собой расширение иерархической модели. Ключевым понятием является «набор» (set), который описывает отношение между двумя типами записей (record types) — владельцем (owner) и членом (member). В отличие от иерархической модели, где каждый дочерний элемент может иметь только одного родителя, сетевая модель допускает, чтобы запись-член принадлежала нескольким наборам и имела нескольких владельцев (отношения «многие-ко-многим»).
Основные элементы модели
- Запись (Record): совокупность элементов данных (полей), рассматриваемая как единое целое.
- Набор (Set): поименованное отношение между двумя типами записей. Один тип записи может быть владельцем в нескольких наборах или членом в нескольких наборах.
- Область (Area): логическое подразделение базы данных, которое может содержать записи одного или нескольких типов. Области позволяют управлять физическим размещением данных.
Язык описания данных (DDL)
Отчёт определяет два уровня DDL:
- Схемный DDL (Schema DDL): описывает общую логическую структуру базы данных, включая типы записей, их поля, типы наборов и области.
- Подсхемный DDL (Subschema DDL): определяет представление базы данных для конкретного приложения (аналог внешней схемы в трехуровневой архитектуре ANSI/SPARC).
Язык манипулирования данными (DML)
DML, включённый в отчёт, предназначен для встраивания в процедурные языки программирования (в первую очередь COBOL, а также FORTRAN, PL/I). Он основан на концепции навигационного доступа: приложение последовательно перемещается по записям базы данных, используя явно задаваемые команды. Основные команды:
FIND— поиск записи по заданному критерию.GET— чтение текущей записи в программу.STORE— создание и сохранение новой записи.MODIFY— изменение текущей записи.ERASE— удаление текущей записи.CONNECT,DISCONNECT,RECONNECT— операции включения или исключения записи из набора.
Отсутствие встроенных операций реляционной алгебры (выборка, проекция, соединение) компенсировалось возможностью «навигации» по предопределённым связям между наборами.
Критика и влияние
Недостатки модели
Сетевая модель DBTG подвергалась критике за сложность реализации и использования. Основные замечания:
- Навигационная природа: программист должен детально знать физическую структуру данных и последовательно обходить её, что увеличивало время разработки и поддержки приложений.
- Сложность изменений: модификация схемы базы данных (добавление новых типов записей или наборов) требовала перекомпиляции всех приложений, работающих с ней.
- Отсутствие независимости от данных: подсистема подсхем не обеспечивала полной изоляции приложений от изменений логической структуры.
- Язык DML был привязан к конкретным языкам программирования: не существовало универсального, стандартизированного интерфейса.
Несмотря на критику, модель DBTG была реализована в ряде коммерческих СУБД 1970-х — 1980-х годов, таких как IDMS (Cullinet, позднее Computer Associates), ADABAS (Software AG), DMS-1100 (Univac) и IMAGE (Hewlett-Packard). В СССР на основе идей DBTG были разработаны системы «ОКА» и «СЕТКА» для ЕС ЭВМ.
Влияние на реляционную модель
Реляционная модель, предложенная Эдгаром Коддом в 1970 году, позиционировалась как более простая и математически строгая альтернатива сетевой модели. Кодд активно критиковал отчёт DBTG в своих работах, отмечая, что он не предлагает true вывода данных, а только процедуры навигации. Тем не менее, реляционные СУБД (например, System R от IBM и Ingres от Университета Беркли) заимствовали у DBTG многие практические механизмы, такие как описание схемы на языке DDL, транзакции на основе журнала и концепцию подсхем (внешних представлений). Сам Бахман в 1973 году стал лауреатом Премии Тьюринга за вклад в разработку сетевой модели данных.
Значение для развития баз данных
Несмотря на то, что к концу 1980-х годов реляционные СУБД вытеснили сетевые системы в большинстве областей, отчёт CODASYL DBTG остаётся важной вехой в истории компьютерных наук. Он впервые предложил:
- стандартизированное описание структуры базы данных, отделённое от прикладных программ;
- концепцию независимости данных (на уровне подсхемы);
- формальное определение набора как основного механизма связей.
Современные постреляционные системы (графовые базы данных, объектно-ориентированные СУБД) и NoSQL-решения, такие как графовые БД, используют идею заранее заданных явных связей между записями, что восходит к концепции наборов DBTG. Влияние отчёта ощущается и в современных реляционных СУБД, где концепция внешнего ключа реализует аналогичную семантику, но с императивным навигационным доступом.
В 2000-х годах ряд систем (например, ObjectDB, OrientDB) возродил элементы сетевой модели, предоставляя прямые ссылки на объекты и встроенные механизмы обхода графа, что технически близко к подходу DBTG, хотя и на более высоком уровне абстракции.
Источники
- CODASYL Data Base Task Group Report, April 1971.
- Bachman, C. W. (1973). The Programmer as Navigator. Communications of the ACM, 16(11), 653-658.
- Date, C. J. (2003). An Introduction to Database Systems (8th ed.). Addison-Wesley.
- Ullman, J. D. (1982). Principles of Database Systems (2nd ed.). Computer Science Press.
- Hurson, A. R., & Pakzad, S. H. (1988). The Evolution of Database Models. In Computer Science and Engineering, CRC Press.
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →