SAP Advantage Database Server

Материал из Национальной библиотеки им. Н. Э. Баумана
Последнее изменение этой страницы: 22:44, 27 мая 2019.
(перенаправлено с «Advantage Database Server»)
Advantage Database Server (ADS)
Разработчики: Extended Systems, Inc
Выпущена: Август, 1993
Постоянный выпуск: 12.0 / Октябрь, 2015
Предыдущий выпуск: 11.1 / Декабрь, 2012
Написана на: C, C++
Операционная система: Windows, Linux, NetWare
Локализация: English
Тип ПО: RDBMS
Веб-сайт www.sap.com/products/advantage-database-server.html

SAP Advantage Database Server – богатая возможностями, высокопроизводительная система управления реляционными базами данных (RDBMS) для малого и среднего бизнеса от SAP SE. Уникальность данной систем состоит в том, что она единственная одновременно работает с технологией ISAM (Indexed Sequential Access Method) и поддерживает SQL (Structured Query Language). Advantage позволяет произвести масштабирование от локальной (настольной) среды до клиент\серверной архитектуры с одним и тем же исходным кодом.

История

ADS - разработка фирмы Extended System, Inc, которая берет свое начало и развивается с начала 90-x годов. Данный продукт первоначально был известен как "Advantage X-Base Server" и предназначался для работы с таблицами формата dbf (Clipper FoxPro) в режиме "клиент-сервер" и базировался только на платформе Novell (до 4 версии). Отличительной особенностью от конкурентов, с последующими доработками программы, является использование, на то время уже не новой, технологии хранения данных. Речь идет о технологии ISAМ (indexed sequentil access method), которая отдельно хранит записи с данными и индексы. То есть, высокая скорость поиска по индексам обеспечивается за счет "их малых размеров". Так и в АDS - все данные хранятся последовательно, и второй набор данных - индексы (хеш-таблица), содержит указатели, которые позволяют оперативно извлекать определенные записи без поиска по всей базе данных. Позднее, начиная с версии 5.0, ADS была адаптирована под ОС Windows NT, а так же добавлен собственный формат таблиц. С версии 5.5 добавилась возможность использования, такого языка программирования как SQL, для обеспечения удобства в работе с базами данных. В настоящее время выпущена версия с номером 10.0, которая и является актуальной на данный момент. В Advantage 10 были заявлены разработчиками, и отмечены опытными пользователями данной системы значительные улучшения производительности, улучшенные уведомления, дополнения к Advantage SQL, вложенные транзакции, поддержка Unicode, дополнительные 64-разрядные клиенты, поддержка DesignTime-разработки в Delphi, совместная установка.

Применение системы

Advantage Database Server (ADS), созданный компанией Extended Systems, — это продукт, который может представлять немалый интерес для компаний, по-прежнему эксплуатирующих приложения, хранящие данные в таблицах dBase или Paradox. Это могут быть приложения, созданные с помощью Clipper, dBase, FoxPro либо посредством более современных средств разработки (например, Borland Delphi). Формально ADS — это сервер баз данных, выполняющий запросы клиентских приложений. Фактически же этот сервер представляет собой приложение, которое, обрабатывая пользовательские запросы, может манипулировать как данными, хранящимися в файлах собственного «закрытого» формата, так и файлами формата dBase (с индексами форматов Clipper или FoxPro), в которых хранили данные многие приложения десятилетней давности. Применение такого сервера во многих случаях позволяет не обновлять устраивающие компанию приложения, но при этом пользоваться стандартными преимуществами архитектуры "клиент-сервер", такими как централизованная обработка запросов, контроль ссылочной целостности, возможность выполнения транзакций, а также более высокая производительность и масштабируемость, нежели в случае применения приложений, основанных на использовании файловых серверов.

Характеристики работы

В ADS могут использоваться одновременно два типа таблиц: DBF и ADT. Рассмотрим характеристики каждого формата отдельно. Сравнение характеристик типов приведены ниже в таблице.

Сравнение форматов
Параметры Формат DBF Формат ADT
Максимальное количество индексов в индексном файле 50
Максимальное число открытых индексных файлов на таблицу 15
Максимальное число записей 2 миллиарда
Максимальная длина записи 65530 bytes
Максимальная длина имени поля 10 characters 128 characters
Максимальная длина имени индекса 10 characters 128 characters
Максимальный размер binary/image/BLOB поля 4 Гб
Максимальное число полей на таблицу 2035 Зависит от длинны имени полей

