База данных – организованная совокупность данных, состоящая из связанных между собой данных об объектах некоторой предметной области, их свойствах и характеристиках.
База знаний – организованная совокупность знаний, относящихся к какой-нибудь предметной области, представленная определенной структурой.
Данные - информация фактического характера, описывающая объекты, процессы и явления предметной области, а также их свойства.
Знания описывают не только отдельные факты, но и взаимосвязи между ними. В компьютере знания должны быть представлены определенными структурами данных, соответствующими среде разработки интеллектуальной информационной системе. По своей природе знания делятся на декларативные и процедурные. Декларативные знания представляют собой описания фактов и явлений, фиксируют наличие или отсутствие таких фактов, также включают описания основных связей и закономерностей, в которые эти факты и явления входят. Процедурные знания – это описания действий, которые возможны при манипулировании фактами и явлениями для достижения намеченных целей.
Система управления базами данных (СУБД) - программное средство, предназначенное для организации и ведения логически взаимосвязанных данных на внешнем носителе, а также обеспечивающее доступ к данным.
Интеллектуальная информационная система основана на концепции использования баз знаний для генерации алгоритмов решения прикладных задач различных классов в зависимости от конкретных информационных потребностей пользователей.
К функциям СУБД относят следующие (к лекции по СУБД):
ü управление данными непосредственно в БД – функция, обеспечивающая хранение данных, непосредственно входящих в БД и служебной информации, обеспечивающей работу СУБД;
ü управление данными в памяти компьютера – функция, связанная в первую очередь с тем, что СУБД работают с БД большого размера. В целях ускорения работы СУБД используется буферизация данных в оперативной памяти компьютера. При этом пользователь получает только необходимую для его конкретной задачи часть БД, а при необходимости получает новую «порцию» данных;
управление транзакциями – функция СУБД, которая производит ряд операций над БД, как единым целым. Транзакция – это последовательность операций над БД, рассматриваемых СУБД как единое целое. Транзакция переводит БД из одного целостного состояния в другое.
ü управление изменениями в БД и протоколирование – функция, связанная с надежностью хранения данных, то есть возможностью СУБД восстанавливать состояние БД в аварийных ситуациях, например, при случайном выключении питания или сбое носителя информации. Для восстановления БД нужно располагать дополнительной информацией, по которой осуществляется восстановление. С этой целью ведется протокол изменений БД, в которой перед манипуляциями с данными делается соответствующая запись. Для восстановления БД после сбоя СУБД используется протокол и архивная копия БД – полная копия БД к моменту начала заполнения протокола.
ü поддержка языков БД - для работы с БД используется специальные языки, в целом называемые языками баз данных. В СУБД обычно поддерживается единый язык, содержащий все необходимые средства – от создания БД до обеспечения пользовательского интерфейса при работе с данными. Наиболее распространенным в настоящее время языком СУБД является язык SQL (Structured Query Language).
Компоненты субд
• Процессор запросов. Это основной компонент СУБД, который преобразует запросы в последовательность низкоуровневых инструкции для контроллера базы данных. Более полно функции этого компонента рассматриваются в главе 18, "Обработка запросов".
Рис. 2.6. Основные компоненты типичной системы управления базами данных
• Контроллер базы данных. Этот компонент взаимодействует с запущенны
ми пользователями прикладными программами и запросами. Контроллер
базы данных принимает запросы и проверяет внешние и концептуальные
схемы для определения тех концептуальных записей, которые необходимы
для удовлетворения требований запроса. Затем контроллер базы данных
вызывает контроллер файлов Для выполнения поступившего запроса. Ком
поненты контроллера базы данных показаны на рис. 2.7.
• Контроллер файлов манипулирует предназначенными для хранения дан
ных файлами и отвечает за распределение доступного дискового простран
ства. Он создает и поддерживает список структур и индексов, определен
ных во внутренней схеме. Если используются хешированные файлы, то в
его обязанности входит и вызов функций хеширования для генерации ад
ресов записей. Однако контроллер файлов не управляет физическим вво
дом и выводом данных непосредственно, а лишь передает запросы соответ
ствующим методам доступа, которые считывают данные в системные бу
феры или записывают их оттуда на диск.
• Препроцессор языка DML. Этот модуль преобразует внедренные в при
кладные программы DML-операторы в вызовы стандартных функций базо
вого языка. Для генерации соответствующего кода препроцессор языка
DML должен взаимодействовать с процессором запросов.
Компилятор языка DDL. Компилятор языка DDL преобразует DDL-команды в набор таблиц, содержащих метаданные. Затем эти таблицы сохраняются в системном каталоге, а управляющая информация — в заголовках файлов с данными.
Контроллер словаря. Контроллер словаря управляет доступом к системному каталогу и обеспечивает работу с ним. Системный каталог доступен большинству компонентов СУБД.
Рис. 2.7. Компоненты контроллера базы данных
Ниже перечислены основные программные компоненты, входящие в состав контроллера базы данных.
• Контроль прав доступа. Этот модуль проверяет наличие у данного пользо
вателя полномочий для выполнения затребованной операции.
• Процессор команд. После проверки полномочий пользователя для выпол
нения затребованной операции управление передается процессору команд.
• Средства контроля целостности. В случае операций, которые изменяют
содержимое базы данных, средства контроля целостности выполняют про
верку того, удовлетворяет ли затребованная операция всем установленным
ограничениям поддержки целостности данных (например, требованиям,
установленным для ключей).
Ш Оптимизатор запросов. Этот модуль определяет оптимальную стратегию выполнения запроса. Более подробно оптимизация запросов рассматривается в главе 18, "Обработка запросов".
• Контроллер транзакций. Этот модуль осуществляет требуемую обработку
операций, поступающих в процессе выполнения транзакций.
• Планировщик. Этот модуль отвечает за бесконфликтное выполнение па
раллельных операций с базой данных. Он управляет относительным по
рядком выполнения операций, затребованных в отдельных транзакциях.
• Контроллер восстановления. Этот модуль гарантирует восстановление ба
зы данных до непротиворечивого состояния при возникновении сбоев. В
частности, он отвечает за фиксацию и отмену результатов выполнения
транзакций.
• Контроллер буферов. Этот модуль отвечает за перенос данных между опера
тивной памятью и вторичным запоминающим устройством — например, же
стким диском или магнитной лентой. Контроллер восстановления и кон
троллер буферов иногда (в совокупности) называют контроллером данных.
Последних четыре модуля подробно обсуждаются в главе 17, "Управление транзакциями". Для воплощения базы данных на физическом уровне помимо перечисленных выше модулей нужны некоторые другие структуры данных. К ним относятся файлы данных и индексов, а также системный каталог. Группой DAFTG (Database Architecture Framework Task Group)была предпринята попытка стандартизации СУБД, и в 1986 году ею была предложена некоторая эталонная модель. Назначение эталонной модели заключается в определении концептуальных рамок для разделения предпринимаемых попыток стандартизации на более управляемые части и указания взаимосвязей между ними на очень широком уровне.