Пользовательские требования. 2 страница

Другим примером языков этого класса могут служить языки: Quel системы Ingres, созданный Калифорнийским университетом; dBase семейства СУБД фирмы Asthon – Tate; R:Base фирмы Microrim.

Процедурным языком, при помощи которого осуществляется управление базой данных, является языкQBE (Query-By-Example). Этот язык представляет пользователю удобный и унифицированный интерфейс для осуществления операций по ведению базы данных. Для пользователя решение основных задач производится через таблицу-шаблон, связанную с реальной базой данных.

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

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

Модули представляют собой процедуры на языке Visual Basic for Application (VBA).

VBA является общим языком для всех приложений Microsoft Office и позволяет решать любые задачи программирования, начиная от автоматизации действий конкретного пользователя и заканчивая разработкой сложных приложений, использующих Microsoft Office в качестве среды разработки. Язык VBA является объектно-ориентированным языком программирования и вычисления. Основой программ на VBA являются процедуры, состоящие из инструкций, выполняющих необходимые операции. Процедуры хранятся в модулях, из которых они запрашиваются на выполнение. Модуль служит для объединения процедур по функциональному назначению или привязки к форме или отчету.

Различают процедуры-подпрограммы (Sub) и процедуры-функции. Процедура-подпрограмма может выполнять любые действия, например, корректировать данные базы, выполнять вычисления в полях, открывать формы, печатать отчеты. Формат подпрограммы имеет следующий вид:

[Private! Public] [Static] Sub <Имя процедуры> [(список аргументов)]

[<описание переменных>]

[<инструкции>]

[Exit Sub]

[<инструкции>]

End Sub

Здесь Sub, End обозначают начало и конец процедуры. Private указывает на то, что процедура Sub доступна только для процедур того модуля, в котором она описана. Public показывает, что процедура Sub является общей, и доступна для всех других процедур во всех модулях. Static обозначает сохранение значений локальных переменных процедуры между вызовами этой программы. Exit Sub приводит к немедленному завершению процедуры Sub.

Процедура-функция (Function) вычисляет значение, которое присваивается ее имени внутри процедуры. Формат процедуры имеет вид:

[Private! Public] [Static] Function <Имя процедуры> [(список аргументов)]

[<описание переменных>]

[<инструкции>]

[<имя процедуры>=<выражение>]

[Exit Function]

[<инструкции>]

[<имя процедуры>=<выражение>]

End Function

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

В Web-программировании активно используется СУБД MySQL. Для работы с базами данных этой системы применяют язык программирования PHP. Это Си-подобный язык, предназначенный для быстрого создания программ на Web-сервере.

На языке PHP разрабатываются скрипты (scripting language) – кодовые (программные) инструкции по выполнению определенных действий над данными, выбранными из базы данных. Скрипты вставляются в HTML-документы, преобразуя их из статических в активные. Web-сервер просматривает документ, выполняет найденные в нем PHP-инструкции, и результат выполнения инструкций возвращает пользователю.

С помощью PHP можно обрабатывать данные из форм, генерировать динамические страницы, создавать счетчики, гостевые книги и т.д. В PHP включена поддержка многих баз данных: FilePro, Informix, MySQL, Oracle, Sybase и др.

5.3. Архитектура типичной СУБД

В структуре типичной СУБД выделяются: ядро СУБД, компилятор языка базы данных (обычно SQL), подсистема поддержки времени выполнения, набор утилит.

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

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

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

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

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

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

При журнализации используется стратегия "упреждающей" записи в журнал (протокол Write Ahead Log - WAL). Стратегия заключается в том, что запись об изменении любого объекта базы данных должна попасть во внешнюю память журнала раньше, чем измененный объект попадет во внешнюю память основной части базы данных. При соблюдении протокола WAL с помощью журнала можно решить все проблемы восстановления БД после любого сбоя.

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

Компилятор языка базы данных преобразует операторы языка базы данных в выполняемую программу. Результат компиляции – выполняемая программа, представляется в машинных кодах или в выполняемом внутреннем машинно-независимом коде.

Подсистема поддержки времени выполнения используется для интерпретации внутреннего машинно-независимого кода при выполнении операторов программы.

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

5.4. Функциональные возможности СУБД

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

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

К средствам обеспечения целостности данных на уровне СУБД относятся:

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

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

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

Большую пользу для обеспечения условий целостности данных, приносят триггеры, которые сохраняют связи между таблицами при добавлении, обновлении или удалении строк в таблицах. Триггером называют сохраненную процедуру специального типа, которая вступает в действие, когда пользователь изменяет данные в указанной таблице с помощью одной или нескольких из следующих операций: UPDATE, INSERT или DELETE. Триггеры позволяют выполнять запросы к другим таблицам и могут содержать сложные инструкции SQL

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

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

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

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

2.Объекты импортируются из одной базы данных в другую базу данных в рамках одной СУБД.

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

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

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

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

– блокировка базы данных, файла, записи, поля;

– идентификация рабочей станции, установившей блокировку;

– обновление информации после модификации;

– контроль за временем обращения и повторения обращения;

– обработка транзакций;

– работа с сетевыми операционными системами.

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

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

