КРАТКИЙ ОБЗОР И АНАЛИЗ ОСОБЕННОСТЕЙ И ВОЗМОЖНОСТЕЙ СУБД.

Иванова С.А.
(Москва, МГТУ "Станкин")

        У разработчика базы данных как и у пользователя всегда, как правило, возникают два  вопроса:
1. Что должна содержать база данных, чтобы сделать ее максимально эффективной?

и

2. Какими средствами разработки лучше всего пользоваться?
Поэтому рассмотрим эти вопросы по порядку.

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

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

        Рассмотрим средства разработки, которые предлагает Microsoft.
        Эта компания в настоящий момент предлагает пять пакетов программ, которые могут быть использованы для создания пользовательского приложения по обработке данных: Access, SQL Server, Visual Basic, Visual C++ и Visual FoxPro. Эти средства могут быть использованы, так по отдельности - для решения конкретно поставленной задачи, как и в качестве интегрированного набора, каждый компонент которого может быть применен при разработке больших проектов масштаба предприятия. С этой точки зрения характеристика всех пяти продуктов приведена в следующей таблице 1.

Таблица 1.

Название

продукта

Основные преимущества Основное назначение
Access Простота освоения.
Возможность использования непрофессиональным программистом. Имеет мощные средства подготовки отчетов из БД различных форматов.
Создание отчетов произвольной формы на основании различных данных. Разработка не коммерческих приложений.
SQL-Server Высокая степень защиты данных. Мощные средства работы с данными. Высокая производительность. Хранение больших массивов данных. Хранение данных, требующих соблюдения режима секретности или при не допустимости их потери.
Visual Basic Универсальность. Возможность создания компонентов (OLE). Невысокие требования к мощности ПЭВМ. Создание приложений средней мощности, не связанных с большой интенсивностью обработки данных. Разработка компонентов OLE. Создание приложений для интеграции компонентов Microsoft Office.
Visual C++ Универсальность. Наибольшая скорость работы приложения. Неограниченная функциональность. Создание компонентов приложения для выполнения критических по скорости процессов или обеспечения функциональности, не достижимой в других средствах разработки.
Visual FoxPro Высокий уровень объектной модели. Высокая скорость обработки данных. Интеграция объектно-ориентированного языка программирования с Xbase и SQL. Многоплатформенность. Создание приложений масштаба предприятия. Создание приложений для работы на различных платформах (Windows 3.x, Windows 95, Macintosh и т. д.)


        Рассмотрим более подробно перечисленные в таблице средства разработки за исключением пакета Visual C++, так как он требует более детального рассмотрения.
        Какие общие черты имеют рассматриваемые средства разработки, подтверждающие наше утверждение о возможности их совместного использования для разработки пользовательских приложений различного уровня сложности? Это в основном, такие новые технологии, как OLE, ODBS, DAO, RDAO, ActiveX и пр., которые они поддерживают. Эти технологии закладывают возможность использования в одном приложении данных, хранящихся в различных форматах. Это обеспечивает разработку приложения, независимые от данных. Помимо этого, за счет OLE Automation, возможно приложение функциональных возможностей различных пакетов программ для выполнения с данными специфических операций. Классическим примером этого приложения является подготовка в приложении, написанном на Visual FoxPro, данных, хранящихся в формате Access, для вывода в виде сложного графика с использованием Мастера подготовки графиков Excel.

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

Таблица 2

Тип данных Visual FoxPro Access и Visual Basic MC SQL Server Длина Число десятичных разрядов Занимаемый объем
Binary
Image
Byte
Character
Text
Нет

Нет
С
dbLongBinary


dbByte
dbText
bynary(n)

tinyint
char(n)
varchar(n)
n байт

1
n
-

-
-
до 1,2
Гбайт
1 байт
4 байта
Count Нет dbLong Нет - - 4 байта
Сurrency Y dbCurrency money - - 8 байт
             
Date D Нет Нет - - 8 байт
DateTime T dbDate datetime - - 8 байт
Logical (Yes/No) L dbBoolean bit - - 1 байт
Numeric N Нет float n d от 1 до 20 байтов
Integer
Integer
Нет
1
dbInteger
dbLong
smallint
int

