Вы находитесь на страницах старой версии сайта.
Переходите на новую версию Interface.Ru

СТАТЬЯ
10.12.02


Переход с Access на SQLBase для повышения производительности и надежности

© Сурен Бехари, Gupta
Переведено БНТП по заказу Interface Ltd.

Аннотация

Во многих сферах бизнеса, где используются созданные с помощью Microsoft Access приложения, в конце концов, сталкиваются с ограничениями, присущими этой базе данных. Теперь есть альтернатива: Перемещение хранилищ данных на систему, которая предоставляет большую производительность и надежность, и которая поддерживает более гибкие способы использования информации. SQLBase, исходно являющаяся многопользовательской базой данных для персональных компьютеров, сегодня остается популярным сервером баз данных для бизнеса, функционирующим на платформах Windows и Netware. SQLBase обеспечивает высокую производительность и надежность, поддержку транзакций и автоматическое восстановление после сбоев. Пользователи Access благодаря использованию SQLBase в качестве базы данных, при желании смогут продолжить работать со своими данными через Access, используя его в качестве интерфейсной части системы, но также они получат и другие способы работы со своими данными.

Данный документ описывает преимущества перевода бизнес-приложений с Access на SQLBase и представляет три метода перехода на SQLBase.

Введение: выбор базы данных для малого и среднего бизнеса

Бизнес-пользователи в большинстве случаев обращают внимание, в первую очередь, на нахождение решения, способного удовлетворить нужды бизнеса, а технология, обеспечивающая внедрение этого решения, рассматривается во вторую очередь. Важна ли база данных, обеспечивающая реализацию решения? Несомненно. Конечной целью базы данных, предназначенной для малого и среднего бизнеса, является ее экономичность. Конечно, чтобы стать хорошим выбором, база данных должна удовлетворять некоторым основным требованиям, таким как скорость работы, простота использования, масштабируемость (модульное наращивание системы в рамках унифицированной архитектуры) и безопасность. Идеальная база данных обеспечивает пользователю высокую производительность при минимальной стоимости владения, складывающейся из усилий по ее управлению и из ограничений на выбор используемых приложений.

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

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

Access не поддерживает элементарные транзакции: он не гарантирует, что все выполненные в рамках транзакции изменения будут зафиксированы или по ним произойдет полный откат. Это ограничивает тех разработчиков, которые хотят управлять транзакциями базы данных.

Важным вопросом корпоративной среды является безопасность. Access предлагает возможность установить безопасность на уровне пользователей (User-Level Security) и шифровать .mdb-файл. Access не обеспечивает 128-разрядное шифрование по алгоритму Triple DES, постраничную защиту базы данных от изменений, постраничное шифрование базы данных, расширенную проверку пароля или безопасность передачи данных. При шифровании базы данных Access шифруется сразу вся база (файл .mdb).

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

Данный документ описывает некоторые преимущества, которые можно получить при использовании для управления данными SQLBase, и предоставляет некоторые принципы переноса локально хранимых таблиц Access на SQLBase.

Преимущества перехода на SQLBase

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

Данный раздел описывает некоторые важные преимущества SQLBase.

Развертывание информации

Если информация хранится в SQLBase, при желании можно по-прежнему использовать ее из Access, но помимо этого открывается много других возможностей. Это позволяет использовать данные более полно, в большем количестве контекстов и большим количеством людей. Например, другие пользователи могут использовать данные через стандартные клиентские программы SQLBase, или из основанных на GUI приложений. Также база данных становится более доступной через Web. Сейчас Microsoft Access предоставляет некоторые возможности для доступности базы данных через Web, но в случае управления базой данных сервером SQLBase, диапазон возможностей в этом направлении расширяется.

Многопользовательский доступ

SQLBase без проблем поддерживает одновременную работу многих пользователей