Основными WWW-технологиями доступа к базам данных являются следующие:

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

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

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

2. Динамическое создание гипертекстовых документов на осно­ве содержимого баз данных.

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

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

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

 

5.5. Производительность СУБД

Производительность СУБД представляет собой комплексную характеристику, включающую ряд показателей:

1. Скорость выполнения массовых операций: обновление, вставка, удаление данных;

2. Время выполнения запросов;

3. Скорость поиска информации в неиндексированных полях;

4. Скорость создания индексов;

5. Время выполнения операций импортирования базы данных из других форматов;

6. Максимальное число параллельных обращений к данным в многопользовательском режиме;

7. Время генерации отчета и др.

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

– объемы и характер хранимых данных;

– динамика поступления и изменения данных;

– технология хранения данных: локальная или распределенная;

– необходимость многопользовательского режима использования хранимых данных;

– выбранная модель данных;

– гарантия целостности данных;

– необходимость механизма транзакций;

– необходимость реплицирования данных;

– приоритетность таких показателей, как производительность СУБД и затраты на ее техническую поддержку.

Тема 6. Модели представления знаний

6.1. Знания и базы знаний

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

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

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

Рассмотрим характерные особенности знаний.

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

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

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

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

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

Различают знания поверхностные и глубинные.

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

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

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

По природе возникновения знания о предметной области подразделяются на виды:

факты, относящиеся к предметной области;

закономерности, присущие предметной области;

гипотезы о возможных связях между явлениями, процессами и фактами;

процедуры для решения типовых задач в данной предметной области.

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

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

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

Особенностью баз знаний является наличие в них эвристических знаний.

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

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

База знаний – это совокупность структурированных знаний об определенной предметной области, хранящаяся в памяти ЭВМ. База знаний основана на семантической модели и позволяет отвечать на такие вопросы из этой предметной области, ответы на которые в явном виде не присутствуют в базе. База знаний является основным компонентом систем искусственного интеллекта.

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

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

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

Информационный язык представляет собой искусственный язык, предназначенный для записи и поиска информации в автоматизированных информационных системах. Обычно информационный язык состоит из тезауруса (словаря) и грамматики. Тезаурус включает лексику информационного языка, систему парадигматических отношений и «таблицу» соответствия между лексическими единицами естественного и информационного языков. Грамматика содержит правила образования производных единиц информационного языка и правила их тождественны преобразований.

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

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

– в логических моделях – предикаты и логические формулы,

– в семантических сетях и фреймовых моделях – это понятия и их взаимосвязи,

– в объектно-ориентированном подходе – объекты, классы и сообщения.

Большинство из моделей может быть сведено к следующим классам:

– логико-лингвистические модели;

– формальные логические модели;

– продукционные модели;

– семантические сети;

– фреймы.

6.2. Логические модели

При управлении экономическими объектами имеется ряд задач, для решения которых неприемлемы традиционные методы по следующим причинам:

– не все цели управления объектом могут быть выражены в виде количественных соотношений;

– между рядом параметров, оказывающих влияние на процесс управления, не удается установить точных количественных зависимостей;

– в многошаговых процессах управления содержание каждого шага не может быть заранее однозначно определено;

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

– цель существования самого объекта не может быть строго формализована;

– в результате эволюции меняется структура и функции объекта, что должно отражаться на эволюции процесса управления;

– элементы, входящие в структуру управляемого объекта, могут иметь активную природу: их поведение может противоречить целям управления.

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

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

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

Языком исчисления выбирается язык, называемый языком представления знаний. Аксиомами исчисления служат описания объекта управления, среды и начальных состояний. Правила вывода – это правила перехода из одного состояния объекта управления и среды в другое. Теоремы – промежуточные и конечные состояния системы.

В логико-лингвистических моделях систем управления содержатся:

1) интерпретатор, который отражает изменение блока знаний о среде, содержимое которого меняется в процессе функционирования объекта управления: обновляется, уточняется, пополняется.

2) модель знаний, которая отделена от механизма порождения решений.

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

Знания, которые могут быть представлены с помощью логики предикатов, являются либо фактами, либо правилами. Предикат в математической логике – это логическая функция одного или нескольких аргументов. Предикат принимает значение 0 или 1(«ложь» или «истина»), а значения аргументов могут принадлежать различным множествам объектов. В программировании предикат является условием в алгоритме или программе, выраженным в виде логической формулы, содержащей числовые или текстовые величины.

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

Например, в качестве языка логического программирования можно использовать ПРОЛОГ, а совокупность логических формул, состоящую из запроса, множества предложений программы и интерпретатора языка, можно рассматривать как алгоритм решения задач приложений.

6.3. Продукционные модели

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

Продукционная модель представляет собой систему, состоящей из компонентов:

– совокупности продукционных правил (продукций);

– рабочей памяти;

– механизма логического вывода.

Продукция – это выражение, содержащее ядро, имя, сферу применения, условие применимости ядра и пустословие. Ядро интерпретируется фразой «Если (условие), то (действие)». Пустословие – это процедура, которую следует выполнить после успешной реализации ядра. Все части продукции, кроме ядра, являются необязательными.

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