n
-
-
2 байта
4 байта
Double B dbDouble float - d 8 байт
Float F   float n - от 1 до 20 байтов
General (OLE Object) G dbLongBinary image   - 4байта
Memo M dbMemo text - - 4 байта
Single Нет dbSingle real     4 байта
Сharacter (binary) C Нет Нет n - 1байт на символ
Memo (binary) M Нет Нет - - 4 байта

 

Binary Image. Любые данные в двоичном виде. Используются для хранения изображений, файлов и т.д.
Byte. Целое положительное число от 0 до 255.
Character. Символьное выражение может содержать любые символы (до 254 для одного поля).
Count. Счетчик, который автоматически наращивает свое значение при добавлении записи. Начальное значение 1.
Currency. Денежное выражение для числовой величины. Выводит число с четырьмя десятичными разрядами и установленным обозначением применяемой денежной единицы.
Date. Выражение для даты может содержать день, месяц и год.
DateTime. Выражение дата и время может содержать время, день, месяц и год.
Logical. Булево выражение для .T. или .F..
Numeric. Числовое выражение может содержать целые или дробные числа со знаком.
Integer (dbInteger). Целое число в диапазоне от -32,768 до +32,767.
Integer (dbLong). Целое число. Можно хранить числа от -2147483647 до 2147483646.
Double. Числа с плавающей точкой двойной точности. Можно хранить значения от 4.94065645841247Е-324 до 1.79769313486232Е308.
Float. Тоже, что числовое выражение. Оставлено для совместимости.
General. Поле для ссылки на объект OLE.
Memo. Поле примечаний для ссылки на блок данных.
Single. Число с плавающей точкой одинарной точности. Можно хранить отрицательные числа от -3.402823Е38.
Character (binary). Символьное выражение, не подвергаемое трансляции в другую кодовую страницу.
Memo (binary). Поле примечаний для ссылки на блок данных, не подвергаемых трансляции в другую кодовую страницу.

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

Visual FoxPro.

        Visual FoxPro - не просто следующая версия одной из наиболее быстрых СУБД для персональных компьютеров. Это совершенно новая программа, которая легко позволяет сделать то, что в предыдущих версиях давалось с величайшим трудом или было просто недоступно.
        Интерфейс Visual FoxPro отвечает представлениям о современной графической среде, напоминая интерфейс иных программ Microsoft. Здесь основная работа с данными выполняется с помощью различных инструментальных средств, поэтому команды меню часто имеют вспомогательный характер и их состав гибко меняется в зависимости от того, какое средство активно в данный момент.
        Отличительные черты Visual FoxPro можно описать следующим образом:

1. Обеспечение возможности быстрой разработки прикладной программы базируется на включении средств, которые позволяют повысить скорость работы программиста. В первую очередь это средства объективно-ориентировочного программирования, позволяющие пользователю формировать компоненты своего проекта (объекта), которые затем могут многократно использоваться. В связи с этим традиционный Xbase язык в Visual FoxPro 3.0 значительно расширен, что позволяет создавать истинные объекты, классы и подклассы. Кроме того, объекты могут быть созданы с помощью визуальных средств и визуально использоваться в любое время.

2. Обеспечение полного набора средств для управления событиями. Традиционно в Xbase от программиста требовалось написать собственный драйвер для обработки необходимого набора событий или положиться на READ-состояние ожидания, которое моделирует обработку события системой. В WINDOWS, число событий, к которым может обращаться пользователь, весьма велико, и , следовательно, обработка событий является непростой задачей. Visual FoxPro 3.0 имеет истинно управляемую событиями модель, так что по умолчанию система раньше, чем пользователи обрабатывает объектные события. Кроме того, программист теперь имеет полный доступ к набору стандартных на функционировании WINDOWS событий (например, движение мыши, которые допускают перетаскивание объектов).

3. Обеспечение мощного набора инструментальных средств для программиста.
Разработчики систем автоматизации обработки данных, кроме мощного набора визуальных средств проектирования могут использовать широкие возможности по интеграции систем хранения данных и доступа к серверам данных с помощью технологии ODBC. Основные новшества - это расширение встроенного языка SQL, возможность обновления данных на сервере через редактирование курсоров, встроенный механизм обеспечения транзакций, возможность обращения к серверу на том диалекте SQL, который поддерживает сервер. Наличие словаря данных делает более быстрой разработку структуры баз данных и облегчает ее дальнейшую эксплуатацию и поддержку.