Отдельно остановимся на сравнении значениий допустимых размеров файлов. Если в таблицах типа DBF максимально допустимый размер и таблицы, и индексного файлa, и memo файла равен 4 Гб, то в таблицах типа ADT данное значение варируется в зависимости от операционной системы.

Размер файлов таблиц формата ADT
ОС Максимальный размер таблицы Максимальный размер индексного файлa Максимальный размер memo файла
Windows 95/98/ME 4 gigabytes 4 gigabytes 4 gigabytes
Windows NT/2000 with NTFS 16 exabytes 4 gigabytes 4 gigabytes
Windows NT/2000 with FAT32 4 gigabytes 4 gigabytes 4 gigabytes
NetWare 4 gigabytes 4 gigabytes 4 gigabytes
Linux pre-2.1.2 - 11 glibc and pre-2.4 kernel 2 gigabytes 2 gigabytes 2 gigabytes
Linux glibc 2.1.2 - 11+ with kernel 2.4+ 8 exabytes 4 gigabytes 4 gigabytes

Работа ADS

Система ADS ведет обработку таблиц в двух режимах: Free Tables и Database.

Free Tables - режим предполагает работу с таблицами как с отдельными, друг от друга независящими структурными единицами.

Database - в данном случае группа таблиц рассматривается как единая база данных со всеми вытекающими последствиями. Открыть таблицу, входящую в Database как самостоятельную таблицу в режиме Free Tables невозможно.

ADS поддерживает SP. Собственного языка программирования система не имеет, поэтому роль SP играют Advantage Extended Procedure (AEP), которые представляют собой либо dll или COM-библиотеки (для Windows), а так же shared object (для Linux). Соответственно написать их можно практически на чем угодно: Delphi/C++Builder, VB, VC++ и т.д. Для обращения в таблицам используется либо API, либо компоненты (Delphi/C++Builder). Регистрация процедур производится посредством SQL-выражения CREATE PROCEDURE, или с помощью соотвествующего диалогового окна в архитекторе (ARC32).

Характеристики функциональных возможностей

Так как физически базы данных представляют набор файлов: таблицы, индексы, словари, и т.д., то ограничения по количеству баз данных определяется только характеристиками ОС и мощностями оборудования, на котором установлена и эксплуатируется ADS. Имеются ограничения (не более 250) на количество одновременно открытых таблиц и на одно соединение (не путать с пользователями), при этом пользователь может иметь неограниченное количество соединений. Количество одновременно подключенных пользователей ограничено лицензионными соглашениями, в то время как количество соединений на пользователя - неограничено. В Advantage 10 можно запустить два или более экземпляров сервера Advantage на одном физическом сервере, даже различных версий. Например, предоставляется возможность запускать на одном сервере Advantage 9 и Advantage 10, что является особенно полезным для разработчиков вертикального рынка, чьи приложения должны поддерживать более чем одну версию сервера Advantage. ADS поддерживает View, то есть представления. Это таблицы чье содержание выбирается или получается из других таблиц. Возможность создания View предусмотрена в режиме работы Database. Хранится как объект справочника (dictionary). Могут быть созданы с помощью SQL-выражение CREATE VIEW или с помощью соотвествующего диалогового окна в архитекторе (ARC32).

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

"Нулевое администрирование"

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

Поддержка целостности

Полноценная поддержка ссылочной целостности, включая определение ключей primary/foreign и каскадных обновлений и удалений.

Механизм транзакций

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

Высокая производительность

Большая часть скорости системы происходит от его архитектуры, основанной на технологии ISAM (о которой уже упоминалось выше). ISAM широко использует индексы для быстрого поиска в таблицах, фильтры и соединения таблиц. В отличие от других технологий ISAM, таких как DBase и Clipper, Advantage Database Server является транзакционным удалённым сервером баз данных. В результате он обеспечивает разработчиков приложений надёжным распределённым решением для управления данными с использованием технологии клиент/сервер.

Масштабируемость

Система может быть развернута от настольной версии до клиент/серверного варианта с доступом к данным через интернет. Если остановиться на этом вопросе подробнее, то хочется сказать, что приложения Advantage для Windows могут быть запущены в однопользовательских, многопользовательских и Internet средах с одним и тем же исходным текстом. Приложения для Windows могут быть разработаны по технологии Advantage и запущены даже в несетевом окружении. То же самое Advantage приложение, разработанное для архитектуры Клиент/Сервер, можно установить на машине пользователя, система которого еще не была модернизирована, т.е. когда на файл-сервере еще не установлен Advantage Database Server. Advantage можно легко "доустановить", если запросы потребителя возрастут, в связи с переходом на Клиент/Сервер технологию.

