Особенности СУБД uniVerse
фирмы IBM.
2.Сервер базы данных - особенности реализации
Текущая версия UniVerse - rel.9.5 имеет реализации для большинства
коммерческих версий UNIX и для Windows NT. Данные в СУБД UniVerse
физически разделяются на различные базы - так называемые счета.
Счета подразделяются на системные и счетах данных.
Структура счетов UniVerse
К системным счетам относятся счет UV в котором хранятся системные
таблицы, основные системные процедуры, а также информация о настройках
системы и SQL.Catalog - счет в котором хранятся данные о всех
таблицах, видах, ограничениях целостности, SQL пользователях и
их правах доступа.
Каждый счет данных содержит главный каталог - таблицу под названием
VOC, содержащую сноски на таблицы данных, сноски на удаленные
таблицы, ссылки на выполняемые процедуры, а также служебную информацию.
Каждая таблица имеет словарную часть и часть данных, таблицы могут
иметь несколько частей данных, или же несколько таблиц могут быть
объединены в одну общую, при этом пользователь может определить
алгоритм распределения данных по первичному ключу между таблицами.
Все поля данных (колонки) в таблице имеют переменную длину и
хранят только необходимое количество байт информации. Длина данного
хранимого в поле не ограничена, количество полей в таблице также
не ограничено. Кроме того, данные в поле каждой записи (строке)
могут иметь несколько значений, тогда такие поля называются многозначными.
Многозначные поля могут быть объединены в группы, тогда они образуют
вложенные таблицы.
Словарь таблицы определяется пользователем и содержит два типа
определения полей типа "D" - определяющих реальные данные
и типа "I" - определяющих вычисляемые поля и содержащих
формулу вычисления. Примером может служить формула содержащаяся
в поле НДС:
ЦЕНА/6 В словаре может быть определено несколько виртуальных
полей на одно реальное поле данных. Это может быть полезно для
различного представления одних и тех же данных. Например, поля
"ГОД_РОЖДЕНИЯ", "ВОЗРАСТ" и "ДАТА_РОЖДЕНИЯ"
могут представлять по разному одни и те же данные.
Для хранения данных используются хэшированные таблицы с различными
алгоритмами хеширования, один из которых позволяет динамически
изменять параметры таблицы, что избавляет администратора базы
данных следить за переполнением таблиц, осуществлять операции
по переразмещению данных и т.п.
Для создания триггеров и хранимых процедур используются встроенный
язык -"UniVerse BASIC" с мощными средствами обработки
данных или TCL – язык интерпретатора комманд. Поскольку UniVerse
поддерживает вложенные транзакции, хранимые процедуры могут вызываться
рекурсивно.
Имеется интерфейс для вызова процедур написанных на С. TCL и
UniVerse BASIC используются также для создания приложений для
"тупых" терминалов. Для создания Intranet/Internet приложений
предоставляется Web Development Kit.
UniVerse поддерживает SMP и MPP архитектуру, что представляет
хорошие возможности для масштабирования приложений. В США функционируют
системы поддерживающие до 2000 пользователей на одной машине (PYRAMID).
Сетевые возможности UniVerse позволяют поддерживать в гетерогенных
средах распределенные таблицы (утилита UV/Net) и репликацию данных.
В сочетании с возможностями создавать горизонтально-распределенные
таблицы это позволяет разработчику широко варьировать распределение
данных по сети.
Общее администрирование системы осуществляется по сети, через
набор простых утилит с удаленной абочей станции Windows или непосредственно
на сервере в оболочке uvsh.