Logo Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware
VPS/VDS серверы. 30 локаций на выбор

Серверы VPS/VDS с большим диском

Хорошие условия для реселлеров

4VPS.SU - VPS в 17-ти странах

2Gbit/s безлимит

Современное железо!

Бесплатный конструктор сайтов и Landing Page

Хостинг с DDoS защитой от 2.5$ + Бесплатный SSL и Домен

SSD VPS в Нидерландах под различные задачи от 2.6$

✅ Дешевый VPS-хостинг на AMD EPYC: 1vCore, 3GB DDR4, 15GB NVMe всего за €3,50!

🔥 Anti-DDoS защита 12 Тбит/с!

Особенности СУБД uniVerse и UniData фирмы Ardent Software Inc.

Фирма Ardent Software Inc. предлагает две постреляционные СУБД: uniVerse и UniData. Фактически эти СУБД используют одни и те же технологии и очень похожи набором свойств и инструментов. Сама фирма Ardent образовалась в 1997 г. после слияния двух фирм VMARK и UniData поддерживавших параллельные технологии и долгое время конкурировавших межу собой. Эти СУБД в своей основе используют модель данных и набор процессоров предложенных фирмой Pick Systems. Поскольку эти СУБД очень похожи, то дальнейший их обзор будет вестись со ссылкой на СУБД uniVerse, а различия будут даны в конце обзора. Кроме того, фирма Ardent планирует интеграцию этих двух СУБД в следующих версиях (uniVerse rel.10, UniData rel. 5).

Сервер базы данных - особенности реализации

Текущая версия uniVerse - rel.9.5 имеет реализации для большинства коммерческих версий UNIX и для Windows NT. Данные в СУБД uniVerse физически разделяются на различные базы - так называемые счета. Счета подразделяются на системные и счетах данных.

Рис 3. Структура счетов uniVerse

К системным счетам относятся счет UV в котором хранятся системные таблицы, основные системные процедуры, а также информация о настройках системы и SQL.Catalog - счет в котором хранятся данные о всех таблицах, видах, ограничениях целостности, SQL пользователях и их правах доступа.

Каждый счет данных содержит главный каталог - таблицу под названием VOC, содержащую сноски на таблицы данных, сноски на удаленные таблицы, ссылки на выполняемые процедуры, а также служебную информацию.

Рис 4. Варианты распределения данных внутри таблиц

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

Все поля данных (колонки) в таблице имеют переменную длину и хранят только необходимое количество байт информации. Длина данного хранимого в поле не ограничена, количество полей в таблице также не ограничено. Кроме того, данные в поле каждой записи (строке) могут иметь несколько значений, тогда такие поля называются многозначными. Многозначные поля могут быть объединены в группы, тогда они образуют вложенные таблицы.

Словарь таблицы определяется пользователем и содержит два типа определения полей типа "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.

Методы доступа к данным

Ядро СУБД uniVerse оптимизировано по производительности для поддержки двух моделей данных: реляционной (традиционный доступ через SQL) и модели хранения бизнес-объектов (доступ через внутренние средства uniVerse). Доступ к данным может осуществляться в интерактивном режиме с использованием процессоров из оболочки uvsh, через стандартный интерфейс ODBC или через соответствующий программный интерфейс (API).

Рис 5. Методы доступа

СУБД uniVerse позволяет проектировщику реализовывать оба подхода. Для каждого из них имеется соответствующий набор инструментов. Для первого - стандартный SQL, включая ODBC драйвер и соответствующий API - uniVerse Calling Interface (UCI), для второго - средства доступа к базе данных через процессоры оболочки uniVerse, интерфейс доступа к объектам, реализация которого для Windows включает Active-X компоненты (uniVerse Objects) и интерфейс низкого уровня InterCall.

uniVerse поддерживает многомерные массивы и вложенные таблицы, но динамическая нормализация данных распространяется только на вложенные таблицы. Вложенные таблицы имеют заранее предопределенные вложенные отношения и ограничения целостности: вложенная таблица не может существовать без записи к которой она относится и при удалении записи главной таблицы вместе с ней удаляются и все ее вложенные таблицы.

Для реализации второй модели была выбрана запись-ориентированная система доступа к данным. С одной стороны, записи выступают как строки в таблице и над ними могут осуществляться соответствующие операции выборки/обновления и проч., а с другой стороны, каждая запись может быть набором информации, содержащим в том числе вложенные таблицы и динамические массивы данных.

Типичный пример доступа к записям uniVerse через uniVerse Objects в кодах Visual Basic представлен ниже:

...
Set UVCommand = ObjSession.Command
Set InvList = ObjSession.SelectList(0)
Set InvTable = ObjSession.OpenFile("INVOICES")
	UVCommand.Text = "SELECT INVOICES IF NAME LIKE JOHN..."
 	UVCommand.Execute
 	InvTable.RecordId = InvList.Next
	InvTable.Read
	Invoice = InvTable.Record
	Invoice.Field(ACCEPTED) = DateNow()
	InvTable.Record = Invoice
	InvTable.Write
...

Доступ к записи осуществляется по первичному ключу. Выборка списков ключей может осуществляться через операторы SQL или специальными средствами uniVerse (процессор RetrieVe, B-tree индексы, последовательная выборка).

При обращении к записи как к объекту вложенные таблицы выступают как двумерные или трехмерные динамические массивы. Динамические массивы позволяют добавлять, удалять строки, столбцы, количество измерений без переопределения. Для работы с динамическими массивами разработчику предоставляются соответствующие средства. Такая гибкость представления данных позволяет разработчику хранить в записях сложные бизнес-объекты со множественными наборами параметров, добавлять свойства объектов. При этом все изменения объектов после их записи сразу же отражаются на общей картине данных представленной как набор таблиц. Для обеспечения коллективного доступа к бизнес-объектам применяется механизм блокировок, обеспечивающий разный уровень ограничения доступа к данным.