Хотя Access и предоставляет некоторые возможности по совместному использованию данных, они на самом деле не являются его сильной стороной. С другой стороны, SQLBase без проблем поддерживает одновременную работу многих пользователей. Эта система изначально разрабатывалась для работы в сетевой среде как многопользовательская система, которая сможет обслуживать большое количество клиентов. SQLBase может поддерживать до 50 одновременно работающих пользователей с обеспечением высочайшего уровня производительности корпоративного класса, хотя уровень производительности и зависит от структуры базы данных и архитектуры приложения. В основном SQLBase рекомендуется использовать для систем с количеством параллельно работающих пользователей 1 до 30.

Управление большими базами данных

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

SQLBase позволяет распределять отдельные базы данных и журналы по нескольким дисковым разделам или томам. В дополнение к возможности управления сервером SQLBase большими базами данных, разбиение на разделы может увеличить производительность при использовании многодисковых систем и контроллеров. SQLBase предоставляет возможность разбиения на разделы для всех поддерживаемых платформ. Также SQLBase поддерживает не разбитые по разделам данные объемом до 512 Гб на 32-разрядных операционных системах Windows NT и 95 при условии применения файловых системам, поддерживающих файлы размером больше 2 Гб.

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

Управление резервным копированием

Для любой системы управления базами данных (СУБД) жизненно важен эффективный и всесторонний механизм резервного копирования и восстановления данных. С самого начала проектирование SQLBase учитывало эту необходимость. Можно проводить как оперативное инкрементное резервное копирование, так и полное оперативное резервное копирование, что дает необходимую гибкость для успешного и необременительного управления работой базы данных.

Поддержка транзакций

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

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

Транзакции могут определяться тем, что известно как свойства ACID. Акроним ACID составляют следующие атрибуты транзакции:

Atomic (Элементарная) означает, что транзакции являются операциями по принципу "все или ничего". Для того чтобы все операции были зафиксированы, каждая операция, входящая в транзакцию, должна быть успешной.

Consistent (Целостная) означает, что транзакция допускает действия с данными для перевода базы данных из одного целостного состояния в другое.

Isolated (Изолированная) означает, что все транзакции "невидимы" для других транзакций. То есть никакая транзакция не может видеть обновления, вносимые другой транзакцией в базу данных, до тех пор, пока транзакция не зафиксирована.

Durable (Надежная) означает, что после фиксации транзакции ее обновления остаются в силе, даже если затем последует сбой системы.

SQLBase поддерживает транзакции неограниченного размера

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

Двухфазная фиксация предоставляет функциональность высококачественного сервера в удобном для использования пакете. Благодаря использованию технологии двухфазной фиксации SQLBase поддерживает транзакционную целостность в нескольких базах данных. Это позволяет одной транзакции производить изменения в нескольких базах данных SQLBase на полностью отдельных аппаратных системах. Это обеспечивается в том случае, если эти системы находятся в одной сети. Ранее подобная функциональность была возможна только с использованием больших дорогих систем со сложными сетевыми компонентами и компонентами базы данных.

Распределенные операции могут быть очень важны и требовать гарантии точного выполнения транзакций на нескольких функционально раздельных, но зависимых друг от друга базах данных. SQLBase поддерживает функциональную возможность автоматического двухэтапного завершения, которая реализуется между обеими рабочими группами серверов и отдельными системами. Например, транзакция с двухэтапным завершением может выполняться на многопользовательском сервере на платформе NetWare и настольном сервере Windows NT. Для реализации таких транзакций не требуется специального программирования, для обеспечения такой обработки нужен просто один вызов API.

Удаленное администрирование

SQLConsole является полностью графическим средством управления базами данных для администрирования и мониторинга производительности SQLBase. Этот инструмент прост в использовании и позволяет выполнять все операции, необходимые для создания, поддержки и администрирования баз данных SQLBase и серверов без необходимости использования SQL. Копия поставляется с каждым сервером SQLBase.

