Автоматизированные банки данных в системах управления водным транспортом. Учебное пособие
.pdf
где используются СУБД, которые оптимизированы для решения этих задач;
СУБД
|
|
|
|
|
Специализированные |
|
Общего назначения |
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Для работы на ПЭВМ |
Функционирующие в |
режиме клиент/сервер Рис. 22 Классификация СУБД по назначению
СУБД общего назначения, предназначенные для решения широкого круга задач обработки данных, которые в свою очередь можно разделить на:
•СУБД, предназначенные для работы на персональных ЭВМ
(например, семейство dBase, Btrieve, Clarion, Clipper, Fox Base, R: Base, Paradox, Access, Fox Pro и др.);
•СУБД, функционирующие в режиме клиент/сервер (например,
Oracle SyBase, Informix, Ingres, Quest, Progress и др.).
СУБД, предназначенные для работы на ПЭВМ могут работать в локальной сети, но в этом случае файл-сервер используется прежде всего в качестве дополнительного общего жесткого диска, к которому могут обращаться одновременно несколько пользователей. Если рабочей станции необходимо получить данные, размещенные на файлсервере, на него посылается запрос. Файл-сервер передает требуемые данные на рабочую станцию, где они в дальнейшем обрабатываются. Одним из существенных недостатков использования файл-сервера при работе с базами данных является большой поток данных в сети, что приводит к снижению ее производительности.
В отличие от файл-сервера, сервер базы данных в режиме клиент/сервер используется не только для хранения информации, но и для обработки запросов к базе данных. Сервер базы данных устанавливается на файл-сервере локальной сети. Запросы рабочей станции обрабатываются сервером базы данных и обратно возвращается только результат выполнения запроса. Такой подход
уменьшает поток данных в сети. Кроме того, обработка запросов сервером базы данных осуществляется быстрее, чем на рабочей станции, поскольку:
•в качестве сервера базы данных, как правило, используется гораздо более мощный компьютер;
•СУБД используемая в качестве сервера базы данных, обладает более совершенными средствами обработки данных.
СУБД можно также классифицировать по степени их сложности
исредствам взаимодействия с пользователем (рис. 23).
СУ Б Д
Обработки небольших объемов информации
Конечного пользователя
Разработки законченного приложения
Конечного пользователя
смощными средствами программирования
Рис. 23. Классификация СУБД по степени их сложности и средствам взаимодействия с пользователем
Использование СУБД для обработки небольших объемов информации не требует предварительного обучения. Примерами таких СУБД являются базы данных, входящие в состав интегрированных пакетов типа Microsoft Works. Основным достоинством таких СУБД является их простота и мощные средства встроенной помощи, которые позволяют шаг за шагом создавать таблицы, формы, отчеты и содержат большое количество встроенных шаблонов.
Наиболее яркими примерами СУБД ориентированных, прежде всего на конечного пользователя, который не умеет программировать,
являются Microsoft Access и Quest фирмы Gupta.
К СУБД, ориентированным, прежде всего на разработку законченного приложения, относятся dBase, Fox Pro и почти все СУБД
типа клиент/сервер. Данные системы требуют умения программировать на языке конкретного СУБД и используются при создании достаточно сложных систем. От пользователей законченных приложений не требуется знание СУБД, а только умение пользоваться приложением.
Среди СУБД, сочетающих ориентированность на конечного пользователя с мощными средствами программирования, ведущее положение занимает Paradox для Windows фирмы Borland Int, который сочетает «дружественный» пользовательский интерфейс и простоту его изучения с широкими возможностями.
Наличие большого количества разнообразных СУБД затрудняет выбор оптимальной системы для разработки конкретного приложения. Поэтому в последнее время все более популярными становятся системы разработки приложений клиент/сервер в среде Windows, которые независимы от конкретных серверов баз данных. На данный момент существуют две наиболее мощные программы создания приложений клиент/сервер: Power Builder компании Powersoft и SQL Windows компании Gupta.
6.3. Функции СУБД
СУБД представляет собой совокупность программных и языковых средств, предназначенных для создания, ведения и использования баз данных. Являясь специализированным пакетом прикладных программ, СУБД позволяет расширить возможности операционной системы в области управления базами данных. В банках данных СУБД является принципиально необходимой частью информационной системы. В подтверждении этого можно привести следующие факторы:
•логическая и физическая организация БД являются нестандартными для операционных систем и языков программирования;
•описание баз данных и их фрагментов отделено от прикладных программ и должно создаваться и обрабатываться специальными средствами;
•доступ к данным, включающий вычисление адресов, маршрутизацию в базе данных, локализацию записей, основывается на специальных методах и требует разработки специальных алгоритмов и управляющих программ;
•обработка реляционных баз данных базируется на операциях реляционной алгебры, не предусмотренных в операционных системах и системах программирования;
•специальная обработка БД, такая, как поддержания целостности, непротиворечивости и неизбыточности данных, декомпозиция запросов, параллельное выполнение транзакций, частично или даже полностью не реализована в этих системах.
Поэтому работа пользователей с базами данных без СУБД была бы затруднительна или даже невозможна. СУБД берет на себя все указанные выше операции по обслуживанию и обработке баз данных на каждом из трех этапов жизненного цикла БД – в процессе создания, ведения и использования.
Все функции СУБД можно разделить на три группы: управление базами данных (система выполняет роль менеджера); разработка, отладка и выполнение прикладных программ (система осуществляет функции транслятора); выполнение вспомогательных операций (сервис).
Взависимости от того, что является объектом управления, в СУБД предусмотрены три уровня управления (манипулирования):
• управление файлами, осуществляемое в процессе их генерации
иэксплуатации. Основными операциями являются открытие и закрытие, копирование, переименование, реструктурирование, реорганизация, восстановление баз данных, снятие отчетов по базам данных;
• управление записями (кортежами), которое включает чтение, добавление, удаление и упорядочение записей;
• управление полями записей (атрибутами).
Всоответствии с указанным набором функций в состав СУБД входят, как уже отмечалось выше, программы трех типов: управляющие (средства работы с БД), обрабатывающие (средства создания БД) и сервисные.
6.4. Режимы работы СУБД
СУБД, как транслятор, может работать в двух режимах: режиме интерпретатора и режиме компилятора.
Интерпретация состоит в последовательной, пооператорной обработке и выполнении программы: каждый оператор исходной программы проходит синтаксический контроль, преобразование в последовательность машинных команд и их немедленное выполнение. После выполнения сгенерированные машинные команды стираются, и
система переходит к обработке и выполнению следующего оператора исходной программы. Машинный файл exe не создается.
При компиляции, в отличие от интерпретации, осуществляется создание файла exe. Процесс создания, которого включает два этапа:
•синтаксический контроль всей исходной программы и генерацию объектного модуля obj, выполняемые компилятором;
•создание из объектного модуля exe – файла путем обработки его редактором связей. Exe – файл является выполняемым и не требует наличия СУБД.
Примерами СУБД, работающих как интерпретатор, являются dBase||| Plus и Fox Base, работающих как компилятор – СУБД Clipper, работающих в обоих режимах – СУБД Clarion.
СУБД, как пользовательский интерфейс, предоставляет пользователю два режима работы: интерактивный (режим меню) и программный (командный).
В режиме меню система выводит на экран в виде пунктов меню ряд альтернативных вариантов работы, один из которых пользователь должен выбрать. Далее система выполняет все предусмотренные этим пунктом операции, по окончании которых, осуществляется, как правило, возврат в меню. Обычно при запуске СУБД сразу входит в этот режим.
Режим меню обеспечивает высокий уровень автоматизации работы пользователя, отличается хорошей наглядностью, прост в освоении, не требует знания языка программирования, т.к. он не используется, однако возможности режима меню по созданию достаточно гибких и сложных информационных систем ограничены.
В программном режиме происходят ввод и выполнение отдельных операторов языка программирования, составление, отладка
ивыполнение программы в целом. СУБД в этом случае работает как интерпретатор. От пользователя требуется знание языка программирования.
6.5. Языки программирования в СУБД
Такие операции, как ввод данных с клавиатуры, вычисления, организация циклов и ветвлений, вывод данных на экран и принтер, и некоторые другие не являются сферой деятельности СУБД, а определяются в прикладных программах. Для разработки прикладных программ в СУБД предусматривается специальный язык программирования.
К языкам программирования, используемым в СУБД, кроме традиционных, стандартных требований предъявляется также требование полноты языка, состоящее в том, что язык должен иметь набор средств, необходимый и достаточный для работы с базами данных и обработки найденной информации.
Языки программирования, используемые в СУБД, классифицируются по ряду признаков, основными из которых считаются те, которые отражают предназначение языка, возможности, свойства, особенности и ориентацию на определенную категорию пользователей. Из множества признаков отметим три наиболее существенных признака классификации по степени открытости языка (способности включения в него новых средств), по степени декларативности языка и по используемому в языке математическому аппарату (рис. 24).
По степени открытости различают открытые (включающие) и замкнутые (базовые, специализированные) языки. Включающий язык – это стандартный алгоритмический язык программирования, расширенный средствами подъязыка данных – операторами манипулирования базами данных, т.е. командами, связанными с обращением к БД. Операции, непосредственно не связанные с обращением к БД, не входят в функции подъязыка и реализуются средствами включающего языка.
Языки программирования в СУБД
признаки
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Степень |
|
|
|
Степень |
|
|
|
|
Использование |
|
||
|
|
|
|
|
декларативности |
|
|
|
математического |
|
||||
|
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
аппарата |
|
|
|
|
Открытые |
|
|
|
|
|
|
|
|
|
|||
|
|
(включающие) |
|
|
|
Процедурные |
|
|
|
|
Ориентированные на |
|||
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
манипулирование |
||
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
Непроцедур- |
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
одиночными |
|||
|
|
Замкнутые |
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
ные |
|
|
|
|
|
записями |
|||
|
|
(базовые специа- |
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
лизированные) |
|
|
|
|
|
|
|
|
Использующие |
|||
|
|
|
|
|
|
|
|
|
|
|
|
аппарат реляционной |
||
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
алгебры |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
Основанные на |
||
|
|
|
|
|
|
|
|
|
|
|
|
исчислении |
||
|
|
|
|
|
|
|
|
|
|
|
|
отношений |
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Рис. 24. Классификация языков программирования в СУБД
Замкнутый язык программирования является специальным базовым языком. По возможностям средств манипулирования он существенно превосходит включающие языки, но несколько уступает им по вычислительным возможностям. Такие языки широко используются в СУБД на персональных ЭВМ (ПЭВМ). К ним относятся языки dBase, Clipper, SQL, QBE и др.
По степени декларативности различают процедурные и непроцедурные (декларативные) языки. Процедурность и декларативность – два противоположных свойства языка, отражающие степень алгоритмизации решаемой задачи.
Процедурные языки требуют от пользователя описания алгоритма получения требуемых данных, т.е. ответа на два вопроса: что необходимо получить из базы данных и как следует получить результат (например, язык dBase). Декларативные языки не требуют от пользователя описания алгоритма получения результата: в запросе на декларативном языке указывается, что требуется получить, но не содержится указаний, как получить результат. Алгоритм получения результата формируется в самой СУБД, что существенно облегчает работу пользователя, повышая его производительность. Например, язык QBE.
По используемому математическому аппарату языки программирования делятся на три уровня. К низшему уровню относятся языки, ориентированные на манипулирование одиночными записями, т.е. основанные на принципе «одно выполнение оператора – одна запись БД». Ориентация на обработку одиночными записями характерна для иерархической и сетевой моделей данных. К более высокому уровню принадлежат языки, использующие аппарат реляционной алгебры. Они обеспечивают манипулирование не одиночными записями, а множествами записей: в качестве операндов и результатов операций используются отношения реляционной модели данных. Примером «чистого» языка реляционной алгебры является язык запросов ISBL, разработанный фирмой IBM. К сожалению он не находит широкого применения, несмотря на высокий уровень, т.к. является процедурным.
Для снижения процедурности и создания максимальных удобств пользователям разработан ряд языков, основанных на исчислении отношений. Классическим примером такого языка является язык Альфа. Язык обладает абсолютной непроцедурностью, его предложения записываются не в виде традиционных операторов или команд, а в виде специальных альфа-выражений.
6.6. Структура программы
Программа в СУБД, так же как и в стандартных системах программирования, представляет собой последовательность операторов языка программирования. В зависимости от степени сложности решаемых задач программа может иметь простую либо сложную структуру. В последнем случае программа строится по модульному принципу, т.е. включает главный модуль и множество подпрограмм (процедур). При разработке банков данных принцип модульности наиболее удобен и эффективен.
В главном модуле, как правило, предусматриваются:
•задание начальных значений переменных, установка параметров, определение режимов работы системы;
•открытие файлов (базы данных, индексных файлов и др.);
•работа с главным меню программы (системы).
Конкретных действий по обработке баз данных, формированию и выводу документов в главном модуле, как правило, не программируется: все эти операции обычно определяются в процедурах.
В главном меню пользователю предоставляется альтернатива выбора одной из ветвей, реализуемой с помощью соответствующей процедуры. Если обозначить переход от выбранного пункта меню к требуемой процедуре командой do, то работу многомодульной программы можно представить в виде изображенном на рис, 25.
. . . . . . . |
Главный |
|
. . . . . . . |
модуль |
|
d0 |
p1 |
|
. . . . . . . |
|
|
. . . . . . . |
|
|
d0 |
p2 |
|
. . . . . . . |
|
|
procedure p1 |
|
|
. . . . . . . |
|
|
. . . . . . . |
|
|
return |
|
|
procedure p2 |
|
|
. . . . . . . |
|
|
. . . . . . . |
|
|
return |
|
|
Рис. 25 Структура многомодульной программы |
||
При выборе пользователем одного из пунктов меню выполнение главного модуля приостанавливается, осуществляется переход к процедуре, указанной в операторе do, процедура выполняется, и после ее завершения оператором return осуществляется возврат в главный модуль с восстановлением на экране главного меню. Это дает возможность пользователю продолжить работу с программой без ее перезапуска, выбрав новый или тот же самый пункт меню.
Вкаждой из процедур для ветвлений процесса работы системы на нижележащем уровне могут быть, в свою очередь, предусмотрены дополнительные меню (подменю).
6.7.Основные показатели СУБД
Внастоящее время широко используются при разработке различных АС на персональных ЭВМ свыше 20 СУБД. Большинство из них являются реляционными. Они предоставляют пользователю удобные средства интерактивного взаимодействия с базами данных (режим меню) и имеют развитый язык программирования.
Втаблице 2 приведены перечни девяти наиболее часто используемых СУБД и отдельные показатели, характеризующие эти системы. Из показателей, отражающих размеры памяти, приведены только два: объем потребной для СУБД оперативной памяти и количество полей в структуре записи базы данных. Указаны режимы, в которых может работать пользователь. Следует обратить внимание на режим дизайнера, обеспечивающий в ходе диалога пользователя с системой генерацию прикладных программ, не требуя знания языка программирования.
Часть СУБД относится к одному и тому же классу – классу dBase: dBase ||| Plus, Clipper, dBase IV, Fox Base, Fox Pro.
Их объединяет не только однотипность структуры базы данных, но и близость языков программирования: языки этих систем dBase – подобны (в таблице это отмечено знаком *). Так язык программирования clipper системы Clipper представляет собой подмножество языка dBase, расширенное дополнительными средствами. Следовательно, по программам, составленным без использования средств расширения, все системы этого класса совместимы.
Для некоторых СУБД разработаны русифицированные версии: dBase III Plus имеет версии «Ребус», «Микро – РС – 2», «Репер»; система Fox Base Plus – версию «Карат/м»; система Clipper – версию «Суперком»; СУБД Oracle – версию «Марс-Микро».
|
Показатели СУБД |
|
|
|
|
|
Таблица 2 |
|
||
|
|
|
|
|
|
|
|
|
|
|
Наименование |
Версия |
Фирма |
Емкость ОП |
Язык |
Кол-во |
|
Режим |
|
Среднее |
|
СУБД |
|
изготовитель |
Кбайт |
программи- |
полей |
меню |
интер- |
компи- |
дизай- |
время |
|
|
|
|
рования |
|
|
прета- |
ляции |
нера |
поиска |
|
|
|
|
|
|
|
ции |
|
|
сек. |
|
|
|
|
|
|
|
|
|
|
|
dBase III Plus |
1.0 |
Borland |
256 |
dBase |
128 |
+ |
+ |
– |
– |
H |
dBase IV |
1.1 |
Borland |
512 |
dBase (*) |
255 |
+ |
+ |
– |
– |
10 |
Fox Base Plus |
|
Microsoft |
360 |
dBase (*) |
128 |
+ |
+ |
– |
– |
H |
Fox Pro |
1.02 |
Microsoft |
420 |
dBase (*) |
– |
+ |
+ |
– |
– |
10 |
Clarion |
2.4 |
Clarion |
512 |
Clarion |
– |
+ |
+ |
+ |
+ |
20 |
|
|
Software |
|
|
|
|
|
|
|
|
Paradox |
3.5 |
Borland |
512 |
QBE, PAL |
255 |
+ |
+ |
– |
– |
15 |
R: base |
3.1 |
Microrim |
512 |
– |
800 |
+ |
+ |
– |
– |
20 |
Oracle |
5.17 |
Oracle Corp |
1500 |
SQL |
255 |
– |
– |
– |
– |
H |
Clipper |
5.0 |
Nantuc Ket |
512 |
dBase (*) |
1024 |
– |
– |
+ |
– |
H |
|
|
|
|
|
|
|
|
|
|
|
Примечание: 1. В графе “Режим” знаком “+” отмечено наличие, знаком “-” - отсутствие режима. 2. Знак “Н” указывает на то, что значение неизвестно.
