Системы управления базами данных и базами знаний
Для работы с файлами баз данных созданы специальные пакеты прикладных программ, называемые системой управления базами данных (СУБД). Средствами СУБД любой пользователь может создать файлы БД, просматривать их, изменять, выполнять поиск, формировать отчеты произвольной формы.
В настоящее время существует большое количество СУБД, имеющих приблизительно одинаковые возможности. Все они позволяют создавать файлы БД на диске, вводить данные, просматривать созданные файлы, редактировать их, обновляя записи, удаляя ненужные, добавляя новые. Созданные файлы БД можно упорядочивать по значению определенного ключевого реквизита или нескольких реквизитов, выполнять поиск информации в базе, формировать отчеты заданной формы по ее данным. Кроме того, очень важной является функция изменения структуры уже созданного файла базы данных. Часто в связи с изменяющимися внешними условиями требуется увеличить разрядность какой-либо графы или добавить новый реквизит, функция изменения структуры базы данных разрешает эту проблему автоматически, перезаписывая файл на новое место на диске с измененной структурой. При этом файлу с измененной структурой присваивается тоже имя, а вторая копия файла сохраняется на диске с тем же именем, но с расширением. Расширение - это дополнительная страховка, выполняемая СУБД, которая предохраняет пользователя от потери данных при выполнении операции перезаписи и служит одной из мер защиты данных в БД. Кроме этой меры предусмотрен еще ряд возможностей, предохраняющих пользователя от случайной потери данных: предупреждения перед необратимыми операциями типа очистки файла от данных, перезапись файлов и так далее. Средства СУБД также позволяют организовать систему паролей для защиты от несанкционированною доступа к данным базы.
Наиболее известными среди СУБД являются системы dBASE, FoxPro, Paradox, SQL, Sybase, Clipper, Oracle и др.
СУБД предполагает работу пользователя с базой данных в разных режимах: режим "ассистента" с использованием разветвленного меню - наиболее простой способ работы, не требующий специальной подготовки пользователя, кроме общих представлений о работе с базами данных; командный режим, предполагающий диалог пользователя и системы на языке команд СУБД, требует от пользователя знания этого языка; программный режим, использующий язык СУБД и позволяющий создать пользовательские программы различной степени сложности, удобно оформленные, выполняющие все функции, необходимые для решения задачи.
Большинство современных комплексов программ, решающих экономические задачи, написаны на языках СУБД. Эти языки позволяют создать программы, имеющие удобный "дружественный" пользовательский интерфейс.
Выбор СУБД определяется многими факторами, но главный из них - возможность работы с построенной моделью данных. Поэтому одной из важнейших характеристик является тип модели, который поддерживается СУБД. Имеются системы для работы с иерархическими и сетевыми моделями, однако большинство СУБД для персональных ЭВМ работают с реляционной моделью. Таковы системы dBase, FoxPro, Clipper, Paradox, R:base. Реляционные СУБД для персональных ЭВМ различаются набором реляционных операций, которые СУБД может выполнять. Перечисленные СУБД эффективны для создания небольших изолированных систем с несложной структурой данных, с небольшими объемами данных (10-40 Мбайт) и несложными запросами. За пределами такого рода ограничений эффективность использования указанных СУБД существенно снижается.
В частности, далеко не все СУБД обеспечивают представление доступа нескольким пользователям, режим секретности и надежности, целостность и согласованность данных при многопользовательской работе. Нередко все эти функции развитых сложных СУБД переносятся на программистов. На практике это означает, что указанные важнейшие требования не будут реализованы в полной мере. Практика показывает, что необходимо переходить на новую аппаратную, а следовательно, и программную основу, если объем данных и сложность решаемых задач достигнут предела возможностей ЭВМ и СУБД.
Как программный продукт СУБД характеризует цена, набор реализуемых функций, объем памяти. Для каждой СУБД в технической документации указывается требуемая операционная среда, а также минимальная и рекомендуемая конфигурация технических средств.
При выборе СУБД пользователя-экономиста в первую очередь должны интересовать трудности освоения системы, легкость ее внедрения и использования, сложности работы в среде данной СУБД, качество технической документации и уровень сопровождения.
Удобство и комфортность работы пользователя с СУБД во многом определяются пользовательским интерфейсом. Пользовательский интерфейс - это средство и часть СУБД, ориентированные на взаимодействие пользователя с компьютерной системой. Благодаря разветвленным иерархическим меню, всевозможным подсказкам и разнообразной помощи, пользователю легко ориентироваться в выборе действий, адекватных возникающей в процессе работы ситуации. Очень важна в интерфейсе минимизация действий пользователя, необходимых для подключения часто требуемых функций. Для этой цели применяются функциональные клавиши. Их нажатие вызывает исполнение программных модулей, которые реализуют требуемую функцию. Пользовательский интерфейс может быть многоуровневым, рассчитанным на более широкий круг разнообразных пользователей. Благодаря дружественному характеру интерфейса пользователь избавляется от необходимости знать язык программирования системы, чем достигается более высокая его производительность. Сочетанием простоты освоения и использования функциональных возможностей с помощью простого интерфейса обеспечивается широкая сфера применения таких массовых СУБД. При усложнении информационных потребностей пользователя возникает необходимость в более развитых СУБД и в знании языка программирования используемой СУБД.
Для функционирования баз данных приобретаются не только СУБД, но и дополнительные разнообразные программные средства, их окружения - программы обучения пользователя, справочные системы, программы восстановления базы данных при ее разрушении и др. Многообразие таких инструментальных программных средств повышает производительность пользователя, экономит время, сокращает сроки разработки и решения прикладных задач, появляется возможность выбора программы в соответствии с потребностями данной работы, обеспечивается более рациональное использование вычислительных ресурсов. Для подбора наиболее эффективных инструментальных программных средств от пользователя требуется соответствующий уровень подготовки.
Развитие СУБД осуществляется в направлениях создания систем с более высокой производительностью при сложных обработках, совместимости различных СУБД и использования их в распределенных системах, состоящих из нескольких баз данных. СУБД, способные работать в вычислительных сетях, позволяют обращаться многим пользователям к общим информационным ресурсам. Наличие графических программных средств обеспечивает работу с графическими данными. Более развитые возможности СУБД в отношении обмена данными с другими пакетами, а также в области создания прикладных программ существенны для пользователя и экономят стоимостные и трудовые затраты.
Исследовательские задачи в области технологий баз данных определяются рядом факторов, которые формируют потребности в новых средствах и возможностях, определяют направления их развития.
В связи с техническими и программными достижениями последних лет, такими как быстрый рост емкости и мощности аппаратных средств, развитие коммуникаций, появление новых видов массовой памяти, рост информационных потребностей пользователей, спектр возможностей баз данных постоянно совершенствуется.
Простые виды информации, представляемые в виде чисел и текста, не утратив своей значимости, дополняются мультимедийными данными, графическими образами, хронологическими рядами и прочими сложными информационными формами.
Базы данных и связанные с ними технологии играют ключевую роль в создании современных информационных систем. Рост информационно емких отраслей индустрии и повышение эффективности всех видов бизнеса - факторы, которые ставят развитие технологий на основе баз данных на первое место. В связи с этим требуются новые подходы к организации баз данных и созданию СУБД.
Современные крупные информационные системы базируются на взаимодействии информационных ресурсов, в основе которых лежат самые разные форматы и модели представления данных.
Благодаря постоянному улучшению соотношения "цена - производительность" для технологий банков данных в целом и их отдельных наиболее критичных компонентов, каждые несколько лет появляются возможности для решения новых классов задач, создания принципиально новых приложений и услуг, которые прежде находились за пределами реального. Эти тенденции не ослабевают еще и потому, что постоянно совершенствуются два важнейших показателя: стоимость пересылки одного бита информации и число бит, пересылаемых в секунду.
Изменение различных системных параметров в прикладном программном обеспечении влияет на производительность банков данных. Добавление новых транзакций, новых объектов, пользователей проявляется количественно изменением времени доступа к данным. Радикально меняются требования, предъявляемые к системам баз данных, и для того, чтобы вписаться в стратегии прикладного программного обеспечения, необходимы новые подходы к их разработке. Наблюдается тенденция к усложнению структур данных. Появляются новые виды и источники данных.
Главная функция любой СУБД - координация совместной работы множества пользователей с разделяемой информацией.
При переходе от персональных к многопользовательским СУБД пользователи сталкиваются с необходимостью четкого понимания механизма транзакций. Под транзакцией понимается неделимая в отношении воздействия на базу данных последовательность операций манипулирования данными.
Корректное поддержание механизма транзакций одновременно является основой обеспечения целостности баз данных, а также составляет базис изолированности пользователей в многопользовательских системах, эти два аспекта взаимосвязаны.
Поддержание механизма транзакций - показатель уровня развития СУБД. Результаты всех операций, входящих в транзакции, либо отображаются в базе полностью, либо результат воздействия отсутствует совсем.
Растущие информационные потребности отчетливо выявляют ограничения существующих технологий СУБД. Это также определяет направление их совершенствования.
Стремительное развитие средств разработки приложений, связанных с базами данных, а также средств доступа к базам данных и интерфейсов порождает проблему модернизации ранее спроектированных систем либо перевода действующих систем на новые платформы, инструменты и даже методологии.
Большинство информационных систем в нашей стране используют простейшие СУБД, которые функционируют на персональных компьютерах. Такие системы покрывают первоначальные потребности организаций, но они не перспективны.
Базой систем нового поколения являются профессиональные СУБД и архитектура "клиент - сервер", реализуемая на их основе.
Профессиональные СУБД обеспечивают выполнение более сложных операций. Они позволяют разработчику расширять сервисные возможности - процедуры базы данных, которые вызываются клиентом и выполняются сервером более производительно, чем компьютерами на рабочих местах пользователей. К профессиональным СУБД относятся Oracle, Sybase, Informix, Ingress, Progress. Перечисленные системы имеют средства обработки информации, распределенной по нескольким узлам сети. Распределенная обработка данных позволяет разместить базу в различных узлах таким образом, чтобы отслеживать изменения на всех узлах и чтобы каждый компонент данных располагался на том узле, где он будет обрабатываться.
Новейшей технологией управления распределенными базами данных является тиражирование. Профессиональные СУБД поддерживают те или иные механизмы тиражирования.
Тиражирование представляет собой асинхронный перенос изменений объектов исходной базы данных в базы данных, принадлежащие различным узлам распределенной системы. При внесении изменений одновременный доступ ко всем узлам, затрагиваемым этими изменениями, не требуется. Данные изменяются на одном узле, а затем переносятся на остальные. Тиражирование может производиться после завершения определенного числа транзакций, в том числе и после каждой транзакции, через равные промежутки или к определенному моменту времени, контролироваться администратором системы или пользовательским приложением.
Распределенная обработка позволяет в широких пределах варьировать вычислительными ресурсами, избегая узких мест, сдерживающих производительность, и добиваясь максимальной эффективности информационных систем.
Особенностью современных информационных систем, например биржевых или банковских, является требование оперативного оповещения пользователей о происходящих событиях; предполагается наличие некоторого количества процессов, которые должны исполняться параллельно и синхронизироваться во время исполнения. Это приводит к необходимости обмена информации между ними. Профессиональные СУБД типа Orасlе позволяют организовать эти процессы в виде отдельных приложений на одной базе данных. Например, при совершении сделки процесс, занимающийся их регистрацией, возбуждает событие "совершена сделка". Результаты ее включаются в общий поток информации о сделках. Если же этот процесс не исполняется, то событие "совершена сделка" не приводит ни к каким дополнительным действиям. Механизмы событий, реализованные в современных профессиональных СУБД, являются готовым технологическим средством, которое позволяет разработчикам информационных систем экономить значительное количество времени и усилий.
По мере развития любой хозяйственной деятельности появляется потребность в наращивании информационной системы. Возникает вопрос, как встроить имеющееся локальное приложение в новую систему. Профессиональные СУБД предоставляют достаточно широкие возможности. Развитые системы шлюзов позволяют строить информационные системы, распределенные по узлам с различными аппаратными и программными платформами. Большой интерес представляет также использование локальными приложениями так называемого ODBC-стандарта (Open DataBase Connectivity), который дает возможность прозрачного доступа к данным СУБД различных типов. Таким образом, приложение, разработанное с учетом стандарта ODBC, имеет большую гибкость при интеграции в существующую информационную систему.
Потребность в гибких решениях для современных информационных систем диктуется жизнью. На практике чаще всего встречается потребность в объединении возможностей отдельных подсистем или программных модулей. Причем все это нужно иметь ни одной базе данных. Через некоторое время соотношение потребностей может измениться. Поэтому для построения информационной системы важно иметь инструмент, который наиболее приспособлен для построения открытых и гибких систем. Таким инструментом в настоящий момент являются профессиональные СУБД SQL, обеспечивающие работу в модели "клиент - сервер" и обладающие развитыми средствами разработки и сопровождения баз данных. Использование профессиональной СУБД позволяет иметь программное обеспечение, в большей степени отвечающее конкретным потребностям организации.
Защита данных от несанкционированного доступа в профессиональных СУБД обеспечивается на разных уровнях: операционная система поддерживает разграничение прав доступа пользователей; СУБД представляет свое разграничение прав доступа; защита данных средствами приложения - еще один уровень, который может быть настолько развитым и многообразным, насколько хватит фантазии у программиста, разрабатывающего приложение.
СУБД поддерживают достаточно сложную структуру таблиц. Требования к непротиворечивости данных в этих таблицах довольно жестки. Рассмотрим типичный пример, включающий счета клиентов в журнал сделок. Информация о ценных бумагах, находящихся на счетах клиентов, должна соответствовать информации, содержащейся в журнале сделок, иными словами повторения всех сделок. Занесенные в журнал данные с начала функционирования системы до настоящего времени должны привести к текущему состоянию таблицы счетов. Проверка этого соответствия - операция длинная и трудоемкая. Кроме того, если проверка показала несоответствие, то возникает следующий вопрос: где произошло рассогласование? Какая информация правильна: о счетах или сделках? Ответить на эти вопросы практически невозможно, если разработчики информационной системы не предприняли специальных усилий для поддержания ссылочной целостности базы данных.
Методы поддержания целостности данных известны. Это - ведение журналов изменения таблиц и обработка транзакций. Различие между персональными и профессиональными СУБД здесь в том, что в первом случае разработчик должен брать их реализацию на себя, а во втором - они уже реализованы внутри СУБД.
Заметим также, что профессиональные СУБД представляют средства восстановления базы данных, если нарушение целостности все-таки произошло, например при сбое питания.
Современные профессиональные СУБД поддерживают средства, значительно ускоряющие разработку программ. Это языки четвертого поколения, интегрирующие средства высокого уровня для создания интерфейса с элементами CASE-технологии, средства для организации сложных запросов к базе данных, возможности подключения фрагментов, написанных на языках низкого уровня, поддержка SQL-интерфейса. Все это ускоряет разработку приложений. Реализация интерфейса запросов к базе данных занимает минимум времени и усилий. Это позволяет разработчику сосредоточить усилия на предметной области.
Профессиональные СУБД, поддерживающие технологию "клиент - сервер", позволяют наиболее эффективно использовать имеющийся парк персональных компьютеров за счет превращения их в рабочие места пользователей системы. Таким образом, выигрыш получается по трем направлениям:
1) наиболее эффективно задействуется мощный процессор сервера;
2) освобождается от ненужной загрузки сеть;
3) отпадает необходимость в высокопроизводительных компьютерах на рабочих местах пользователей.
Немаловажным фактором является упрощение наращивания вычислительной мощности информационной системы путем замены компьютера более производительным при сохранении архитектуры самой системы. При этом все приложения могут оставаться теми же самыми. У пользователя появляется выбор - повышать производительность системы за счет модернизации оборудования и структурирования сети, либо за счет оптимизации хранения данных, либо за счет увеличения производительности компьютера, либо за счет сочетания перечисленных выше способов.
Среди недостатков современных профессиональных СУБД выделяют дублирование функций операционной системы и невозможность использования в полном объеме в конкретной разработке всех их многочисленных возможностей.
Создание и использование экспертных систем является одним из концептуальных этапов развития информационных технологий. В основе интеллектуального решения проблем в некоторой предметной области лежит принцип воспроизведения знаний опытных специалистов - экспертов.
Исходя из собственного опыта, эксперт анализирует ситуацию и распознает наиболее полезную информацию, оптимизирует принятие решений, отсекая тупиковые пути.
Экспертная система - это совокупность методов и средств организации, накопления и применения знаний для решения сложных задач в некоторой предметной области. Экспертная система достигает более высокой эффективности за счет перебора большого числа альтернатив при выборе решения, опираясь на высококачественный опыт группы специалистов, анализирует влияние большого объема новых факторов, оценивая их при построении стратегий, добавляя возможности прогноза.
Основой экспертной системы является совокупность знаний (базы знаний), структурированных в целях формализации процесса принятия решений.
Экспертные системы разрабатываются с расчетом на обучение и способны обосновать логику выбора решения, т.е. обладают свойствами адаптивности и ее аргументирования. У большинства экспертных систем имеется механизм объяснения. Этот механизм использует знания, необходимые для объяснения того, каким образом система пришла к данному решению). Очень важным является определение области применения экспертной системы, границ ее использования и действия.
Преимущества экспертных систем по сравнению с использованием опытных специалистов состоят в следующем:
• достигнутая компетентность не утрачивается, может документироваться, передаваться, воспроизводиться и наращиваться;
• имеют место более устойчивые результаты, отсутствуют эмоциональные и другие факторы человеческой ненадежности;
• высокая стоимость разработки уравновешивается низкой стоимостью эксплуатации, возможностью копирования, а в совокупности они дешевле высококвалифицированных специалистов.
Недостатком экспертных систем, характерным для их современного состояния, является меньшая приспособляемость к обучению новым правилам и концепциям, к творчеству и изобретательству. Использование экспертных систем позволяет во многих случаях отказаться от высококвалифицированных специалистов, но предполагает оставить в системе место эксперту с более низкой квалификацией. Экспертные системы служат средством для расширения и усиления профессиональных возможностей конечного пользователя.
Экспертная система должна демонстрировать компетентность, т.е. достигать в конкретной предметной области того же уровня, что и специалисты-эксперты. Недостаточно находить хорошие решения, это надо делать быстро. Системы должны иметь не только глубокое, но и достаточно широкое понимание предмета. Методы нахождения решений проблем достигаются на основе рассуждений, исходящих из фундаментальных принципов в случае некорректных данных или неполных наборов правил. Такие свойства наименее разработаны в компьютерных экспертных системах, но именно они присущи специалистам высокого уровня.
Отличия экспертных систем от обычных компьютерных следующие: экспертные системы манипулируют знаниями, тогда как любые другие системы - данными; экспертные системы, как правило, дают эффективные оптимальные решения и способны иногда ошибаться, но в отличие от традиционных компьютерных систем они имеют потенциальную способность учиться на своих ошибках.
Экспертные системы, как инструмент в работе пользователей, совершенствуют свои возможности решать трудные, неординарные задачи в ходе практической работы.
Экспертные системы создаются для решения разного рода проблем, типы которых можно сгруппировать в категории: интерпретация - описание ситуации по информации, поступающей от датчиков; прогноз - определение вероятных последствий заданных ситуаций; диагностика - выявление причин неправильного функционирования системы по результатам наблюдений; проектирование - построение конфигурации объектов при заданных ограничениях; планирование - определение последовательности действий; наблюдение - сравнение результатов наблюдений с ожидаемыми результатами; отладка - составление рецептов исправления неправильного функционирования системы; ремонт - выполнение последовательности предписанных исправлений; обучение - диагностика, отладка и исправление поведения обучаемого; управление - управление поведением системы как целого.
Области применения экспертных систем: военное дело, метеорология, геология, промышленность, инженерное дело, сельское хозяйство, информатика, управление процессами, компьютерные системы, физика, космическая техника, химия, математика, электроника, медицина, юриспруденция.
Наиболее уязвимы экспертные системы в распознавании границ своих возможностей и демонстрируют ненадежное функционирование вблизи границ их применимости. Дальнейший прогресс в области искусственного интеллекта со временем предложит способы выявления границ своих возможностей. Другим недостатком экспертных систем являются значительные трудозатраты, необходимые для пополнения базы знаний. Получение знаний от экспертов и внесение их в базу знаний представляет собой сложный процесс, сопряженный со значительными затратами времени и средств. Проектирование экспертных систем также имеет определенные трудности и ограничения, которые влияют на их разработку.
Зарубежный опыт показывает, что экспертные системы разрабатываются в основном в университетах, научно-исследовательских центрах, коммерческих организациях, в финансовой учреждениях. В сфере финансового обслуживания эти системы помогают страховым компаниям анализировать и оценивать коммерческий риск, устанавливать размеры ссуд при кредитовании организаций, составлять сметы проектов и т.д.
Область применения экспертных систем расширяется. Кроме охвата различных областей деятельности одним из наиболее важных последствий разработки экспертных систем является модификация знаний. По мере того как разработчики будут строить большие, сложные базы знаний, появится рынок знаний, независимых от компьютерных систем, появятся средства обучения для изучающих определенную прикладную область. Коммерческим продуктом станут метазнания, т.е. знания об оптимальных стратегиях и процедурах использования предметных знаний. Развитие экспертных систем в интеллектуальные состоит в слиянии концепций оборудования, средств их создания и самих экспертных систем. Объединение интеллектуальных систем особенно эффективно в сложных инфраструктурах. Интеллектуальные системы уже разрабатываются и внедряются за рубежом для коммерческого использования.
Экспертная система FOLIO (Stanford University, USA) помогает консультантам по инвестициям определять цели и подбирать портфели ценных бумаг, наиболее соответствующие этим целям. Система определяет нужды клиента в ходе интервью и затем рекомендует, в каких пропорциях надо распределить капиталовложения между разными фондовыми инструментами, чтобы наилучшим образом удовлетворить запросы клиента. Система различает небольшое число классов ценных бумаг и содержит знания о свойствах ценных бумаг каждого класса. В системе применена основанная на правилах схема представления знаний с прямой цепочкой рассуждений для вывода целей и схема линейного программирования для максимизации соответствия между целями и предлагаемым портфелем. Система доведена до уровня демонстрационного прототипа.
Искусственная компетентность экспертных систем не заменяет полностью человека. Эксперт-человек способен реорганизовать информацию и знания и использовать их для синтеза новых знаний. В области творческой деятельности люди обладают большими способностями и возможностями по сравнению с самыми умными системами. Эксперты справляются с неожиданными поворотами событий и, используя новые подходы, способны проводить аналогии из других предметных областей. Эксперты адаптируют к изменяющимся условиям и приспосабливают свои стратегии к новым обстоятельствам в более широком диапазоне проблем и задач. Экспертные системы менее приспособлены к обучению на уровне новых концепций и новых правил. Они оказываются не столь эффективны и мало пригодны в тех случаях, когда надо учитывать всю сложность реальных задач.
Эксперты могут непосредственно воспринимать весь комплекс входной информации: символьной, визуальной, графической, текстовой, звуковой, осязательной, обонятельной. У экспертной системы есть только символы, с помощью которых представлены базы знаний, воплощающие те или иные концепции. Преобразование сенсорной информации в символьную сопровождается потерей части информации.