logo
Титоренко издание-1

4.7. Системы управления базами данных

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

В настоящее время создано большое количество СУБД, имеющих приблизительно одинаковые возможности. Все они позволяют создавать файлы БД на диске (то есть записать их структуру), вводить данные, просматривать созданные файлы, редактировать их, обновляя записи, удаляя ненужные, добавляя новые. Созданные файлы БД можно упоряцочивать по значе­нию определенного ключевого реквизита или нескольких рекви­зитов, выполнять поиск информации в базе, формировать отче­ты заданной формы по ее данным. Кроме того, очень важной является функция изменения структуры уже созданного файла базы данных. Часто в связи с изменяющимися внешними усло­виями требуется увеличить разрядность какой-либо графы (например, «цена» или «сумма» в связи с инфляцией) или доба­вить новый реквизит. Функция изменения структуры базы дан­ных разрешает эту проблему автоматически, перезаписывая файл на новое место на диске с измененной структурой. При этом файлу с измененной структурой присваивается тоже имя, а старая копия файла сохраняется на диске с тем же именем, но с расширением. Расширение — это дополнительная страховка, выполняемая СУБД, которая предохраняет пользователя от по­тери данных при выполнении операции перезаписи и служит одной из мер защиты данных в БД. Кроме этой меры преду­смотрен еще ряд, возможностей, предохраняющих пользователя от случайной потери данных: предупреждения перед необрати

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

Наиболее известной среди СУБД является система dBASE, кроме нее существуют FoxBase, FoxPro, Paradox, SQL, Rbase, Clipper, Oracle и др.

СУБД предполагает работу пользователя с базой данных в раз­ных режимах:

• режим «ассистента» с использованием разветвленного меню;

наиболее простой способ работы, не требующий специальной подготовки пользователя, кроме общих представлений 6 ра­боте с базами данных;

• командный режим, предполагающий диалог пользователя и системы на языке команд СУБД, требует от пользователя знания этого языка;

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

Выбор СУБД определяется многими факторами, но главный из них - возможность работы с построенной моделью данных. По­этому одной из важнейших характеристик является тип модели (иерархический, сетевой, реляционный), который поддерживается СУБД. Имеются системы для работы с иерархическими и сетевыми моделями, однако большинство СУБД для персональных ЭВМ ра­ботают с реляционной моделью. Таковы системы dBase, FoxBase, FoxPro, Clipper, Paradox, Rbase. Реляционные СУБД для персо­нальных ЭВМ различаются набором реляционных операций, кото­рые СУБД может выполнять. Перечисленные СУБД эффективны для создания небольших изолированных систем с несложной структурой данных, с-относительно небольшими объемами данных (10-40 Мбайт) и несложными запросами. За пределами такого рода ограничений эффективность использования указанных СУБД су­щественно снижается.

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

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

средств.

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

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

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

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

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

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

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

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

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

Современные крупные информационные системы базируют­ся на взаимодействии информационных ресурсов, в основе ко­торых лежат самые разные форматы и модели представления данных. Например, каналы системы WWW (World Wide Web) представляют собой множество неформально связанных ин­формационных ресурсов сети Internet. Неформальность и рас­пределенный характер информации в среде Internet представля­ет разительный контраст в сравнении со структурированностью и управляемостью современных БнД, WWW — это распределен­ная среда (всемирная паутина), состоящая из автономных сис­тем, узлы которой все чаще формируются как реляционные ба­зы данных. Новые информационные среды заставляют переос­мыслить многие концепции и являются предпосылками в облас­ти развития БнД.

Благодаря постоянному улучшению соотношения «цена — про­изводительность» для технологий БнД в целом и их отдельных наиболее критичных компонентов, каждые несколько лет появля­ются возможности для решения новых классов задач, создания принципиально новых приложений и услуг, которые прежде нахо­дились за пределами реального. Эти тенденции не ослабевают еще и потому, что постоянно совершенствуются два важнейших пока­зателя: стоимость пересылки одного бита информации и число бит, пересылаемых в секунду.

Изменение различных системных параметров в прикладном программном обеспечении влияет на производительность БнД. До­бавление новых транзакций, новых объектов (данных), пользовате­лей проявляется количественно изменением времени доступа (отклика) к данным. Радикально меняются требования, предъяв­ляемые к системам баз данными для того, чтобы вписаться в но­вые стратегии прикладного программного обеспечения, необходи­мы новые подходы к их разработке. Наблюдается тенденция к ус­ложнению структур данных. Появляются новые виды и источники данных.

Главная функция любой СУБД — координация совместной ра­боты множества пользователей с разделяемый информацией.

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

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