4. Обеспечение полной интеграции Visual FoxPro 3.0 в семейство прикладных программ Micrpоsoft. Единый интерфейс с наиболее популярными прикладными программами Microsoft делает работу в интерактивном режиме интуитивно понятной. Поддержка правой кнопки мыши позволяет избежать долгих путешествий по системе меню и значительно облегчает изучение новых возможностей СУБД. Просто выберите курсором объект и нажмите правую кнопку мыши. На некоторых диалоговых окнах, которые часто используются в работе на полосе заголовка, появился переключатель в виде анимационной пиктограммы (push pin), позволяющий легко включить режим, при котором это окно будет всегда расположено на переднем плане. Visual FoxPro обеспечивает полную поддержку OLE 2.0, что облегчает взаимодействие с другим программным обеспечением в среде WINDOWS. Помимо оставшейся возможности загрузки внешних функций посредством команды SET LIBRARY появилась возможность обращения к функциям динамических DLL библиотек WINDOWS посредством команды DECLARE.

5. Совместимость с ранее разработанным обеспечением в среде FoxPro.

Access

        Microsoft Access - это самая популярная сегодня настольная система управления базами данных. Ее успех можно связывать с великолепной рекламной компанией, организованной Microsoft, или включением ее в богатое окружение семейства Microsoft Office. Вполне возможно, что это так. Но корень успеха скорее всего заключается в прекрасной реализации продукта, рассчитанного как на начинающего, так и на квалифицированного пользователя. Не будем сейчас вдаваться в подробности сравнения отдельных характеристик Access, и его основных конкурентов, например Paradox for Windows или Lotus Approach. Эта система прекрасно освещена в периодической компьютерной печати.
        СУБД Access 7.0 для работы с данными использует процессор баз данных Microsoft Jet 3.0, объекты доступа к данным и средства быстрого построения интерфейса - Конструктор форм. Для получения распечаток используются Конструкторы отчетов. Автоматизация рутинных операций может быть выполнена с помощью макрокоманд. На тот случай, когда не хватает функциональности визуальных средств пользователи Access могут обратиться к созданию процедур и функций. При этом как в макрокомандах можно использовать вызовы функций, так и из кода процедур и функций можно выполнять макрокоманды.
        Несмотря на свою ориентированность на конечного пользователя в Access присутствует язык программирования Visual Basic for Application, который позволяет создавать массивы, свои типы данных, вызывать DLL-функции, с помощью OLE Automation контролировать работу приложений, которые могут функционировать как OLE -серверы. Можно целиком создавать базы данных с помощью кодирования, когда в этом появляется необходимость.
        MS Access из всех рассматриваемых средств разработки имеет, пожалуй, самый богатый набор визуальных средств. Тем не менее кодировать в Access приходится. Так как ни одно приложение не предназначенное для себя лично, создать хотя бы без одной строчки кода невозможно. Для коммерческого распространения приложений, разработанных на Access, как мы уже писали, предназначен пакет Access Developer Toolkit, вместе с которым поставляются и несколько дополнительных объектов ActiveX.
        Главное качество Access, которое привлекает к нему многих пользователей,- тесная интеграция с Microsoft Office. К примеру, скопировав в буфер графический образ таблицы, открыв Microsoft Word и применив вставку из буфера, мы тут же получим в документе готовую таблицу с данными из БД.
        Вся работа с базой данных осуществляется через контейнеры базы данных. Отсюда осуществляется доступ ко всем объектам, а именно: таблицам, запросам, формам, отчетам, макросам, модулям.
        Посредством драйверов ISAM можно получить доступ к файлам таблиц некоторых других форматов: DBASE, Paradox, Excel, текстовым файлам, FoxPro 2.x, а посредством технологии ODBC - и к файлам многих других форматов.
        Access 7.0 может выступать как в роли OLE- контролера, так и OLE сервера. Это значит, что можно контролировать работу приложений Access из любого приложения, при условии, что оно может выступать в роли OLE контролера и наоборот.
        Встроенный SQL позволяет максимально гибко работать с данными и значительно ускоряет доступ к внешним данным.
        Пользователем, малознакомым с понятиями реляционных баз данных Access дает возможность разделять свои сложные по структуре таблицы на несколько, связанных по ключевым полям.
        Access - это типичная настольная база данных. В то же время на небольшом предприятии с количеством компьютеров не больше десяти, ресурсов Access вполне может хватить для обслуживания всего делопроизводства, естественно в связке с Microsoft Office. То есть все пользователи могут обращаться к одной базе данных, установленной на одной рабочей станции, которая не обязательно должна быть выделенным сервером. Для того, чтобы не возникли проблемы сохранности и доступа к данным, имеет смысл воспользоваться средствами защиты, которые предоставляет Access. При этом вы можете воспользоваться мастером, если не уверены, что сами правильно установите права и ограничения для пользователей.
        В отличие от других рассмотренных средств разработки, СУБД Access имеет русифицированный интерфейс и частично переведенный на русский язык файл контекстной помощи.
        А также Access обладает лучшей встроенной системой защиты среди всех настольных приложений СУБД. Вы можете создавать группы, пользователей, присваивать права доступа ко всем объектам, в том числе и модулям. Кстати, это решает вопрос закрытия ваших процедур и функций от чужих глаз. Так как для Access нет компилятора, то необходимость защиты становится очень актуальной для разработчиков. Система защиты доступна только при открытой базе данных. Каждому пользователю можно предоставить индивидуальный пароль. Система защиты доступна как с помощью визуальных средств, так и программным путем. Если вы хотите защитить вашу базу данных даже от пользователя с именем Admin, то пользуйтесь услугами настройки Sequrity, которая поставляется вместе с Access Developer Toolkit. Помимо этого вы можете закрыть вашу базу данных от просмотра внешними программами.

