Структура СУБД и назначение основных компонентов.

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

База знаний – организованная совокупность знаний, относящихся к какой-нибудь предметной области, представленная определенной структурой.

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

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

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

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

К функциям СУБД относят следующие (к лекции по СУБД):

ü управление данными непосредственно в БД – функция, обеспечивающая хранение данных, непосредственно входящих в БД и служебной информации, обеспечивающей работу СУБД;

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

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

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

ü поддержка языков БД - для работы с БД используется специальные языки, в целом называемые языками баз данных. В СУБД обычно поддерживается единый язык, содержащий все необходимые средства – от создания БД до обеспечения пользовательского интерфейса при работе с данными. Наиболее распространенным в настоящее время языком СУБД является язык 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 году ею была предложена некоторая эталонная модель. Назначение эталонной модели заключается в определении концептуальных рамок для разделения предпринимаемых попыток стандартизации на более управляемые части и указания взаимосвязей между ними на очень широком уровне.