Поддержание механизма транзакций — показатель уровня раз­вития СУБД. Результаты всех операций, входящих в транзакцию, либо отображаются в базе полностью, либо результат воздействия отсутствует совсем.

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

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

Большинство информационных систем в нашей стране исполь­зуют простейшие СУБД, которые функционируют на персональ­ных компьютерах. Такие системы покрывают первоначальные по­требности организаций, но они не перспективны.

Базой систем нового поколения являются профессиональные (многопользовательские, многоплатформенные) СУБД и архитек­тура «клиент — сервер», реализуемая на их основе.

Профессиональные СУБД обеспечивают выполнение более сложных операций. Они позволяют разработчику расширять сер­висные возможности — процедуры базы данных, которые вызыва­ются клиентом и выполняются сервером более производительно, чем компьютеры на рабочих местах пользователей. К профессио­нальным СУБД относятся Oracle, SyBase, Informix, Ingres, Progress. Перечисленные системы имеют средства обработки информации, распределенной по нескольким узлам сети. Распределенная обра­ботка данных позволяет разместить базу в различных узлах таким

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

Новейшей технологией управления распределенными базами данных является тиражирование. Профессиональные СУБД под­держивают те или иные механизмы тиражирования.

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

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

Особенностью современных информационных систем, напри­мер, биржевых или банковских, является требование оперативного оповещения пользователей о происходящих событиях. Например, все участники фондовой биржи должны немедленно получать ин­формацию о совершенных сделках, изменениях котировок и т.д. Другими словами, предполагается наличие некоторого количества процессов, которые должны исполняться параллельно и синхрони­зироваться во время исполнения. Это приводит к необходимости обмена информации между ними. Профессиональные СУБД типа Oracle позволяют организовать эти процессы в виде отдельных приложений на одной базе данных. Например, при совершении сделки процесс, занимающийся их регистрацией, возбуждает собы­тие «совершена сделка». Результаты ее включаются в общий поток информации о сделках. Если же этот процесс не исполняется, то событие «совершена сделка» не приводит ни к каким дополни­тельным действиям. Механизмы событий, реализованные в совре­менных профессиональных СУБД, являются готовым технологиче­ским средством, которое позволяет разработчикам информационных систем экономить значительное количество времени и усилий.

По мере развития любой хозяйственной деятельности появля­ется потребность в наращивании информационной системы. Воз­никает вопрос, как встроить имеющееся локальное приложение в новую систему. Профессиональные СУБД предоставляют доста­точно широкие возможности. Развитые системы шлюзов позволяют строить информационные системы, распределенные по узлам с различными аппаратными и программными платформами. Боль­шой интерес представляет также использование локальными при­ложениями так называемого ODBC - стандарта (Open DataBase Connectivity, стандарт, предложенный фирмой Microsoft), который дает возможность прозрачного доступа к данным СУБД различных типов. Таким образом, приложение, разработанное с учетом стан­дарта ODBC, имеет большую гибкость при интеграции в сущест­вующую информационную систему.

Потребность в гибких решениях для современных информаци­онных систем диктуется жизнью. На практике чаще всего встреча­ется потребность в объединении возможностей отдельных подсис­тем или программных модулей. Причем все это нужно иметь на одной базе данных. Через некоторое время соотношение потреб­ностей может измениться. Поэтому для построения информацион­ной системы важно иметь инструмент, который наиболее приспо­соблен для построения открытых и гибких систем. Таким инстру­ментом в настоящий момент являются профессиональные СУБД SQL, обеспечивающие работу в модели «клиент — сервер» и обла­дающие развитыми средствами разработки и сопровождения баз данных. Использование профессиональной СУБД позволяет иметь программное обеспечение, в большей степени отвечающее кон­кретным потребностям организации.

Защита данных от несанкционированного доступа в профес­сиональных СУБД обеспечивается на разных уровнях:

• операционная система поддерживает разграничение прав дос­тупа пользователей;

• СУБД представляет свое разграничение прав доступа;

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

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

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

Где произошло рас­согласование? Какая информация правильна: о счетах или о сдел­ках? Ответить на эти вопросы практически невозможно, если раз­работчики информационной системы не предприняли специаль­ных усилий для поддержания ссылочной целостности базы данных.

Методы поддержания целостности данных известны. Это — ве­дение журналов изменения таблиц и обработка транзакций. Разли­чие между персональными и профессиональными СУБД здесь в том, что в первом случае разработчик должен брать их реализацию на себя, а во втором - они уже реализованы внутри СУБД.

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

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

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

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

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