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

DL/1

DL/1 — это иерархическая система управления базами данных (СУБД), разработанная корпорацией IBM в 1960-х годах. DL/1 (Data Language/1) является языком манипулирования данными и частью информационной системы управления (IMS — Information Management System), одной из первых коммерческих СУБД. DL/1 реализует иерархическую модель данных, в которой информация организуется в виде древовидных структур, состоящих из сегментов (записей), связанных отношениями «родитель-потомок». Система получила широкое распространение в мейнфреймовых средах, особенно в банковской сфере, страховании, государственных учреждениях и других областях, где требовалась высокая надёжность, производительность и обработка транзакций в реальном времени.

История

Разработка IMS и DL/1 началась в середине 1960-х годов в рамках совместного проекта IBM и компании Rockwell International для программы «Аполлон» (NASA). Целью было создание системы управления данными, способной обрабатывать огромные объёмы информации о деталях космического корабля и обеспечивать надёжное хранение в условиях жёстких требований к времени отклика. Первая версия IMS была выпущена в 1968 году. DL/1 стал основным языком для доступа к данным в этой системе.

В 1970-х и 1980-х годах IMS/DL/1 стала одной из доминирующих СУБД на мейнфреймах IBM, конкурируя с системами на основе сетевой модели (например, IDMS) и реляционной модели (например, DB2). Несмотря на появление реляционных баз данных, IMS/DL/1 продолжала использоваться из-за своей высокой производительности, предсказуемости и зрелости. Многие крупные организации, такие как банки, авиакомпании и страховые компании, десятилетиями эксплуатировали системы на основе DL/1, и миграция на новые платформы была связана с огромными затратами и рисками.

В 1990-х и 2000-х годах IBM выпустила несколько новых версий IMS, добавив поддержку SQL, Java и веб-сервисов, но ядро DL/1 осталось неизменным. По состоянию на 2020-е годы IMS/DL/1 продолжает использоваться в критически важных приложениях, особенно в финансовом секторе, и поддерживается IBM в рамках мейнфреймовой платформы z/OS.

Архитектура и модель данных

DL/1 реализует иерархическую модель данных. Данные организуются в виде иерархических структур, называемых сегментами. Каждый сегмент представляет собой запись, состоящую из полей. Сегменты связаны между собой отношениями «родитель-потомок»: один родительский сегмент может иметь несколько дочерних, но каждый дочерний имеет ровно одного родителя. Совокупность сегментов, связанных таким образом, образует иерархическую базу данных (или иерархическую структуру).

Основные понятия

Пример иерархии

Рассмотрим базу данных для отдела кадров:

В этой иерархии каждый отдел может иметь несколько сотрудников и несколько единиц оборудования. Каждый сотрудник может участвовать в нескольких проектах. Проект не может существовать без сотрудника, а сотрудник — без отдела.

Язык манипулирования данными DL/1

DL/1 предоставляет набор команд для доступа к данным в иерархической базе. Эти команды выполняются в программах, написанных на языках COBOL, PL/I, Assembler или C. Основные операции:

Пример программы на COBOL (псевдокод)

``cobol PROCEDURE DIVISION. MOVE '101' TO EMP-ID. CALL 'CBLTDLI' USING GU, PCB, EMP-SEGMENT, EMP-KEY. IF STATUS-CODE = ' ' DISPLAY 'Сотрудник найден: ' EMP-NAME ELSE DISPLAY 'Сотрудник не найден'. ``

Здесь CBLTDLI — это интерфейс вызова DL/1 из COBOL. GU — команда GET UNIQUE. PCB — блок управления программой (Program Communication Block), который описывает структуру базы данных.

Физическая организация данных

DL/1 использует несколько методов организации данных на диске, которые выбираются при определении базы данных:

Выбор метода зависит от характера нагрузки: для транзакционных систем с частыми запросами по ключу чаще используется HDAM или HIDAM, для пакетной обработки — HISAM или HSAM.

Преимущества и недостатки

Преимущества

Недостатки

Применение

DL/1 использовался и продолжает использоваться в следующих областях:

Критика и альтернативы

С появлением реляционных баз данных (например, DB2, Oracle) иерархические системы, такие как DL/1, подверглись критике за жёсткость и сложность. Реляционная модель предлагает более гибкий способ представления данных и более простой язык запросов (SQL). Однако для высоконагруженных транзакционных систем с чётко определённой иерархией DL/1 часто оставался более производительным. Альтернативами являются:

Интересные факты

Источники

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

На главную BFOmetr →