SQLConsole может работать как на Windows-серверах (включая однопользовательские системы), так и на клиентских рабочих станциях, допуская удаленное администрирование. Этот инструмент предоставляет контроль всех функций SQLBase с помощью унифицированного графического интерфейса. Он спроектирован как для разработки приложений, так и в качестве инструмента для администраторов баз данных.

Безопасность базы данных и полномочия
на ее использование превыше всего

Безопасность

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

Полномочия на использование базы данных

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

SQLBase контролирует доступ с помощью имен пользователей и их паролей. SQLBase имеет 4 уровня пользователей.

Уровни авторизации SQLBase иерархичны и служат для контроля за доступом к данным:

Безопасность базы данных

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

SQLBase предлагает широкий спектр интерфейсов и средств программирования приложений

SQLBase предлагает очень хорошую защиту от неавторизованного доступа к данным. Шифрование возможно на уровне сервера, базы данных, страниц базы данных и передачи данных, что впервые в индустрии баз данных обеспечивает сквозную безопасность.

Уровни безопасности базы данных SQLBase относятся к типу шифрования, использующемуся для сокрытия данных внутри базы данных.

Доступны четыре уровня шифрования:

SQLBase Treasury Editions обеспечивает безопасность на каждом уровне клиент/серверного процесса. В эти возможности входит:

Подключение

SQLBase предлагает широкий спектр интерфейсов (API - application programming interface) и средств программирования приложений.

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

SQLBase++ - расширение к библиотеке базовых классов Microsoft (MFC - Microsoft Foundation Class Library), полностью интегрированное со средой разработки Visual C++. Оно предоставляет разработчикам объектно-ориентированную альтернативу стандартному интерфейсу API языка С.

Драйвер JDBC - драйвер 4 уровня. Это означает, что это полный Java-драйвер, который связывается с SQLBase с использованием низкоуровневого протокола под названием интерфейс уровня сообщений (MLI - Message Level Interface). Для этого не нужны никакие шлюзы или промежуточные уровни программного обеспечения, поскольку в SQLBase драйвер JDBC хорошо приспособлен для Java-апплетов, применяемых в web и интранете.

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

Провайдер данных OLE DB (OLE DB Data Provider) - использует преимущества стратегии унифицированного доступа к данным Microsoft (Universal Data Access) для упрощения доступа к функциям SQLBase из средств программирования сторонних производителей, таких как Visual Basic, Delphi, и С++. Поскольку провайдер OLE DB предоставляет набор интерфейсов COM, потребители могут получать доступ к информации в SQLBase из любого языка программирования.

Провайдер данных .NET (.NET Data Provider) будет доступен в январе 2003 года.

Стратегии перехода

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

Благодаря подходу "быстрого старта" ко многим продуктам на Microsoft Access, наилучшим решением для достижения максимума выгоды от перехода на SQLBase может стать проектирование новой модели данных. Если конвертация включает изменения в разработку новой модели данных, то для чтения данных из существующих структур Access, конвертации данных в новый формат структур данных и записи данных в базу данных SQLBase может потребоваться разработка специального приложения.

Можно сохранить знакомый интерфейс Access, но при этом использовать преимущества SQLBase для хранения данных, управления данными и обеспечения безопасности.

Методы перехода с Access на SQLBase

В общих чертах, первым шагом в переносе информации с Microsoft Access на базу данных SQLBase является копирование содержимого таблиц из базы данных Access на сервер SQLBase. Для выполнения операции переноса таблиц на SQLBase можно выбрать один из нескольких описанных ниже методов. Если вы планируете использовать Access в качестве интерфейса для доступа к данным, то следующим шагом после переноса таблиц будет замена их ссылками: удаление таблиц в базе данных Access, установление из Access соединения через ODBC с сервером SQLBase и повторное создание этих таблиц в качестве ссылок на таблицы SQLBase. Естественно, перед удалением чего-либо разумно сначала сделать резервную копию на случай непредвиденной ситуации. Если вы не планируете продолжать использовать Access, то нет необходимости в создании каких-либо ссылок.