Навигационная и выборочная ориентированность

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

Высокая производительность

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

Стабильность и надежность

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

Так как Advantage Database Server полностью отвечает за доступ к базе данных (по запросам рабочих станций), он может намного лучше выполнять контроль над одновременной обработкой данных, чем традиционные системы, где одновременная обработка должна быть синхронизирована между рабочими станциями. Лучший контроль над одновременной обработкой данных означает повышение производительности в многопользовательской среде.

Низкая стоимость

Advantage недорого стоит по сравнению с другими популярными SQL-решениями.

Защищенность

Общие сведения

Отдельно хочется остановиться на таком досотинстве системы как ее защищенность. Защита базы данных является одной из ключевых особенностей Advantage, позволяющей полностью контролировать доступ к файлам в базе данных. Отсутствие защиты базы данных и контроля над тем, кто имеет право модифицировать данные и удалять файлы, непременно приведет к разрушению базы данных.

Advantage Database Server обеспечивает защиту базы данных через словарь данных Advantage с использованием учетной записи пользователя. Словарь данных включает средства, позволяющие установить учетную запись пользователя для возможности осуществления полного контроля над доступом к файлам базы данных, видам и хранимым процедурам. Для повышения эффективности борьбы с неправомочным доступом к базе данных, рекомендуется держать все файлы базы данных и хранимые процедуры в “закрытой” для пользователей директории на сервере. Если таблицы базы данных невидимы пользователю, пользователь сможет получить к ним доступ только через Advantage Database Server и словарь данных Advantage. Механизм управления доступом состоит из двух свойств: требование входа в систему с определенными паролями (логин) и проверка прав доступа. Для доступа к базе данных, пользователь должен знать корректную комбинацию имени пользователя и пароля, которые проверяются при соединении со словарем данных (при доступе пользователя к отдельным файлам и хранимым процедурам происходит проверка уровня прав доступа). Для облегчения задачи установления прав пользователей с похожими уровнями доступа, уровень доступа к файлам, видам или хранимым процедурам может быть определен как для индивидуального пользователя, так и для группы пользователей.

Методы обеспечения безопасности

Для “свободного” подключения (без использования словаря данных), Advantage предлагает два метода защиты базы данных: “check rights” (проверка прав сетевого доступа пользователя перед открытием файла) и “ignore rights” (позволяет доступ к базе данных только через Advantage приложение).

При “check rights” методе защиты (при “свободном” подключении), Advantage, перед тем, как открыть существующий файл или создать новый, проверяет права сетевого доступа пользователя к директории или файлу. Только пользователи с достаточными правами получают доступ к данным.

"Ignore rights" метод защиты (при “свободном” подключении) позволяет вам скрыть файлы в базе данных от всех пользовательей, которые обращаются к данным не через Advantage приложение. Первый шаг, необходимый для обеспечения "ignore rights" метода защиты, - удаление администратором прав сетевого доступа у всех пользователей, которые потенциально могут повредить базу данных. Как только пользователь лишается прав доступа к директории, в которой расположены файлы базы данных, пользователь уже не может случайно или намеренно повредить базу данных, т.к. он больше не имеет доступа к ее файлам. Второй шаг – использование "ignore rights" метода защиты в вашем приложении при открытии и создании файлов. Если файл открывается или создается Advantage с использованием "ignore rights" метода защиты, Advantage не будет проверять, имеет ли пользователь права доступа к директории или файлу, и откроет или создаст файл независимо от прав сетевого доступа пользователя. Advantage может делать это, так как выполнение производится на сервере на уровне "supervisor". Использование "ignore rights" метода защиты позволяет вашему Advantage приложению иметь полный контроль над тем, кто может получить доступ к базе данных и как база данных может быть модифицирована. При использовании "ignore rights" метода защиты, только Advantage приложение имеет доступ к базе данных. Не-Advantage приложение не имеет доступа к базе данных.

Механизм повышения безопасности