Процессоры uniVerse

Ядро базы данных uniVerse состоит из нескольких процессоров предоставляющих разработчикам и пользователям средства для доступа и обработки данных. Здесь вкратце будут рассмотрены три основных процессора: командный процессор TCL, процессор запросов и отчетов RetrieVe и процессор языка uniVerse BASIC.

Язык BASIC обладает мощными средствами обработки данных и ориентирован на создание бизнес приложений. Кроме обычных атрибутов процедурного языка uniVerse BASIC имеет следующие особенности: отсутствие системных типов данных - все данные представляются одним типом - strings, мощные механизмы строковой обработки, механизм доступа и управления доступом к базе данных, возможность вызова других процессоров и передачи данных, средства обработки динамических массивов, средства преобразования в пользовательские типы данных, интерфейс вызова программ написанных на других языках, средства доступа к операционной системе.

Процессор запросов RetrieVe предоставляет мощные средства для запросов с использованием вложенных таблиц и предназначен для выполнения двух основных задач - получение списков первичных ключей для дальнейшей выборки записей из базы данных (оператор SELECT) и получение отчетов из базы данных с необходимыми сортировками, итогами, подитогами и т.д. (оператор LIST).

Командный процессор TCL содержит набор системных команд и позволяет создавать пользовательские команды на основе программ написанных на BASIC, предложений RetrieVe, команд и программ операционной системы.

Особенности SQL uniVerse

Реализация uniVerse SQL поддерживает :

  • Стандарт ANSI SQL 1989 level 2
  • Расширения целостности стандарта ANSI SQL 1989
  • Стандарт ANSI SQL 1992 entry level
  • Стандарт ODBC 2.0 core level API
  • Расширения SQL безопасности данных
  • Защита данных на уровне пользователей и групп
  • Декларативные ограничения ссылочной целостности ANSI (Бизнес правила)
  • Обновляемые Views
  • ANSI курсоры
  • Ограничения CHECK, DEFAULT, NOT null
  • Ограничения PRIMARY, FOREIGN, UNIQUE keys
  • Дополнение DELETE CASCADE
  • Определения Вычисляемых колонок
  • ANSI 1992 Уровни изоляции данных (1-4)
  • Блокировка данных на уровне таблиц и строк
  • Управление Явными/Неявными блокировками
  • Определение и разрешение взаимных блокировок
  • Журналирование транзакций
  • Вложенные транзакции
  • Автоматическое выполнение roll forward и roll back
  • Автоматическое уникальное индексирование по первичному ключу
  • Хранимые SQL процедуры
  • Триггеры
  • Множественное, параллельное выполнение процедур
  • Хеширование индексов
  • B-Tree Вторичные индексы
  • Расширения NF2
  • Программные шлюзы ODBC для любых ODBC 2.0 драйверов

uniVerse SQL максимально приближен к стандарту ANSI SQL 92 но имеет некоторые расширения, обеспечивающие совместимость с моделью данных объектов реального мира. В основном они касаются возможности поддержки вложенных таблиц данных и связанных с ними вложенных отношений.

Для обеспечения совместимости с реляционным представлением данных при обращении к данным содержащим вложенные таблицы производится динамическая нормализация данных т.е. для приложений не поддерживающих вложенные таблицы (например MS Access) данные представляются в виде набора таблиц с обычными реляционными отношениями.

Основные отличия СУБД uniVerse и UniData
uniVerseUniData
Репликация данныхДоступ к другим СУБД как собствнным таблицам
Поддержка UNICODEПоддержка подзначений в SQL
Вложенные транзакции 
ODBC вызовы из BASIC 

Средства разработки

Кроме встроенных средств разработки (UNIVERSE BASIC, SQL) для СУБД uniVerse и для других СУБД фирма Ardent поставляет среду разработки SB+ , среду для разработки Web приложений RedBack и систему проектирования и построения хранилищ данных DataStage Кроме того для разработки приложений могут использоваться такие продукты как MS Visual Basic, MS C++, Borland Delphi, Power Builder, UniFace

Дополнительную информацию о СУБД uniVerse вы можете получить через Web сервер www.ardentsoftware.com или обратившись в московское представительство Ardent по телефону 135-7471.

Шабаев Илья Гумарович

Назад | Содержание | Вперед

 

VPS в 21 локации

От 104 рублей в месяц

Безлимитный трафик. Защита от ДДоС.

🔥 VPS до 5.7 ГГц под любые задачи с AntiDDoS в 7 локациях

💸 Гифткод CITFORUM (250р на баланс) и попробуйте уже сейчас!

🛒 Скидка 15% на первый платеж (в течение 24ч)

Скидка до 20% на услуги дата-центра. Аренда серверной стойки. Colocation от 1U!

Миграция в облако #SotelCloud. Виртуальный сервер в облаке. Выбрать конфигурацию на сайте!

Виртуальная АТС для вашего бизнеса. Приветственные бонусы для новых клиентов!

Виртуальные VPS серверы в РФ и ЕС

Dedicated серверы в РФ и ЕС

По промокоду CITFORUM скидка 30% на заказ VPS\VDS

Новости мира IT:

Архив новостей

IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Информация для рекламодателей PR-акции, размещение рекламы — adv@citforum.ru,
тел. +7 495 7861149
Пресс-релизы — pr@citforum.ru
Обратная связь
Информация для авторов
Rambler's Top100 TopList liveinternet.ru: показано число просмотров за 24 часа, посетителей за 24 часа и за сегодня This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2019 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...