Некоторые методы переноса требуют создания соединения с сервером SQLBase через ODBC. В Gupta SQLBase входит драйвер SQLBase ODBC, который может быть установлен в процессе установки SQLBase.

Для тех приложений, которые "переросли" возможности, предлагаемые Microsoft Access, и которые необходимо переносить на более сложные и надежные базы данных, такие как SQLBase, далее приведены три метода конвертации данных.

Метод 1: Использование Access для экспорта таблиц в текстовые файлы

Первым подходом к переносу данных с Access на SQLBase является использование возможностей экспорта данных, которые предоставляет сам Access, для выгрузки содержимого каждой таблицы в текстовый файл. Затем каждый такой файл можно загрузить в SQLBase с помощью оператора LOAD в SQLTalk.

Преимуществом такого подхода является то, что он не требует никаких специальных средств конвертации. Это можно использовать для создания файлов данных даже на тех машинах, которые не имеют поддержки базы данных SQLBase. Если на компьютере с Access не установлены клиентские компоненты SQLBase, то создайте файлы данных, затем скопируйте их на другую машину с установленным программным обеспечением SQLBase, и уже оттуда загрузите эти файлы в SQLBase.

Недостаток такого подхода заключается в том, что база данных SQLBase должна существовать уже до загрузки в нее данных, так что необходимо вручную запускать соответствующие операторы CREATE TABLE.

Метод 2: Использование Access и ODBC для прямого переноса

Используя функцию импорта/экспорта Microsoft Access, возможно потаблично конвертировать базу данных Access в новую базу данных SQLBase.

Рассмотрим сначала для примеа базу данных Microsoft Access "Northwind", а затем я опишу этапы конвертации этой базы в базу данных SQLBase.

База данных "Northwind"

Эта база данных содержит 8 таблиц:

Примечание: Таблица Products (Продукты) связана с таблицами Suppliers (Поставщики) и Categories (Категории).

Таблица Orders (Заказы) связана с таблицами Shippers (Грузоотправители), Customers (Заказчики) и Employees (Работники).

Сначала надо создать таблицы, которые не связаны с другими таблицами:

(1) Customers, (2) Suppliers, (3) Categories,

(4) Shippers, (5) Employees, (6) Products,

(7) Orders, (8) Order Details (Сведения о заказе).

1 этап - Создание базы данных SQLBase под названием NORTHWND

Базы данных SQLBase легко можно создать с помощью установления соединения с сервером SQLBase (SET SERVER имя сервера), а затем с помощью интерактивного средства работы с SQL (SQLTalk) следует выполнить оператор SQL CREATE DATABASE NORTHWIND, или еще проще это можно сделать с помощью утилиты администратора базы данных под названием SQLConsole.

2 этап - Использование Microsoft Access для экспорта 8 таблиц в SQLBase

Для того чтобы начать экспорт из Microsoft Access, следуйте приведенным далее шагам:

Для экспорта таблицы Customers в SQLBase, следуйте приведенным далее шагам:

Метод 3: Набор инструментальных средств для перехода с Access на SQLBase

Третьим вариантом перехода с Access на SQLBase является использование предоставляемых Gupta Technologies средств миграции. Этот инструмент предназначен для детального исследования базы данных Microsoft Access и воспроизведения ее таблиц в базе данных SQLBase, а также для перемещения данных из базы данных Access в соответствующие таблицы в базе данных SQLBase.

Эта версия средства перехода спроектирована для работы с базами данных Access 2000 и Access 97 и миграции их на базы данных SQLBase версий 7.5.x и 7.6.x.

Реализация

Средство переноса запускается с помощью файла "Rightsizing Wizard.exe". Данное приложение использует два файла: dbcap21.dll и odin.dll.