Visual Basic

        Visual Basic является универсальным средством программирования, однако рассматривать его возможности только с точки зрения создания приложений по обработке данных нельзя.
        В отличие от большинства пакетов программ Visual Basic не имеет главного окна, объединяющего все остальные элементы интерфейса разработчика. Каждый элемент Visual Basic имеет свое независимое окно, которое может быть убрано или расположено независимо от других в любом месте экрана.
        Основные возможности Visual Basic, применяемые в разработке приложений для обработки информации, могут быть реализованы благодаря наличию в нем объектов для доступа к данным - Data Access Object (DAO), 32-разрядного процессора данных- JET 3.0 и предназначенных специально для работы с данными элементов управления.
        Процессор данных в Visual Basic поддерживает все стандартные операции по созданию, изменению и удалению таблиц, индексов и запросов.
        Формат БД процессора данных Visual Basic соответствует формату Access. JET 3.0 также обеспечивает поддержку целостности и проверку вводимых и изменяемых данных на уровне полей и записей. Для изменения данных JET 3.0 позволяет использовать язык SQL.
        Управление базой данных обеспечивается процессором данных с помощью объектов для доступа к данным. Эти объекты позволяют разработчику программным путем, с помощью соответствующих свойств и методов DAO, как манипулировать данными так и управлять структурой БД, включая ее создание. По сравнению с предыдущей версией Visual Basic возможности объектов для доступа к данным теперь существенно расширены. В Visual Basic для работы с данными можно применять для работы с данными несколько рабочих областей, поддерживать целостность данных, включая каскадное удаление и обновление, и обеспечивать их защиту от несанкционированного доступа. Кроме этого применение коллекций существенно сокращает программный код.
        Уникальным свойством JET 3.0 является возможность создания копий данных (репликации БД). Для создания копий БД разработчику достаточно воспользоваться методом MakeReplica при задании метода Synchronize выполняется согласование данных в обновляемой и оригинальной БД. Причем эти операции могут выполняться как с файлами формата БД процессора данных, так и с БД других форматов, поддерживаемых через ODBC.
        Нельзя не отметить, что JET 3.0 используют индексы новой, более компактной структуры, позволяющие уменьшить время их создания и ускорить процесс поиска данных.
        В Visual Basic Enterprice Edition включены объекты для доступа к внешним данным - Remote Data Object (RDO) и соответствующие элементы управления- Remote Data Control (RDC). Это позволяет, не прибегая к помощи процессора данных JET 3.0, использовать все возможности работы с курсорами на сервере, достигая максимально возможной скорости доступа к данным минимизируя сетевой трафик.

