Rocket U2 — это набор средств управления базами данных (СУБД) и вспомогательного программного обеспечения, в настоящее время принадлежащий Rocket Software . Он включает в себя две платформы баз данных MultiValue : UniData и UniVerse . [1] Оба эти продукта являются операционными средами , работающими на современных операционных системах Unix , Linux и Windows . [2] [3] Они оба являются производными от операционной системы Pick . [4] Семейство также включает в себя технологии разработки и веб-технологии , включая SB/XA ( иногда известный как SB+ или SystemBuilder ), среду веб-разработки U2 (WebDE), API-интерфейс подключения UniObjects и программное обеспечение эмуляции терминала wIntegrate . [1]
UniVerse изначально была разработана VMark Software, а UniData изначально была разработана Unidata Corporation. И Universe, и Unidata используются для вертикальной разработки приложений и встроены в вертикальные программные приложения. В 1997 году Unidata Corporation объединилась с VMark Systems, образовав Ardent Software. [5] В марте 2000 года Ardent Software была приобретена Informix . [5] Впоследствии IBM приобрела подразделение баз данных Informix в апреле 2001 года, [6] сделав UniVerse и UniData частью семейства продуктов IBM DB2. Впоследствии IBM создала группу управления информацией, в которой управление данными является одним из подразделов, в рамках которого семейство IBM U2 включало UniData и UniVerse вместе с инструментами SystemBuilder Extensible Architecture (SB/XA), U2 Web Development Environment (U2 Web DE) и wIntegrate.
1 октября 2009 года было объявлено, что Rocket Software выкупила весь портфель U2 у IBM. [7] [8] Портфель U2 объединен под названием RocketU2.
Системы состоят из одной или нескольких учетных записей. Учетные записи — это каталоги, хранящиеся в операционной системе хоста, которые изначально содержат набор файлов, необходимых для правильной работы системы. Сюда входит файл VOC ( словарь ) системы , содержащий каждую команду , имя файла , ключевое слово , псевдоним , сценарий и другие указатели . Каждый из этих классов записей VOC также может быть создан пользователем .
Файлы похожи на таблицы в реляционной базе данных в том смысле, что каждый файл имеет уникальное имя, отличающее его от других файлов, и от нуля до нескольких уникальных записей , которые логически связаны друг с другом.
Файлы состоят из двух частей: файла данных и словаря файлов (DICT). Файл данных содержит записи, в которых хранятся фактические данные. Словарь файлов может содержать метаданные для описания содержимого или для вывода содержимого файла.
Для хэшированных файлов система U2 использует алгоритм хэширования для распределения записей файла по группам на основе идентификаторов записей . При поиске данных в хэшированном файле система ищет только в той группе, где хранится идентификатор записи, что делает процесс поиска более эффективным и быстрым, чем поиск по всему файлу.
Нехешированные файлы используются для хранения данных с небольшой или отсутствующей логической структурой, таких как исходный код программы , XML или простой текст . Этот тип файла хранится как подкаталог в каталоге учетной записи на хостовой операционной системе и может быть прочитан или отредактирован с использованием соответствующих инструментов.
Файлы состоят из записей, которые похожи на строки в таблицах реляционной базы данных. Каждая запись имеет уникальный ключ (называемый «идентификатором записи»), чтобы отличать ее от других записей в файле. Эти идентификаторы записей обычно хэшируются, чтобы данные можно было быстро и эффективно извлекать.
Записи (включая идентификаторы записей) хранят фактические данные в виде чистых строк ASCII ; в U2 не хранятся двоичные данные. Например, аппаратное представление числа с плавающей точкой будет преобразовано в его эквивалент ASCII перед сохранением. Обычно эти записи делятся на поля (которые в U2 иногда называются «атрибутами»). Каждое поле разделяется «меткой поля» (шестнадцатеричный символ FE).
Итак, эта строка:
123-45-6789^JOHN JONES^[email protected]^432100^...
может представлять собой запись в файле EMPLOYEE с 123-45-6789 в качестве идентификатора записи, JOHN JONES в качестве первого поля, [email protected] в качестве второго поля и $4321.00 в качестве ежемесячной зарплаты, сохраненной в третьем поле. (Стрелка вверх (^) выше является стандартной нотацией Pick для метки поля, то есть xFE).
Таким образом, первые три поля этой записи, включая идентификатор записи и завершающую метку поля, будут использовать 49 байт памяти. Заданное значение использует только столько байт, сколько необходимо. Например, в другой записи того же файла JOHN JONES (10 байт) может быть заменено на MARJORIE Q. HUMPERDINK (21 байт), но каждое имя использует только столько памяти, сколько необходимо, плюс один для метки поля.
Поля могут быть разбиты на значения и даже подзначения. Значения разделяются метками значений (символ xFD); подзначения разделяются метками подзначений (символ xFC). Таким образом, если Джон Джонс случайно получил второй адрес электронной почты, запись может быть обновлена до:
123-45-6789^JOHN JONES^[email protected]][email protected]^432100^...
где закрывающая скобка (]) представляет собой знак стоимости.
Поскольку каждый адрес электронной почты может быть идентификатором записи в отдельном файле (в терминах SQL — внешнее соединение ; в терминах U2 — «перевод»), это дает основание классифицировать U2 как многозначную базу данных.
Необработанная информация называется Данными. Запись представляет собой набор логически сгруппированных данных . Например, запись о сотруднике будет иметь данные, хранящиеся в виде полей/атрибутов, таких как его имя, адрес и т. д.
И UniVerse, и UniData имеют структурированный язык BASIC (UniVerse Basic и UniBasic соответственно), аналогичный Pick/BASIC, который естественным образом работает со структурами базы данных MultiValue. Они также имеют структурированный язык запросов к базе данных (RetrieVe и UniQuery), используемый для выбора записей для дальнейшей обработки и для специальных запросов и отчетов.
RocketU2 предоставляет набор клиентских инструментов, позволяющих разработчикам программного обеспечения получать доступ к базам данных U2 из других языков программирования. [9]
Интерфейсы клиентских инструментов включают в себя:
UniVerse и UniData поддерживают шифрование данных на уровне транспорта TLS и шифрование данных на уровне записей и файлов в состоянии покоя с использованием OpenSSL. Также доступны дополнительные функции шифрования API для обеспечения индивидуальных решений или соответствия определенным нормативным требованиям.
RocketU2 предлагает три профессиональных сертификационных обозначения, связанных с семейством продуктов U2. [10]
Rocket Software Universe и Unidata имеют ограниченные возможности создания веб-интерфейсов для контента Universe/UniData. Поскольку Rocket Software предоставляет SQL-доступ к своим продуктам баз данных, продукт на основе SQL может использоваться для создания веб-интерфейса для баз данных; независимо от использования файлов или таблиц в U2. Для создания таких веб-интерфейсов может использоваться сторонний фреймворк приложений.