У пользователя запрашивается правильное подключение по ODBC к исходной базе данных Access. Затем утилите необходимо инициализировать себя с использованием аналитических данных из исходной базы данных. Можно выполнить анализ на этой стадии, либо можно загрузить предварительно сохраненные в предыдущей сессии аналитические данные. Когда утилита готова к анализу источника, можно по выбору задать имя файла для сохранения информации о типах и именах для настройки и использования в последующих сеансах анализа. Затем утилита готовит совместимый с SQLTalk сценарий загрузки, запрашивая имя файла. Этот сценарий загрузки содержит операторы языка SQL для создания схемы базы данных в SQLBase, максимально близко соответствующей схеме исходной базы. По умолчанию данные из исходной базы данных также переносятся путем добавления их в файл сценария загрузки. Затем есть выбор: выполнить сценарий загрузки немедленно для существующей базы данных или отложить его выполнение.

Требования к программному обеспечению

Известные ограничения

Текущая версия Migration Kit не позволяет переносить таблицы Access, в имени которых есть пробелы.

Загрузка Migration Kit

Заключение

Оптимальная база данных понятна для пользователей

Получение наибольшей отдачи от приложения требует наличия в качестве основы базы данных, обеспечивающей наибольшую производительность и наибольшее количество возможностей при наименьшем количестве ограничений. С помощью SQLBase разработчики могут выбирать методы доступа и языки, которые наилучшим образом отвечают требованиям приложения. Приложения могут переноситься на широкий спектр операционных систем и аппаратных платформ. А данные могут совместно использоваться различными приложениями. Переход на SQLBase предоставляет много преимуществ, включая многопользовательский доступ, безопасность и возможность управлять большими объемами информации. Переход с Access на SQLBase удобен, если использовать один из следующих методов:

Приложение

Архитектура SQLBase

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

Такие мощные базы данных, как SQLBase, построены на централизованной архитектуре управления данными. Это обеспечивается специальными возможностями и дополняется интерфейсами и инструментами для доступа и использования всех возможностей базы данных. Мощность базы данных определяется такими ее возможностями, как производительность, надежность, управляемость, безопасность данных и др. Возможность обрабатывать сложные запросы и удовлетворять нужды разработчиков является функцией того, насколько хорошо все эти возможности были спроектированы для совместной работы.

Система SQLBase была спроектирована как по-настоящему многопользовательский сервер баз данных

Архитектура SQLBase представляет собой технологию реляционных баз данных, доступную через структурированный язык запросов (SQL - Structured Query Language). Как видно из названия, SQLBase создавалась собственно для поддержки SQL, а не в качестве базы данных, которая была конвертирована из другого образца с использованием упрощенной интерфейсной части SQL.

SQLBase 8.0 – SQL-ориентированная реляционная СУБД. SQLBase 8.0 сокращает время разработки, позволяя писать необходимые Вашему приложению процедуры на SQL.

Расширения ядра SQLBase включают в себя следующее:

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

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

В отличие от других встроенных баз данных SQLBase была изначально спроектирована как по-настоящему многопользовательский сервер баз данных, который достаточно компактен для использования в маломощных системах. Это дает SQLBase ту гибкость и эффективность, которыми основанные на ISAM1 системы просто не обладают, и которые являются требованием важных для бизнеса приложений, как для однопользовательских, так и для многопользовательских систем.

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

_________________________

1 Метод индексированного последовательного доступа (ISAM - Indexed Sequential Access Method) - поддерживаемые системой Jet табличные данные, хранящиеся в рабочих книгах Microsoft Excel и Microsoft Outlook.

Дополнительная информация

За дополнительной информацией обращайтесь в компанию Interface Ltd.

Обсудить на форуме Gupta Technologies

Рекомендовать страницу

INTERFACE Ltd.
Телефон/Факс: +7 (495) 925-0049
Отправить E-Mail
http://www.interface.ru
Rambler's Top100
Ваши замечания и предложения отправляйте редактору
По техническим вопросам обращайтесь к вебмастеру
Дата публикации: 10.12.02