MS SQL Server

        Microsoft SQL Server 6.5 - одна из наиболее мощных СУБД архитектуры клиент - сервер. Эта СУБД позволяет удовлетворять такие требования, предъявляемые к системам распределенной обработке данных, как тиражирование данных, параллельная обработка, поддержка больших баз данных на относительно не дорогих аппаратных платформах при сохранении несмежного управления.
        MS SQL Server представляет собой систему, конечно, плохо сравнимую с рассмотренными выше СУБД. Он не предназначен непосредственно для разработки пользовательских приложений, а выполняет функции управления базой данных. Для пользовательского приложения SQL Server является мощным источником генерации и управления нужными данными.
        Сервер имеет средства удаленного администрирования и управления операциями, организованные на базе объектно - ориентированной распределенной среды управления. Microsoft SQL Server 6.5 входит в состав семейства Microsoft BackOffice, объединяющего 5 серверных приложений, разработанных для совместного функционирования в качестве интегрированной системы.
        Microsoft SQL Server 6.5 предназначен исключительно для поддержки систем, работающих в среде клиент-сервер. Он поддерживает широкий спектр средств разработки и максимально прост в интеграции с приложениями, работающими на ПК.
        Построенная на основе технологических решений, появившихся в Microsoft SQL Server 6.0, версия 6.5 демонстрирует много значительных нововведений. SQL Server 6.5 превосходит предыдущую версию с точки зрения применения многопоточной параллельной архитектуры операционной системы для повышения производительности и масштабируемости, когда на компьютере установлено несколько процессоров.
        SQL Server 6.5 имеет новую масштабируемую архитектуру блокировок, называемую Динамической блокировкой ( Dinamic Locking), которая комбинирует блокировку на уровне страницы и записи для достижения максимальной производительности и подключения максимального числа пользователей.
        SQL Server может тиражировать информацию в БД иных форматов включая Oracle, BM DB2, Sybase, Microsoft Access и другие СУБД ( при наличии ODBC драйвера, отвечающего определенным требованиям).
        Хранимые процедуры, поддерживающие OLE Automation, позволяют разработчику применять практически любой инструмент из тех, что поддерживают OLE, в целях создания хранимых процедур для SQL Server. Visual Basic 4.0 поддерживается посредствам новой 32-разрядной DB-Library (OCX). Многочисленные расширения языка Transact-SQL включают расширенную поддержку курсоров, возможность использования команд определения данных внутри транзакций и т .д.
        Microsoft SQL Server 6.5 содержит Ассистент администратора. Этот инструмент позволяет назначать основные процедуры сопровождения базы данных и определять для них график выполнения. Операции по сопровождению баз данных включают проверку распределения страниц, целостности указателей в таблицах (включая системные) и индексах, обновления информации, необходимой оптимизатору, реорганизацию страниц в таблицах и индексах, создание страховочных копий таблиц и журналов транзакций. Все эти операции могут быть установлены для автоматического выполнения по заданному администратором графику.
        Пакет Enterprise Manager включает утилиту, позволяющую переносить некоторые или все объекты из одной базы данных в другую. Используя эту утилиту разработчик или администратор может:

Сервер, который получает объекты, должен быть Microsoft SQL Server версии 6.5.Сервер-источник может быть Microsoft SQL Server версии 4.х или 6.х или сервер Sybase.
SQL Server предоставляет возможность создания страховочных копий и восстановления индивидуальных таблиц. Загрузка таблицы может быть выполнена либо из копии индивидуальной таблицы, либо из копии базы данных. Загрузка индивидуальных таблиц может оказаться хорошим решением при необходимости восстановления данных после сбоя, когда загрузка всей базы данных неэффективна.

Вывод:
        На основании проведенного анализа СУБД можно сказать, что :

 

ЛИТЕРАТУРА:
1. Горев А., Ахаян Р., Макашарипов С. “Эффективная работа с СУБД”. 1997 г., С.-Петербург.