Для повышения безопасности, Advantage Database Server поддерживает шифрование данных: выбранные записи или даже полные таблицы могут быть физически закодированы. Схема шифрования Advantage использует для кодировки данных уникальный пароль (с учетом регистра), который требуется для возможности просмотра данных. Advantage позволяет кодировать как те данные, которые хранятся на сервере, так и данные, которые пересылаются по сети. Каждая таблица может быть зашифрована только одним паролем. Если таблица содержит одну или несколько зашифрованных записей, а приложение пытается открыть таблицу, используя некорректный пароль, зашифрованные записи будут доступны только в режиме 'read-only'. Если таблица была зашифрована полностью, приложение сможет изменять, добавлять или вставлять записи в таблицу только в том случае, если используется корректный пароль, который использовался для шифрования записей в таблице.

Установка

Программа Advantage Database Server (ADS) является платной, однако на сайте производителя имеется возможность получить trial версию программы, доступную только для Windows, поэтому установка данного продукта будет производится на Windows 7.

Шаг 1

Необходимо зарегестрироваться на сайте https://www.sap.com/index.html и оставить заявку на получение trial версии ADS.

Шаг 2

После получения письма необходимо скачать присланные архивы и распаковать. Trial версия не требует ключей активации.

Шаг 3

Необходимо запустить файл adswin_x86_64_evaluation.exe и произвести активацию продукта. Последовательно выполняем этапы установки:

Рисунок 1 - Этап 1
Рисунок 2 - Этап 2
Рисунок 3 - Этап 3
Рисунок 4 - Этап 4
Рисунок 5 - Этап 5

Примечание: Стандартный пароль для пользователя ADS (ADSSYS): none (необходимо нажать Enter вместо пароля).

После установки на экране появится окно Advantage Configuration Utility, в котором будет показано время рабочей сессии базы данный, информация о числе пользователей, а также информация о преобретенной лицензии ADS.

Рисунок 6 - Advantage Configuration Utility

Шаг 4

Запускаем файл arc32.exe. Производим установку Advantage Data Architect 12.0, для непосредственного создания базы данных.

Рисунок 6 - Установка этап 1
Рисунок 7 - Установка этап 2
Рисунок 8 - Установка этап 3
Рисунок 9 - Установка этап 4
Рисунок 10 - Установка этап 5
Рисунок 11 - Установка этап 6
Рисунок 12 - Установка этап 7

Пример работы

Открываем Advantage Data Architect 12.0.

Рисунок 13 - Advantage Data Architect 12.0

Нажимаем правой кнопкой мыши на поле в левой части экрана и нажимаем Create New Data Dictionary. Создаем новый Data Dictionary

Рисунок 14 - Data dictionary
Рисунок 15 - Data dictionary

Создаем новый скрипт. Для примера создадим таблицу EMPLOYEES1 с полями id, firstname, lastname, branch. Сделаем в ней одну запись:

CREATE TABLE EMPLOYEES1(id GUID, firstname CICHAR(30), lastname CICHAR(30), branch CICHAR(30)) IN DATABASE;
INSERT INTO EMPLOYEES1(id, firstname, lastname, branch) VALUES 
(newid(), 'Pavel', 'Gryzlov', 'Dancer');
SELECT * FROM EMPLOYEES1;

Запустим написанный скрипт и получим следующий результат:

Рисунок 16 - Script 1

Создадим новую таблицу с большим количеством записей:

CREATE TABLE EMPLOYEES2(id GUID, firstname CICHAR(30), lastname CICHAR(30), branch CICHAR(30)) IN DATABASE;
INSERT INTO EMPLOYEES2(id, firstname, lastname, branch) VALUES 
(newid(), 'Pavel', 'Gryzlov', 'Dancer'),
(newid(), 'Jack', 'Smith', 'Dentist'),
(newid(), 'Robert', 'Junior', 'Actor'),
(newid(), 'Will', 'Jordan', 'Dentist'),
(newid(), 'Ivan', 'Urgant', 'Dancer');
SELECT * FROM EMPLOYEES2;
Рисунок 17 - Script 2

Сгруппируем записи новой таблицы по столбцу branch:

SELECT branch, GROUP_CONCAT(trim(firstname)+' '+trim(lastname) SEPARATOR '; ')
FROM EMPLOYEES2
GROUP BY 1;
Рисунок 18 - Script 3

Чтобы удалить таблицу EMPLOYEES1 необходимо выполнить следующее:

Drop table EMPLOYEES1;
Рисунок 19 - Script 3, удаление

Видео пример

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

Источники