Unisys Data Management System II (DMSII) является система баз данных , первоначально созданная корпорацией Burroughs в 1972 г. Она была доступна на Burroughs (позже Unisys ) Маленький (B1000), Medium (4000, V Series) и большие системы (5000, 6000, 7000) продуктовые линейки. Более поздние линейки продуктов A Series, Clearpath, Libra поддерживают его, а в последних выпусках программного обеспечения Unisys Clearpath он был переименован в Enterprise Database Server для ClearPath MCP . В исходной DMS II использовалась сетевая модель. [1]
Первый выпуск | 1972 |
---|---|
Тип | система базы данных |
Лицензия | проприетарный |
Первоначально он конкурировал с продуктами IBM IMS и CICS и предшествовал популярности реляционных баз данных.
История
DMSII предоставил модель ISAM (индексированный метод последовательного доступа) для доступа к данным, изоляции транзакций и возможностей восстановления базы данных. Схема базы данных была написана на проприетарном языке определения данных и структуры (DASDL). Исходный код DASDL был скомпилирован с помощью системной утилиты в файл, содержащий метаданные для базы данных (известный как файл описания). Программа-утилита базы данных будет использовать файл описания базы данных для создания оставшихся компонентов базы данных.
Компиляторы проприетарных языков (такие как COBOL и ALGOL ) будут использовать файл описания базы данных для создания элементов, связанных с базой данных, в объектном коде скомпилированной программы. Эти компиляторы использовали языковые расширения, чтобы обеспечить программисту более естественный интерфейс с базой данных. Компилятор вставил ряд встроенных функций, чтобы гарантировать, что программа и база данных используют одно и то же определение структур базы данных.
Первоначально DMSII поддерживал словарь данных, на который прикладной программист ссылался в своем исходном коде. Источник структур данных поддерживался в обычном исходном файле CANDE . Затем этот источник был скомпилирован с помощью компилятора DASDL, который создал словарь (файл описания), если его раньше не было. Если словарь действительно существовал, новый дизайн, указанный в исходном файле, был включен в словарь; программы для копирования данных из старых файловых структур и записи в новые файловые структуры были созданы автоматически (задача реорганизации базы данных). Программисту приложения просто нужно было перекомпилировать исходный код своего приложения (обычно COBOL) в соответствии с новым файлом описания, и программист мог воспользоваться преимуществами новых элементов данных в структурах.
DMSII использовала концепцию «наборов» для хранения данных. Набор данных содержал строки данных и мог быть случайным или упорядоченным. Поскольку DMSII поддерживал как иерархические, так и реляционные модели, набор данных мог быть несвязным или встроенным. Табличные индексы были реализованы в наборах индексов и могли быть полными наборами или подмножествами целевого набора данных. Подмножества могут быть обозначены как автоматические подмножества (с правилами выбора записей из целевого набора данных для включения) или ручные подмножества (которые использовали программные интерфейсы для вставки и удаления записей).
Наборы индексов включали стили ISAM (которые использовали ключи полей для ссылки на записи) и наборы с битовым вектором (которые использовали логическое представление членства в наборе, если запись набора данных удовлетворяла условиям, определенным в наборе). Как и ISAM, он использовал наборы (индексы, в которых были ссылки на все записи, например, индекс в Microsoft Access ), подмножества (частичный список записей, зависящий от определяемого условия, например, женщины для базы данных с полем «пол») и растровые изображения. (набор записей, удовлетворяющих определенному условию (истина / ложь) в наборе данных). Эти функции обеспечивают значительно более высокую производительность при доступе к данным с небольшим штрафом в виде дополнительного времени, затрачиваемого на создание новой записи, если было определено много подмножеств.
Утверждалось, что база данных сетевого типа может быть построена с использованием возможности ручного подмножества. Это было рискованно, поскольку добавление и удаление записей в ручном подмножестве зависело от пользовательских программ. Существует существенная разница между DMSII и реляционными базами данных: в DMSII запись может быть получена через индекс только в том случае, если индекс был разработан изначально (или после реорганизации, которая генерирует новое подмножество из всех данных в наборе). В реляционной модели это операция времени выполнения.
В 1988 году Берроуз попытался создать базу данных объектно-ориентированных моделей, известную как Infoexec, которая была дополнительным уровнем поверх DMSII. Этот уровень был запрограммирован на Паскале и следовал подходу выбора времени выполнения, как и реляционная модель. Разработанный Майком Хаммером и Деннисом МакЛеодом из Массачусетского технологического института, он работал плохо.